我正在制作服务器,我想要私人票证。您如何使角色"支持"和命令用户是唯一访问频道的人?(机器人也可以(。
当前代码:
@client.command()
async def ticket(ctx):
global ticketNumber
ticketNumber = str(ticketNumber)
name = 'Tickets'
category = discord.utils.get(ctx.guild.categories, name=name)
guild = ctx.message.guild
await guild.create_text_channel(f'Ticket-{ticketNumber}', category=category)
ticketNumber = int(ticketNumber) + 1
要创建具有权限的文本通道,您可以添加参数overwrites={}
。
它需要目标的字典,因此您必须通过utils.get()
功能获得"支持"角色:
support_role = discord.utils.get(ctx.guild.roles, name="Support")
overwrites = {
ctx.guild.default_role: discord.PermissionOverwrite(read_messages=False),
ctx.guild.me: discord.PermissionOverwrite(read_messages=True, send_messages=True),
support_role: discord.PermissionOverwrite(read_messages=True, send_messages=True),
ctx.author: discord.PermissionOverwrite(read_messages=True, send_messages=True)
}
await ctx.guild.create_text_channel(f'Ticket-{ticketNumber}', category=category, overwrites=overwrites)
字典overwrites
具有成员或角色。在此示例中:
ctx.guild.default_role
@everyone- 机器人本身
ctx.guild.me
- 支持角色
support_role
- 命令用户的
ctx.author