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

Discord机器人分页帮助命令无响应问题求助

问题解决:Discord机器人分页帮助命令无响应

代码中的核心错误

  • 过滤函数逻辑错误:原filter的条件永远无法满足,因为一个表情不可能同时匹配三个不同emoji,且逻辑运算符使用混乱,未正确限制仅命令发起者能操作。
  • 语法错误:elseif需写成else if(分开书写),且原代码中elseif后的分号会导致后续代码块无法执行。
  • 页面Embed未定义:原代码中p1、p2、p3的Embed内容缺失,补充具体内容才能正常显示分页信息。

修正后的完整代码

if (comando == `ajuda` || comando == `help`) {
    const embed = new Discord.MessageEmbed()
      .setTitle("Comandos")
      .setColor("#5C009C")
      .setDescription("Páginas dos comandos")
      .addField("Página 1 - Discord", "``avatar, emoji...``")
      .addField("Página 2 - Diversão", "``coinflip, roll...``")
      .addField("Página 3 - Miscelânea", "``ajuda, choose...``")
      .setFooter({ text: `${message.author.username}`, iconURL: `${message.author.avatarURL()}` });

    message.reply({ embeds: [embed] }).then((m) => {
        m.react('1️⃣');
        m.react('2️⃣');
        m.react('3️⃣');

        // 修正过滤逻辑:仅命令发起者(非机器人)能触发指定表情
        const filter = (reaction, user) => {
            return user.id === message.author.id && !user.bot && ['1️⃣', '2️⃣', '3️⃣'].includes(reaction.emoji.name);
        };

        m.awaitReactions(filter, { max: 1, time: 15000, errors: ['time'] })
        .then(collected => {
            const reactionName = collected.first().emoji.name;

            if (reactionName === '1️⃣') {
                const p1 = new Discord.MessageEmbed()
                  .setTitle("Página 1 - Discord")
                  .setColor("#5C009C")
                  .addField("avatar", "Mostra o avatar de um usuário")
                  .addField("emoji", "Gerencia emojis do servidor")
                  .setFooter({ text: `${message.author.username}`, iconURL: `${message.author.avatarURL()}` });
                m.edit({ embeds: [p1] });
            } 
            else if (reactionName === '2️⃣') {
                const p2 = new Discord.MessageEmbed()
                  .setTitle("Página 2 - Diversão")
                  .setColor("#5C009C")
                  .addField("coinflip", "Joga uma moeda aleatória")
                  .addField("roll", "Rola um dado com valores definidos")
                  .setFooter({ text: `${message.author.username}`, iconURL: `${message.author.avatarURL()}` });
                m.edit({ embeds: [p2] });
            }
            else if (reactionName === '3️⃣') {
                const p3 = new Discord.MessageEmbed()
                  .setTitle("Página 3 - Miscelânea")
                  .setColor("#5C009C")
                  .addField("ajuda", "Exibe este menu de ajuda")
                  .addField("choose", "Escolhe uma opção aleatória entre as informadas")
                  .setFooter({ text: `${message.author.username}`, iconURL: `${message.author.avatarURL()}` });
                m.edit({ embeds: [p3] });
            }
        })
        .catch(() => {
            // 超时后无操作,保持原逻辑
            return;
        });
    });
}

关键修正点说明

  1. 过滤函数:调整为校验用户身份(仅命令发起者、非机器人)和指定表情,确保只有合法操作能触发页面切换。
  2. 语法修正:修正elseif的拼写错误,移除多余分号,保证条件分支正常执行。
  3. 补充页面内容:为每个分页Embed添加具体命令说明,确保切换后能显示有效信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 15:20:22