From c2be7a181da8c72bbb143aed318b185b62b77dda Mon Sep 17 00:00:00 2001 From: rtm516 Date: Tue, 7 Jul 2020 16:11:52 +0100 Subject: [PATCH] Fix Piglin bartering animation (Fixes #863) --- .../connector/entity/living/monster/PiglinEntity.java | 10 ++++++++++ .../network/translators/item/ItemRegistry.java | 2 ++ 2 files changed, 12 insertions(+) diff --git a/connector/src/main/java/org/geysermc/connector/entity/living/monster/PiglinEntity.java b/connector/src/main/java/org/geysermc/connector/entity/living/monster/PiglinEntity.java index 78a420b8..ae9319ef 100644 --- a/connector/src/main/java/org/geysermc/connector/entity/living/monster/PiglinEntity.java +++ b/connector/src/main/java/org/geysermc/connector/entity/living/monster/PiglinEntity.java @@ -31,6 +31,7 @@ import com.nukkitx.protocol.bedrock.data.entity.EntityData; import com.nukkitx.protocol.bedrock.data.entity.EntityFlag; import org.geysermc.connector.entity.type.EntityType; import org.geysermc.connector.network.session.GeyserSession; +import org.geysermc.connector.network.translators.item.ItemRegistry; public class PiglinEntity extends MonsterEntity { @@ -56,4 +57,13 @@ public class PiglinEntity extends MonsterEntity { super.updateBedrockMetadata(entityMetadata, session); } + + @Override + public void updateEquipment(GeyserSession session) { + // Check if the Piglin is holding Gold and set the ADMIRING flag accordingly + metadata.getFlags().setFlag(EntityFlag.ADMIRING, offHand.getId() == ItemRegistry.GOLD); + super.updateBedrockMetadata(session); + + super.updateEquipment(session); + } } diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/item/ItemRegistry.java b/connector/src/main/java/org/geysermc/connector/network/translators/item/ItemRegistry.java index 23c566d7..bf3769ed 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/item/ItemRegistry.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/item/ItemRegistry.java @@ -60,6 +60,8 @@ public class ItemRegistry { public static final int SHIELD = 829; // Boat ID, used in BedrockInventoryTransactionTranslator.java public static final int BOAT = 333; + // Gold ID, used in PiglinEntity.java + public static final int GOLD = 266; public static int BARRIER_INDEX = 0;