Support Floodgate Global Linking#295
Conversation
|
I also made a yggdrasil-mock fork for demostration: tnqzh123/yggdrasil-mock You can set your own XUID in application.yml: https://github.com/tnqzh123/yggdrasil-mock/blob/ac792c2bca493eb4e13fcbd85e4fb9bd3e31c9bc/server/src/main/resources/default-application.yaml#L11-L13 |
|
To get the XUID of a Microsoft account, you can:
|
|
Interesting! This would support the following use case, correct?:
Adding this to authlib-injector would substantially expand its scope... So far, authlib-injector only overrides requests to Mojang URLs, and the authlib-injector API spec is mostly routes that are provided by Mojang, or were at some point. Floodgate is only needed on the MC server, not the client, right? A more conservative approach would be to have server admins configure Floodgate to point to a different endpoint (GeyserMC/Floodgate#675), which could happen to also be the authlib-injector server. It would be more like "Blessing Skin/Drasl implement both the GeyserMC Floodgate API AND the authlib-injector API" rather than "the authlib-injector API includes the Floodgate API". |
It will be great if Geyser is willing to do so! |
This Pull Request resolves #291.
Code generated by OpenAI Codex with GPT-5.5 xhigh.
To enable Floodgate Global Linking support, the auth server must add
feature.floodgate_global_linkingfeature flag to their metadata and implement APIs described below.APIs to implement
Endpoints
xuidis a 64-bit integer, anduuidcan be a UUID with or without dashes.Success Responses
The two APIs have the same JSON response:
{ "bedrock_id": 12345678901234567890, # XUID "java_id": "f702c5d3-9d5c-457f-80c6-91c664757092", # Java Edition UUID with dashes "java_name": "SSSSSteven", # Java Edition profile name "last_name_update": 1780453291994 # Unix timestamp of last profile name change }Error Responses
If no link exists for the specified UUID or XUID, these two APIs should respond
HTTP 200 OKwith an empty JSON object:{}If the provided
xuidoruuidis malformed, these two APIs should respondHTTP 400 Bad Requestwith the following JSON body:{ "message": "human readable error message" }References
Geyser REST APIs doc: