【问题标题】:"user.setStatus" doesn't update bot's status Discord.JS“user.setStatus”不更新机器人的状态 Discord.JS
【发布时间】:2021-05-07 21:08:12
【问题描述】:

我希望当检测到游戏服务器离线时,状态变为橙色(idle),当服务器在线时,状态变为绿色(online)。

为此,我使用了client.user.setStatus('online')client.user.setStatus('idle'),但状态没有改变,只有消息被更新。

这是我的代码:

client.on('ready', () => {
  console.log('OK')

  setInterval(() => {
    Gamedig.query({
      type: 'garrysmod',
      host: 'xx.xx.xx.xx',
      port: '27015'
    })
      .then((updatedState) => {
        state = updatedState;

        const nb_joueursmax = state.maxplayers;
        const nb_joueurs = state.players.length;
        
        client.user.setStatus('online');
        client.user.setActivity(`${nb_joueurs}/${nb_joueursmax} Joueurs`);  
      })
      .catch((e) => {
        console.log(e);
        client.user.setStatus('idle');
        client.user.setActivity('Serveur Hors Ligne');
      });
  }, 6000);
});

我试过这个,但它不起作用。只更新消息,不更新状态...

【问题讨论】:

  • 重新定义 '“user.setStatus” 确实有效 Discord.JS'! 它现在做什么?你有任何错误吗?

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


【解决方案1】:

似乎没有错误,它应该可以正常工作,它可能只是反应/更新很慢。您还可以使用setPresence 来通过单个命令更新状态和活动:

client.on('ready', () => {
  console.log('OK');

  setInterval(() => {
    Gamedig.query({
      type: 'garrysmod',
      host: 'xx.xx.xx.xx',
      port: '27015',
    })
      .then((updatedState) => {
        state = updatedState;

        const nb_joueursmax = state.maxplayers;
        const nb_joueurs = state.players.length;

        client.user.setPresence({
          activity: { name: `${nb_joueurs}/${nb_joueursmax} Joueurs` },
          status: 'online',
        });
      })
      .catch((e) => {
        console.log(e);
        client.user.setPresence({
          activity: { name: 'Serveur Hors Ligne' },
          status: 'idle',
        });
      });
  }, 6000);
});

【讨论】:

  • 嗨,一样的,我只是注意到(状态)10 分钟后发生了变化……
猜你喜欢
  • 2022-01-07
  • 2022-11-11
  • 2021-01-11
  • 2021-07-29
  • 2020-03-19
  • 2020-11-23
  • 2021-12-14
  • 2020-11-08
  • 2021-04-25
相关资源
最近更新 更多