【问题标题】:Reactions in Discord.jsDiscord.js 中的反应
【发布时间】:2020-07-21 03:56:15
【问题描述】:

我刚刚将我的 djs 机器人从 v11 更新到 v12,所有命令都可以正常工作,但有一个不能。我有一个投票命令,如果我输入 !vote 3,它会响应 1,2,3。它什么也没给我。它删除了我的消息,但是它没有反应,也没有发送嵌入。在 v11 中它运行良好。

module.exports = {
    name: 'vote',
    description: 'Szavazás létrehozása',
    guildOnly: true,
    dmOnly: false,
    adminOnly: false,
    execute(message, args) {
        const channel = message.channel;
        if (!args[0]) {
            message.channel.send("Adj meg egy paramétert!");
        } else {

        const parameter = parseInt(args[0], 10);
        if (parameter > 10 || parameter < 0) {
            message.channel.send("Adj meg egy 0 és 10 közötti számot!");
            return;
        }
        message.delete({ timeout: 1 })
        .then (() => channel.fetchMessages({ limit: 1 }).then(messages => {
            let lastMessage = messages.first();
            if (lastMessage.member != message.member) {
                message.channel.send("Nem tőled származik az előző üzenet.");
            }
            
          
            if (!lastMessage.author.bot) {
                if (args[0] === "0") {
                    lastMessage.react('✅')
                    .then (() => lastMessage.react('❎'));
                }
                if (args[0] === "1") {
                    lastMessage.react('1️⃣')
                }
                if (args[0] === "2") {
                    lastMessage.react('1️⃣')
                    .then (() => lastMessage.react('2️⃣'))
                }
                if (args[0] === "3") {
                    lastMessage.react('1️⃣')
                    .then (() => lastMessage.react('2️⃣'))
                    .then (() => lastMessage.react('3️⃣'))
                }
                if (args[0] === "4") {
                    lastMessage.react('1️⃣')
                    .then (() => lastMessage.react('2️⃣'))
                    .then (() => lastMessage.react('3️⃣'))
                    .then (() => lastMessage.react('4️⃣'))
                }
                if (args[0] === "5") {
                    lastMessage.react('1️⃣')
                    .then (() => lastMessage.react('2️⃣'))
                    .then (() => lastMessage.react('3️⃣'))
                    .then (() => lastMessage.react('4️⃣'))
                    .then (() => lastMessage.react('5️⃣'))
                }
                if (args[0] === "6") {
                    lastMessage.react('1️⃣')
                    .then (() => lastMessage.react('2️⃣'))
                    .then (() => lastMessage.react('3️⃣'))
                    .then (() => lastMessage.react('4️⃣'))
                    .then (() => lastMessage.react('5️⃣'))
                    .then (() => lastMessage.react('6️⃣'))
                }
                if (args[0] === "7") {
                    lastMessage.react('1️⃣')
                    .then (() => lastMessage.react('2️⃣'))
                    .then (() => lastMessage.react('3️⃣'))
                    .then (() => lastMessage.react('4️⃣'))
                    .then (() => lastMessage.react('5️⃣'))
                    .then (() => lastMessage.react('6️⃣'))
                    .then (() => lastMessage.react('7️⃣'))
                }
                if (args[0] === "8") {
                    lastMessage.react('1️⃣')
                    .then (() => lastMessage.react('2️⃣'))
                    .then (() => lastMessage.react('3️⃣'))
                    .then (() => lastMessage.react('4️⃣'))
                    .then (() => lastMessage.react('5️⃣'))
                    .then (() => lastMessage.react('6️⃣'))
                    .then (() => lastMessage.react('7️⃣'))
                    .then (() => lastMessage.react('8️⃣'))
                }
                if (args[0] === "9") {
                    lastMessage.react('1️⃣')
                    .then (() => lastMessage.react('2️⃣'))
                    .then (() => lastMessage.react('3️⃣'))
                    .then (() => lastMessage.react('4️⃣'))
                    .then (() => lastMessage.react('5️⃣'))
                    .then (() => lastMessage.react('6️⃣'))
                    .then (() => lastMessage.react('7️⃣'))
                    .then (() => lastMessage.react('8️⃣'))
                    .then (() => lastMessage.react('9️⃣'))
                }
                if (args[0] === "10") {
                    lastMessage.react('1️⃣')
                    .then (() => lastMessage.react('2️⃣'))
                    .then (() => lastMessage.react('3️⃣'))
                    .then (() => lastMessage.react('4️⃣'))
                    .then (() => lastMessage.react('5️⃣'))
                    .then (() => lastMessage.react('6️⃣'))
                    .then (() => lastMessage.react('7️⃣'))
                    .then (() => lastMessage.react('8️⃣'))
                    .then (() => lastMessage.react('9️⃣'))
                    .then (() => lastMessage.react('????'))
                }
                
            }
          }))
          .then(() => {
          const Discord = require('discord.js');
          const confirm = new Discord.MessageEmbed()
          .setColor("GREEN")
          .setDescription("Szavazás létrehozva. Reagálj a megfelelő emojival a szavazáshoz!");
          message.channel.send({embed: confirm});
    }) ; }
}
}

你能帮帮我吗?

【问题讨论】:

    标签: javascript node.js discord.js


    【解决方案1】:

    首先,请不要使用可以替换为switch 的if 链。如果您仍然要使用它,至少将其更改为 if/elseif

    问题出在:message.channel.send({embed: confirm});

    改成message.channel.send(confirm);

    【讨论】:

    • 我只是将所有 if-s 更改为开关,我也更改了 msg.channel.send,机器人发送了消息,机器人没有任何反应。这很有趣,因为嵌入发送是反应之后。我只是将每个步骤都记录到控制台中,但在.then(() =&gt; channel.fetchMessages... 之后没有记录,这是什么问题?你能帮助我吗?谢谢:)(回答@Diamond)
    猜你喜欢
    • 1970-01-01
    • 2021-09-11
    • 1970-01-01
    • 2020-11-08
    • 2021-02-07
    • 2021-01-28
    • 2021-12-30
    • 2021-06-21
    • 1970-01-01
    相关资源
    最近更新 更多