Files
mapsyncer-paper/NOTICE.md
T
janhouse 9f6b0772f0
Build / build (push) Successful in 3m6s
mapsyncer-paper 0.2.0: Paper 26.3
Build against the 26.3 dev bundle (26.3.build.151-beta; no stable build
exists yet).

26.3 rewrote the block palette in region files: a default-state block is a
bare string, any other state is {id, properties}, and a list mixing both
wraps the strings as {"": name}. The parser cast every entry to a
compound with Name/Properties, so every chunk saved by 26.3 threw
ClassCastException and the whole region failed to render. Both formats are
read now (a region holds a mix until every chunk is re-saved), and a chunk
that fails to parse is skipped instead of aborting the region.
2026-10-04 18:18:09 +03:00

47 lines
2.2 KiB
Markdown

# 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`.
- `mca/ChunkSectionParser.java` — reads the 26.3 block palette format (bare
string entries, `{id, properties}`, `{"": name}`) alongside the old
`{Name, Properties}` one. Same approach as upstream PR #26.
- `mca/convert/io/McaRegionLoader.java` — a chunk that fails to parse is
skipped instead of aborting the region.
- `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.