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

如何让Discord机器人响应指令,sendMessage不存在报错如何解决

问题原因

  • discord.js v13 及以上版本移除了旧的 sendMessage 方法,你需要调用 send 方法实现频道发消息功能,这是你报错提示属性不存在的原因。
  • 你监听的 message 事件为 v12 及更早版本的旧事件,v13 开始该事件已更名为 messageCreate,事件名称不匹配导致你的指令逻辑完全无法触发,所以机器人收不到指令、也不会响应。

修复后的完整代码

const { Client, Intents } = require('discord.js');

const bot = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES] });

const token ='MY TOKEN';

const PREFIX ='!';

var version = '1.0.1';

bot.on('ready', () =>{
    console.log('This bot is online!');
})

// 替换旧的message事件为新版messageCreate事件
bot.on("messageCreate", message=>{
    // 新增过滤逻辑:忽略机器人发送的消息、忽略非指定前缀开头的消息,避免逻辑误触发
    if(message.author.bot || !message.content.startsWith(PREFIX)) return;
    
    let args = message.content.substring(PREFIX.length).split(" ");

    switch(args[0]){
        case 'ping':
            // 替换旧的sendMessage为新版send方法
            message.channel.send('pong!')
            break;
        case 'website':
            message.channel.send('youtube.com')
            break;
        case 'info':
            if (args[1] === 'version'){
            message.channel.send('Version ' + version);
            }else{
                message.channel.send('Invalid Args')
            }
        break;
    }
})   
    
bot.login(token);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 13:48:03