【问题标题】:How do I update the presence of my Discord bot every like 5 minutes?如何每隔 5 分钟更新一次 Discord 机器人的状态?
【发布时间】:2021-08-29 00:47:40
【问题描述】:

我正在使用 Discord.js V12 制作一个 Discord 机器人,我想让它显示服务器中有多少成员(作为状态/存在),但我无法让它更新有多少成员在服务器中。我该怎么做呢?这是我到目前为止的代码:

除非我重新启动机器人,否则它不会检测到其他人何时加入服务器。

  const guild = client.guilds.cache.get('848109201901617193');
  const activities = [
    `over ${guild.memberCount - 7} members.`,
    `over ${guild.memberCount - 7} members.`
  ]
  setInterval(() => {
    const randomIndex = Math.floor(Math.random() * (activities.length - 1));
    const newActivity = activities[randomIndex];

    client.user.setActivity(newActivity, { type: 'WATCHING' });
  }, 10000);

【问题讨论】:

    标签: discord.js


    【解决方案1】:

    您的公会详细信息已被缓存,因此 memberCount 甚至不和谐 API 都对其进行了更新。添加不和谐也会在成员加入公会时不立即更新此属性的缓慢更新。并且没有必要在那里进行随机活动。

    所以你需要获取新的公会详细信息代码将是:

      setInterval(async () => {
      const guild = await client.guilds.fetch('848109201901617193', true, true);
      const newActivity = `over ${guild.memberCount - 7} members.`;
        client.user.setActivity(newActivity , { type: 'WATCHING' });
      }, 10000);
    
    

    获取新公会here的文档

    【讨论】:

      【解决方案2】:

      每次要设置状态时都需要更新字符串。

      setInterval(async () => {
          const guild = await client.guilds.fetch('848109201901617193', true, true);
      
          const newActivity = `over ${guild.memberCount - 7} members.`;
          client.user.setActivity(newActivity , { type: 'WATCHING' });
      }, 5 * 60 * 1000);
      

      注意:如果您有公会成员意图client.guilds.fetch('848109201901617193')..cache.get(.. 也可以!

      或者,您可以更新 guildMemberAdd 事件的状态。

      【讨论】:

        【解决方案3】:
        client.on("ready", () => {
        console.log("ready");
        //...
        client.user.setActivity(); //... put activity
        });
        
        client.on("guildMemberAdd", member => {
        client.user.setActivity() //... same thing
        })
        //and do the same with guild member remove
        

        【讨论】:

        • 谢谢,但我不断收到错误消息:/home/runner/Plexbot/index.js:52 name: `over ${guild.memberCount - 8} members.`, ^ SyntaxError: Unexpected token ':'
        • 也许您忘记了 {}?
        猜你喜欢
        • 2018-12-13
        • 2021-07-29
        • 2020-06-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-13
        • 1970-01-01
        相关资源
        最近更新 更多