【问题标题】:Discord.js Bot StatusDiscord.js 机器人状态
【发布时间】:2022-01-07 16:24:22
【问题描述】:

不,我不是在问如何设置我的机器人的状态。我在问如何让我的机器人的状态每 5-7 秒更改一次。我该怎么做:

client.user.setActivity(`dsc.gg/ultraa | ?help | ${client.guilds.cache.size} servers`, { type: 'WATCHING' });

每隔几秒更改一次,例如“外面很冷”、“420 个服务器”和“?help | dsc.gg/ultraa”。我如何让这些状态在彼此之间轮换?

【问题讨论】:

    标签: discord discord.js bots status


    【解决方案1】:

    注意:此代码适用于 Discord.js V13.3.1


    如您所描述的,对于轮换状态,您可以通过在ready 事件中放置一些代码来执行此操作,该事件会在一段时间后更改状态。这将需要 util 包,可以使用以下方式安装:

    • npm:npm install util
    • 纱:yarn install util

    安装包后,您将创建一个名为wait 的函数。这是一种简单的等待方式,不会阻塞脚本的其余部分。

    const wait = require('util').promisify(setTimeout);
    

    这个函数将服务于我们的主要目的,在切换状态之间产生延迟。然后,我们将使用setInterval 在状态之间不断循环。

    <Client>.on('ready', async () => {
      // ...
      setInterval(async () => {
        client.user.setPresence({ activities: [{ name: `Status1`, type: `PLAYING` }] });
        await wait(5000); // Wait 5 seconds
        client.user.setPresence({ activities: [{ name: `Status2`, type: `PLAYING` }] });
        await wait(5000); // Wait 5 seconds
      });
    });
    

    如您所见,有两行重复。即:&lt;Client&gt;.user.setPresence(...)await wait(5000)。等待功能将阻止状态过早更新自身。您可以通过将秒转换为毫秒(5 秒变为 5000)来编辑设置的时间量。另一部分设置机器人的状态。类型显示机器人正在做什么。其有效值为found in the docs。您可以简单地复制并粘贴这两行并根据需要添加更多状态。

    【讨论】:

      猜你喜欢
      • 2022-11-11
      • 2021-01-11
      • 2021-05-07
      • 2021-04-25
      • 2020-11-23
      • 1970-01-01
      • 1970-01-01
      • 2021-07-30
      • 2018-12-31
      相关资源
      最近更新 更多