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(