@NecromancerZerratul
Начинающий прогер

Как вывести время отката команды?

Появилась проблема, прошерстил весь интернет, но так и не смог найти ответ на мою проблему. Пишу на disnake.py. Вроде сделал как нужно но все равно не выводится и пишется ошибка.
код программы:
from typing import Optional

import asyncio

import disnake
from disnake.ext import commands  
from disnake import TextInputStyle                                                                                                              

import os 
from dotenv import load_dotenv                                                                                                                                                                                                                                   
load_dotenv("secret.env")                                                                                                                       

bot = commands.Bot(
    command_prefix= "!", intents= disnake.Intents.all(), activity= disnake.Game('Starcraft 2'), status= disnake.Status.online, 
    test_guilds= [1278352420665294950], sync_commands_debug=True
    )

@bot.event
async def on_command_error(ctx, error):                                                                                 
    print(error)
    if isinstance(error, commands.MissingPermissions):
        await ctx.send(f"{ctx.author}, у вас не достаточно прав для выполнения этой команды!")
    elif isinstance(error, commands.CommandOnCooldown):
        await ctx.send(error.retry_after)


@bot.slash_command()
#@commands.has_role(1284939541454651422)
@commands.cooldown(rate = 1, per = 20, type = commands.BucketType.channel)
async def setting_channel(inter: disnake.CommandInter):
    #try:
    await inter.send("Setting", view = DropdownViewSettingMenu())
    #except commands.CommandOnCooldown as error:
    #    remaining_time = round(error.retry_after)
    #    await inter.send(f"Error. Try on {remaining_time} sec")


Как видите пытался двумя способами, но выводилась ошибка одна и таже:

Ignoring exception in slash command 'setting_channel':
Traceback (most recent call last):
File "C:\Users\guzhv\OneDrive\Рабочий стол\Bot\venv\Lib\site-packages\disnake\ext\commands\interaction_bot_base.py", line 1378, in process_application_commands
await app_command.invoke(interaction)
File "C:\Users\guzhv\OneDrive\Рабочий стол\Bot\venv\Lib\site-packages\disnake\ext\commands\slash_core.py", line 717, in invoke
await self.prepare(inter)
File "C:\Users\guzhv\OneDrive\Рабочий стол\Bot\venv\Lib\site-packages\disnake\ext\commands\base_core.py", line 321, in prepare
self._prepare_cooldowns(inter)
File "C:\Users\guzhv\OneDrive\Рабочий стол\Bot\venv\Lib\site-packages\disnake\ext\commands\base_core.py", line 309, in _prepare_cooldowns
raise CommandOnCooldown(bucket, retry_after, self._buckets.type) # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
disnake.ext.commands.errors.CommandOnCooldown: You are on cooldown. Try again in 18.53s
  • Вопрос задан
  • 27 просмотров
Решения вопроса 1
fenrir1121
@fenrir1121 Куратор тега discord.py
Начни с документации
Способ с on_command_error почти верный, только ошибки слеш команд попадают в событие on_slash_command_error
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы