【问题标题】:Random message send not working as expected discord.js随机消息发送未按预期工作 discord.js
【发布时间】:2021-02-03 02:19:16
【问题描述】:

我正在尝试让我的不和谐机器人从 json 文件中随机选择消息,并每 5*1000 秒发送一次,消息间隔早些时候工作正常。但它每次都发送相同的消息。 我哪里出错了?

这里是 app.js

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')

这是json文件

[
    {
        "facts": "1"
       
    },

    {
        "facts": "2"
    
    },
    {
        "facts": "3"
        
    },
    {
        "facts": "4"
    
    },
    {
        "facts": "5"
        
    }
]

感谢您的阅读。

【问题讨论】:

  • 提供多一点的内容来测试它。比如带有时间间隔的不和谐消息的屏幕截图等。你的时间可能有太大的差距。
  • 谢谢 thomas,但感谢 Jayke,它现在可以工作了

标签: javascript discord discord.js


【解决方案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 ms 随机选择一个响应。

【讨论】:

    猜你喜欢
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 2021-02-05
    • 1970-01-01
    • 1970-01-01
    • 2019-05-25
    • 2021-08-20
    相关资源
    最近更新 更多