From 889569c0878bab275c5e5f026bf581c66dc18e52 Mon Sep 17 00:00:00 2001 From: Jared Vititoe Date: Fri, 20 Feb 2026 10:39:11 -0500 Subject: [PATCH] =?UTF-8?q?Fix=20!wordle=20silence=20in=20public=20rooms?= =?UTF-8?q?=20=E2=80=94=20notify=20user=20to=20check=20DMs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When !wordle is used in a public room (e.g. Commands), the bot now sends "📬 Check your DMs to play Wordle!" before redirecting the game to a DM. Previously the user saw no response at all. Also refactors handle_wordle to resolve the DM room once and reuse it across all subcommands, eliminating repeated _get_dm_room calls. Co-Authored-By: Claude Sonnet 4.6 --- wordle.py | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/wordle.py b/wordle.py index 7e8738b..6c6ed59 100644 --- a/wordle.py +++ b/wordle.py @@ -749,27 +749,29 @@ async def handle_wordle( subcmd = parts[0].lower() if parts else "" sub_args = parts[1] if len(parts) > 1 else "" + # Share always goes to the public room + if subcmd == "share": + await wordle_share(client, room_id, sender) + return + + # All other commands route through DM + dm_room, origin = await _get_dm_room(client, room_id, sender) + + # Notify the public room if we're redirecting to a DM + if dm_room != room_id: + await send_text(client, room_id, "\U0001f4ec Check your DMs to play Wordle!") + if subcmd == "help": - # Help can go to the same room - dm_room, origin = await _get_dm_room(client, room_id, sender) await wordle_help(client, dm_room) elif subcmd == "stats": - dm_room, origin = await _get_dm_room(client, room_id, sender) await wordle_stats(client, dm_room, sender) elif subcmd == "hard": - dm_room, origin = await _get_dm_room(client, room_id, sender) await wordle_toggle_hard(client, dm_room, sender) - elif subcmd == "share": - # Share goes to the PUBLIC room (origin), not DM - await wordle_share(client, room_id, sender) elif subcmd == "give" and sub_args.lower().startswith("up"): - dm_room, origin = await _get_dm_room(client, room_id, sender) await wordle_give_up(client, dm_room, sender) elif subcmd == "": - dm_room, origin = await _get_dm_room(client, room_id, sender) await wordle_start_or_status(client, dm_room, sender, origin) elif len(subcmd) == 5 and subcmd.isalpha(): - dm_room, origin = await _get_dm_room(client, room_id, sender) await wordle_guess(client, dm_room, sender, subcmd.upper()) else: await send_text(