aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bot/exts/moderation/defcon.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/bot/exts/moderation/defcon.py b/bot/exts/moderation/defcon.py
index 9801d45ad..6ac077b93 100644
--- a/bot/exts/moderation/defcon.py
+++ b/bot/exts/moderation/defcon.py
@@ -9,7 +9,7 @@ from typing import Optional, Union
from aioredis import RedisError
from async_rediscache import RedisCache
from dateutil.relativedelta import relativedelta
-from discord import Colour, Embed, Member, User
+from discord import Colour, Embed, Forbidden, Member, User
from discord.ext import tasks
from discord.ext.commands import Cog, Context, group, has_any_role
@@ -118,10 +118,12 @@ class Defcon(Cog):
try:
await member.send(REJECTION_MESSAGE.format(user=member.mention))
-
message_sent = True
+ except Forbidden:
+ log.debug(f"Cannot send DEFCON rejection DM to {member}: DMs disabled")
except Exception:
- log.exception(f"Unable to send rejection message to user: {member}")
+ # Broadly catch exceptions because DM isn't critical, but it's imperative to kick them.
+ log.exception(f"Error sending DEFCON rejection message to {member}")
await member.kick(reason="DEFCON active, user is too new")
self.bot.stats.incr("defcon.leaves")