我想让机器人打印成员连接到的通道的id。
@client.event
async def on_voice_state_update(member, before, after):
channelid = discord.VoiceChannel.id
print(f'{channelid}')
当我加入这个频道时,我会得到这个:
<member 'id' of 'VoiceChannel' objects>
因为您正在尝试获取VoiceChannel
id,而VoiceChannel
是一个类,而不是一个实际的通道。要获取语音频道的id,可以使用before.channel.id
或after.channel.id
。这取决于你想做什么。所以你可以这样更改你的代码:
@client.event
async def on_voice_state_update(member, before, after):
channelid = before.channel.id
print(f'{channelid}')
据我所知,如果成员加入语音通道,那么before.channel.id
返回None
,如果成员离开语音通道,则after.channel.id
返回None
。