2929import com .github .games647 .fastlogin .bukkit .BukkitLoginSession ;
3030import com .github .games647 .fastlogin .bukkit .FastLoginBukkit ;
3131import com .github .games647 .fastlogin .bukkit .event .BukkitFastLoginPreLoginEvent ;
32+ import com .github .games647 .fastlogin .bukkit .hook .floodgate .FloodgateHook ;
3233import com .github .games647 .fastlogin .core .RateLimiter ;
3334import com .github .games647 .fastlogin .core .StoredProfile ;
3435import com .github .games647 .fastlogin .core .shared .JoinManagement ;
3738import java .net .InetSocketAddress ;
3839import java .util .Optional ;
3940
40- import org .bukkit .Bukkit ;
4141import org .bukkit .command .CommandSender ;
4242import org .bukkit .entity .Player ;
4343import org .bukkit .event .EventHandler ;
4444import org .bukkit .event .Listener ;
45+ import org .geysermc .floodgate .api .player .FloodgatePlayer ;
46+
4547import protocolsupport .api .events .ConnectionCloseEvent ;
4648import protocolsupport .api .events .PlayerLoginStartEvent ;
4749import protocolsupport .api .events .PlayerProfileCompleteEvent ;
@@ -51,12 +53,14 @@ public class ProtocolSupportListener extends JoinManagement<Player, CommandSende
5153
5254 private final FastLoginBukkit plugin ;
5355 private final RateLimiter rateLimiter ;
56+ private final FloodgateHook floodgateHook ;
5457
5558 public ProtocolSupportListener (FastLoginBukkit plugin , RateLimiter rateLimiter ) {
5659 super (plugin .getCore (), plugin .getCore ().getAuthPluginHook ());
5760
5861 this .plugin = plugin ;
5962 this .rateLimiter = rateLimiter ;
63+ this .floodgateHook = new FloodgateHook (plugin );
6064 }
6165
6266 @ EventHandler
@@ -76,7 +80,17 @@ public void onLoginStart(PlayerLoginStartEvent loginStartEvent) {
7680 //remove old data every time on a new login in order to keep the session only for one person
7781 plugin .removeSession (address );
7882
79- super .onLogin (username , new ProtocolLoginSource (loginStartEvent ));
83+ ProtocolLoginSource source = new ProtocolLoginSource (loginStartEvent );
84+
85+ //check if the player is connecting through Floodgate
86+ FloodgatePlayer floodgatePlayer = floodgateHook .getFloodgatePlayer (username );
87+
88+ if (floodgatePlayer != null ) {
89+ floodgateHook .checkNameConflict (username , source , floodgatePlayer );
90+ } else {
91+ //do Java login tasks
92+ super .onLogin (username , source );
93+ }
8094 }
8195
8296 @ EventHandler
0 commit comments