【问题标题】:The let status change doesn't work for me让状态更改对我不起作用
【发布时间】:2020-04-22 11:01:33
【问题描述】:

首先,我想要的只是改变 dnd、idle、online 状态! 我已经尝试了很多来修复它们,但没有任何效果!我需要帮助修复它们:

状态不会变为 dnd 或 idle

${bot.guilds.memberCount} = 是 - 未定义

${bot.guilds.size} = 显示 - 0

const guilds = bot.guilds.find(x => x.id == "651124679662108693");
let games =  [ "Developer | daniel2121#4382",`${bot.guilds.memberCount} Members`,`${bot.guilds.size} The amount of servers the bot is on`];
let status = ["dnd", "online"]

setInterval(function() {

bot.user.setPresence({
    game: {
      name: games[~~(Math.random() * games.length)],
      type: "PLAYING"
    },
    status: status[~~(Math.random() * status.length)]
  });

}, 4000)


  [1]: https://i.stack.imgur.com/Hk8Fv.png

【问题讨论】:

  • 好吧,bot.guilds 显然是一个数组,因为您正在对它执行find()。那么为什么数组会有memberCount 属性呢?

标签: javascript discord discord.js status


【解决方案1】:

状态不变...

4 秒可能会限制机器人继续更改其状态。尝试使用更长的间隔。


${bot.guilds.memberCount} [is] 未定义

Client.guildsCollection(在 v12 中为 GuildStore)。 bot.guilds.memberCount 未定义,因为名为 memberCount 的集合上没有属性。但是,Guild 有一个 memberCount 属性。

要将您的机器人当前跨其所有服务器提供服务的所有成员相加,您可以利用Collection.reduce() 方法:

bot.guilds.reduce((guild, total) => guild.memberCount + total)

如果你想只显示你定义的服务器的成员数

guild.memberCount

${bot.guilds.size} [显示] 0

您的机器人不在任何服务器中,或者您正试图在它们被缓存之前读取机器人的行会。对于后者,仅在您的客户端发出其ready 事件之后设置您的时间间隔/Cron 作业。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 2017-04-15
    • 2021-12-20
    • 1970-01-01
    • 2023-01-15
    相关资源
    最近更新 更多