diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/SnifferEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/SnifferEntity.java index cb1995f0c..24a9ec876 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/SnifferEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/SnifferEntity.java @@ -84,6 +84,10 @@ public class SnifferEntity extends AnimalEntity implements Tickable { if (this.flags.contains(EntityFlag.DIGGING)) { digTicks = DIG_END; + } else { + // Handles situations where the DIGGING state is exited earlier than expected, + // such as hitting the sniffer or joining the game while it is digging + digTicks = 0; } } @@ -99,7 +103,7 @@ public class SnifferEntity extends AnimalEntity implements Tickable { levelEventPacket.setType(LevelEvent.PARTICLE_DESTROY_BLOCK_NO_SOUND); levelEventPacket.setPosition(pos); levelEventPacket.setData(blockId); - session.getUpstream().sendPacket(levelEventPacket); + session.sendUpstreamPacket(levelEventPacket); if (digTicks % 10 == 0) { LevelSoundEventPacket levelSoundEventPacket = new LevelSoundEventPacket();