如何授予角色查看文本频道discord.py的权限



我正在为我的机器人制作一个ticket命令。它运行良好,但只有获得ticket的人和具有管理员权限的成员才能看到频道。如何为其添加支持角色?这是我当前的代码:

rickroll提醒不要转到下面代码中的youtube链接🤣

@bot.event
async def on_ready():
voteRemind.start()
print('Bot is ready')
await bot.change_presence(status=discord.Status.online, activity=discord.Streaming(name="Minecraft", url="https://www.youtube.com/watch?v=dQw4w9WgXcQ"))
for channel in getTicketChannels():
embed = discord.Embed(title='Support', description="""
To create a ticket react with  🎫
<:Rules:910406026543652895> **RULES:**
Tell The Problem The Second You Open 
Don't Wait For Us To Ask
""")
guild = bot.get_guild(channel[0])
channel = guild.get_channel(channel[1])
await channel.purge()
msg = await channel.send(embed=embed)
await msg.add_reaction('🎫')
@bot.event
async def on_reaction_add(reaction, user):
if user == bot.user:
return
guild = reaction.message.guild
if reaction.message.channel == guild.get_channel(getTicketChannel(guild.id)):
await reaction.remove(user)
if discord.utils.get(guild.channels, name=f"ticket-{user.display_name.lower()}"):
return
category = guild.get_channel(getTicketChannel(guild.id)).category
embed = discord.Embed(title='Welcome to your ticket!', description="Support will be with you shortly.nn<:Rules:910406026543652895> nTell The Problem The Second You Open nDon't Wait For Us To Ask", color=0x1ff44d)
overwrites = {
guild.default_role: discord.PermissionOverwrite(read_messages=False),
user: discord.PermissionOverwrite(read_messages=True)
}
ticket = await category.create_text_channel(name=f'🎫┃{user.display_name}', topic=f"{user.display_name}'s Support Channel", overwrites=overwrites)
await ticket.send(user.mention)
await ticket.send(embed=embed)

如果你知道要做的任何更改或将@MDA(支持角色的名称(添加到频道,请告诉我。:(

您还需要为支持角色添加一个PermissionOverwrite。它看起来像这样:

support_role = discord.utils.get(guild.roles, name='MDA')
overwrites = {
guild.default_role: discord.PermissionOverwrite(read_messages=False),
user: discord.PermissionOverwrite(read_messages=True),
support_role: discord.PermissionOverwrite(read_messages=True) # or whatever permissions the role should have
}
ticket = await category.create_text_channel(name=f'🎫┃{user.display_name}', topic=f"{user.display_name}'s Support Channel", overwrites=overwrites)

最新更新