Repository navigation
Fix Discord freeze gate when RPCharacters enables after TFMCWeb - #10
Merged
Merged
Conversation
Drefvelin
approved these changes
Sep 22, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
TFMCWeb enables before RPCharacters because RPCharacters depends on it. The boot-time availability check cached
falsepermanently, so unlinked Survival players never received RPCharacters' Discord freeze.Resolve the optional gate API when it is used, cache methods from the enabled RPCharacters plugin instance, and discard them when the plugin is absent or disabled. Remove the reverse soft dependency and replace the misleading startup warning with a waiting message.
Validation:
mvn -B clean verifypassed: five regression tests, all failing against the original implementation and passing with this fix. Coverage includes late enablement, eligible players, game modes, offline UUIDs, clearing, and disabled/missing RPC.8043efd), Java 21.0.12, with real RPCharacters 1.1.7, TLibs 1.1.1, MMOCore, MMOItems, MythicLib, MythicMobs and ProtocolLib. A Mineflayer client connected asDiscordGateBot; a read-only probe inspected RPC's gate flag and frozen-player map.rpc=false, then RPCharacters enabled, then the gate became available./web statussubsequently reportedRPCharacters gate: yes./web reconcileThe test used a localhost identity API fixture and disabled unrelated character/clue freezes. It validates the actual plugin load order and player freeze/release, not live Discord OAuth or production API behavior. The initial lab setup needed MythicMobs for an existing undeclared RPC utility-class dependency; the successful run had no ERROR/exception entries. The fixture did not implement unrelated character-catalog PUT requests, producing an expected catalog-sync warning. The server was stopped cleanly after testing.
Reviewed the full diff and gate call sites; no blocking findings. No production deployment.
Tested TFMCWeb JAR SHA-256:
6f39cbbbd1299c3fbb7ac38d02bee8fd625eb3a4ffa2ed8d33813812a0bb96aa.