#python #discord
#питон #Discord
Вопрос:
Я хочу применить время восстановления к on_message. Я перешел от выполнения команды с предисловием (например, .claim 000) к простому «000» или любому другому коду на DM.
Старый код:
@commands.command(name='claim',pass_context=True)
@commands.cooldown(1, 5, commands.BucketType.user)
async def redeem(self, ctx, code):
if isinstance(ctx.channel, discord.channel.DMChannel)
Новый код:
@bot.event
@bot.cooldown(1, 5, commands.BucketType.user)
async def on_message(message):
Однако тип new .event игнорирует предикат восстановления. Есть ли способ применить это к нему?
Ответ №1:
Я не думаю, что есть способ сделать это, поскольку встроенные кулдауны были созданы для работы с commands framework, что вызывает вопрос, почему вы переходите с (лучшей) среды для команд только на on_message? В любом случае, вам, вероятно, придется использовать свою собственную систему перезарядки, что не должно быть слишком сложно сделать. Вам просто нужно указать пользователя: вероятно, последнее использование.
Комментарии:
1. Это для возврата кода через DM к боту. Я думаю, что это лучший пользовательский интерфейс, позволяющий отвечать на него кодом, а не вводить команду.