Fix !wordle silence in public rooms — notify user to check DMs
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 <noreply@anthropic.com>
This commit is contained in:
22
wordle.py
22
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 ""
|
||||
|
||||
if subcmd == "help":
|
||||
# Help can go to the same room
|
||||
# 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":
|
||||
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(
|
||||
|
||||
Reference in New Issue
Block a user