这是我的代码:
await shardingManager.broadcastEval(`this.guilds.get('352896116812939264')`);
这是上面的评估返回的内容:
{ members: {},
channels: {},
roles: {},
presences: {},
deleted: false,
available: true,
id: '352896116812939264',
name: 'LenoxBot™',
...}
我现在的问题是,为什么它不返回角色、 channel 、成员......?
我什至尝试了以下方法,但它也不起作用:
await shardingManager.broadcastEval(`this.guilds.get('352896116812939264').roles`);
(机器人有足够的权限查看所有角色等)
谢谢!
最佳答案
这里的问题是,在稳定版本中,诸如Guild#roles
之类的东西尚未可 JSON 序列化,例如由于循环引用 ( guild.roles.first().client
),因此 node.js 仅返回 {}
。
相关:https://github.com/discordjs/discord.js/issues/3144
正如那里提到的,您可以使用discord.js v12,或者您需要自己序列化对象。
关于javascript - 为什么broadcastEval()不返回公会的角色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55663747/