Skip to content

feat(party): bring the party back to the lobby with its leader - #21

Merged
TheMeinerLP merged 1 commit into
mainfrom
feat/follow-leader-to-lobby
Oct 28, 2026
Merged

TheMeinerLP merged 1 commit into
mainfrom
feat/follow-leader-to-lobby

Conversation

@TheMeinerLP

Copy link
Copy Markdown
Contributor

Proposed changes

On the team proxy, the party followed its leader into Bounce, but not back. After the leader's /lobby, the member stayed in the finished round. When they went to the lobby themselves, they landed on Lobby-1 while the leader was on Lobby-2. The party fell apart right after the game, when players expect it to stay together.

The proxy now asks for a warp on every move of a party leader from one server to another, and names the server the leader left. A member follows if they were on that server (they played together) or if they are idle in a lobby. A member in another game stays where they are.

That one rule covers all three cases:

  • Round ends (game → lobby): the co-players come along into the leader's lobby instance.
  • Into a game (lobby → game): lobby members follow, as before.
  • Lobby → lobby: the party gathers in one instance.

The first connection after login warps nothing, and /party warp keeps today's behaviour. The origin travels as an optional fromServer in the warp request and as from in the party.warp event. The 0.2.0 plugin ignores it, and a new plugin talking to the 0.2.0 service falls back to the lobby rule.

Implements the OpenSpec change follow-leader-to-lobby.

Types of changes

  • Bugfix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation Update (if none of the other choices apply)

Checklist

  • I have added tests that prove my fix is effective or that my feature works
  • I have added necessary documentation (if appropriate)

Further comments

Tests cover each move type, a first login, a member who moves on their own (no warp), an event without an origin, and mode always. Locally 237 backend unit tests and 129 plugin tests are green, and the generated client builds. The listener test uses small java.lang.reflect.Proxy stubs for Velocity's Player and RegisteredServer, because the plugin's tests have no mocking library.

@github-actions

Copy link
Copy Markdown
Contributor

Test results

  153 files    153 suites   1m 26s ⏱️
  403 tests   403 ✅  0 💤 0 ❌
1 209 runs  1 135 ✅ 74 💤 0 ❌

Results for commit e34c0a1.

@TheMeinerLP
TheMeinerLP merged commit 38d35c4 into main Oct 28, 2026
12 checks passed
@TheMeinerLP
TheMeinerLP deleted the feat/follow-leader-to-lobby branch October 28, 2026 21:51
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