discord.js v14中addIntegerOption无法正常使用的问题求助
解决discord.js v14中addIntegerOption类型不匹配的错误
问题原因
报错里的类型码3对应字符串类型(STRING),4对应整数类型(INTEGER),说明Discord服务器上注册的add命令中,amount选项还是旧的字符串类型定义,和你当前代码里的整数选项不匹配,大概率是修改代码后未重新部署更新命令。
解决步骤
- 重新执行命令部署脚本,将更新后的命令定义同步到Discord服务器。
- 检查选项名称一致性:确保
setName("amount")和options.getInteger('amount')的名称完全一致(命令选项名称仅支持小写字母、数字和连字符,注意不要出现大小写错误)。 - 确认discord.js版本为v14.x稳定版,避免版本兼容问题。
验证示例
确保命令构建代码完整正确,示例如下:
const { SlashCommandBuilder } = require('discord.js'); module.exports = { data: new SlashCommandBuilder() .setName('add') .setDescription('Add coins to your current balance') .addIntegerOption(option => option.setName('amount') .setDescription('amount of coins') .setMinValue(0) .setMaxValue(22) .setRequired(true) // 按需设置是否必填 ), async execute(interaction) { const addCoins = interaction.options.getInteger('amount'); // 后续业务逻辑 }, };
部署完成后,可通过Discord客户端输入/add命令,查看amount选项是否显示为数字输入框,以此确认命令更新成功。
内容的提问来源于stack exchange,提问作者AkaMikeee
相关产品推荐
相关产品推荐

