aboutsummaryrefslogtreecommitdiff
path: root/internal/game/game.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/game/game.go')
-rw-r--r--internal/game/game.go17
1 files changed, 17 insertions, 0 deletions
diff --git a/internal/game/game.go b/internal/game/game.go
index df8dab2..448dcce 100644
--- a/internal/game/game.go
+++ b/internal/game/game.go
@@ -597,6 +597,23 @@ func (g *Game) reprompt(sess *net.Session) {
}
}
+// rawArgsFrom returns the whitespace-separated arguments following verb in
+// rawInput, preserving their original case. Dispatch lowercases args before
+// handlers run, so free-text handlers (option/alias/say/global/prompt) use
+// this instead of the lowercased args slice.
+func rawArgsFrom(rawInput, verb string) []string {
+ fields := strings.Fields(rawInput)
+ for i, f := range fields {
+ if strings.EqualFold(f, verb) {
+ return fields[i+1:]
+ }
+ }
+ if len(fields) == 0 {
+ return nil
+ }
+ return fields[1:]
+}
+
func (g *Game) handleGameCommand(sess *net.Session, input string) {
if input == "" {
g.reprompt(sess)