Phase 4: receive waypoint shares and render JourneyMap/Xaero chat links

DefaultBackendConnection handles the new waypoint_share message and
dispatches it through a WaypointShareListener. WaypointChatFormatter
builds the actual chat text for both formats from publicly documented
wire formats (see THIRD_PARTY_NOTICES.md for sources/attribution) —
neither needs a click-event component, since both client mods
auto-detect the right plain-text shape. Forge1122ChatBridge wires this
into a real broadcast; MCMapperMod registers the listener.

Built test-first per the project's TDD workflow; verified live against
the real backend, including a byte-exact JourneyMap-format chat
message produced from a real WS payload.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015tKdPZt78zbPUZMXWzKEKt
This commit is contained in:
2026-08-08 19:21:30 +02:00
parent 73e10d34e5
commit 41034356ac
7 changed files with 264 additions and 3 deletions
+24
View File
@@ -21,6 +21,30 @@ publicly documented/community-reverse-engineered wire format, never from Xaero's
- What was adapted: not adapted/copied — used as-is as a build-tool dependency (Gradle plugin),
same rationale as the FG2.3 fork above, one Forge-tooling generation further back for 1.7.10.
## JourneyMap chat-waypoint bracket syntax
- Source: https://github.com/1whohears/JourneyMapQOL_1.7.10, corroborated by
https://github.com/TeamJM/journeymap/issues/465 ("Waypoint Chat option")
- License: MIT (JourneyMapQOL_1.7.10)
- Used in: `common/src/main/java/com/octoturge/mcmapper/common/protocol/WaypointChatFormatter.java`
(`journeyMapText`)
- What was adapted: not code — the documented plain-text convention JourneyMap itself
auto-detects in chat (`[x:..,y:..,z:..,dim:..,name:..,color:..,delete:..]`), reimplemented as
our own string builder from the publicly described field list.
## Xaero's Minimap `xaero-waypoint:` chat-share schema (community-reverse-engineered)
- Source: https://gist.github.com/macimas/937a392be075b1bce7a2ae69ea933ef5 ("my rough
interpretation on xaero-waypoint schema formatty")
- License: none stated (personal gist notes) — used only as a documentation reference for an
otherwise-undocumented wire format, no code copied
- Used in: `common/src/main/java/com/octoturge/mcmapper/common/protocol/WaypointChatFormatter.java`
(`xaeroText`)
- What was adapted: not code — the documented nine-field colon-separated schema
(`name:marker:x:y:z:color:use_yaw:yaw:dimension`), reimplemented as our own string builder.
Xaero's Minimap/Worldmap are closed-source and this format has no official documentation, so
this is flagged in the formatter's javadoc as best-effort/unverified — worth testing against a
real Xaero install before relying on it, since even community sources disagree on field count
for this specific format.
Further entries will be added here as more third-party material lands, in the form:
```