Files
MCMapper-Mod/common
octoturge 699f09f081 Phase 1: forge-1_12_2 WS connection and column delta capture
Adds a hand-rolled RFC 6455 WS client and minimal JSON codec to common/ (no
third-party deps, keeping legacy ForgeGradle's classpath untouched), a
DefaultBackendConnection implementing hello/hello_ack auth and reconnect
with backoff, and Forge1122ChunkAdapter deriving top-of-column state from
the vanilla heightmap for both initial chunk backfill and event-driven
deltas (block break/place, deferred one tick to read post-mutation state).
MCMapperMod wires it up with config-driven backendUrl/serverToken and a
tick-based flush batch. Verified against a live MCMapper-Backend api
instance (real WS handshake, hello_ack, and 256-column batch landing
correctly in Postgres).
2026-08-08 15:35:51 +02:00
..

common

Loader-agnostic Java: protocol types, config model, and the interfaces each leaf module (forge-1_7_10, forge-1_12_2, neoforge-26_1) implements against its own Minecraft/Forge API generation.

This module is not consumed as a compiled binary dependency. The legacy leaves (1.7.10, 1.12.2) target Java 8; neoforge-26_1 targets a modern JDK. To avoid cross-version binary compatibility issues, each leaf module adds common/src/main/java directly to its own source set (see the sourceSets.main.java.srcDirs line in each leaf's build.gradle) and compiles it itself, once per leaf, against its own toolchain. Keep this module free of any Minecraft/Forge/NeoForge API usage — it must compile standalone under plain javac.

Layout

  • protocol/ — wire types shared with the backend (delta events, chat/waypoint payloads, link request/response). Mirrors the WS protocol described in the root plan.
  • config/ — the common config model (backend URL, server token, tracking/reconciliation intervals) each leaf loads via its own loader-specific config system.