Discord py - 在 "on_raw_reaction_add" 函数中的某个类别中创建频道?

Discord py - creating a channel in a certain category in a "on_raw_reaction_add" function?

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

如何在特定类别中创建频道?

我的代码如下:

@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 才能访问频道!我该如何更改覆盖?

感谢您的帮助:)

第一个问题:

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)
}

希望对您有所帮助!