From 61a1ddd3fd7b0ba336ff851002888d83e66e66a5 Mon Sep 17 00:00:00 2001 From: Aurorawr <100384210+Novampr@users.noreply.github.com> Date: Tue, 5 Aug 2025 16:49:06 +0000 Subject: [PATCH] Handle Happy Ghast shearing on interact (#5729) * Handle Happy Ghast shearing on interact * Use the correct interactive tag, fix requirements to be able to shear off the harness --- .../entity/type/living/animal/HappyGhastEntity.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/HappyGhastEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/HappyGhastEntity.java index 8ee084c04..bdd8fe305 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/HappyGhastEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/animal/HappyGhastEntity.java @@ -39,6 +39,7 @@ import org.geysermc.geyser.entity.vehicle.ClientVehicle; import org.geysermc.geyser.entity.vehicle.HappyGhastVehicleComponent; import org.geysermc.geyser.entity.vehicle.VehicleComponent; import org.geysermc.geyser.inventory.GeyserItemStack; +import org.geysermc.geyser.item.Items; import org.geysermc.geyser.item.type.Item; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.session.cache.tags.ItemTag; @@ -126,8 +127,12 @@ public class HappyGhastEntity extends AnimalEntity implements ClientVehicle { // Harnesses the ghast return InteractiveTag.EQUIP_HARNESS; } + } else if (itemInHand.asItem() == Items.SHEARS) { + if (this.canShearEquipment() && !session.isSneaking()) { + // Shears the harness off of the ghast + return InteractiveTag.REMOVE_HARNESS; + } } - // TODO: Handle shearing the harness off } if (this.equipment.get(EquipmentSlot.BODY) != null && !session.isSneaking()) { @@ -151,8 +156,12 @@ public class HappyGhastEntity extends AnimalEntity implements ClientVehicle { // Harnesses the ghast return InteractionResult.SUCCESS; } + } else if (itemInHand.asItem() == Items.SHEARS) { + if (this.canShearEquipment() && !session.isSneaking()) { + // Shears the harness off of the ghast + return InteractionResult.SUCCESS; + } } - // TODO: Handle shearing the harness off } if (this.equipment.get(EquipmentSlot.BODY) == null && !session.isSneaking()) {