我正在制作服务器,我想要私人门票。您如何做到这一点,以便只有“支持”角色和命令用户才能访问该通道?(机器人也可以)。
当前代码:
@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
答案 0 :(得分:0)
要创建具有权限的文本通道,可以添加参数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
for @everyone ctx.guild.me
(自动程序本身)support_role
作为支持角色ctx.author
(用于命令用户)