Discord py-在“ on_raw_reaction_add”函数中的特定类别中创建频道吗?

时间:2020-10-21 12:25:57

标签: discord discord.py discord.py-rewrite

大家好,我有一个无法解决的问题!

如何创建特定类别的频道?

我的代码如下:

@client.event
async def on_raw_reaction_add(payload):
    guild_id = payload.guild_id
    guild = client.get_guild(guild_id)
    user = payload.user_id
    emoji = payload.emoji.name
    
    if user == 762903825866424320:
        return
    
    if emoji == "?":
        overwrites = {
            guild.default_role: discord.PermissionOverwrite(read_messages=False),
            guild.me: discord.PermissionOverwrite(read_messages=True, send_messages=True)
        }
        ticket_nr = random.randint(100,999)
        await guild.create_text_channel(f'ticket-{ticket_nr}', overwrites=overwrites)

        member = discord.utils.find(lambda m : m.id == payload.user_id, guild.members)
        role = await guild.create_role(name=f"ticket-{ticket_nr}")
        await member.add_roles(role)

还有第二个问题:

我想给点击表情符号的用户一个名为ticket- {random-number}的角色,只有他和 Support 角色可以访问该频道!我该如何更改覆盖?

感谢您的帮助:)

1 个答案:

答案 0 :(得分:1)

第一个问题:

category = guild.get_channel(CATEGORY_ID)
await category.create_text_channel(...)

关于第二个问题: 我不建议您创建一个具有随机数的角色,这很麻烦。相反,在创建故障单通道时,您可以覆盖它,以便只有支持角色和成员才能看到它。

support_role = ctx.guild.get_role(SUPPORT_ROLE_ID)
overwrites = {
    guild.default_role: discord.PermissionOverwrite(read_messages=False),
    ctx.author: discord.PermissionOverwrite(read_messages=True, send_messages=True),
    support_role: discord.PermissionOverwrite(read_messages=True, send_messages=True)
}

希望有帮助!