我希望机器人在有人加入语音通道时创建一个文本通道。
@client.event
async def on_voice_state_update(ctx, member: discord.Member, before, after):
channelid = after.channel.id
print(f'{member.name} заходит в голосовой канал с ID = {channelid}...')
if channelid == 764768330212048941:
print(f'{member.name} зашел в "Стрим 1"(ID: {channelid})')
print(f'Создаю текстовый канал с именем: "Стрим 1|{member.name}"')
await ctx.create_text_channel(name=f'Стрим 1|{member.name}')
else:
if channelid == 764843714417655808:
print(f'{member.name} зашел в "Стрим 2"(ID: {channelid})')当我加入vc时,我得到了这样的信息:
TypeError: on_voice_state_update() missing 1 required positional argument: 'after'发布于 2020-10-11 22:13:49
您不能在事件中使用ctx参数,也不必执行member: discord.Member,因为它已经赋值。如果你想创建频道,你可以使用Guild.create_text_channel。为此,您需要使用discord.utils.get获取guild对象。下面是一个示例:
@client.event
async def on_voice_state_update(member, before, after):
channelid = after.channel.id
print(f'{member.name} заходит в голосовой канал с ID = {channelid}...')
if channelid == 764768330212048941:
print(f'{member.name} зашел в "Стрим 1"(ID: {channelid})')
print(f'Создаю текстовый канал с именем: "Стрим 1|{member.name}"')
guild = discord.utils.get(client.guilds, id=your guild id)
await guild.create_text_channel(name=f'Стрим 1|{member.name}')
else:
if channelid == 764843714417655808:
print(f'{member.name} зашел в "Стрим 2"(ID: {channelid})')https://stackoverflow.com/questions/64304922
复制相似问题