【发布时间】:2020-07-07 18:30:35
【问题描述】:
我在 discord.js v11 中创建了一个 discord 机器人并将其更新到 v12,经过细微调整后所有代码似乎都可以正常工作,但我无法修复我的代码以列出该机器人连接到的所有公会,如果有人知道在 v12 中启动机器人期间执行此操作的方法,请为帮助感到高兴
【问题讨论】:
标签: node.js discord.js
我在 discord.js v11 中创建了一个 discord 机器人并将其更新到 v12,经过细微调整后所有代码似乎都可以正常工作,但我无法修复我的代码以列出该机器人连接到的所有公会,如果有人知道在 v12 中启动机器人期间执行此操作的方法,请为帮助感到高兴
【问题讨论】:
标签: node.js discord.js
假设client 是您的Discord Client,client.guilds.cache 将是您的机器人所在的Guilds 中的Collection。请参阅GuildManager#cache;这正是您在 v11 中所期望的 client.guilds。
相同的缓存概念适用于每个 Manager。
【讨论】:
js client.on('ready', () => { reloadall("boot") client.user.setPresence({ activity: {name: "name"},status: "online"}) })
console.log(client.guilds.cache.array()) 会将客户行会的数组打印到控制台。此外,您可以通过将ClientOptions 作为参数传递给Client 构造函数来设置客户端的初始状态。这样,在登录客户端时就已经为您设置好了。有关详细信息,请参阅文档。
js client.guilds.forEach((guild) => { console.log(" - " + guild.name) }) 并且只打印了名称,在单独的行中,而不是每个服务器的整个对象树也你是什么意思传递ClientOptions?我还在学习更多关于 js 的知识(这个机器人只有大约 1000 行),并且想知道我会做些什么来在机器人加载时设置 Presence。
client.guilds.cache.forEach(...)。至于存在,您可以将创建客户端的现有代码更改为new Discord.Client({ presence: <presence data from your first comment> })(或new Client(...),如果您已解构),而不是将构造函数参数留空。