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

Discord.js v14.9.0中interaction.isCommand()报错:不是函数的原因

Discord.js v14.9.0中interaction.isCommand()报错及reply实现方案

问题原因

你通过client.ws.on('INTERACTION_CREATE')监听的是原始WebSocket事件,这里拿到的interaction是未经过Discord.js封装的原始数据结构,所以不存在isCommand()方法,也无法直接调用reply()。Discord.js v14要求通过客户端的interactionCreate事件来处理交互逻辑,该事件传递的是封装好的Interaction实例,具备官方文档中定义的所有方法。

正确代码示例

client.on('interactionCreate', async (interaction) => {
  // v14中已废弃isCommand(),改用isChatInputCommand()判断Slash命令
  if (!interaction.isChatInputCommand()) return;

  // 执行回复操作
  try {
    await interaction.reply('命令已响应!');
  } catch (error) {
    console.error('回复失败:', error);
  }
});

额外注意事项

  • 确保你的机器人已经完成了Slash命令的注册,否则interactionCreate事件不会触发命令相关的交互
  • 所有与交互相关的异步操作(比如reply())建议用try/catch包裹,避免未处理的错误导致机器人崩溃
  • 如果需要处理其他类型的交互(如按钮、选择菜单),可以使用对应的判断方法,比如interaction.isButton()、interaction.isStringSelectMenu()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 20:02:01