Repository navigation
Fix/admin modal rerender - #1341
icheat2win wants to merge 22 commits into
Conversation
Mounting a seed sphere used the item level of the seed sphere as the level of the socket option. That item level defines the kind of option though, so the option level was 0 to 5 depending on the option number instead of 1 to 5 depending on the sphere. Level 0 has no level dependent power-up, and the serializer encoded it as a negative sphere level which wrapped around the socket byte. The option level is now taken from the seed sphere definition, and the serializer clamps the sphere level to the range the client supports, so an out-of-range level (e.g. set through the admin panel) can no longer produce a socket byte which crashes the client. Refs MUnique#891 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01D7SXuEktJd46sB6iTcG32U
fix(remoteview): send master stats of extended clients without 16 bit truncation
fix(sockets): derive the socket option level from the seed sphere tier
fix(muhelper): cast buffs with the same restrictions as a player
feat(crafting): add a configurable bonus to the crafting success rate
Adds a Leaderboards page to the admin panel which ranks the characters by their summed scores of the saved mini game rankings (Blood Castle, Devil Square, Chaos Castle, ...), with all levels of a mini game combined and an optional period of the last 7 or 30 days. Bots and template accounts are not ranked. Refs MUnique#559. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01D7SXuEktJd46sB6iTcG32U
Show key columns like Number in admin panel item tables
Add mini game leaderboards to the admin panel
The parameter infos of chat commands now carry the minimum and maximum of a [Range] and a new [ValueReference] hint, which tells a client which kind of value a parameter refers to (character, account, guild, map, coordinates, item group/number, monster, object id, language). Item numbers name the group parameter they belong to, so a client can suggest numbers of the chosen group. The /item level gets a range of 0 to 15. The source generator emits the new attributes, so the generated and reflected argument properties stay equal. Refs MUnique#849 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01D7SXuEktJd46sB6iTcG32U
The fork master carried earlier versions of fork PRs which are merged upstream in their final form. This makes the tree equal to upstream master again, so the fork PRs show only their own changes.
…chat-command-parameter-hints
The minigames_leaderboard tool of MUnique#1285 is a 21st read tool, but the integration test still expected 20, which made master fail. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01D7SXuEktJd46sB6iTcG32U (cherry picked from commit 4ac3659)
…language The /language command accepts culture names and three-letter ISO codes, too, so the value reference is named Language and describes all of them. Clients which use it for pickers or validation don't reject valid values anymore. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01D7SXuEktJd46sB6iTcG32U
…-hints feat(chat-commands): describe value ranges and references of parameters
The modal container re-rendered its child content whenever a modal was shown or closed. In the admin panel, that content is the AuthorizeRouteView, which authorized the routed page again. Without an admin user, the check completes asynchronously, so the page was disposed and created again and lost its state, e.g. the API key which is only shown once. The modals now render in a component of their own, so only it re-renders. Fixes MUnique#1338 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011xNc75wWo45WokXGb4rMQU
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Complexity | 8 |
| Duplication | 0 |
NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.
sven-n
left a comment
There was a problem hiding this comment.
Changes requested: this PR combines the modal rerender fix with unrelated chat-command parameter metadata and source-generator changes (including src/GameLogic/PlugIns/ChatCommands/ChatCommandParameterInfo.cs and src/SourceGenerators/ChatCommandArgumentsGenerator.cs). Please split these into separate PRs per docs/CODING_RULES.md rule 1. Additionally, src/GameLogic/PlugIns/ChatCommands/Arguments/ItemChatCommandArgs.cs:32-37 advertises item levels 0–15, but src/GameLogic/PlugIns/ChatCommands/CommandExtensions.cs:204-225 converts arguments without enforcing RangeAttribute. Please enforce the bound or clarify that it is metadata only and test out-of-range values. A routed-page integration test would strengthen the modal fix.
fix(admin): keep the page state when a modal is shown or closed