嵌入响应后,它只会从随机选择Discord.js

时间:2020-07-17 10:14:16

标签: node.js discord discord.js

我正在编写一个非常简单的discord.js机器人,并且我有一个命令用于输入某人的/mahdi时,它会从我创建的列表中返回随机响应。当它返回一条正常消息时,它每次都会随机选择一个,但是后来我做到了,因此它发送了一个嵌入代码,现在它一直选择一个并一直发送它,直到我使机器人脱机然后再选择另一个发送到网络时一直发送。

有人知道我在做什么吗?

从列表中随机选择短语的代码:

const mahdis = ['phrase1', 'phrase2', 'phrase3', 'phrase4', 'phrase5', 'phrase6', 'phrase7', 'phrase8'];
const mahdi = Math.floor(Math.random() * mahdis.length);

以嵌入方式发送的代码:

const mahdiEmbed = {
    color: 'c0ffee',
    author: {
        name: 'supreme sauce 3.0',
        icon_url: 'https://cdn.discordapp.com/avatars/733259381898215495/739b2c90fbfab048abb236b0e89770be.webp?size=256',
    },
    fields: [
        {
            name: mahdis[mahdi],
            value: '- mahdi',
        },
    ],
    footer: {
        text: 'supreme sauce 3.0 --- developed by ed#6969',
        icon_url: 'https://media.discordapp.net/attachments/693559044329177151/733614790567788574/kirbmelon.gif',
    },
};

client.on('message', message => {
    if(message.content === '/mahdi') {
        message.channel.send({ embed: mahdiEmbed });
    }
});

谢谢:)

1 个答案:

答案 0 :(得分:0)

由于您在消息事件之外定义了mahdi(每条消息应该是随机的),因此它将仅被随机化一次,这就是您的机器人启动的时间。

如果将其放在消息事件中,它将在每条新消息中随机分配。这就是您想要的。

const mahdis = ['phrase1', 'phrase2', 'phrase3', 'phrase4', 'phrase5', 'phrase6', 'phrase7', 'phrase8'];

client.on("message", message => {
    const mahdi = Math.floor(Math.random() * mahdis.length);
    if (message.content.toLowerCase() == "mahdi") {
        const mahdiEmbed = {
            color: 'c0ffee',
            author: {
                name: 'supreme sauce 3.0',
                icon_url: 'https://cdn.discordapp.com/avatars/733259381898215495/739b2c90fbfab048abb236b0e89770be.webp?size=256',
            },
            fields: [
                {
                    name: mahdis[mahdi],
                    value: '- mahdi',
                },
            ],
            footer: {
                text: 'supreme sauce 3.0 --- developed by ed#6969',
                icon_url: 'https://media.discordapp.net/attachments/693559044329177151/733614790567788574/kirbmelon.gif',
            },
        };
        message.channel.send({embed: mahdiEmbed});
    }
})