首页 > 解决方案 > Bot不想显示频道的ID

问题描述

我希望机器人打印该成员连接到的频道的 ID。

@client.event
async def on_voice_state_update(member, before, after):
    channelid = discord.VoiceChannel.id
    print(f'{channelid}')

当我加入这个频道时,我得到了这个:

<member 'id' of 'VoiceChannel' objects>

标签: pythonpython-3.xdiscord.py

解决方案


因为您正在尝试获取VoiceChannelid,并且VoiceChannel是一个类,而不是一个实际的频道。要获取语音通道的 ID,您可以使用before.channel.idafter.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


推荐阅读