fix: load development settings by default

This commit is contained in:
2026-10-04 01:46:58 +08:00
parent 40e764be7f
commit bc898d0530
3 changed files with 30 additions and 4 deletions
+10
View File
@@ -0,0 +1,10 @@
package main
import "path/filepath"
func resolveDevelopmentSettingsPath(dataDir, override string) string {
if override != "" {
return filepath.Clean(override)
}
return filepath.Join(dataDir, "dev-tools.json")
}
@@ -0,0 +1,17 @@
package main
import (
"path/filepath"
"testing"
)
func TestDevelopmentSettingsDefaultFollowsServerDataDirectory(t *testing.T) {
dataDir := filepath.Join(t.TempDir(), "custom-data")
if got := resolveDevelopmentSettingsPath(dataDir, ""); got != filepath.Join(dataDir, "dev-tools.json") {
t.Fatalf("development settings path = %q", got)
}
override := filepath.Join(t.TempDir(), "operator-settings.json")
if got := resolveDevelopmentSettingsPath(dataDir, override); got != override {
t.Fatalf("explicit development settings path = %q, want %q", got, override)
}
}
+3 -4
View File
@@ -95,7 +95,7 @@ func serve(args []string) (serveErr error) {
deckSeed := fs.String("deck-seed", "", "versioned starter deck")
worldSeed := fs.String("world-seed", "", "versioned starter world")
gachaScheduleSeed := fs.String("gacha-schedule-seed", "", "versioned dynamic gacha schedule")
devToolsConfig := fs.String("dev-tools-config", "", "optional local development-tool settings JSON")
devToolsConfig := fs.String("dev-tools-config", "", "development-tool settings JSON (defaults to DATA_DIR/dev-tools.json)")
if err := fs.Parse(args); err != nil {
return err
}
@@ -166,6 +166,7 @@ func serve(args []string) (serveErr error) {
if err != nil {
return fmt.Errorf("resolve server data directory: %w", err)
}
*devToolsConfig = resolveDevelopmentSettingsPath(*dataDir, *devToolsConfig)
gameData := filepath.Join(*dataDir, "resources", "GameData")
if *stateFile == "" {
*stateFile = filepath.Join(*dataDir, "state", "state.db")
@@ -360,9 +361,7 @@ func serve(args []string) (serveErr error) {
if err != nil {
return fmt.Errorf("load inventory slot state: %w", err)
}
if *devToolsConfig != "" {
inventorySlots.AttachDevelopmentSettings(filepath.Clean(*devToolsConfig))
}
inventorySlots.AttachDevelopmentSettings(*devToolsConfig)
if err := login.AttachInventorySlots(inventorySlots); err != nil {
return fmt.Errorf("attach inventory slots to login: %w", err)
}