GeyserMappingsDeployer

public final class GeyserMappingsDeployer

Small standalone helper that copies a merged Geyser custom-mappings JSON into the proxy's Geyser plugin folder (Geyser-Velocity, Geyser-BungeeCord, or any Geyser-* folder we find under plugins/). Used by NetworkSync after a merge and by the Velocity/Bungee entrypoints at boot to pre-deploy the previous run's mappings before Geyser's GeyserDefineCustomItemsEvent fires.

Geyser's custom-item registry is boot-frozen: anything we deploy after Geyser has finished loading sits on disk until the next proxy restart. That's fine — the pack itself is served live by GeyserBinder via PackCodec.path, so the visual side (icons, geometry, attachables) updates immediately. Only the item-name mapping waits for a restart.

Functions

Link copied to clipboard
public static boolean deploy(File geyserPluginDir, File mappingsFile, ProxyLogger logger)
Copy mappingsFile into <geyserPluginDir>/custom_mappings/, creating the directory if needed.
Link copied to clipboard
public static File detectGeyserPluginDir(File proxyPluginsDir, String preferredDirectoryName)
Look for any Geyser-* subdirectory under proxyPluginsDir.
Link copied to clipboard
public static boolean isEmptyMappings(File mappingsFile)
Returns true if the given Geyser mappings JSON file has zero items keys (or no items block at all).
Link copied to clipboard
public static void remove(File geyserPluginDir, String mappingsFileName, ProxyLogger logger)
Removes a previously deployed RSPM mappings document when the current network no longer has custom-item mappings.