From b22d760994c0ab682bf81e4b3752ed4ae91e80fa Mon Sep 17 00:00:00 2001 From: William Kray Date: Sat, 19 Apr 2025 09:10:09 -0700 Subject: [PATCH] avoid verifying someone if they left the room --- community/bot.py | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/community/bot.py b/community/bot.py index 4c99809..629c7d6 100644 --- a/community/bot.py +++ b/community/bot.py @@ -967,15 +967,20 @@ class CommunityBot(Plugin): if user_phrase == expected_phrase: try: - # Update power levels in target room - power_levels = await self.client.get_state_event( - state["target_room"], EventType.ROOM_POWER_LEVELS - ) - power_levels.users[state["user"]] = state["required_level"] - await self.client.send_state_event( - state["target_room"], EventType.ROOM_POWER_LEVELS, power_levels - ) - await self.client.send_notice(evt.room_id, "Success! My work here is done. You can leave this room now.") + # confirm user is still in target room + members = await self.client.get_joined_members(state["target_room"]) + if state["user"] not in members: + await self.client.send_notice(evt.room_id, "Looks like you've left the target room. Rejoin to try again.") + else: + # Update power levels in target room + power_levels = await self.client.get_state_event( + state["target_room"], EventType.ROOM_POWER_LEVELS + ) + power_levels.users[state["user"]] = state["required_level"] + await self.client.send_state_event( + state["target_room"], EventType.ROOM_POWER_LEVELS, power_levels + ) + await self.client.send_notice(evt.room_id, "Success! My work here is done. You can leave this room now.") except Exception as e: await self.client.send_notice( evt.room_id,