Skip to content

Commit 0086e04

Browse files
committed
Merge branch 'feature/bot-join-leave-logs-3187' into development
2 parents dcdfb95 + f0c469e commit 0086e04

File tree

1 file changed

+26
-10
lines changed

1 file changed

+26
-10
lines changed

bot.py

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
)
4949
from core.thread import ThreadManager
5050
from core.time import human_timedelta
51-
from core.utils import extract_block_timestamp, normalize_alias, parse_alias, truncate, tryint
51+
from core.utils import extract_block_timestamp, normalize_alias, parse_alias, truncate, tryint, human_join
5252

5353
logger = getLogger(__name__)
5454

@@ -1388,28 +1388,44 @@ async def on_guild_channel_delete(self, channel):
13881388
await thread.close(closer=mod, silent=True, delete_channel=False)
13891389

13901390
async def on_member_remove(self, member):
1391-
if member.guild != self.guild:
1392-
return
13931391
thread = await self.threads.find(recipient=member)
13941392
if thread:
1395-
if self.config["close_on_leave"]:
1393+
if member.guild == self.guild and self.config["close_on_leave"]:
13961394
await thread.close(
13971395
closer=member.guild.me,
13981396
message=self.config["close_on_leave_reason"],
13991397
silent=True,
14001398
)
14011399
else:
1402-
embed = discord.Embed(
1403-
description=self.config["close_on_leave_reason"], color=self.error_color
1404-
)
1400+
if len(self.guilds) > 1:
1401+
guild_left = member.guild
1402+
remaining_guilds = member.mutual_guilds
1403+
1404+
if remaining_guilds:
1405+
remaining_guild_names = [guild.name for guild in remaining_guilds]
1406+
leave_message = (
1407+
f"The recipient has left {guild_left}. "
1408+
f"They are still in {human_join(remaining_guild_names, final='and')}."
1409+
)
1410+
else:
1411+
leave_message = (
1412+
f"The recipient has left {guild_left}. We no longer share any mutual servers."
1413+
)
1414+
else:
1415+
leave_message = "The recipient has left the server."
1416+
1417+
embed = discord.Embed(description=leave_message, color=self.error_color)
14051418
await thread.channel.send(embed=embed)
14061419

14071420
async def on_member_join(self, member):
1408-
if member.guild != self.guild:
1409-
return
14101421
thread = await self.threads.find(recipient=member)
14111422
if thread:
1412-
embed = discord.Embed(description="The recipient has joined the server.", color=self.mod_color)
1423+
if len(self.guilds) > 1:
1424+
guild_joined = member.guild
1425+
join_message = f"The recipient has joined {guild_joined}."
1426+
else:
1427+
join_message = "The recipient has joined the server."
1428+
embed = discord.Embed(description=join_message, color=self.mod_color)
14131429
await thread.channel.send(embed=embed)
14141430

14151431
async def on_message_delete(self, message):

0 commit comments

Comments
 (0)