未显示反应

问题描述 投票:0回答:1

我想等待对消息的反应。成员在输入东西,然后机器人回答,用户应对BOT的消息作出反应。我尝试了这段代码,但是在console.log(“ OK”)上什么也没发生。 (对不起,匈牙利的代码)

  if (message.channel.id === "714071018733568031" && !message.author.bot && !message.content.startsWith("!jovahagy")) { // ID
    message.author.send("Köszönjük a válaszadást! Hamarosan megerősítünk! Kérlek, várj.")
    const Discord = require('discord.js');
    const embedMsg = new Discord.MessageEmbed()
    embedMsg.setColor('ee00ff')
    embedMsg.setTitle('Csatlakozási kérelem')
    embedMsg.setAuthor('KraftBOT', 'https://s1.bozaiakos.hu/tkomprofile.jpg', 'https://magentakraft.hu')
    embedMsg.setDescription('Valaki szeretne csatlakozni a szerverre, ezért válaszolt a feltett kérdésre!')
    embedMsg.addField('Jelentkező', `${message.author}`)
    embedMsg.addField('Üzenet', `${message.content}`)
    embedMsg.addField('\u200B', '\u200B')
    embedMsg.addField('Jóváhagyás', `!jovahagy ${message.author}`)
    embedMsg.addField('Elutasítás', `!elutasit ${message.author}`)
    embedMsg.setFooter('Bozai Ákos - Profi szerverek, robotok, weboldalak.', 'https://bozaiakos.hu/images/logokor.png');
    message.delete();
    client.channels.cache.get("714071028925464586").send({embed: embedMsg}) // ID
    .then(nMessage => {nMessage.react('✅').then(r => {
      nMessage.react('❎');
});

// First argument is a filter function
nMessage.awaitReactions((reaction, user) => user.id == message.author.id && (reaction.emoji.name == '✅' || reaction.emoji.name == '❎'),
      { max: 1 }).then(collected => {
              if (collected.first().emoji.name == '✅') {
                const accepted = message.author;
                if (!accepted.roles.cache.some(r => r.name === "Hitelesítés folyamatban")) {
                  nMessage.delete();
              } else {
                console.log("OK");
              try {
                var role = message.guild.roles.cache.find(role => role.name === "Tag");
                accepted.roles.add(role);
                var role = message.guild.roles.cache.find(role => role.name === "Hitelesítés folyamatban");
                accepted.roles.remove(role);
              } catch (error) {return;}
              accepted.send(`${message.author} jóváhagyott téged a MagentaKraft szerveren. Mostmár chatelhetsz.`)
              const Discord = require('discord.js');
              const embedMsg = new Discord.MessageEmbed()
              embedMsg.setColor('00ff11')
              embedMsg.setTitle('Csatlakozás elfogadva')
              embedMsg.setAuthor('KraftBOT', 'https://s1.bozaiakos.hu/tkomprofile.jpg', 'https://magentakraft.hu')
              embedMsg.setDescription('Egy tag csatlakozása el lett fogadva.')
              embedMsg.addField('Jóváhagyott tag', `${accepted}`,true)
              embedMsg.addField('Jóváhagyta', `${message.author}`,true)
              embedMsg.addField('Kérelmező válasza', `${message.content}`)
              embedMsg.setFooter('Bozai Ákos - Profi szerverek, robotok, weboldalak.', 'https://bozaiakos.hu/images/logokor.png');
              client.channels.cache.get("714071038962696262").send({embed: embedMsg});
              nMessage.delete();
              }

              }
              else if (collected.first().emoji.name == '❎') {
                const accepted = message.author;
                if (!accepted.roles.cache.some(r => r.name === "Hitelesítés folyamatban")) {
                  nMessage.delete();
              } else {

              accepted.send(`${message.author} elutasított téged a MagentaKraft szerveren. A részletekért kérlek, keresd fel elérhetőségeink egyikét! Az alábbi okok esetén gyakori a visszautasítás: \n- Hibás név (pl. szimbólummal kezdődik)
              \n- Komolytalan jelentkezőszöveg (helyesírási hibák, témától való eltérés, egyebek...)`)
              const Discord = require('discord.js');
              const embedMsg = new Discord.MessageEmbed()
              embedMsg.setColor('ff0000')
              embedMsg.setTitle('Csatlakozás elutasítva')
              embedMsg.setAuthor('KraftBOT', 'https://s1.bozaiakos.hu/tkomprofile.jpg', 'https://magentakraft.hu')
              embedMsg.setDescription('Egy tag csatlakozása el lett utasítva.')
              embedMsg.addField('Elutasított tag', `${accepted}`,true)
              embedMsg.addField('Elutasította', `${message.author}`,true)
              embedMsg.addField('Kérelmező válasza', `${message.content}`)
              embedMsg.setFooter('Bozai Ákos - Profi szerverek, robotok, weboldalak.', 'https://bozaiakos.hu/images/logokor.png');
              client.channels.cache.get("714071039004508220").send({embed: embedMsg});
              try {
                accepted.kick();
              } catch (error) {return;}
              nMessage.delete();
              }
      }
    })

我该怎么办?我已经检查了所有内容,例如我的角色等,但是如果我对勾标记做出反应,则什么都没有发生。

javascript discord.js
1个回答
0
投票

您的设置方式,如果您具有名为Hitelesítés folyamatban的角色,则bot只会在选中标记后做出反应,可以尝试进一步调试,但是当代码非常重复且有错误时(很难重用变量名很多,也许这就是为什么)

这里是更清晰,更干净的代码,某些代码仍然很糟糕,因为我不想承担任何责任,但是没有明确的错误,(由于使用了异步,因此需要在异步函数中:]

//not sure why you had it inside of the if statement
const Discord = require('discord.js');

if (message.channel.id === "714071018733568031" && !message.author.bot && !message.content.startsWith("!jovahagy")) { // ID
    const author = message.author;
    author.send("Köszönjük a válaszadást! Hamarosan megerősítünk! Kérlek, várj.");
    const embedMsg = new Discord.MessageEmbed()
        .setColor('ee00ff')
        .setTitle('Csatlakozási kérelem')
        .setAuthor('KraftBOT', 'https://s1.bozaiakos.hu/tkomprofile.jpg', 'https://magentakraft.hu')
        .setDescription('Valaki szeretne csatlakozni a szerverre, ezért válaszolt a feltett kérdésre!')
        .addField('Jelentkező', `${author}`)
        .addField('Üzenet', `${message.content}`)
        .addField('\u200B', '\u200B')
        .addField('Jóváhagyás', `!jovahagy ${author}`)
        .addField('Elutasítás', `!elutasit ${author}`)
        .setFooter('Bozai Ákos - Profi szerverek, robotok, weboldalak.', 'https://bozaiakos.hu/images/logokor.png');

    message.delete();

    const cachedChannel = client.channels.cache.get("714071028925464586");
    const nMessage = await cachedChannel.send(embedMsg); // ID
    await nMessage.react('✅');
    await nMessage.react('❎');

    const filter = (reaction, user) => user.id == author.id && (reaction.emoji.name == '✅' || reaction.emoji.name == '❎');

    // First argument is a filter function
    nMessage.awaitReactions(filter, { max: 1 })
        .then(collected => {
            const emojiName = collected.first().emoji.name;
            if (emojiName == '✅') {
                if (!author.roles.cache.find(r => r.name === "Hitelesítés folyamatban")) return nMessage.delete();

                console.log("OK");
                try {
                    const roleToAdd = message.guild.roles.cache.find(role => role.name === "Tag");
                    const roleToRemove = message.guild.roles.cache.find(role => role.name === "Hitelesítés folyamatban");

                    //check if the roles exist?
                    author.roles.add(roleToAdd);
                    author.roles.remove(roleToRemove);
                } catch (error) {
                    //maybe console.error instead
                    return;
                }

                author.send(`${author} jóváhagyott téged a MagentaKraft szerveren. Mostmár chatelhetsz.`);

                const nextEmbed = new Discord.MessageEmbed()
                    .setColor('00ff11')
                    .setTitle('Csatlakozás elfogadva')
                    .setAuthor('KraftBOT', 'https://s1.bozaiakos.hu/tkomprofile.jpg', 'https://magentakraft.hu')
                    .setDescription('Egy tag csatlakozása el lett fogadva.')
                    .addField('Jóváhagyott tag', `${author}`, true)
                    .addField('Jóváhagyta', `${author}`, true)
                    .addField('Kérelmező válasza', `${message.content}`)
                    .setFooter('Bozai Ákos - Profi szerverek, robotok, weboldalak.', 'https://bozaiakos.hu/images/logokor.png');

                cachedChannel.send(nextEmbed);
                nMessage.delete();
                return
            }

            if (!author.roles.cache.find(r => r.name === "Hitelesítés folyamatban")) return nMessage.delete();
            author.send(`${author} elutasított téged a MagentaKraft szerveren. A részletekért kérlek, keresd fel elérhetőségeink egyikét! Az alábbi okok esetén gyakori a visszautasítás: \n- Hibás név (pl. szimbólummal kezdődik)
              \n- Komolytalan jelentkezőszöveg (helyesírási hibák, témától való eltérés, egyebek...)`)

            const nextEmbed = new Discord.MessageEmbed()
                .setColor('ff0000')
                .setTitle('Csatlakozás elutasítva')
                .setAuthor('KraftBOT', 'https://s1.bozaiakos.hu/tkomprofile.jpg', 'https://magentakraft.hu')
                .setDescription('Egy tag csatlakozása el lett utasítva.')
                .addField('Elutasított tag', `${accepted}`, true)
                .addField('Elutasította', `${message.author}`, true)
                .addField('Kérelmező válasza', `${message.content}`)
                .setFooter('Bozai Ákos - Profi szerverek, robotok, weboldalak.', 'https://bozaiakos.hu/images/logokor.png');

            cachedChannel.send(nextEmbed);

            try {
                accepted.kick();
            } catch (error) { return; }

            nMessage.delete();
        })
}
© www.soinside.com 2019 - 2024. All rights reserved.