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

Discord Slash命令无法向游戏发消息且无报错求助

问题排查与解决方案

你的Discord机器人无法将斜杠命令文本发送至Minecraft服务器且无报错,可从以下方向逐一排查:

1. 确认Minecraft Bot是否成功连接服务器

当前代码未监听Minecraft bot的连接状态,大概率bot并未成功登录服务器,导致bot.chat()调用静默失败。添加以下代码监听连接事件,定位连接问题:

// 在创建bot后添加
bot.on('spawn', () => {
  console.log('✅Minecraft bot已进入服务器');
});

bot.on('error', (err) => {
  console.error('❌Minecraft bot连接出错:', err);
});

bot.on('end', () => {
  console.log('❌Minecraft bot断开连接');
});

同时检查OPTIONS配置:

  • username字段不能为空,需填写你的微软账号邮箱;
  • 若微软认证失败,可临时改用auth: 'offline'测试离线模式(仅适用于允许离线登录的服务器)。

2. 确保Discord斜杠命令正确生效

全局斜杠命令同步可能需要1小时,建议先改用服务器级命令快速验证,替换client.application.commands.create(ping)为:

// 替换为你的Discord服务器ID
const GUILD_ID = '你的服务器ID';
client.application.commands.create(ping, GUILD_ID);

服务器级命令通常几分钟内即可生效,能快速确认命令是否被正确捕获。

3. 避免在Bot未连接时调用chat

触发斜杠命令时,Minecraft bot可能还未完成连接,此时调用bot.chat()不会产生任何效果。在命令处理逻辑中添加连接状态判断:

client.on('interactionCreate', (interaction) => {
  if(!interaction.isChatInputCommand()) return;
  if(interaction.command.name==='ping') {
    const message = interaction.options.getString('message')
    // 检查bot是否处于连接状态
    if (!bot._client?.connected) {
      return interaction.reply('❌Minecraft bot未连接,无法发送消息');
    }
    bot.chat(message)
    interaction.reply('✅消息已发送')
  }
})

4. 排查服务器限制

0b0t.org作为无政府服务器,可能存在聊天冷却、机器人检测或验证机制:

  • 添加监听查看服务器聊天,确认bot是否能接收消息、是否有验证提示:
bot.on('chat', (username, message) => {
  console.log(`[${username}] ${message}`);
});

若服务器要求验证(如输入验证码),需先让bot完成验证流程才能发送消息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 20:13:15