I have a log channel set so if a user deletes a message, it gets sent to the channel so my moderators and myself can see deleted messages.
JavaScript
x
18
18
1
@client.event
2
async def on_message_delete(message):
3
if not message.author.bot:
4
embed = Embed(title = "[❌] A message has been deleted by a user.",
5
description = f"{message.author.display_name} (`{message.author.id}`) has deleted a message in the {message.channel.mention} channel.",
6
color = message.author.color,
7
timestamp = datetime.utcnow())
8
9
fields = [("Message:", message.content, False)]
10
11
for name, value, inline in fields:
12
embed.add_field(name=name, value=value, inline=inline)
13
embed.set_thumbnail(url = message.author.avatar_url)
14
embed.set_footer(text = "This message was deleted")
15
16
channel = client.get_channel(828362680452644904)
17
await channel.send(embed=embed)
18
I want to make it so this does not send an embed showcasing what my moderators or myself deleted to avoid clutter. Is there a way to do this?
Advertisement
Answer
You can just return
if the message meets these conditions:
JavaScript
1
13
13
1
# get these values from your guild
2
MY_ID = 1234
3
MODERATOR_ROLE_ID = 56678
4
5
async def on_message_delete(message):
6
if message.author.id == MY_ID:
7
return
8
author_role_ids = [role.id for role in message.author.roles]
9
if MODERATOR_ROLE_ID in author_role_ids:
10
return
11
12
13