IF Registry Sync Fix¶
Fixes Immersive Furniture losing custom furniture designs when a server has more than 128 of them. Players were missing furniture because whole batches of the furniture list never reached their client.
What it does¶
- When a player joins, Immersive Furniture sends the server's furniture registry to them in batches. It reuses one map for every batch and clears it right after queueing the send. The network layer encodes the message later, so by then the map is empty or holds the next batch. On a registry of 128 or more entries, whole batches are lost.
- This mod sends each batch with its own copy of the map, so every batch arrives intact.
- Nothing else changes.
Server-side only. Clients install nothing. Requires Immersive Furniture 0.2.2+1.21.1 exactly.
How players use it¶
Players do not interact with this mod. All server furniture designs show up for them.
Staff guide¶
There are no commands. If players report missing or invisible custom furniture after joining, check that this mod is loaded.
Configuration¶
None.
Data and storage¶
None.
Troubleshooting¶
| Symptom | Cause | Fix |
|---|---|---|
| Some custom furniture is missing for players | Mod not loaded, or the server has a different Immersive Furniture version | Check the boot line below and the Immersive Furniture version |
| Server will not boot after an Immersive Furniture update | The mod requires 0.2.2+1.21.1 and its mixin must match twice |
Check whether the upstream bug is fixed. If not, update the mixin and the version range |
Boot line:
Immersive Furniture registry sync fix loaded; each registry batch is sent as its own copy
Maintainer notes¶
- One mixin:
ServerFurnitureRegistryMixinredirects bothNetwork.sendToPlayercalls inServerFurnitureRegistry.syncWithPlayer(require = 2) and wraps aFurnitureRegistryMessagein a newHashMapcopy before sending. displayTest="IGNORE_SERVER_VERSION"andside="SERVER"dependencies keep clients from needing it.- Running on
buildonly for now.
Building¶
gradle build
This repo has no Gradle wrapper. Use a local Gradle, or run another mod's wrapper with
-p <this folder>. Output: build/libs/ifregistrysyncfix-<version>.jar.
Full command, permission and config tables: Reference.