Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ public void onEnable() {

getProxy()
.getPluginManager()
.registerListener(this, new PlayerListener(core.getCorePlayerListener()));
.registerListener(this, new PlayerListener(core.getCorePlayerListener(), bungeeLogger));

getProxy()
.getPluginManager()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import net.md_5.bungee.api.plugin.Listener;
import net.md_5.bungee.event.EventHandler;
import xyz.earthcow.networkjoinmessages.bungee.BungeeMain;
import xyz.earthcow.networkjoinmessages.bungee.abstraction.BungeeLogger;
import xyz.earthcow.networkjoinmessages.bungee.abstraction.BungeePlayer;
import xyz.earthcow.networkjoinmessages.bungee.abstraction.BungeeServer;
import xyz.earthcow.networkjoinmessages.common.abstraction.CorePlayer;
Expand All @@ -16,9 +17,11 @@
public class PlayerListener implements Listener {

private final CorePlayerListener corePlayerListener;
private final BungeeLogger logger;

public PlayerListener(CorePlayerListener corePlayerListener) {
public PlayerListener(CorePlayerListener corePlayerListener, BungeeLogger logger) {
this.corePlayerListener = corePlayerListener;
this.logger = logger;
}

@EventHandler
Expand All @@ -42,8 +45,10 @@ public void onServerConnected(ServerConnectedEvent e) {
@EventHandler
public void onDisconnect(PlayerDisconnectEvent event) {
// Check that the player disconnected is not a duplicate user session (the same account tries to join the server while already joined)
CorePlayer corePlayer = BungeeMain.getInstance().getOrPutPlayer(new BungeePlayer(event.getPlayer()));
if (corePlayer.getConnectionIdentity() != System.identityHashCode(event.getPlayer())) {
CorePlayer corePlayer = BungeeMain.getInstance().getPlayerManager().getPlayer(event.getPlayer().getUniqueId());
if (corePlayer == null || corePlayer.getConnectionIdentity() != System.identityHashCode(event.getPlayer())) {
logger.debug("Ignoring disconnect event for " + (corePlayer == null ? "null" : corePlayer.getName())
+ " (" + event.getPlayer().getName() + ") - null or duplicate player identity");
return;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ public void onProxyInitialization(ProxyInitializeEvent event) {
velocityLogger.info("Successfully hooked into PremiumVanish!");
}

proxy.getEventManager().register(this, new PlayerListener(core.getCorePlayerListener()));
proxy.getEventManager().register(this, new PlayerListener(core.getCorePlayerListener(), velocityLogger));

registerCommands();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,18 @@
import xyz.earthcow.networkjoinmessages.common.abstraction.CorePlayer;
import xyz.earthcow.networkjoinmessages.common.listeners.CorePlayerListener;
import xyz.earthcow.networkjoinmessages.velocity.VelocityMain;
import xyz.earthcow.networkjoinmessages.velocity.abstraction.VelocityLogger;
import xyz.earthcow.networkjoinmessages.velocity.abstraction.VelocityPlayer;
import xyz.earthcow.networkjoinmessages.velocity.abstraction.VelocityServer;

public class PlayerListener {

private final CorePlayerListener corePlayerListener;
private final VelocityLogger logger;

public PlayerListener(CorePlayerListener corePlayerListener) {
public PlayerListener(CorePlayerListener corePlayerListener, VelocityLogger logger) {
this.corePlayerListener = corePlayerListener;
this.logger = logger;
}

@Subscribe
Expand All @@ -36,11 +39,12 @@ public void onServerConnected(ServerConnectedEvent event) {
@Subscribe
public void onDisconnect(DisconnectEvent event) {
// Check that the player disconnected is not a duplicate user session (the same account tries to join the server while already joined)
CorePlayer corePlayer = VelocityMain.getInstance().getOrPutPlayer(new VelocityPlayer(event.getPlayer()));
if (corePlayer.getConnectionIdentity() != System.identityHashCode(event.getPlayer())) {
CorePlayer corePlayer = VelocityMain.getInstance().getPlayerManager().getPlayer(event.getPlayer().getUniqueId());
if (corePlayer == null || corePlayer.getConnectionIdentity() != System.identityHashCode(event.getPlayer())) {
logger.debug("Ignoring disconnect event for " + (corePlayer == null ? "null" : corePlayer.getName())
+ " (" + event.getPlayer().getUsername() + ") - null or duplicate player identity");
return;
}

corePlayerListener.onDisconnect(corePlayer);
}
}
Loading