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

Discord机器人无法响应基础命令,请求技术排查帮助

Discord机器人基础命令无响应问题修复

问题代码中的错误点:

  • 事件名称错误:discord.js v14版本已弃用message事件,改用messageCreate,且你的代码里'message '多了一个空格,导致事件无法触发
  • 变量未定义:你定义了prefix = "t!",但代码里却使用settings.prefix,settings对象从未声明
  • 逻辑反转:if (message.content.startsWith(settings.prefix)) return; 这行代码会让所有带前缀的消息直接返回,后续的ping命令永远不会执行,应该改为判断不以前缀开头时返回
  • 机器人用户判断错误:message.author.client不是判断用户是否为机器人的正确属性,应该用message.author.bot

修复后的完整代码:

const { Client, GatewayIntentBits } = require("discord.js");

const client = new Client({
    intents: [ 
        GatewayIntentBits.Guilds,
        GatewayIntentBits.GuildMessages,
        GatewayIntentBits.MessageContent,
        GatewayIntentBits.GuildMembers,
        GatewayIntentBits.DirectMessageTyping,
    ],
});

const prefix = "t!";

client.on('ready', () => {
    console.log(`${client.user.tag} 已上线 :D`);
});

client.on('messageCreate', message => {
    // 忽略机器人发送的消息
    if (message.author.bot) return;
    // 如果消息不以设定的前缀开头,直接返回
    if (!message.content.startsWith(prefix)) return;

    // 处理ping命令
    if (message.content.startsWith(prefix + "ping")) {
        message.reply("Pong!");
    }
});

// 替换成你的机器人token
client.login("你的机器人Token");

额外注意事项:

  • 确保你在Discord开发者门户中给机器人开启了Message Content Intent权限,否则无法读取消息内容
  • 确认机器人token正确,且机器人已邀请到你的服务器并拥有发送消息的权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 02:54:59