Add Wordle Minigame#1159
Conversation
* Implemented `games` module and `wordle` game with configurations, UI panels and commands. * Created singleplayer, multiplayer, and staff hosted global modes for word guessing. * Built custom wordpool and evaluation logic. * Fixed economy integration missing functions logic. * Added missing configuration system UI registration for the new features. Co-authored-by: SjnExe <142050666+SjnExe@users.noreply.github.com>
|
👋 Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
* Fixed `.catch` missing on floating promises in ActionFormData callbacks. * Fixed typing issues and `any` types in wordleManager and wordlePanel. * Fixed unnecessary conditional checking on split array elements. * Fixed `gamesMainPanel` test failure by importing feature modules inside `UI.test.ts` * Applied correct linter rules and formatting. Co-authored-by: SjnExe <142050666+SjnExe@users.noreply.github.com>
* Added a script to download and compress top english words into a constant sized chunk format. * Added `compressedValidWords` and `compressedSolutionWords` strings in `wordPool.ts`. * Refactored `wordPool.ts` lookup logic to properly extract random words from the compressed strings without heavy memory footprint or arrays. * Fixed final linter warnings. Co-authored-by: SjnExe <142050666+SjnExe@users.noreply.github.com>
* Fixed missing import error and formatting problems across project * Addressed `download-words.js` unused path error. Co-authored-by: SjnExe <142050666+SjnExe@users.noreply.github.com>
* Filtered the wordpool list to 4 and 5 letter words, removing 6 length capability to save file space and scope. * Removed unneeded `scripts/download-words.js` to clear github action test checks. * Fixed formatting on `src/core/featureRegistry.ts` that caused github actions failing tests. Co-authored-by: SjnExe <142050666+SjnExe@users.noreply.github.com>
* Rewrote script `format-words.js` (and ran it to re-generate the pool) to properly sort words. * Ensured top english words are used as possible solutions. * Combined Minecraft specific and valid words so they act as a single pool to avoid duplicate characters, minimizing byte footprint. * Implemented `SOLUTION_LIMIT` so the most common 500 words act as the solutions, while all words are allowed as valid guesses. * Fixed resulting formatting using prettier to solve CI breakages. Co-authored-by: SjnExe <142050666+SjnExe@users.noreply.github.com>
* Converted the single player Wordle interaction from `ActionFormData` with chat fallback to a centralized `ModalFormData`. This displays the entire history of guesses, feedback string, and error messages on the same panel. * Updated `evaluatePattern` formatting to use `§f` (White) rather than `§7` (Gray) to improve UI legibility. * Changed "Back/End" button colors in wordle panels to use red (`§c`). * Created a dedicated victory/loss UI (`wordleSinglePlayerResultPanel`) for game overs to allow playing again gracefully instead of exiting abruptly to chat. Co-authored-by: SjnExe <142050666+SjnExe@users.noreply.github.com>
* Explicitly extracted variable accesses from `context` safely to avoid unsafe-member-access warnings inside UI Handlers. * Resolved `ModalFormDataToggleOptions` typing error by removing the `toggle` boolean property which was unsupported. * Removed unreachable properties and corrected typing on array operations for answer characters in `wordleManager.ts` to satisfy `@typescript-eslint/no-explicit-any`. Co-authored-by: SjnExe <142050666+SjnExe@users.noreply.github.com>
* Removed `toggle` control from `ModalFormData` implementation, which is unsupported. Users can cancel out natively by closing the window. * Replaced unsafe member access to `context` to instead use index-signatures/safe mapping where needed to satisfy `tsc`. * Ensured error parameter flows correctly back into the UI. Co-authored-by: SjnExe <142050666+SjnExe@users.noreply.github.com>
* Fixed an issue where the `wordleSinglePlayerPanel` modal would drop the user unceremoniously to chat rather than show them the previous results correctly due to an unchecked cancellation branch. Now returns the player back to the `wordleMainPanel` gracefully when closed out of. * Fixed typing assertions over the context variable to ensure properties like `.error` are retrieved correctly. Co-authored-by: SjnExe <142050666+SjnExe@users.noreply.github.com>
Introduces a new "Games" feature module with a "Wordle" minigame.
The system features Single Player, Multiplayer, and a global Staff Hosted mode.
It supports economy integration, configurable word lengths, customizable UI panels, and full command support (
/wordleand/guess).PR created automatically by Jules for task 301173989136142874 started by @SjnExe