Дискорд бот на disnake выдаёт ошибку "Приложение не отвечает" однако команда исправно рботает
import disnake
from typing import Optional
from disnake.ext import commands
class Finish(disnake.ui.View):
def __init__(self):
super().__init__(timeout = 999999999)
self.value: Optional[bool]
@disnake.ui.button(label="Закончить сессию", style=disnake.ButtonStyle.red, disabled=False)
async def confirm(self, button: disnake.ui.Button, inter: disnake.CommandInteraction):
await inter.message.edit(view = None)
self.value = True
self.stop()
class CMDUsers(commands.Cog):
def __init__(self,bot):
self.bot = bot
@commands.Cog.listener()
async def on_ready(self):
print(f"Bot {self.bot.user} is ready to work!")
@commands.slash_command(description = "Начать модерить!")
async def start(self,ctx, server: str, online: int):
start_time = disnake.utils.utcnow()
channel = self.bot.get_channel(1263841892307701801)
view = Finish()
role = disnake.utils.get(ctx.author.guild.roles, id = 1259769417966026785)
message = await channel.send(f":green_circle: {ctx.author.mention} начал модерить на сервере !\n1. {server}\n2. {online}", view = view)
await ctx.author.add_roles(role)
await view.wait()
time = disnake.utils.utcnow() - start_time
thread = await ctx.message.create_thread(message = message, name = "Вышел")
await thread.send(f"Промодерил {str(time)[:-10]}")
await ctx.author.remove_roles(role)
def setup(bot):
bot.add_cog(CMDUsers(bot))
Дискорд как бы должен получить ответ от бота, но бот отправляет сообщение с помощью channel.send()
и ошибка остаётся, если же заменить на ctx.send()
то ошибка пропадёт, однако дальше по ходу выполнения команды должна создаться ветка, чего не происходит. Как сделать так что бы всё было красиво?