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

Discord.js机器人离线命令故障求助:执行后显示‘应用未响应’

问题排查与修复

你的离线命令失效并出现“应用未响应”提示,核心问题有3个:

  • 错误使用message变量:当前是InteractionCreate事件,不存在message对象,应该用interaction.user验证所有者ID,用交互相关方法发送消息。
  • 未正确响应Discord交互:Slash命令要求必须在3秒内调用interaction.reply()或interaction.deferReply(),否则会触发“应用未响应”提示。
  • 退出时机不当:直接调用process.exit()可能导致消息还没发送完成就终止进程,需确保交互响应完成后再销毁客户端并退出。

修复后的代码:

client.on('InteractionCreate', async (interaction) => {
    // 验证命令名和所有者ID
    if (interaction.commandName === 'bot-going-offline' && interaction.user.id === owner_ID) {
        const embed = new EmbedBuilder()
            .setTitle("Gababes bot 即将离线")
            .setDescription("Gababes bot 现已离线,所有命令将无法使用")
            .setColor("DarkRed");

        // 先响应交互,避免“未响应”提示
        await interaction.reply({ embeds: [embed] });
        
        // 等待消息发送完成后,销毁客户端再退出进程
        setTimeout(() => {
            client.destroy();
            process.exit();
        }, 1000);
    }
});

额外说明:

  • 使用async/await确保交互响应完成,也可以用.then()链式调用,但async/await更易读。
  • 添加1秒延迟是为了确保Discord完全接收并显示消息,避免客户端提前销毁导致消息发送失败。
  • 确保owner_ID变量已正确定义为你的Discord用户ID(字符串格式)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 18:19:53