如何在discord.js中为斜杠命令配置带LabTypes枚举值提示的选项列表
实现方案
- 首先你需要修正参数的类型配置:discord.js 斜杠命令的枚举提示依赖字符串/数字类型选项的
choices字段实现,你当前配置的type: this.commandsType.LAB_TYPES不符合官方要求,枚举选项需要依附基础的String类型参数(对应ApplicationCommandOptionType.String枚举值) - 然后将你定义的
LabTypes枚举转换为符合discord.js要求的选项数组:每个选项需要包含name(用户输入时看到的提示文本)和value(命令触发后实际接收到的参数值)两个字段,转换代码如下:
const labTypeChoices = Object.entries(LabTypes).map(([label, enumValue]) => ({ name: label, value: enumValue }))
- 最后修改你的命令参数配置,添加
choices字段:
{ name: "type", description: "Enter the HOL type", type: ApplicationCommandOptionType.String, // 如果你用的是v14以下旧版discord.js,这里替换为对应版本的字符串类型枚举值即可 required: true, choices: labTypeChoices }
如果你是用官方推荐的SlashCommandBuilder来构造命令,写法如下:
new SlashCommandBuilder() .setName('你的命令名称') .setDescription('命令功能描述') .addStringOption(option => option.setName('type') .setDescription('Enter the HOL type') .setRequired(true) .addChoices(...labTypeChoices) )
注意:修改完成后需要重新向Discord服务器部署你的斜杠命令配置,修改才会生效,用户输入参数时就能看到所有枚举选项的自动提示了。
内容的提问来源于stack exchange,提问作者Emmanuel Oliveira
相关产品推荐
相关产品推荐

