discord.py 成员加入语音频道

时间:2021-03-08 22:47:40

标签: python python-3.x discord.py

如何创建一个频道,如果有人加入,机器人将创建一个文本频道。这是我的代码:

@client.event
async def on_voice_state_update(member):
    guild = member.guild
    role = discord.utils.get(guild.roles, name="@everyone")

    chan = await member.guild.create_text_channel(f"ticket - {member}")
    await chan.set_permissions(role, send_messages=False, read_messages=False, add_reactions=False, embed_links=False, attach_files=False, read_message_history=False, external_emojis=False)
    await chan.set_permissions(member, send_messages=True, read_messages=True, add_reactions=True, embed_links=True, attach_files=True, read_message_history=True, external_emojis=True)

我还想让机器人仅在用户加入特定频道时才创建此频道。我必须解决的另一件事是使此脚本仅在成员加入语音频道时才起作用,而不是离开,编辑等。谢谢

1 个答案:

答案 0 :(得分:1)

你可以用

voice_channel = client.get(CHANNEL_ID)
try:
    while True:
        voice_channel.members[0]
        await asyncio.sleep(0.1)
        ...
except:
    ...

但是要小心!!这是一个循环,它会一直运行(只有 0.1 秒的停顿)并且会检查成员的语音频道! >