diff options
| author | historia <[not public]> | 2026-06-11 04:46:27 -0400 |
|---|---|---|
| committer | historia <[not public]> | 2026-06-11 08:58:37 +0000 |
| commit | 1b9e2da3b3c438d8dc53d3489725dd5ba0022777 (patch) | |
| tree | 62264f24420bf4cfaa734942c65cc8dd45ba3d3b /cmd | |
| parent | 06c02a697e5daf8832a462de5970dd4c0e13a02c (diff) | |
| download | thehouseoficarus-1b9e2da3b3c438d8dc53d3489725dd5ba0022777.tar.gz | |
feat: web client, get/drop updates and fixes
Diffstat (limited to 'cmd')
| -rw-r--r-- | cmd/mud/main.go | 32 |
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) |
