Skip to content

Commit f0c469e

Browse files
committed
Implement #3187: Enhance bot join/leave logs across servers
1 parent 5170035 commit f0c469e

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

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

13821382
async def on_member_remove(self, member):
1383-
if member.guild != self.guild:
1384-
return
13851383
thread = await self.threads.find(recipient=member)
13861384
if thread:
1387-
if self.config["close_on_leave"]:
1385+
if member.guild == self.guild and self.config["close_on_leave"]:
13881386
await thread.close(
13891387
closer=member.guild.me,
13901388
message=self.config["close_on_leave_reason"],
13911389
silent=True,
13921390
)
13931391
else:
1394-
embed = discord.Embed(
1395-
description=self.config["close_on_leave_reason"], color=self.error_color
1396-
)
1392+
if len(self.guilds) > 1:
1393+
guild_left = member.guild
1394+
remaining_guilds = member.mutual_guilds
1395+
1396+
if remaining_guilds:
1397+
remaining_guild_names = [guild.name for guild in remaining_guilds]
1398+
leave_message = (
1399+
f"The recipient has left {guild_left}. "
1400+
f"They are still in {human_join(remaining_guild_names, final='and')}."
1401+
)
1402+
else:
1403+
leave_message = (
1404+
f"The recipient has left {guild_left}. We no longer share any mutual servers."
1405+
)
1406+
else:
1407+
leave_message = "The recipient has left the server."
1408+
1409+
embed = discord.Embed(description=leave_message, color=self.error_color)
13971410
await thread.channel.send(embed=embed)
13981411

13991412
async def on_member_join(self, member):
1400-
if member.guild != self.guild:
1401-
return
14021413
thread = await self.threads.find(recipient=member)
14031414
if thread:
1404-
embed = discord.Embed(description="The recipient has joined the server.", color=self.mod_color)
1415+
if len(self.guilds) > 1:
1416+
guild_joined = member.guild
1417+
join_message = f"The recipient has joined {guild_joined}."
1418+
else:
1419+
join_message = "The recipient has joined the server."
1420+
embed = discord.Embed(description=join_message, color=self.mod_color)
14051421
await thread.channel.send(embed=embed)
14061422

14071423
async def on_message_delete(self, message):

0 commit comments

Comments
 (0)