From d2fd3c9c0d2673d0ad34dcb613790b8f329a931d Mon Sep 17 00:00:00 2001 From: Conatum Date: Wed, 22 Dec 2021 08:34:38 +0200 Subject: [PATCH] fix (renting): Disallow removing owner. Don't allow the room owner to be added or removed from the rented room. Also fixes an issue where the room expiry log would try to use deleted data. --- bot/modules/renting/commands.py | 8 ++++++-- bot/modules/renting/rooms.py | 6 +++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/bot/modules/renting/commands.py b/bot/modules/renting/commands.py index b94c01f5..0683d90f 100644 --- a/bot/modules/renting/commands.py +++ b/bot/modules/renting/commands.py @@ -54,9 +54,13 @@ async def cmd_rent(ctx): # Extract members to remove current_memberids = set(room.memberids) + if ctx.author in ctx.msg.mentions: + return await ctx.error_reply( + "You can't remove yourself from your own room!" + ) to_remove = ( member for member in ctx.msg.mentions - if member.id in current_memberids + if member.id in current_memberids and member.id != ctx.author.id ) to_remove = list(set(to_remove)) # Remove duplicates @@ -86,7 +90,7 @@ async def cmd_rent(ctx): current_memberids = set(room.memberids) to_add = ( member for member in ctx.msg.mentions - if member.id not in current_memberids and member.id != ctx.author + if member.id not in current_memberids and member.id != ctx.author.id ) to_add = list(set(to_add)) # Remove duplicates diff --git a/bot/modules/renting/rooms.py b/bot/modules/renting/rooms.py index 9e79d5b0..3e1d19c4 100644 --- a/bot/modules/renting/rooms.py +++ b/bot/modules/renting/rooms.py @@ -187,14 +187,14 @@ class Room: except discord.HTTPException: pass - # Delete the room from data (cascades to member deletion) - self.delete() - guild_settings.event_log.log( title="Private study room expired!", description="<@{}>'s private study room expired.".format(self.data.ownerid) ) + # Delete the room from data (cascades to member deletion) + self.delete() + async def add_members(self, *members): guild_settings = GuildSettings(self.data.guildid)