diff options
| author | 2020-08-29 16:06:19 -0500 | |
|---|---|---|
| committer | 2020-08-29 16:06:19 -0500 | |
| commit | 24002b6b585962bf9218ad643727b30d4ed018dd (patch) | |
| tree | de4a4836d52610a0f4963b47fa3473844be34d15 | |
| parent | Everyone Ping: Fixed rule, edited config (diff) | |
Everyone ping: Send embed on ping, fixed check
When a user pings the everyone role, they now get an embed explaining
why what they did was wrong.
The ping detection was also fixed to not thing that every message was a
ping (changed form `>=` to `>`).
| -rw-r--r-- | bot/rules/everyone_ping.py | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/bot/rules/everyone_ping.py b/bot/rules/everyone_ping.py index bfc400831..65ee1062c 100644 --- a/bot/rules/everyone_ping.py +++ b/bot/rules/everyone_ping.py @@ -1,6 +1,14 @@ +import logging +import textwrap from typing import Dict, Iterable, List, Optional, Tuple -from discord import Member, Message +from discord import Embed, Member, Message + +from bot.cogs.moderation.utils import send_private_embed +from bot.constants import Colours + +# For embed sender +log = logging.getLogger(__name__) async def apply( @@ -15,10 +23,28 @@ async def apply( ev_msgs_ct = 0 for msg in relevant_messages: - if '@everyone' in msg.content: + if "@everyone" in msg.content: ev_msgs_ct += 1 - if ev_msgs_ct >= config['max']: + if ev_msgs_ct > config["max"]: + # Send the user an embed giving them more info: + member_count = "{:,}".format(last_message.guild.member_count).split( + "," + )[0] + embed_text = textwrap.dedent( + f""" + Hello {last_message.author.display_name}, please don't try to ping {member_count}k people. + **It will not have good results.** + If you want to know what it would be like, imagine pinging Greenland. Please don't ping Greenland. + """ + ) + print(embed_text) + embed = Embed( + title="Everyone Ping Mute Info", + colour=Colours.soft_red, + description=embed_text, + ) + await send_private_embed(last_message.author, embed) return ( f"pinged the everyone role {ev_msgs_ct} times in {config['interval']}s", (last_message.author,), |