在 discord.py 上发送的消息如何删除?

How do I delete messages fter they have been sent on discord.py?

我 运行 遇到了一个问题,如果某个变量为 1,我会尝试删除消息。

class vars:
    locked = 1

@client.event
async def on_messge(message):
if vars.locked == 1:
    await message.delete()

我用 alt 帐户(没有权限)尝试过,但仍然无效。接受任何帮助! :)

除了缩进错误之外,您的代码似乎没有任何问题(首先应该给您抛出 SyntaxError

我重写了代码,没有任何问题,完全按照描述工作。

import discord
import os
from discord.ext import commands

client = commands.Bot()


class vars:
    locked = 1


@client.event
async def on_ready():
    print(f"Sucessfully logged in as {client.user}")


@client.event
async def on_message(msg):
    if vars.locked == 1:
        await msg.delete()


client.run(os.getenv("DISCORD_TOKEN"))

因为我无法演示它的​​工作原理(因为删除的消息被删除了)我做了这个例子:

@client.event
async def on_message(msg):
    if msg.author == client.user:
        return
    if vars.locked == 1:
        await msg.channel.send(
            f"Deleted the msg **{msg.content}** because vars.locked = {vars.locked}"
        )
        await msg.delete()

结果是: