feat: add waypoint update subscriptions - #16
Draft
JackCuthbert wants to merge 1 commit into
Draft
JackCuthbert wants to merge 1 commit into
JackCuthbert wants to merge 1 commit into
Conversation
Players can subscribe to another trusted player's future waypoint changes and choose whether to replace, dismiss, or revisit each update. Replacements preserve the current backup and take effect safely after reconnecting, while server administrators retain UUID-based persistent subscription records.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
/xaerosync subscribe <player>andunsubscribecommands for trusted waypoint sourcesplugins/XaeroSync/subscriptions/Player experience
Subscribing follows future changes and does not copy or replace the player's current waypoints. The confirmation message explains this and offers a clickable action for the existing one-time copy flow.
Each changed source snapshot is offered once with the source name, upload time, dimension count, file count, and waypoint count. Ignoring or dismissing it leaves the subscriber untouched. Remind later offers it once more on the next join. Replace & reconnect verifies the exact offered update, saves the current backup, and uses the existing reconnect-time download flow.
/xaerosync statuslists followed players. Subscription actions require the existingxaerosync.replacepermission because accepting an update performs the same trusted-player replacement.Server compatibility and storage
This is additive to the v1 server layout and wire protocol. Existing player snapshots and clients remain compatible. Subscription records are separate, atomic JSON files keyed by subscriber UUID; player names are display-only and UUIDs remain authoritative.
No subscription event sends a waypoint snapshot during play or writes client files. Canonical uploads continue succeeding even if a subscription record cannot be read.
Verification
mise run formatmise run testmise run verifyManual UAT
Use two players, Alice and Bob, with disposable client instances and the same test server.
/xaerosync subscribe Alice. Confirm Bob's current waypoints remain unchanged, the output explains confirmation is required, and/xaerosync statuslists Alice./xaerosync backupsand confirm Bob's prior set is available as a restore point./xaerosync unsubscribe Alice, update Alice again, and confirm Bob receives no prompt.Closes #5.