Files
mapsyncer-paper/NOTICE.md
T
janhouse 7fb3a82482 mapsyncer-paper: server side of MapSyncer for Xaero's World Map, discovery-limited
Paper 26.2 plugin speaking the stock MapSyncer client mod's protocol.
Renders Xaero region zips from the world's region files, but only for chunks
players have actually been sent (PlayerChunkLoadEvent), seeded once from
InhabitedTime. Shared or per-player visibility, background render cycle,
per-player streaming with hash/timestamp skipping, Gitea Actions release
workflow.

Vendors the MCA parser and Xaero writer from upstream MapSyncer (GPL-3.0),
see NOTICE.md.

Claude-Session: https://claude.ai/code/session_011FePLXwBsCGLTzaSkk1Z6V
2026-09-07 00:04:43 +03:00

1.9 KiB

Third-party code

MapSyncer for Xaero's World Map

Everything under src/main/java/com/mapsyncer/ and the two renderer adapters src/main/java/lv/janhouse/mapsyncer/render/BlockPropertyResolver.java and PlaceholderBlockGetter.java are taken from

MapSyncer for Xaero's World Map
https://github.com/RuoChennn/MapSyncer-for-XaeroWorldmap
commit 116986ac17d9c18706bbbd9df7851bd365bb67f1 (2026-09-02, v1.0.4 beta)
Copyright (c) RuoChennn and contributors
Licensed under the GNU General Public License v3.0

That project is the reference implementation of the wire protocol this plugin speaks and of the Xaero region-file writer. This plugin as a whole is therefore also distributed under the GPL-3.0 (see LICENSE).

Local modifications to the vendored code, kept deliberately small so upstream diffs stay readable:

  • mca/ChunkMask.java — new: lets a conversion skip chunks nobody has discovered (they become "no data" tiles instead of terrain).
  • mca/convert/io/McaRegionLoader.java, mca/convert/RegionConversionPipeline.java — overloads taking a ChunkMask.
  • mca/McaReader.java — imports the plain net.jpountz LZ4 package that the Paper server already ships (upstream relocates its own copy).
  • mca/ChunkDataParser.java — heightmap bit width uses vanilla's ceillog2(height + 1) (upstream under-counts by one for 256-high dimensions); accepted chunk statuses include initialize_light.
  • XaeroWriter.java — moved from com.mapsyncer.server to com.mapsyncer.
  • render/BlockPropertyResolver.java, render/PlaceholderBlockGetter.java — package moved; the cache-size constant is inlined.

Everything else in lv.janhouse.mapsyncer is original to this repository.

lz4-java

LZ4-compressed region files are read through the net.jpountz.lz4 classes the Paper server bundles (at.yawk.lz4:lz4-java, Apache License 2.0). Nothing of it is redistributed in this jar.