从 v11 迁移后,无法在 discord.js v12 中从服务器设置用户状态和记录用户数量

Posted

技术标签:

【中文标题】从 v11 迁移后,无法在 discord.js v12 中从服务器设置用户状态和记录用户数量【英文标题】:Cant set user status and log user amount from server in discord.js v12 after migrating from v11 【发布时间】:2020-10-15 19:18:12 【问题描述】:

我知道的令人困惑的问题是正确的,但是在使用我朋友的机器人从 discord.js v11 迁移到 v12 后,我遇到了这个问题。

我无法获取服务器中的用户数量,

原始代码(v11):

client.on("ready", () => 
    console.log(`jthefibot has started, with $client.users.size users, in $client.channels.size channels of $client.guilds.size servers.`);

    client.user.setPresence(
        status: "online",
        game: 
            name: `jt.help for commands | Watching over the jTheFifthElement server with $client.users.size members.`,
            type: "Watching"
        
    ); 
);

在 v12 上启动机器人会引发此错误:"size" is not defined"

所以在我的控制台中,在迁移到 v12 后,我得到“机器人已在未定义的频道中以未定义的用户开始”,在 v11 中,我通常会得到“机器人已在 (x) 频道中以 (12) 个用户开始”

【问题讨论】:

【参考方案1】:

我刚刚进行了迁移,遇到了同样的问题。

你必须更换:

client.users.size

通过

client.users.cache.size

.channels.guilds 之前添加 .cache 作为其他变量。

您可以在此处阅读文档: https://discordjs.guide/additional-info/changes-in-v12.html#managers-cache

【讨论】:

以上是关于从 v11 迁移后,无法在 discord.js v12 中从服务器设置用户状态和记录用户数量的主要内容,如果未能解决你的问题,请参考以下文章

TypeError:无法读取未定义的属性“hasPermission”

Discord.js 无法为斜线命令添加选项

Discord.js user.send() 中的 ReactionCollector 不是函数

Discord.js 无法从公会中找到角色

Angular v8 到 v11 - 禁用常春藤的 entryComponents 问题

Discord.js Node.js |无法从“导出”的 JS 文件访问 JSON 文件