From f2ad5535dc786110976489f4dde752f8dc7f4d10 Mon Sep 17 00:00:00 2001 From: oryxel1 Date: Fri, 12 Dec 2025 19:01:35 +0700 Subject: [PATCH] Fixed nautilus dash cooldown, condition for canUseSlot. --- .../animal/nautilus/AbstractNautilusEntity.java | 11 ++++++++++- .../entity/vehicle/NautilusVehicleComponent.java | 5 +++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/nautilus/AbstractNautilusEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/nautilus/AbstractNautilusEntity.java index 3821ca418..6f39e5387 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/nautilus/AbstractNautilusEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/nautilus/AbstractNautilusEntity.java @@ -168,6 +168,15 @@ public abstract class AbstractNautilusEntity extends TameableEntity implements C @Override public boolean isClientControlled() { - return !this.passengers.isEmpty() && this.passengers.get(0) == session.getPlayerEntity(); + return getFlag(EntityFlag.SADDLED) && !this.passengers.isEmpty() && this.passengers.get(0) == session.getPlayerEntity(); + } + + @Override + protected boolean canUseSlot(EquipmentSlot slot) { + if (slot != EquipmentSlot.SADDLE && slot != EquipmentSlot.BODY) { + return super.canUseSlot(slot); + } else { + return isAlive() && !isBaby() && getFlag(EntityFlag.TAMED); + } } } diff --git a/core/src/main/java/org/geysermc/geyser/entity/vehicle/NautilusVehicleComponent.java b/core/src/main/java/org/geysermc/geyser/entity/vehicle/NautilusVehicleComponent.java index cee998fb9..17e15393d 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/vehicle/NautilusVehicleComponent.java +++ b/core/src/main/java/org/geysermc/geyser/entity/vehicle/NautilusVehicleComponent.java @@ -63,7 +63,9 @@ public class NautilusVehicleComponent extends VehicleComponent 0) { + // We don't check for dash cooldown here since we already send a vehicle jump packet beforehand, which the server can send us back + // the metadata that set dash cooldown before we can handle the input vector. + if (jumpStrength > 0) { final Vector3f viewVector = MathUtils.calculateViewVector(player.getPitch(), player.getYaw()); float movementMultiplier = getVelocityMultiplier(ctx); @@ -99,7 +101,6 @@ public class NautilusVehicleComponent extends VehicleComponent 0); vehicle.updateBedrockMetadata(); }