Задать вопрос
@F1azy

Почему выдаёт ошибку при включении бота, и не работает команда на закрытие тикета?

Код:
import discord
from discord.ext import commands
from discord import Option
from datetime import timedelta
from discord.ext import commands
from discord.ext.commands import MissingPermissions
import asyncio
from datetime import datetime

@bot.command(guild_ids=[985912915355918346],description="""Создать новый тикет""") 
async def тикет(ctx,reason):
    await ctx.respond("Подождите! Мы работаем над вашем тикетом!",ephemeral=True)
    categ=discord.utils.get(ctx.guild.categories,name="・СНГ | Открытые тикеты")
    for ch in categ.channels:
        if ch.topic==str(ctx.author.id):
            return await ch.send(f"{ctx.author.mention}! У вас нету здесь тикетов")
    r1=ctx.guild.get_role(1024968938418864158)
    overwrite={
        ctx.guild.default_role:discord.PermissionOverwrite(read_messages=False),
        ctx.me:discord.PermissionOverwrite(read_messages=True),
        ctx.author:discord.PermissionOverwrite(read_messages=True),
        r1:discord.PermissionOverwrite(read_messages=True)
        } #creating overwrites/permission for channel
    channel=await categ.create_text_channel(name=f"{ctx.author.name}-{ctx.author.discriminator}",overwrites=overwrite,topic=f"{ctx.author.id}")
    em=discord.Embed(title="Создан новый тикет!",
                        description=f"Тикет был создан участником {ctx.author.mention}",
                        timestamp=datetime.utcnow(),
                        color=discord.Color.random())

    await asyncio.sleep(3)

    await ctx.respond(f"{channel.mention} Нажмите чтобы перейти к тикету",ephemeral=True)
    await channel.send(embed=em)

@bot.command(guild_ids=[985913973054513252],description="""Закрыть тикет""")
async def закрыть(ctx):
    if ctx.channel.category.name!="・СНГ | Открытые тикеты":
        return await ctx.respond("Вы не можете использовать эту команду тут",ephemeral=True)

    await ctx.respond("Тикет закрыт")
    categ=discord.utils.get(ctx.guild.categories,name="・СНГ | Закрытые тикеты")

    ch=ctx.channel
    r1=ctx.guild.get_role(1024968938418864158)

    overwrite={ # creating overwrites
        ctx.guild.default_role:discord.PermissionOverwrite(read_messages=False),
        ctx.me:discord.PermissionOverwrite(read_messages=True),
        r1:discord.PermissionOverwrite(read_messages=True)
        }

    await ch.edit(category=categ,overwrites=overwrite)
    mem=await ctx.guild.fetch_member(int(ch.topic))
    await ch.send(file=discord.File(f"{mem.id}.txt"))
    os.remove(f"{mem.id}.txt")

@bot.command(guild_ids=[1024968938418864158],description="""Удалить тикет""")
async def удалить(ctx):
    if ctx.channel.category.name!="・СНГ | Закрытые тикеты":
        return await ctx.respond("Вы не можете использовать эту команду тут", ephemeral=True)

    await ctx.respond("Тикет удалится через 5 секунд")
    await asyncio.sleep(5)
    await ctx.channel.delete()

@bot.event
async def on_message(msg):
    if msg.author.bot:
        return
    if msg.channel.category.name=="・СНГ | Открытые тикеты":
        mem=msg.author
        topic=msg.channel.topic
        tick=await msg.guild.fetch_member(int(topic))
        text=open(f"{tick.id}.txt","a")
        text.write(f"Name: {msg.author.name}#{msg.author.discriminator}, {msg.content}\n")
        text.close()


Ошибка: c:\bot>py bot.py
Ignoring exception in on_connect
Traceback (most recent call last):
File "C:\Users\pasha\AppData\Local\Programs\Python\Python39\lib\site-packages\discord\client.py", line 382, in _run_event
await coro(*args, **kwargs)
File "C:\Users\pasha\AppData\Local\Programs\Python\Python39\lib\site-packages\discord\bot.py", line 1055, in on_connect
await self.sync_commands()
File "C:\Users\pasha\AppData\Local\Programs\Python\Python39\lib\site-packages\discord\bot.py", line 657, in sync_commands
app_cmds = await self.register_commands(
File "C:\Users\pasha\AppData\Local\Programs\Python\Python39\lib\site-packages\discord\bot.py", line 485, in register_commands
prefetched_commands = await self._bot.http.get_guild_commands(self._bot.user.id, guild_id)
File "C:\Users\pasha\AppData\Local\Programs\Python\Python39\lib\site-packages\discord\http.py", line 353, in request
raise Forbidden(response, data)
discord.errors.Forbidden: 403 Forbidden (error code: 50001): Missing Access

spoiler
Использую библиотеку PyCord
  • Вопрос задан
  • 161 просмотр
Подписаться 1 Средний 2 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы