Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Floodgate (plugin) support #328

Closed
Patbox opened this issue Apr 22, 2020 · 45 comments · Fixed by #494
Closed

Floodgate (plugin) support #328

Patbox opened this issue Apr 22, 2020 · 45 comments · Fixed by #494
Labels
enhancement New feature or change request

Comments

@Patbox
Copy link

Patbox commented Apr 22, 2020

Floodgate is a plugin, that adds better integration with Geyser (proxy).

Is your feature request related to a problem? Please describe.

When you setup flodgate, you can set prefix to bedrock player's names, so they will not overlap with java ones. But FastLogin prevents this functionality (aka no prefix)

Describe the solution you'd like

Add support to Floodgate/Make that FastLogin gets username after prefix is added.

Describe alternatives you've considered

If you want use prefixes, there isn't any.

Additional context

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

@Patbox Patbox added the enhancement New feature or change request label Apr 22, 2020
@games647
Copy link
Owner

Do you specifically have this problem with BungeeCord or Spigot? BungeeCord shouldn't cause much issues, because it uses normal online mode connections. Only the offline UUID is set manually for online mode connections.

@Patbox
Copy link
Author

Patbox commented Apr 23, 2020

With Spigot. Also there is log, when player's login

[12:41:58 INFO]: [Geyser-Bukkit] Player connected with username TriadicPatbox
[12:42:01 INFO]: [Geyser-Bukkit] Attempting to login using floodgate mode... authentication will be encrypted
[12:42:01 INFO]: [Geyser-Bukkit] Loaded Floodgate key!
[12:42:01 INFO]: [Geyser-Bukkit] TriadicPatbox (logged in as: TriadicPatbox) has connected to remote java server on address 127.0.0.1
[12:42:01 INFO]: [floodgate-bukkit] Added $TriadicPatbox 00000000-0000-0000-0009-01fe4fcae617
[12:42:01 INFO]: UUID of player TriadicPatbox is 00000000-0000-0000-0009-01fe4fcae617
[12:42:01 INFO]: TriadicPatbox[/127.0.0.1:40598] logged in with entity id 2081 at ([world]239.7, 68.0, 390.2451)
[12:42:01 INFO]: » [Gracz] TriadicPatbox dołączył(a) do gry!
[12:42:01 INFO]: [Geyser-Bukkit] Spawned player at 239.7 68.0 390.2451
[12:42:01 INFO]: [AuthMe] TriadicPatbox logged in!

@Patbox
Copy link
Author

Patbox commented Apr 25, 2020

I have 2 ideas how to solving the problem with prefixes:

  • Verify the players a little later, so the floodgate can change the name.
  • Add detecting if someone enters with Bedrock (floodgate has api for it) and giving him a prefix manually (from the FastLogin configuration) + autologin

@XANT3R
Copy link

XANT3R commented May 4, 2020

I join the request. Will something be done about it? :)

@compieter-gh
Copy link

I join too want this was just about too make an request but someone was already faster than me.

@Patbox
Copy link
Author

Patbox commented Jun 5, 2020

FastLogin should support it. Autologin (and prefixes) for Bedrock players would be useful (especially for those playing the phone). And I think Floodgate has all API needed for it.

@games647
Copy link
Owner

games647 commented Jun 6, 2020

As far as I understand Bedrock players will connect to different hostname this will be the proxy for them. In the end all players regardless of the client type will still connect to the same BungeeCord proxy. Is that correct?

@Patbox
Copy link
Author

Patbox commented Jun 6, 2020

Something like that. Gayser have 3 buildin auth modes - Offline (allows to play on offline mode servers), Online (allows to play on any server, but it requires to login into premium
account) and Floodgate (allows to join to Online mode servers with Floodgate plugin without need for login). The first two are mostly used by players using geyser. Floodgate (one people there are intrested) need to be configured. While it's in use, Bedrock players should get additional prefix (* by default), which doesn't work with FastLogin.

The bedrock login process looks like that:
Geyser (plugin versions also works as proxy) -> Target server (Spigot/Bungee/etc).
If target server has Floodgate, it changes some data while login process.

For more info you should check GeyserMC's discord (http://discord.geysermc.org/), they will probably help you more with it than I can.

@paplyk

This comment has been minimized.

@yashendra2797

This comment has been minimized.

@yashendra2797
Copy link

Thank you so much for the update!

@Patbox
Copy link
Author

Patbox commented Jun 9, 2020

I tested latest build and it doesn't work to me. I'm using geyser/floodgate with Tuinity (fork of paper) without bungeecord. From commit it looks like you've added support only for bungee.

@games647
Copy link
Owner

games647 commented Jun 9, 2020

My bad looks like I misunderstood the architecture. I'll add it.

@Tim203
Copy link

Tim203 commented Jun 10, 2020

If you miss something or would like to see something changed, feel free to make a feature request or contact me on Discord.

@XANT3R
Copy link

XANT3R commented Jun 14, 2020

@games647 When will this be fixed in Tuinity (Paper Fork)?

@games647
Copy link
Owner

The problem is that both FastLogin and Floodgate operate on packet/protocol level. This makes it harder to retrieve the data. FloodGate provides method to check if player is bridged by using the player instance or using the UUID.

The player instance isn't available at this stage and the UUID has to be retrieved using Reflection on the spoofed UUID. There is no API to check for the spoofed UUID. Furthermore ProtocolSupport seems to have no way in their API to access the spoofed UUID. So that's the remaining part that still complicated to solve.

@games647 games647 reopened this Jun 14, 2020
@Tim203
Copy link

Tim203 commented Jun 14, 2020

If Floodgate runs the channelRead0 before FastLogin (don't know about that) then you should be able to just use the data in the Handshake packet since we edit the hostname of the handshake packet to the correct format after we have the data we need, but that is only the case if the data comes from Bungee (or Velocity with legacy mode). If the data doesn't come from Bungee, but straight from the client then we use the spoofedUUID. Since most people use it with Bungeecord you should be fine, but I can also add a getSpoofedUUID(Channel) to the PacketHandler class or something like that (maybe even a getFloodgatePlayer(Channel) or isBedrockPlayer(Channel)) so it'll work always if you prefer that.

@XANT3R

This comment has been minimized.

@Patbox
Copy link
Author

Patbox commented Jun 28, 2020

Has something changed about this?

@paplyk
Copy link

paplyk commented Jun 28, 2020

We waiting for it.

@HandyHat
Copy link

HandyHat commented Jul 6, 2020

Weird quirk I've found - getting a floodgate player to login for the first time when fast login isn't present on the server means that they keep their prefix even when fast login is added to the server later and they login. Technically this is a work-around, though it would be much better to get actual support (especially as floodgate support is being advertised as a feature)

@yashendra2797
Copy link

So does FL work with Bungee+Floodgate? Is it only Bukkit/Spigot support that's not working?

@XANT3R
Copy link

XANT3R commented Jul 18, 2020

@games647 Will you do it later this year?

@MStankiewiczOfficial

This comment has been minimized.

@iSilviu-debug

This comment has been minimized.

@Tim203
Copy link

Tim203 commented Aug 24, 2020

Just as a quick note for the upcoming 2.0, I implemented a AttributeKey that contains the FloodgatePlayer class (named floodgate-player). So you should have access to basically everything you need ^

@TeYroXOfficial

This comment has been minimized.

@LoXR

This comment has been minimized.

@wtlgo

This comment has been minimized.

@XANT3R
Copy link

XANT3R commented Oct 26, 2020

I am afraid FastLogin is dead.

@HandyHat
Copy link

What do you mean @XANT3R

@XANT3R
Copy link

XANT3R commented Oct 26, 2020

@HandyHat See when the last plugin update was released on https://ci.codemc.io/job/Games647/job/FastLogin/changes and
and when was the last time he did something on github with this plugin.

@HandyHat
Copy link

I mean the repository was updated just 14 days ago, so I still have hope...

@Patbox
Copy link
Author

Patbox commented Oct 26, 2020

The last update in this repo has been made by dependabot (bot, not creator). This plugin feels little abandoned

@HandyHat
Copy link

Oh yes, you are right.

@MichailiK
Copy link

A plugin isn't necessarily abandoned just because there's a lack of frequent commits. The maintainer may just be busy with their own life.
Schools, Universities etc. have been opening up for a while now, which could explain the Maintainer's current absence.

@LoXR
Copy link

LoXR commented Dec 12, 2020

Is there any update on this? Would love my bedrock players on my Network to be able to autologin, and not needing to /register & /login.

@iSilviu-debug
Copy link

Is there any update on this? Would love my bedrock players on my Network to be able to autologin, and not needing to /register & /login.

idem

@XANT3R
Copy link

XANT3R commented Dec 12, 2020

Is there any update on this? Would love my bedrock players on my Network to be able to autologin, and not needing to /register & /login.

Never

@djylb
Copy link

djylb commented Jan 15, 2021

BedrockPlayerManager may work. You just need to set '- authme forcelogin {player}'.

@iSilviu-debug
Copy link

BedrockPlayerManager may work. You just need to set '- authme forcelogin {player}'.

what do you mean

@LoXR
Copy link

LoXR commented Jan 15, 2021

BedrockPlayerManager may work. You just need to set '- authme forcelogin {player}'.

what do you mean

Its part of the command line to add in the plugin, so it auto-logs (forcelogins) bedrock players.

@Patbox
Copy link
Author

Patbox commented Jan 15, 2021

BedrockPlayerManager may work. You just need to set '- authme forcelogin {player}'.

It's just a not so great workaround. FastLogin still breaks stuff

@Wolfcoool
Copy link

Any updates on this? It says under features "Support for Bedrock players proxied through FloodGate" but I can't seem to get it to work.

@LoXR
Copy link

LoXR commented Mar 16, 2021

Any updates on this? It says under features "Support for Bedrock players proxied through FloodGate" but I can't seem to get it to work.

You are better off using an alternative. May need to pay for it, but has worked wonders for me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or change request
Projects
None yet
Development

Successfully merging a pull request may close this issue.