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
This commit is contained in:
2026-09-07 00:04:43 +03:00
commit 7fb3a82482
67 changed files with 10934 additions and 0 deletions
+16
View File
@@ -0,0 +1,16 @@
group = lv.janhouse
version = 0.1.0
# Paper dev bundle (Mojang-mapped server + API) the plugin compiles against.
# Must match the server it is deployed on: Paper 26.2 on JDK 25. The renderer
# needs a handful of server internals (block classes, render shape, tags), which
# is why this is a dev bundle and not plain paper-api.
paperDevBundleVersion = 26.2.build.121-stable
# Class-file target. The server container runs OpenJDK 25, so the jar must not
# be compiled for anything newer; --release also fences off newer JDK APIs.
javaRelease = 25
org.gradle.jvmargs = -Xmx2g
org.gradle.parallel = true
org.gradle.caching = true