Repository navigation
docs(login-plugins): publish the connect-player integration contract - #175
Merged
minekube-ai-engineer[bot] merged 1 commit intoSep 28, 2026
Merged
Conversation
Deploying connect-minekube with
|
| Latest commit: |
e7f8e8c
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://cfbf0a51.connect-minekube.pages.dev |
| Branch Preview URL: | https://docs-login-plugin-integratio.connect-minekube.pages.dev |
minekube-ai-engineer Bot
added a commit
to minekube/connect-java
that referenced
this pull request
Sep 28, 2026
…173) Source: https://discord.com/channels/633708750032863232/1522200086648721498 The connect-player contract was repo-only (the public route 404'd). The public copy now lives at https://connect.minekube.com/guide/login-plugin-integration (minekube/connect#175, merge 6df3ff8); this adds the back-reference from the connector-repo document so the two copies stay in step. Docs-only: a docs: commit does not cut a stable release per this repo's release flow.
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.
Source: Discord ask-support thread
Source: Discord ask-support thread — the user report ("LOGINTO" auth plugin + Connect-tunneled Paper join never completes) that surfaced these content gaps. Verdict of the investigation: plugin-side limitation, not a Connect defect (kanban
t_644bb679).Why
Three public-content gaps were verified against the live site and
main(2026-09-28). All three misroute support answers today; none is a code defect.1. The
connect-playercontract was repo-onlyhttps://connect.minekube.com/guide/login-plugin-integration.md→ 404; the public guide has no route for it..web/docs/guide/contained onlylogin-plugins.mdon this topic. The contract lived inconnect-java/docs/login-plugin-integration.md, which plugin authors reading the public guide cannot find.Fix: new page
.web/docs/guide/login-plugin-integration.md+ a sidebar entry next to Login and Auth Plugins. It publishes the contract a plugin author needs: the exact attribute nameconnect-player(permanent), the Netty keyio.netty.util.AttributeKey.valueOf("connect-player"), theConnectAttributes.CONNECT_PLAYERconstant, theConnectPlayervalue type, the single set-site covering Velocity/BungeeCord/Spigot, "set before any login event", the passthrough-absent rule,ConnectApi.isConnectPlayer/getPlayerfor post-login checks, and the copy-paste Floodgate-style exemption recipe.Deliberately not duplicated: the operator-side
login-reassertconfig and ordering detail. That stays owned by/guide/login-plugins, and the new page links to it. Keeping one home per fact is why the page is an adapted copy rather than a dump of the connector-repo file.2. The rule table missed the packet-level mechanism
login-plugins.mddocumented only "can force online mode at pre-login" — a proxy/platform decision. A plugin that hooks the login packet and runs its ownEncryptionRequest+ Mojang sessionserver check (witness: LoginTo 4.0.x premium autologin, which cancels the login start, AES-encrypts the channel and only then replays a synthetic LoginStart) shows the same failure shape the page describes — never finishes joining, no kick message, nothing in the server log — from a different mechanism.v0.13.1+re-assert cannot help: it restores Connect's own login decision, it cannot answer a handshake another plugin is waiting on.3. The passthrough caveat was invisible
connect-playeris absent for passthrough sessions, so the documented "extend your Floodgate-style exemption toconnect-player" advice cannot fire on an offline-mode /allow-offline-mode-playersendpoint. Added where the exemption is recommended: the exemption only fires where Connect authenticated the session, so on those endpoints either the endpoint has to be sending Connect-authenticated players or the plugin's conflicting mode has to be turned off, and a support answer cannot recommend the marker route there. The same rule is stated in the contract page's attribute table and prose.Also
login-reassert(implemented on Velocity and BungeeCord only), so the marker is the Spigot-side integration path. Added to the re-assert section and to the contract page's operator pointer. Wording coordinated with the companion verification cardt_25fd50e8: this change claims only the verified absence of a floor, not a mechanism.compatibility.md(where support answers start), with the "High" verdict, the witness, "do not answer it with a Connect version upgrade", and the passthrough-endpoint caveat.Guards
.web/scripts/check-docs.mjsgains assertions pinning the new contract (attribute name, Netty key, constant, single set-site, set-before-events, passthrough-absent, the never-renamed sentence, the exemption recipe), the three newlogin-plugins.mdstatements, the Spigot scope note, the sidebar link inconfig.ts, and the compatibility row (witness + verdict). OneassertNotIncludesblocks the regression back to the ambiguousnever forces online mode | Compatible by designrow.Evidence, run locally on this exact tree (CI parity:
yarn install --immutablewithyarn@4.17.1frompackageManager, thenyarn build):yarn check:changelog-layout(Chrome geometry) is untouched by this diff and was not run locally (no browser on this host); it runs in the repo'sdocsCI job.Not a deploy
Merging does not publish. The docs site is deployed manually (canary → production custom hostname) and the live host currently serves a build older than 2026-09-13, so this page still 404s until a deploy runs. That deploy is tracked by kanban
t_c4b9534band needs a Cloudflare Workers credential plus Robin's explicit authorization for the production hostname; this PR deliberately does not duplicate it.Cross-repo note
minekube/connect-javakeeps its own copy atdocs/login-plugin-integration.mdfor plugin authors browsing the connector repo. This page points at it, and the connector-repo copy gains the matching back-reference in minekube/connect-java#173 (docs-only,docs:commit, no release impact) so the two copies stay in step.