Skip to content

feat(hooks): optional auto login and registration for Floodgate (Bedrock) players - #3173

Open
eduardomazolini wants to merge 1 commit into
AuthMe:masterfrom
eduardomazolini:feat/floodgate-auto-login
Open

eduardomazolini wants to merge 1 commit into
AuthMe:masterfrom
eduardomazolini:feat/floodgate-auto-login

Conversation

@eduardomazolini

@eduardomazolini eduardomazolini commented Oct 18, 2026 •

Copy link
Copy Markdown

Closes #3112

Why

Bedrock players joining through Geyser/Floodgate have already been verified by their Xbox account, but AuthMe still
asks them for a password. On a phone keyboard this is a frequent source of trouble: the pre-join dialog times out
while they type the password twice, and auto-capitalization/autocorrect produce "wrong password" kicks. Many Bedrock
players are young kids (as noted in #3112), and we hit exactly this on our school server.

What

Two new options, both disabled by default:

Hooks:
    floodgate:
        autoLogin: false     # log in registered Bedrock players on join, skip the pre-join dialog
        autoRegister: false  # register Bedrock players without an account (random password) and log them in
  • FloodgateService asks Floodgate (FloodgateApi#isFloodgatePlayer(UUID)) whether the connecting UUID is a Bedrock
    player. Floodgate is accessed by reflection, the same way PaperDialogFlowListener already talks to ViaVersion, so
    it stays an optional runtime dependency and no new repository/dependency is added to the build.
  • PaperDialogFlowListener: skips the pre-join dialog for those players (like the verified premium path).
  • AsynchronousJoin: force-logs registered Bedrock players in (next to the premium bypass), or registers them through
    the existing API_REGISTRATION flow with a random password that satisfies the configured length limits.
  • Java players are never affected: the decision is based on the UUID Floodgate reports, not on the name prefix, so a
    Java client using a name like .Steve still has to log in.
  • docs/config.md regenerated (only the new section kept).

Tests

  • New unit tests in AsynchronousJoinTest (auto login without limbo, auto register with a 24-char random password)
    and PaperDialogFlowListenerTest (dialog skipped for registered and unregistered Bedrock players).
  • mvn test -am -pl authme-paper-common,authme-paper: 1584 tests, 0 failures.
  • Running on a real Paper 26.2 server (Geyser 2.11.3, Floodgate 2.2.5 b141, offline mode, whitelist on) with the
    options enabled:
    • registered Bedrock players joined without any dialog (The Bedrock player .X has been automatically logged in);
    • a new Bedrock player was registered and logged in on first join (... automatically registered);
    • Java players on the same server still got the pre-join login dialog as before.

…ock) players

Bedrock players connecting through Geyser/Floodgate have already been
verified by their Xbox account, but AuthMe still asks them for a password.
Typing it on a phone keyboard is a common source of timeouts and wrong
passwords, especially for young players.

Add two options, both disabled by default:
- Hooks.floodgate.autoLogin: log in registered Bedrock players on join
  and skip the Paper pre-join dialog.
- Hooks.floodgate.autoRegister: register Bedrock players that have no
  account yet with a random password and log them in.

Floodgate is detected at runtime by reflection (like ViaVersion), so it
stays an optional dependency. Java players are never affected: only UUIDs
that Floodgate reports as Bedrock players qualify.

Refs AuthMe#3112
@eduardomazolini
eduardomazolini force-pushed the feat/floodgate-auto-login branch from 423384c to 77a603b Compare October 18, 2026 20:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

auto login bedrock

1 participant