diff --git a/core/src/main/java/org/geysermc/geyser/session/GeyserSession.java b/core/src/main/java/org/geysermc/geyser/session/GeyserSession.java index 59b309659..6c5940128 100644 --- a/core/src/main/java/org/geysermc/geyser/session/GeyserSession.java +++ b/core/src/main/java/org/geysermc/geyser/session/GeyserSession.java @@ -2187,6 +2187,11 @@ public class GeyserSession implements GeyserConnection, GeyserCommandSource { @Override public int ping() { + // Can otherwise cause issues if the player isn't logged in yet / already left + if (getUpstream().isInitialized() || getUpstream().isClosed()) { + return 0; + } + RakSessionCodec rakSessionCodec = ((RakChildChannel) getUpstream().getSession().getPeer().getChannel()).rakPipeline().get(RakSessionCodec.class); return (int) Math.floor(rakSessionCodec.getPing()); }