Я посмотрел другие посты о том, как сделать команду восстановления.Один ответ сделал именно то, что я хотел, но это было только потому, что я сделал именно то, что они сделали.Теперь я хочу официально внедрить команду в мой бот Discord.Я заметил, что команда восстановления, которую я тестировал, работала только с @ client.command, а не с @ client.event (клиент - это объект). У меня есть все мои команды, перечисленные под событием события , поэтому мне нужна помощь по добавлению команды восстановления без необходимости переписывать много вещей.Это то, что я имею до сих пор в отношении команды восстановления.
from discord.ext.commands import Bot
from discord.ext import commands
client = Bot(command_prefix="?")
@client.event
@command.cooldown(5, 30, commands.BucketType.user)
async def on_message(message):
if message.content.upper().startswith("?HELLO"):
msg = 'Hello {0.author.mention} :banana:'.format(message)
await client.send_message(message.channel, msg)
@on_message.error
async def on_message_error(self, error, ctx):
if isinstance(error, commands.CommandOnCooldown):
msg = ':exclamation: This command is on cooldown, please try again in {:.2f}s :exclamation:'.format(error.retry_after)
await self.send_message(ctx.message.channel, msg)
Я просто использую одну команду в качестве примера, чтобы показать, какой у меня формат.Я получаю ошибку с @ on_message.error (это была пробная ошибка, поэтому я не ожидал, что она сработает).Я хочу установить время восстановления в течение 30 секунд после 5 последовательных попыток одной и той же команды, а также сообщение об ошибке, которое бот должен сказать в ответ с помощью таймера.Я действительно не хочу переписывать все это для того, чтобы сработала одна команда, учитывая, как далеко я проделал этот бот: /