当前位置: 首页 > 知识库问答 >
问题:

discord.py:: 如何让on_message_delete通过嵌入忽略某个用户/角色?

何升
2023-03-14

我设置了一个日志频道,这样如果用户删除了一条消息,它就会被发送到该频道,这样我的版主和我自己就可以看到删除的消息。

@client.event
async def on_message_delete(message):
    if not message.author.bot:
        embed = Embed(title = "[❌] A message has been deleted by a user.",
                      description = f"{message.author.display_name} (`{message.author.id}`) has deleted a message in the {message.channel.mention} channel.",
                      color = message.author.color,
                      timestamp = datetime.utcnow())

        fields = [("Message:", message.content, False)]

        for name, value, inline in fields:
            embed.add_field(name=name, value=value, inline=inline)
            embed.set_thumbnail(url = message.author.avatar_url)
            embed.set_footer(text = "This message was deleted")
            
        channel = client.get_channel(828362680452644904)
        await channel.send(embed=embed)

我想这样做,这样就不会发送一个嵌入式显示什么我的版主或我自己删除,以避免混乱。有办法做到这一点吗?

共有1个答案

陆建木
2023-03-14

如果消息满足以下条件,您只需返回:


# get these values from your guild
MY_ID = 1234
MODERATOR_ROLE_ID = 56678

async def on_message_delete(message):
    if message.author.id == MY_ID:
        return
    author_role_ids = [role.id for role in message.author.roles]
    if MODERATOR_ROLE_ID in author_role_ids:
        return
    ...

 类似资料:
  • 我正在制作一个不和谐机器人来跟踪在语音频道上花费的时间,但我想知道我是如何做到的,它不计算在某个频道上的成员的时间,比如afk频道。 这是我现在正在使用的事件

  • 在我的不和谐中,我有几个角色,比如“所有者”、“成员”和“监狱”。我希望bot只能由“所有者”角色访问,并希望命令如下所示:。监狱@user。然后机器人应该去掉“成员”角色,给他们“监狱”角色。 不和谐服务器最新更新请在此输入图像描述

  • 问题内容: 我正在尝试实现水平多级下拉导航菜单。在菜单的下方(垂直),我通过iframe嵌入了YouTube视频。如果我将鼠标悬停在Firefox中的一级导航上,则下拉菜单会正确显示 在 视频 顶部 。 但是,在Chrome和IE9中,在菜单和iframe之间的一小段空间中,只有一小部分下拉菜单可见。其余的似乎都 在 iframe的 后面 。 问题似乎与YouTube视频有关, 而不 与ifram

  • 问题内容: 我们的许多模块都始于: …这是整个文件中唯一的Pyflakes警告: 我如何让Pyflakes忽略这一点? (通常我会去阅读文档,但是链接断开了。如果没有人回答,我只会阅读源代码。) 问题答案: 如果您可以改用flake8-包裹pyflakes和pep8 checker-则以 (其中的空间显著-代码的结束和2米之间的空间之一,它和之间,文本)将告诉检查忽略该行的任何错误。

  • 问题内容: 在CVS配置的“排除的区域”中,添加了以下内容: 具有上述扩展名的所有文件都应忽略。但是,Jenkins仍然基于以下事实运行构建:某个文件夹ABC中的文件“ build.txt”已更改,或者tar.gz文件之一已更改。如何让詹金斯忽略这些文件?我的正则表达式有问题吗? 问题答案: 很高兴为您服务!根据要求重新发布: 我的猜测是它与零件有关。您刚刚尝试过吗? 就像实验一样,您也可以尝试(

  • 我希望bot获取消息(嵌入)并将其发送到调用命令的通道。以下代码适用于普通文本消息: 为了发送嵌入,我尝试了: 它发送此信息,而不是发送嵌入: 如何使机器人复制并发送嵌入?