为什么broadcastEval()不返回公会的角色?

时间:2019-04-13 08:57:59

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

这是我的代码:

@bot.event
async def on_message(message):
    x = (559253532759425044)
    er = bot.get_channel(559253532759425044)
    if not message.channel.id != x:
        return
    else:
        if "p/" in message.content.lower():
            await message.channel.send('Write this command in {}'.format(er.mention))

这是以上评估得出的结果:

await shardingManager.broadcastEval(`this.guilds.get('352896116812939264')`);

我的问题是,为什么不返回角色,渠道,成员...


我什至尝试了以下方法,但它也不起作用

{ members: {},
  channels: {},
  roles: {},
  presences: {},
  deleted: false,
  available: true,
  id: '352896116812939264',
  name: 'LenoxBot™',
  ...}

(机器人具有足够的权限来查看所有角色等)

谢谢!

1 个答案:

答案 0 :(得分:2)

这里的问题是,在稳定版本中,Guild#roles之类的东西还不能进行JSON序列化,例如由于使用了引用(guild.roles.first().client),因此node.js仅返回{}

相关:https://github.com/discordjs/discord.js/issues/3144

  

On the development branch, all Discord.js objects are JSON serializable. Unfortunately, that change won't land until v12. ~ appellation

如前所述,您可以使用discord.js v12,也可以自行序列化对象。