Add client-side recipe loading for servers without recipe sync#2025
Open
keklick1337 wants to merge 2 commits intoshedaniel:18.x-1.21.4from
Open
Add client-side recipe loading for servers without recipe sync#2025keklick1337 wants to merge 2 commits intoshedaniel:18.x-1.21.4from
keklick1337 wants to merge 2 commits intoshedaniel:18.x-1.21.4from
Conversation
…cipe data Adds a new config option under Filtering > Force Local Recipes that loads recipes from client data packs instead of waiting for server recipe sync. This is useful for multiplayer servers (e.g. 2b2t) that don't send recipe data to clients, causing REI to show no recipes. When enabled: - Blocks server recipe sync packets - Loads recipes from client-side vanilla data packs - Injects loaded displays into the client display registry - Suppresses the 'Partial Recipes' warning Limitations: - ~63 tag-dependent recipes may fail to parse (bundles, shulker boxes, etc.) - Requires reconnecting to the server after toggling the option - Only activates on remote servers (singleplayer is unaffected)
Owner
|
Do you think it is possible to have a temporarily tag manager? |
Author
No TagManager class exists - tags are loaded via TagLoader in MC 1.12.4 |
Author
|
any updates about my pr? |
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.
Summary
Adds a new config option Force Local Recipes (under Filtering category) that loads recipes from client data packs instead of waiting for server recipe sync.
This is useful for multiplayer servers (e.g. 2b2t) that don't send recipe data to clients, causing REI to show no recipes.
Changes
New Config Option
forceLocalRecipesboolean option toConfigObjectAPI andConfigObjectImplAllREIConfigOptionswith deferred plugin reload on toggleAllREIConfigGroupsRecipe Loading
VanillaServerPackResourcesand a temporaryRecipeManagerServerDisplayRegistryImpl.pendingForceLocalDisplaysDisplayRegistryImpl.endReload()Server Sync Blocking
DisplaySyncPacket.handle()returns early when enabled on remote serversClientRecipeUpdateEvent.ADDand.REMOVEare skipped when enabled on remote serversRecovery & UX
ClientGuiEvent.INIT_PREhandler triggers full reload if no reload stages were observed (multiplayer reconnect scenario)ImportantWarningsWidgeten_us.jsonwith yellow warning about reconnection requirementSafety
!isLocalServer()check — singleplayer is completely unaffectedMinecraft.getInstance().execute()to avoidConcurrentModificationExceptionLimitations
Files Changed
ConfigObject.java— addedisForceLocalRecipes()interface methodConfigObjectImpl.java— added field and implementationAllREIConfigOptions.java— added FORCE_LOCAL_RECIPES optionAllREIConfigGroups.java— added to filtering categoryRoughlyEnoughItemsCoreClient.java— INIT_PRE handler, event guardsDisplaySyncPacket.java— sync blocking guardServerDisplayRegistryImpl.java— client-side recipe loadingDisplayRegistryImpl.java— pending display injectionImportantWarningsWidget.java— warning suppressionen_us.json— localization strings