Skip to content

Waypoint Xaeros integration - #47

Open
DCFiendish wants to merge 3 commits into
Aechronis:masterfrom
DCFiendish:waypoint-client-integration
Open

Waypoint Xaeros integration#47
DCFiendish wants to merge 3 commits into
Aechronis:masterfrom
DCFiendish:waypoint-client-integration

Conversation

@DCFiendish

Copy link
Copy Markdown

I am trying to add xaeros waypoint compatabiltiy to your server side waypoints and needed a way to obtain the info. I figured the simplest way would be a chat broadcast to all players who can see the waypoint when the waypoint is created. This then also required a toggle for the waypoints so that the xaeros and server waypoints displays didnt overlap (/waypoint nativedisplay <true|false>). And then a list feature (/waypoint list) that the mod would read for waypoints made while offline. Idk if you guys will bother to do this but its pretty simple and I tested it on a localhost. I had ai describe what all the code was doing too if that helps.

DC Fiendish added 3 commits August 17, 2026 19:42
Creating a town/nation/ally-shared waypoint currently only messages the
creator ("Created waypoint X at ..."); everyone else it's shared with
only finds out by opening /waypoint themselves later. Broadcast a system
message to everyone the waypoint is shared with (via the existing
Waypoint.isSharedWith scoping) the moment it's created, so shared
waypoints act as an actual ping instead of a silent addition to a list.

Sent via Message.print (system message), not chat, so it can't be
spoofed by a player typing matching text. The waypoint name has its
formatting-code prefix stripped before broadcast, since normalizeName
doesn't reject it and the message now reaches more than just the owner.

Verified via ./gradlew compileKotlin ktlintCheck.
…nt list

A client mod that mirrors permanent waypoints as its own map markers (e.g.
real Xaero waypoints) would otherwise double up with the server's own
in-world floating labels (WaypointDisplayManager) and minimap icons
(MinimapMarkerRenderer) for the same locations. Add a per-resident,
session-only suppressNativeWaypointDisplays flag, toggled via
`/waypoint nativedisplay <true|false>`, that both renderers now check
before including a resident's permanent waypoints. Death waypoints are
intentionally left out of the toggle's scope.

Also add `/waypoint list`, a machine-readable one-line-per-waypoint chat
dump (name, coordinates, sharing scope, and owner when shared). The
creation-time chat announcements only cover waypoints made after a client
starts watching chat; a client mod needs this to seed its own markers with
whatever already existed on join.

Verified via ./gradlew compileKotlin ktlintCheck test.
Verifies the two behaviors the client-mod-integration commits depend on:
a town-shared waypoint is visible to town members (the same predicate the
chat broadcast targets) but not outsiders, and toggling
suppressNativeWaypointDisplays actually empties the minimap snapshot
(confirmed to fail without the guard before writing this commit).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant