我该如何使我的机器人每10秒更改一次状态?

时间:2020-09-27 19:29:55

标签: javascript discord discord.js bots

这是我的代码,有人说我应该使用Math.floor,但我不知道该将其确切放置在何处

bot.user.setActivity({ name: 'Arth agora em JavaScript~', type: 'PLAYING' })
});

4 个答案:

答案 0 :(得分:0)

您将需要一系列不同的活动,您可以插入任意多个活动。

setInterval每十秒钟(由10000毫秒指定)执行箭头功能内的代码。箭头函数中的代码将从数组中随机选择一个活动。

const activities = [
    { name: 'Arth agora em JavaScript~', type: 'PLAYING' },
    { name: 'Another activity', type: 'PLAYING' }
];

setInterval(() => bot.user.setActivity(activities[Math.floor(Math.random() * activities.length)]), 10000);

答案 1 :(得分:0)

您可以使用递归setTimeout(比setInterval更好),它将执行您想要的每一个时间,并且不会导致任何类型的内存泄漏。

function Foo(){
    // your code here

   setTimeout(Foo, 5000); // you can define your function and the amount of time here

}

Foo();

我不太确定您的请求,但是您希望机器人的状态每隔x秒更改一次,您可以在代码中应用您的概念,并使用 Math.random()生成随机变量具有这种功能的数字:

function getRandomInt(min, max) {
   return Math.floor(Math.random() * (max - min)) + min;
}

Math.floor()仅将数字四舍五入到最接近的整数。

因此,最后,您可以将这两个代码结合起来并获得:

function getRandomInt(min, max) {
   return Math.floor(Math.random() * (max - min)) + min;
}


function updateStatus(){
    bot.user.setActivity({ name: 'Random Status : ' + getRandomInt(1, 200), type: 'PLAYING' })
    });

   setTimeout(updateStatus, 5000); // you can define your function and the amount of time here

}

updateStatus();

但是,我会建议您建立一个更复杂的结构,例如客户端服务器,以在每个时间刷新数据包,但我什至不知道您的整个代码。

答案 2 :(得分:0)

您可以更改漫游器活动/状态

const activities_list = [
    "RANDOM", 
    "help",
    "Random Status"
]; 

setInterval(() => bot.user.setActivity(activities[Math.floor(Math.random() * activities_list.length)]), 10000);

答案 3 :(得分:-1)

使用setInterval()

setInterval(function () {
    bot.user.setActivity({ name: 'Arth agora em JavaScript~', type: 'PLAYING' });
}, 10000); // 10 000 miliseconds = 10 seconds