使用 python discord.py 立即删除不和谐消息

Instantly delete discord messages using python discord.py

您好,我正在尝试让此代码取消发送我的消息,而无需在服务器

中获得 delete/manage 消息的权限或角色

我试过使用“delete_after”参数,但大多数时候消息没有被删除,我不确定为什么

这是我的代码:

@client.command(pass_context=True)
async def hello(ctx):
    while True:
        time.sleep(int(timer))
        await ctx.send("HELLO", delete_after=1)

如果达到速率限制、消息从缓存中丢失等,删除有时会失败。

参见the docs。如果删除失败,将被静默忽略。

如果您想完全确定它们已被删除,您需要保存消息并手动删除它们。如果失败,那么您将得到一个错误而不是什么都没有。

    while True:
        await asyncio.sleep(int(timer-DELETE_AFTER_DURATION))
        message = await ctx.send("HELLO")
        await asyncio.sleep(DELETE_AFTER_DURATION)
        await message.delete()

旁注:使用 asyncio.sleep,它不会阻塞您的其余代码,而不是 time.sleep,协程中的任何地方。