Как указать права для текстового канала discord.py
Нужно указать права для канала при его создании. Права: everyone не могут видеть канал, автор команды может. С помощью документации написал вот это нечто:
import random
import discord
from discord.ext import commands
bot = commands.Bot(command_prefix='.', intents = discord.Intents.all())
token = ''
support_category = '774170158494122005'
async def ticket_create(name, user, guild):
overwrites = {
guild.default_role: discord.PermissionOverwrite(read_messages=False),
guild.get_member(user): discord.PermissionOverwrite(read_messages=True)
}
await guild.create_text_channel(name=str(random.randint(1000,9999))+' '+' '.join(name), overwrites=overwrites, category=support_category, topic='Тикет помощи для'+user)
print('От:',user,' Сервер:', guild,' Сообщение:', name)
@bot.event
async def on_ready():
print('Bot ready', bot.user)
await bot.change_presence(activity=discord.Activity(type=discord.ActivityType.watching, name="на проблему со стороны"))
@bot.command()
async def ticket(ctx, *args):
user = ctx.message.author.id
guild = ctx.guild
await ticket_create(args, str(user), guild)
bot.run(token)
Вообще он в принципе работает, если убрать дикт overwrites, но мне нужно сделать именно "тикет систему", так что должны быть права у юзера.
Алгоритм работы:
.ticket траблы со звуком- Бот создает текстовый чат в категории
support - юзер и модератор обсуждают проблему в этом чате