这是我在机器人中的代码
@Bot.event
async def on_voice_state_update(member,before,after): #Создвние войс комнат
if after.channel.id == &&&&&&&&&&&&&&&&&&:
print(f'{member} зашёл в канал')
for guild in Bot.guilds:
maincategory = discord.utils.get(guild.categories, id=$$$$$$$$$$$$$$$$$$)
channel2 = await guild.create_voice_channel(name=f'{member.display_name}`s Channel',category = maincategory)
await channel2.set_permissions(member,connect=True,mute_members=True,move_members=True,manage_channels=True)
await member.move_to(channel2)
def check(x,y,z):
return len(channel2.members) == 0
await Bot.wait_for('voice_state_update',check=check)
await channel2.delete()
这是我在终端上的错误
Traceback (most recent call last):
File "C:\Users\Макс\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\discord\client.py", line 343, in _run_event
await coro(*args, **kwargs)
File "C:\Users\Макс\DRACULA-rms\bot.py", line 108, in on_voice_state_update
if after.channel.id == &&&&&&&&&&&&&&&&&&&&:
AttributeError: 'NoneType' object has no attribute 'id'
请帮帮我吧,我自己解决不了这个错误,我用的是Python 39
这不是最理想的方法,但我想你可以用这个:
它基本上首先检查after是否为none,如果不是,那么after,channel是否为none?如果不是,那么它将引用它的id
如果成员在此更新之后不在语音频道中(不再),则
after.channel
值为None,如here所述你将不得不以某种方式处理该案件,也许什么也不做:
相关问题 更多 >
编程相关推荐