feat(lib,commands,options): user option for chat commands
This commit is contained in:
@@ -217,6 +217,44 @@ func (o *ChatCommandBooleanOption) Validate() (bool, error) {
|
||||
return validateOption(o)
|
||||
}
|
||||
|
||||
type ChatCommandUserOption struct {
|
||||
Name string
|
||||
NameLocalizations map[discordgo.Locale]string
|
||||
Description string
|
||||
DescriptionLocalizations map[discordgo.Locale]string
|
||||
Required bool
|
||||
Autocomplete bool
|
||||
Choices []*ChatCommandUserOptionChoice
|
||||
}
|
||||
|
||||
type ChatCommandUserOptionChoice = ChatCommandStringOptionChoice
|
||||
|
||||
func (o *ChatCommandUserOption) ApplicationCommandOption() *discordgo.ApplicationCommandOption {
|
||||
choices := make([]*discordgo.ApplicationCommandOptionChoice, len(o.Choices))
|
||||
for i, v := range o.Choices {
|
||||
choices[i] = &discordgo.ApplicationCommandOptionChoice{
|
||||
Name: v.Name,
|
||||
NameLocalizations: v.NameLocalizations,
|
||||
Value: any(v.Value),
|
||||
}
|
||||
}
|
||||
|
||||
return &discordgo.ApplicationCommandOption{
|
||||
Type: discordgo.ApplicationCommandOptionUser,
|
||||
Name: o.Name,
|
||||
NameLocalizations: o.NameLocalizations,
|
||||
Description: o.Description,
|
||||
DescriptionLocalizations: o.DescriptionLocalizations,
|
||||
Required: o.Required,
|
||||
Autocomplete: o.Autocomplete,
|
||||
Choices: choices,
|
||||
}
|
||||
}
|
||||
|
||||
func (o *ChatCommandUserOption) Validate() (bool, error) {
|
||||
return validateOption(o)
|
||||
}
|
||||
|
||||
func validateOption(opt interface {
|
||||
ApplicationCommandOption() *discordgo.ApplicationCommandOption
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user