construct autocomplete interface objects once

This commit is contained in:
2026-01-23 16:49:54 -05:00
parent c5c733d14c
commit ff20bbef2c
2 changed files with 4 additions and 8 deletions

View File

@@ -163,11 +163,7 @@ func skillHandler(data discord.SlashCommandInteractionData, e *handler.CommandEv
func skillAutocomplete(e *handler.AutocompleteEvent) error { func skillAutocomplete(e *handler.AutocompleteEvent) error {
q := e.Data.String("query") q := e.Data.String("query")
opts := skillGlobalAuto().Find(nil, q) opts := skillGlobalAuto().Find(nil, q)
r := make([]discord.AutocompleteChoice, min(len(opts), 25)) return e.AutocompleteResult(opts[:min(len(opts), 25)])
for i, k := range opts[:min(len(opts), len(r))] {
r[i] = discord.AutocompleteChoiceString{Name: k, Value: k}
}
return e.AutocompleteResult(r)
} }
func skillButton(data discord.ButtonInteractionData, e *handler.ComponentEvent) error { func skillButton(data discord.ButtonInteractionData, e *handler.ComponentEvent) error {

View File

@@ -118,11 +118,11 @@ func isDebuff(s horse.Skill) bool {
return false return false
} }
var skillGlobalAuto = sync.OnceValue(func() *autocomplete.Set[string] { var skillGlobalAuto = sync.OnceValue(func() *autocomplete.Set[discord.AutocompleteChoice] {
var set autocomplete.Set[string] var set autocomplete.Set[discord.AutocompleteChoice]
for _, id := range global.OrderedSkills { for _, id := range global.OrderedSkills {
s := global.AllSkills[id] s := global.AllSkills[id]
set.Add(s.Name, s.Name) set.Add(s.Name, discord.AutocompleteChoiceString{Name: s.Name, Value: s.Name})
} }
return &set return &set
}) })