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

如何让discord.js读取用户回复 现有交互功能代码无法运行求助

你使用的最新版discord.js(v14及以上)调整了awaitMessages的传参规则,旧版将filter作为第一个参数的写法已经不被支持,这是代码无法运行的主要原因,同时原代码存在变量名冲突的隐患,按以下方式修改即可:

修改要点

  • 移除awaitMessages的第一个filter参数,将filter函数移入配置对象的filter属性中
  • 将awaitMessages成功回调的参数名从message改为collected,避免和外层触发指令的message变量冲突
  • 确认你已在Discord开发者平台开启机器人的Message Content Intent,并且机器人拥有对应频道的读消息、发消息权限

修正后代码

client.on('messageCreate', message => {
  // 忽略所有机器人发送的消息
  if (message.author.bot) return;

  if (message.content === prefix + "start") {
    message.channel.send("Testing.. Type YES or NO").then(() => {
      message.channel.awaitMessages({
        filter: m => m.author.id === message.author.id,
        max: 1,
        time: 30000,
        errors: ['time']
      })
      .then(collected => {
        const replyMsg = collected.first();
        const input = replyMsg.content.toUpperCase();
        if (input === 'YES' || input === 'Y') {
          message.channel.send(`Hello World!`);
        } else if (input === 'NO' || input === 'N') {
          message.channel.send(`Ping`);
        } else {
          message.channel.send(`Terminated: Invalid Response`);
        }
      })
      .catch(() => {
        message.channel.send('Timeout');
      });
    })
  }
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 12:06:04