我正在尝试获取运行该命令的某个用户所在的语音频道中所有用户/成员的列表。我设法获得了该用户和他所在的频道,没有任何问题(尝试通过发送一条提到频道的聊天消息,它起作用了)。但是当我尝试获取连接到频道的用户/成员列表时,它开始变得很奇怪。
await message.channel.send("called by user " + message.author.name)
voice_state = message.author.voice
if voice_state != None:
channel = voice_state.channel
await message.channel.send(channel.mention)
await message.channel.send(len(channel.members))
for u in channel.members:
await message.channel.send(u.name)
else:
await message.channel.send("user " + message.author.name + " is not currently in a voice channel")
这是我使用的代码。 message
是包含命令的消息。这将输出正确的用户并提及他所在的语音通道(如果他在一个通道中)。下一个命令 await message.channel.send(len(channel.members))
大部分时间输出 0,但奇怪的是一次给出了 2(正确的数字)。显然,如果列表的长度为 0,则循环不会触发。当它输出 2 一次时还没有实现,所以我不知道它是否按预期工作。
其中大部分只是为了测试我是否得到了正确的列表,而我没有。如何获取频道中的用户/成员列表?