我想制作一个在成员加入语音通道时创建文本通道并在该成员离开语音通道时删除文本通道的机器人。
@client.event
async def on_voice_state_update(member, before, after):
channelid = after.channel.id
guild = discord.utils.get(client.guilds, id=764768330212048936)
voicechannelmembers = discord.VoiceChannel.members
print(f'{member.name} заходит в голосовой канал с ID = {channelid}...')
if channelid == 765619299770695740:
print(f'{member.name} зашел в "Стрим 3"(ID: {channelid})')
channel = discord.utils.get(guild.text_channels, name="стрим3")
voicechannelmembers = discord.VoiceChannel.members
print(f'Подготовка к созданию канала...')
print(f'Проверяю сервер на наличие существующих каналов...')
if channel != None:
print('Данный канал уже существует. Отмена...')
return
else:
if member not in voicechannelmembers:
await channel.delete()
print(f"{member.name} вышел из голосового канала. Канал будет удален.")
return
else:
print(f'Дубликатов не найдено, создаю текстовый канал с именем: "стрим3"')
await guild.create_text_channel(name='стрим3')
channel = discord.utils.get(guild.text_channels, name="стрим3")
message=discord.Embed(
title=":green_book:Добро пожаловать!:green_book:",
description=f'Добро пожаловать в чат стрима 3!\nСтример: *{member.mention}*',
colour=discord.Colour.green()
)
await channel.send(embed=message)
当我加入语音频道时,我得到了:
Ignoring exception in on_voice_state_update
Traceback (most recent call last):
File "Z:\Programs\Python\lib\site-packages\discord\client.py", line 333, in _run_event
await coro(*args, **kwargs)
File "bot.py", line 69, in on_voice_state_update
if member not in voicechannelmembers:
TypeError: argument of type 'property' is not iterable