Проблема
Я запускаю бот-событие на винчестере и хочу удалить сообщение, если оно не в правильном канале. Однако on_message, кажется, принимает только аргумент сообщений, поэтому я не могу удалить сообщение, отправленное в контексте:
@commands.Cog.listener()
async def on_message(self, message):
musicchannel = self.bot.get_channel(705116959804489898)
if message.content.startswith('-p'):
if message.channel.id == musicchannel.id:
pass
else:
await message.channel.send("```ini\n[Music commands only in the appropriate channel]```", delete_aft$
await asyncio.sleep(4)
message.delete()
Обычно у вас есть аргумент ctx, поэтому он такой же простой, как ctx.message.delete()
, но он не будет работать в в этом случае.
То, что я пробовал
Я попытался получить сообщение с помощью self.bot.fetch_message(message.id)
, но бот не принимает атрибут fetch_message ().
Решение
Почему-то я этого не сразу заметил, но все, что вам нужно, это await
, так как .delete()
- это совместная процедура.