大家好,我有一个无法解决的问题!
如何创建特定类别的频道?
我的代码如下:
@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 角色可以访问该频道!我该如何更改覆盖?
感谢您的帮助:)
答案 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)
}
希望有帮助!