如何为不和谐机器人设置有序轮换状态?

时间:2021-02-03 13:14:59

标签: javascript node.js arrays discord discord.js

我想让我的 Discord 机器人按顺序更改状态。例如,我希望机器人的状态为“T”,然后是“Te”,然后是“Tes”,然后是“Test”,然后重复。

我已经按照我想要的方式制作了一个数组。这是我当前的代码:

const index = activities_list.sort()
var activitySet = activities_list[index]
client.user.setActivity(activitySet)

我使用的是 Node v12 和 discord.js v12。

1 个答案:

答案 0 :(得分:1)

您可以跟踪当前索引并每 x 秒更新一次。为此,您可以使用 setInterval。每 x 秒更新一次状态并检查这是否是最后一个索引。如果是,则将其重置为 0,如果不是,则增加索引:

const activities = ['t', 'te', 'tes', 'test'];

client.on('ready', () => {
  const updateDelay = 5; // in seconds
  let currentIndex = 0;

  setInterval(() => {
    const activity = activities[currentIndex];
    client.user.setActivity(activity);

    // update currentIndex
    // if it's the last one, get back to 0
    currentIndex = currentIndex >= activities.length - 1 
      ? 0
      : currentIndex + 1;
  }, updateDelay * 1000);
});