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

Discord.js自动删除含特定词汇消息的Bot无响应问题求助

Discord.js自动删除含特定词汇消息的Bot无响应问题求助

你好呀!刚入门编程就动手写Bot超棒的~你的代码思路是对的,但有几个关键小问题导致它没生效,我帮你梳理下:

问题1:事件名称错误

Discord.js里没有Events.AutoDelete这个内置事件,你要监听用户发送消息的动作,应该用Events.MessageCreate事件——这个事件会在任何用户发送消息时触发。

问题2:回调参数名称错误

你的执行函数里写的是async execute(_delete),但这个参数其实应该是触发事件时传入的消息对象,你得把它命名为message(或者其他和后续代码变量对应的名字)。原来的代码里message变量根本没定义,所以后面的判断逻辑根本跑不起来!

问题3:权限缺失(潜在问题)

别忘了给你的Bot账号分配**「管理消息」**的权限,否则就算代码对了,Bot也没有权限删除消息哦。


修正后的代码

const { Events } = require('discord.js');

module.exports = {
  // 改用正确的消息创建事件
  name: Events.MessageCreate,
  // 参数改为message,和后续代码变量对应
  async execute(message) {
    // 替换成你要监控的用户ID和特定词汇
    if (message.author.id === '你的目标用户ID' && message.content.includes('要检测的词汇')) {
      // 加try-catch捕获删除失败的情况,方便排查问题
      try {
        await message.delete();
        console.log(`已删除用户${message.author.tag}的违规消息`);
      } catch (error) {
        console.error('删除消息失败:', error);
      }
    }
  },
};

额外小提示

  • 记得把代码里的你的目标用户ID和要检测的词汇替换成实际内容
  • 可以保留代码里的日志输出,方便你调试时查看事件有没有触发、判断逻辑有没有命中
  • 如果是要监控所有用户的消息,去掉message.author.id === '你的目标用户ID'这个条件就好啦

备注:内容来源于stack exchange,提问作者Levical

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 11:02:57