LuckPerms

LuckPerms

41.4k Downloads

GeyserMC/Floodgate implementation possible?

DerLinkman opened this issue · 12 comments

commented

I would like to ask if a Floodgate implementation is possible.

What is Floodgate?
Floodgate is a login variant for the GeyserMC project which allows Bedrock users to join a Java server. The Floodgate variant is a hybrid between the online and offline authentication on server join. Floodgate allows Bedrock users to play on a Java server without a valid Java account.

The problem
The users who joined with a Bedrock client on a Java server don`t have a valid Mojang UUID/Name which conflicts with LuckPerms.

Therefore i want to ask if someone could implement the Floodgate login variant in Luckperms.

Important Links:
Floodgate: https://github.com/GeyserMC/Floodgate
GeyserMC: https://github.com/GeyserMC/Geyser

commented

Enable allow-invalid-usernames in the LP config. That's it.

commented

Any update on this? I still don't know how to give people in bedrock a certain group.

commented

Floodgate creates the UUID based on the Xbox UUID - because of this Floodgate UUIDs are easily identifiable by being filled with 0s for the first part of the Java UUID. I'll look into this today and see if I can get a PR going.

commented

Thanks for working on this @DoctorMacc
You are the best <3

commented

Not something I plan to work on anytime soon, but I'll happily accept a PR implementing support for this.

commented

Currently Floodgate seems to use the ID of the XBox account to generate the UUID.
Is this no good?

used Google Translate

commented

As long as a player has a UUID it'll work.

commented

Afaik it uses XUID

commented

Closing this in favour of the PR above

commented

As I'm thinking of the best way to implement this for Floodgate 2.0, I do have a question - why is allow-invalid-usernames a setting that defaults to false? Hypothetically, should that setting be removed and/or its true behavior being the standard, then Floodgate support is of no concern.

commented

Well, it's just a validation step, for example:

  • it stops people from mistyping UUIDs and having LP treat them as usernames
  • it prevents people from making typos in usernames and adding junk entries to their database or sending invalid UUID lookup requests to Mojang (or via the server cache)

There wasn't a good reason to not have validation for it, so the setting defaults to false

commented

Thank you for the response!