From 18bab1aa9fc8a217fb43dab037803346be4060d1 Mon Sep 17 00:00:00 2001 From: Camotoy <20743703+Camotoy@users.noreply.github.com> Date: Sun, 14 Dec 2025 21:26:20 -0500 Subject: [PATCH] Fix some Nautilus interactive tags Adding armor to a Nautilus also causes you to mount it. Needs taking a look at. --- .../animal/nautilus/AbstractNautilusEntity.java | 11 +++++++---- .../java/org/geysermc/geyser/util/InteractiveTag.java | 4 +++- 2 files changed, 10 insertions(+), 5 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 6f39e5387..839edd803 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 @@ -89,16 +89,19 @@ public abstract class AbstractNautilusEntity extends TameableEntity implements C } if (getFlag(EntityFlag.TAMED)) { - if (itemInHand.asItem().javaIdentifier().endsWith("_nautilus_armor") && !getItemInSlot(EquipmentSlot.BODY).isEmpty() && !getFlag(EntityFlag.BABY)) { - return InteractiveTag.EQUIP_WOLF_ARMOR; // TODO + if (itemInHand.asItem().javaIdentifier().endsWith("_nautilus_armor") && getItemInSlot(EquipmentSlot.BODY).isEmpty() && !getFlag(EntityFlag.BABY)) { + return InteractiveTag.EQUIP_NAUTILUS_ARMOR; } if (itemInHand.is(Items.SHEARS) && !getItemInSlot(EquipmentSlot.BODY).isEmpty() && (!isCurseOfBinding || session.getGameMode().equals(GameMode.CREATIVE))) { - return InteractiveTag.REMOVE_WOLF_ARMOR; // TODO + return InteractiveTag.REMOVE_NAUTILUS_ARMOR; } if (itemInHand.is(session, repairableItems) && !getItemInSlot(EquipmentSlot.BODY).isEmpty() && getItemInSlot(EquipmentSlot.BODY).isDamaged()) { - return InteractiveTag.REPAIR_WOLF_ARMOR; // TODO + return InteractiveTag.REPAIR_WOLF_ARMOR; + } + if (itemInHand.isEmpty()) { + return InteractiveTag.RIDE_HORSE; // Does not appear to be a specific interaction for Nautilus; needs ProxyPass verification } } else if (getFlag(EntityFlag.BABY) || getFlag(EntityFlag.TAMED)) { if (itemInHand.is(session, ItemTag.NAUTILUS_FOOD)) { diff --git a/core/src/main/java/org/geysermc/geyser/util/InteractiveTag.java b/core/src/main/java/org/geysermc/geyser/util/InteractiveTag.java index d9f9b5f7a..7189cc849 100644 --- a/core/src/main/java/org/geysermc/geyser/util/InteractiveTag.java +++ b/core/src/main/java/org/geysermc/geyser/util/InteractiveTag.java @@ -80,7 +80,9 @@ public enum InteractiveTag { SCRAPE, WAX_ON, WAX_OFF, - DROP_ITEM; + DROP_ITEM, + EQUIP_NAUTILUS_ARMOR("equipnautilusarmor"), + REMOVE_NAUTILUS_ARMOR("removenautilusarmor"); /** * The full string that should be passed on to the client.