You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord.js v14使用子命令时addChoices不是函数的错误求助

问题原因

你错误地给addUserOption(用户选择选项)调用了addChoices方法,但Discord.js里用户类型的选项是用来让用户选择服务器成员的,不支持自定义选择项列表,所以会报错addChoices is not a function。你需要的是让用户选择预设的团队名称,应该用字符串类型的选项。

修正后的代码
module.exports = {
    data: new SlashCommandBuilder()
        .setName('raids')
        .setDescription('Teams for Raids')
        .addSubcommand(subcommand =>
            subcommand
                .setName('incursion')
                .setDescription('Teams for Incursion Raids')
                .addStringOption(option => 
                    option.setName('incursion-team')
                        .setDescription('Name of the team')
                        .setRequired(true)
                        .addChoices(
                            {name: 'incursion mystic', value: 'incursion mystic'},
                            {name: 'incursion tech', value: 'incursion tech'},
                            {name: 'incursion mutant', value: 'incursion mutant'},
                            {name: 'incursion bio', value: 'incursion bio'},
                            {name: 'incursion skill', value: 'incursion skill'}
                        ))),
    async execute(interaction) {
        // 获取子命令对应的选项值
        const team = interaction.options.getString('incursion-team');
        // 后续逻辑处理示例
        await interaction.reply(`你选择了团队:${team}`);
    }
};
补充说明
  • 若确实需要让用户选择服务器成员,直接用addUserOption即可,不能搭配addChoices;
  • 若要提供预设文本选项,使用addStringOption+addChoices才是正确组合。

内容的提问来源于stack exchange,提问作者LosmiNCL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 12:22:34