如何使僵尸程序创建一个文本通道,使命令用户和具有访问该通道权限的特定角色成为可能? (改写)

时间:2019-08-17 21:40:04

标签: discord.py-rewrite

我正在制作服务器,我想要私人门票。您如何做到这一点,以便只有“支持”角色和命令用户才能访问该通道?(机器人也可以)。

当前代码:

@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

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具有成员或角色。在此示例中:

  1. ctx.guild.default_role for @everyone
  2. ctx.guild.me(自动程序本身)
  3. support_role作为支持角色
  4. ctx.author(用于命令用户)