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

Discord Bot不响应问题咨询 复制的ping pong命令无报错却无法生效

Discord.js ping斜杠命令无响应修复方案

你当前代码无法触发ping命令响应是以下几个核心原因导致的:

  1. 仅配置了斜杠命令交互监听逻辑,未提前将ping命令注册到Discord后台,Discord无法识别/ping指令,自然不会触发交互事件,也不会输出错误日志。
  2. 代码适配的是discord.js v13版本,若你本地安装的是v14及以上版本,Intent的写法已经废弃,会直接导致逻辑异常。

修复步骤

  • 第一步:确认本地discord.js版本
    执行命令查看版本:
    npm list discord.js
    
    若为v14及以上版本,将Bot初始化代码替换为:
    const { Client, GatewayIntentBits } = require('discord.js');
    const client = new Client({ intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages] });
    
  • 第二步:注册ping斜杠命令
    新建单独的deploy-commands.js文件,填入以下代码,替换对应参数后仅执行一次即可完成单测试服务器的命令注册:
    const { REST, Routes } = require('discord.js');
    // 替换下方三个参数为你自己的配置
    const clientId = '你的Bot客户端ID';
    const guildId = '测试服务器ID';
    const token = '你的Bot登录Token';
    
    const commands = [
      {
        name: 'ping',
        description: '测试响应,返回Pong',
      },
    ];
    
    const rest = new REST({ version: '10' }).setToken(token);
    
    (async () => {
      try {
        console.log('开始注册斜杠命令');
        await rest.put(
          Routes.applicationGuildCommands(clientId, guildId),
          { body: commands },
        );
        console.log('斜杠命令注册完成');
      } catch (error) {
        console.error('命令注册失败:', error);
      }
    })();
    
    执行命令完成注册:
    node deploy-commands.js
    
  • 第三步:确认Bot邀请权限
    邀请Bot进服务器时,必须勾选applications.commands权限,否则注册后的命令不会在服务器内显示。
  • 可选调试:如果完成上述步骤依然无响应,可以在交互监听逻辑中加日志确认事件触发情况:
    client.on('interactionCreate', interaction => {
        // 新增日志,触发交互时会在控制台输出命令名
        console.log('收到交互指令:', interaction.commandName);
        if (!interaction.isCommand()) return;
        if (interaction.commandName === 'ping') {
            interaction.reply('Pong.');
        }
    });
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 13:45:04