
MapSyncer-for-XaeroWorldmap
A multi-platform Minecraft mod that syncs server-side explored areas to clients' Xaero's World Map.
Список изменений
Changelog New Features Automatic Sync Mechanism — When joining a server, it automatically compares the server map generation time and completes synchronization silently.
Anti-Spam — Update progress is now dynamically displayed above the hotbar, while only key information is shown in the chat.
MC 1.21.11 Cross-Platform Support — Successfully compiled on Forge (FML 3.0), Fabric (Loom 1.15.4), and NeoForge.
MapPackager Standalone Tool — Pure Java CLI that packages server cache into a client-usable Xaero map zip.
Built-in Server Support — LAN sharing in singleplayer, reusing the host’s Xaero save directory as cache (untested due to limited conditions).
Payload Bidirectional Fragment Transmission — All data >28KB is automatically split into small packets, reassembled on the receiving end, supporting out-of-order arrival issue#3.
Sync Conflict Protection — New requests are rejected during ongoing sync; residual states are automatically cleared after 10 minutes timeout.
Handshake Protection — Forge checks client mod list + NeoForge bidirectional handshake, preventing payloads from being sent to clients without the mod installed.
Bug Fixes Fixed stained glass — should be treated as overlay instead of invisible.
Fixed incremental updates not persisting — saveConfig() empty method caused configuration not to save.
Fixed garbled Chinese comments + removed 4 deprecated classes.
Fixed NBT MAX_LIST_SIZE — increased from 5000 → 100000 to prevent large region parsing failures.
Fixed singleplayer directory naming — aligned with Xaero, using save folder name.
Fixed duplicate prefix in auto-sync messages.
Performance Optimizations CPU optimization for region conversion — eliminated 5 hotspots (sectionLookup O(1), getFlags bitmask, removed Streams, precomputation, palette indexing), reducing CPU usage by ~30–50%.
Conversion threads now use MIN_PRIORITY — reducing CPU contention with server ticks.
DimensionConfigParser now includes parse caching + merged lookup loops.
Memory & Stability Fixed duplicate storage of lighting data to avoid OOM.
Fixed timestamp cache infinite growth by adding upper limit.
NetworkHandler now includes idempotency protection to prevent duplicate payload registration.
Refactoring Unified Xaero paths — xaero/world-map prioritized, XaeroWorldMap compatible fallback issue#4.
