games647 / FastLogin

Checks if a minecraft player has a valid paid account. If so, they can skip offline authentication automatically. (premium auto login)
https://www.spigotmc.org/resources/fastlogin.14153
MIT License
494 stars 121 forks source link

UUID get cleared if Login from Bedrock(Floodgate) #1246

Open HuJK opened 4 weeks ago

HuJK commented 4 weeks ago

What happened?

autoRegister: false
premiumUuid: true
nameChangeCheck: true
autoLogin: true
autoLoginFloodgate: linked
allowFloodgateNameConflict: linked

FastLogin should be able to remember the UUID of an player to do nameChangeCheck. But Login from Bedrock client by linked mode clears the UUID of the player.

Before Bedrock Login image

After Bedrock Login image

Steps to reproduce

  1. Install AuthME, FastLogin Geyser-Spigot Floodgate
  2. Register at FastLogin as premium user. Now it should be able to track name changes
  3. then link the bedrock account at Floodgate
  4. Login to the server at Bedrock client through Geyser-floodgate
  5. The UUID has been cleared at the FastLogin database.
  6. If user changes his name before next login at Java client, FastLogin can't reconize and treat him as a new user. (No UUID nor username not found in the database)

Plugin list

AuthME, FastLogin Geyser-Spigot Floodgate

Configuration file

autoRegister: false premiumUuid: true nameChangeCheck: true autoLogin: true

Server log

[02:42:50 INFO]: [Geyser-Spigot] Player connected with username WhoJK 
[02:42:50 INFO]: [Geyser-Spigot] WhoJK (logged in as: WhoJK) has connected to the Java server
[02:42:50 INFO]: [FastLogin] New incoming packet START[class=PacketLoginInStart, id=0] from UNKNOWN[/61.231.179.211:0]
[02:42:50 INFO]: [FastLogin] Skipping name conflict checking for player WhoJK
[02:42:51 INFO]: UUID of player WhoJK is 770f28e4-058e-4812-a8d1-75fb3732c25b
[02:42:51 INFO]: [floodgate] Floodgate player logged in as WhoJK joined (UUID: 770f28e4-058e-4812-a8d1-75fb3732c25b)
[02:42:52 INFO]: WhoJK joined the game
[02:42:52 INFO]: WhoJK[/61.231.179.211:0] logged in with entity id 772 at ([world]-178.77191, 73.0, -48.394512)
[02:42:52 INFO]: [FastLogin] Player WhoJK is connecting through Geyser Floodgate.
[02:42:52 INFO]: [FastLogin] Logging player WhoJK in
[02:42:52 INFO]: [AuthMe] WhoJK logged in 61.231.179.211

When [02:42:52 INFO]: [FastLogin] Player WhoJK is connecting through Geyser Floodgate. the UUID get cleared.

Plugin version

FastLogin v1.12-SNAPSHOT-4dd6b9a

Platform

Spigot

Relevance

HuJK commented 3 weeks ago

Player UUID get overwrited by session UUID(which is null) at ForceLoginManagement.java
image

image

It seems that this problem is caused by session UUID are not set if player login from Floodgate