diff options
| author | historia <[not public]> | 2026-07-13 23:01:45 -0400 |
|---|---|---|
| committer | historia <[not public]> | 2026-07-13 23:01:45 -0400 |
| commit | 5a6986a8c539364b7a166abdfb608b3cc00ecb3b (patch) | |
| tree | 0a8a199fa28173df7f97493a209b5642ef7b4817 /internal/player/store.go | |
| parent | 5ea48c1f91298b42924f6865ffc30810cceec2d3 (diff) | |
| download | thehouseoficarus-5a6986a8c539364b7a166abdfb608b3cc00ecb3b.tar.gz | |
feat(admin): convert players page into characters page with basic stats/yaml
Diffstat (limited to 'internal/player/store.go')
| -rw-r--r-- | internal/player/store.go | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/internal/player/store.go b/internal/player/store.go index 2691d71..9bfdf40 100644 --- a/internal/player/store.go +++ b/internal/player/store.go @@ -154,6 +154,26 @@ func (s *AccountStore) FindCharacter(name string) (string, error) { // data/players/characters/*.yaml file. Used by room-ID migration to walk and // rewrite offline characters. Online characters are excluded by the caller // (their in-memory state is updated directly). +func (s *AccountStore) ListAccountNames() ([]string, error) { + dir := filepath.Join(s.dataDir, "players", "accounts") + entries, err := os.ReadDir(dir) + if err != nil { + return nil, err + } + var names []string + for _, e := range entries { + if e.IsDir() { + continue + } + name := strings.TrimSuffix(e.Name(), ".yaml") + if name == "" { + continue + } + names = append(names, name) + } + return names, nil +} + func (s *AccountStore) ListCharacterNames() ([]string, error) { dir := filepath.Join(s.dataDir, "players", "characters") entries, err := os.ReadDir(dir) |
