From 2725e2927a1595c7b100d942d1f14146252adeb7 Mon Sep 17 00:00:00 2001 From: historia <[not public]> Date: Thu, 25 Jun 2026 04:46:40 -0400 Subject: feat: who, global chat, removed redundant YAML IDs --- internal/game/cmd_who.go | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 internal/game/cmd_who.go (limited to 'internal/game/cmd_who.go') diff --git a/internal/game/cmd_who.go b/internal/game/cmd_who.go new file mode 100644 index 0000000..87c8a9c --- /dev/null +++ b/internal/game/cmd_who.go @@ -0,0 +1,32 @@ +package game + +import ( + "fmt" + "sort" + "strings" + + "thehouseoficarus/internal/net" + "thehouseoficarus/internal/player" +) + +func (g *Game) executeWho(sess *net.Session, args []string, rawInput string) { + myP := sess.Player + + var players []*player.Player + for _, other := range g.Hub.AllSessions() { + if other.Player == nil { + continue + } + players = append(players, other.Player) + } + sort.Slice(players, func(i, j int) bool { + return strings.ToLower(players[i].Name) < strings.ToLower(players[j].Name) + }) + + sess.WriteLine(fmt.Sprintf("\nPlayers online (%d):", len(players))) + for _, p := range players { + lvl := p.CombatLevel() + levelStr := g.levelColorize(sess, myP.CombatLevel(), lvl, fmt.Sprintf("(level %d)", lvl)) + sess.WriteLine(fmt.Sprintf(" %s %s", p.Name, levelStr)) + } +} -- cgit v1.2.3