(discord.py) 获取特定语音频道中所有成员的列表

新手上路,请多包涵

所以我正在尝试使用 python 中的 discord.py 库为我的 raiding discord 编写一个 raiding bot。该脚本应该在语音通道中形成成员列表以进行突袭。由于某种原因,此脚本不起作用。每当打印 memids 时,它只会打印一个空列表。

如果有人熟悉 discord.py 并且可以告诉我为什么这不起作用,请告诉我。这真的让我很困扰,我已经尝试了我所知道的一切来修复它。

 #find raiding
        voice_channel = discord.utils.get(ctx.message.server.channels, id = '440014722587426816')

        #finds the members
        members = voice_channel.voice_members

        memids = []

        for member in members:
            memids.append(member.id)

        print(memids)

原文由 Matthew Kopie 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 413
1 个回答

我遇到了同样的问题。 voice_channel.members 会返回空列表或不完整列表。

文档说:

voice_states 返回在该频道有语音状态的成员ID映射。注意:当成员缓存不可用时,此功能是故意低级替换 membershttps://discordpy.readthedocs.io/en/latest/api.html#voicechannel

我猜 members 不能相信它会始终如一地返回准确的连接成员列表。

我用下面的代码解决了这个问题:

 member_ids = voice_channel.voice_states.keys()

原文由 Chirag Kalra 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题