Add DisconnectEvent#disconnectedDuringLogin()

This commit is contained in:
Andrew Steinborn
2019-12-24 23:56:39 -05:00
parent 4c09024952
commit fb0446f4fc
2 changed files with 16 additions and 2 deletions

View File

@@ -10,19 +10,31 @@ import com.velocitypowered.api.proxy.Player;
public final class DisconnectEvent {
private final Player player;
private final boolean disconnectedDuringLogin;
public DisconnectEvent(Player player) {
this(player, false);
}
public DisconnectEvent(Player player,
boolean disconnectedDuringLogin) {
this.player = Preconditions.checkNotNull(player, "player");
this.disconnectedDuringLogin = disconnectedDuringLogin;
}
public Player getPlayer() {
return player;
}
public boolean disconnectedDuringLogin() {
return this.disconnectedDuringLogin;
}
@Override
public String toString() {
return "DisconnectEvent{"
+ "player=" + player
+ "player=" + player + ", "
+ "disconnectedDuringLogin=" + disconnectedDuringLogin
+ '}';
}
}

View File

@@ -571,8 +571,10 @@ public class ConnectedPlayer implements MinecraftConnectionAssociation, Player {
if (connectedServer != null) {
connectedServer.disconnect();
}
boolean isConnected = server.getPlayer(this.getUniqueId()).isPresent();
server.unregisterConnection(this);
server.getEventManager().fire(new DisconnectEvent(this))
server.getEventManager().fire(new DisconnectEvent(this, !isConnected))
.thenRun(() -> this.teardownFuture.complete(null));
}