aboutsummaryrefslogtreecommitdiff
path: root/cmd/mud/main.go
diff options
context:
space:
mode:
authorhistoria <[not public]>2026-06-11 04:46:27 -0400
committerhistoria <[not public]>2026-06-11 08:58:37 +0000
commit1b9e2da3b3c438d8dc53d3489725dd5ba0022777 (patch)
tree62264f24420bf4cfaa734942c65cc8dd45ba3d3b /cmd/mud/main.go
parent06c02a697e5daf8832a462de5970dd4c0e13a02c (diff)
downloadthehouseoficarus-1b9e2da3b3c438d8dc53d3489725dd5ba0022777.tar.gz
feat: web client, get/drop updates and fixes
Diffstat (limited to 'cmd/mud/main.go')
-rw-r--r--cmd/mud/main.go32
1 files changed, 23 insertions, 9 deletions
diff --git a/cmd/mud/main.go b/cmd/mud/main.go
index d1e4ef5..e3e3d32 100644
--- a/cmd/mud/main.go
+++ b/cmd/mud/main.go
@@ -1,30 +1,35 @@
package main
import (
+ "flag"
"fmt"
"log"
"os"
"os/signal"
- "strconv"
"syscall"
"thirdcollapse/internal/combat"
+ "thirdcollapse/internal/config"
"thirdcollapse/internal/game"
"thirdcollapse/internal/net"
)
func main() {
+ configPath := flag.String("config", "config.yaml", "path to config file")
+ flag.Parse()
+
dataDir := os.Getenv("DATA_DIR")
if dataDir == "" {
dataDir = "data"
}
- port := 4000
- if len(os.Args) > 1 {
- if p, err := strconv.Atoi(os.Args[1]); err == nil && p >= 1 && p <= 65535 {
- port = p
+ cfg, err := config.Load(*configPath)
+ if err != nil {
+ if os.IsNotExist(err) {
+ log.Printf("config file %s not found, using defaults (telnet :4000)", *configPath)
+ cfg = config.Default()
} else {
- log.Fatalf("invalid port: %s (must be 1-65535)", os.Args[1])
+ log.Fatalf("failed to load config: %v", err)
}
}
@@ -39,19 +44,28 @@ func main() {
g.RegenTick()
g.DisconnectTick()
g.WanderTick()
+ g.WoodcuttingTick()
g.AdvanceActions()
g.BroadcastRespawns()
return true
})
- addr := fmt.Sprintf(":%d", port)
- server, err := net.NewServer(addr)
+ server, err := net.NewServer(cfg)
if err != nil {
log.Fatalf("failed to start server: %v", err)
}
g.SetHub(server.Hub())
- log.Printf("Third Collapse listening on :%d", port)
+ if cfg.Telnet.Enabled {
+ log.Printf("Telnet listening on :%d", cfg.Telnet.Port)
+ }
+ if cfg.HTTP.Enabled {
+ log.Printf("HTTP listening on :%d", cfg.HTTP.Port)
+ }
+ if cfg.HTTPS.Enabled {
+ log.Printf("HTTPS listening on :%d", cfg.HTTPS.Port)
+ }
+ fmt.Println() // blank line after log prefixes
sigCh := make(chan os.Signal, 1)
signal.Notify(sigCh, syscall.SIGINT, syscall.SIGTERM)