随机消息发送未按预期的方式工作discord.js

时间:2020-10-20 09:10:16

标签: javascript discord discord.js

我正试图让我的Discord机器人从json文件中随机选择消息并每5 * 1000秒发送一次,消息间隔更早就可以正常工作,但是它每次都发送相同的消息。 我在哪里出问题了?

这是app.js

$('#modalAddressees').on('hidden.bs.modal', function () {
    $('#modalNewAddress').modal('show');
 })

这是json文件

const Discord = require('discord.js');
const factDB = require("./replies.json");
const PREFIX = '!';
const client = new Discord.Client();
const fetch = require("node-fetch");


client.once('ready',() =>{
console.log('online!');
});


client.on('message', msg => {
            if (msg.content === '?finit') {
                const REP = require("./replies.json");
                const item = REP[Math.floor(Math.random() * REP.length)];
                setInterval(() =>{
                msg.channel.send(item.facts);
            }, 5 * 1000);
            }
        });


client.login('token')

感谢您阅读。

1 个答案:

答案 0 :(得分:1)

您的随机响应仅在执行命令时生成一次。 您需要在setInterval函数中移动以下行:

const item = REP[Math.floor(Math.random() * REP.length)];

setInterval(() => {
    const item = REP[Math.floor(Math.random() * REP.length)];
    msg.channel.send(item.facts);
}, 5 * 1000);

这将每5 * 1000毫秒随机选择一个响应。