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

如何创建带随机回复的Discord Slash Command?命令无响应排查

解决Discord斜杠命令无响应问题

你的代码逻辑本身没问题,但调用无响应通常是注册、权限或错误捕获的问题,按以下步骤排查:

1. 确认命令已正确注册

  • 检查Bot启动时的命令加载逻辑,确保dé命令被包含在注册列表中。
  • 全局命令同步可能需要1小时,测试阶段优先用服务器专属命令,同步速度仅需几分钟。

2. 检查Bot权限

  • 确保Bot在目标服务器拥有发送消息和嵌入链接权限,否则无法发送带Embed的回复。
  • 确认调用命令的频道没有限制Bot发言的权限设置。

3. 添加错误捕获逻辑

你的异步执行函数没有错误捕获,可能悄悄报错却无输出。修改代码加入错误处理,方便定位问题:

execute: async (interaction) => {
  try {
    const liste = [
      "`1, tu as fait une réussite critique`",
      "`2, tu as fait une réussite moyenne`",
      "`3, tu as fait une réussite moyenne`",
      "`4, tu as fait une petite réussite`",
      "`5, tu as fait un petit échec`",
      "`6, tu as fait un echec critique`",
      "`7, quelque chose de drôle va arriver`",
      "`8, ça provoque l'effet d'un autre sort`",
    ];

    await interaction.reply({
      embeds: [new EmbedBuilder().setDescription(liste[Math.floor(Math.random() * liste.length)])],
    });
  } catch (error) {
    console.error("命令执行出错:", error);
    // 根据交互状态发送错误提示
    if (interaction.replied || interaction.deferred) {
      await interaction.followUp({ content: "命令执行失败,请联系管理员", ephemeral: true });
    } else {
      await interaction.reply({ content: "命令执行失败,请联系管理员", ephemeral: true });
    }
  }
},

4. 处理交互超时

Discord要求交互必须在3秒内回复,若后续添加异步操作,需先调用await interaction.deferReply(),再用interaction.editReply()更新内容,避免超时无响应。

5. 测试特殊字符命令名

命令名dé带重音符号,可能存在客户端识别问题,可临时换成de测试是否是字符编码导致的无响应。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 23:10:42