From 08ba82a44e20eb82fe056e4961ac8102b8baf9dc Mon Sep 17 00:00:00 2001 From: Camotoy <20743703+Camotoy@users.noreply.github.com> Date: Fri, 28 May 2021 20:38:17 -0400 Subject: [PATCH] GeyserOptionalPack support for zombie villager textures (#2237) Trade tier and profession now show on zombie villagers with this commit. --- .../living/merchant/VillagerEntity.java | 34 +++++++++---------- .../living/monster/ZombieVillagerEntity.java | 4 ++- connector/src/main/resources/mappings | 2 +- 3 files changed, 21 insertions(+), 19 deletions(-) diff --git a/connector/src/main/java/org/geysermc/connector/entity/living/merchant/VillagerEntity.java b/connector/src/main/java/org/geysermc/connector/entity/living/merchant/VillagerEntity.java index fa5785fe5..be4228830 100644 --- a/connector/src/main/java/org/geysermc/connector/entity/living/merchant/VillagerEntity.java +++ b/connector/src/main/java/org/geysermc/connector/entity/living/merchant/VillagerEntity.java @@ -46,7 +46,7 @@ public class VillagerEntity extends AbstractMerchantEntity { /** * A map of Java profession IDs to Bedrock IDs */ - private static final Int2IntMap VILLAGER_VARIANTS = new Int2IntOpenHashMap(); + public static final Int2IntMap VILLAGER_PROFESSIONS = new Int2IntOpenHashMap(); /** * A map of all Java region IDs (plains, savanna...) to Bedrock */ @@ -54,21 +54,21 @@ public class VillagerEntity extends AbstractMerchantEntity { static { // Java villager profession IDs -> Bedrock - VILLAGER_VARIANTS.put(0, 0); - VILLAGER_VARIANTS.put(1, 8); - VILLAGER_VARIANTS.put(2, 11); - VILLAGER_VARIANTS.put(3, 6); - VILLAGER_VARIANTS.put(4, 7); - VILLAGER_VARIANTS.put(5, 1); - VILLAGER_VARIANTS.put(6, 2); - VILLAGER_VARIANTS.put(7, 4); - VILLAGER_VARIANTS.put(8, 12); - VILLAGER_VARIANTS.put(9, 5); - VILLAGER_VARIANTS.put(10, 13); - VILLAGER_VARIANTS.put(11, 14); - VILLAGER_VARIANTS.put(12, 3); - VILLAGER_VARIANTS.put(13, 10); - VILLAGER_VARIANTS.put(14, 9); + VILLAGER_PROFESSIONS.put(0, 0); + VILLAGER_PROFESSIONS.put(1, 8); + VILLAGER_PROFESSIONS.put(2, 11); + VILLAGER_PROFESSIONS.put(3, 6); + VILLAGER_PROFESSIONS.put(4, 7); + VILLAGER_PROFESSIONS.put(5, 1); + VILLAGER_PROFESSIONS.put(6, 2); + VILLAGER_PROFESSIONS.put(7, 4); + VILLAGER_PROFESSIONS.put(8, 12); + VILLAGER_PROFESSIONS.put(9, 5); + VILLAGER_PROFESSIONS.put(10, 13); + VILLAGER_PROFESSIONS.put(11, 14); + VILLAGER_PROFESSIONS.put(12, 3); + VILLAGER_PROFESSIONS.put(13, 10); + VILLAGER_PROFESSIONS.put(14, 9); VILLAGER_REGIONS.put(0, 1); VILLAGER_REGIONS.put(1, 2); @@ -88,7 +88,7 @@ public class VillagerEntity extends AbstractMerchantEntity { if (entityMetadata.getId() == 17) { VillagerData villagerData = (VillagerData) entityMetadata.getValue(); // Profession - metadata.put(EntityData.VARIANT, VILLAGER_VARIANTS.get(villagerData.getProfession())); + metadata.put(EntityData.VARIANT, VILLAGER_PROFESSIONS.get(villagerData.getProfession())); //metadata.put(EntityData.SKIN_ID, villagerData.getType()); Looks like this is modified but for any reason? // Region metadata.put(EntityData.MARK_VARIANT, VILLAGER_REGIONS.get(villagerData.getType())); diff --git a/connector/src/main/java/org/geysermc/connector/entity/living/monster/ZombieVillagerEntity.java b/connector/src/main/java/org/geysermc/connector/entity/living/monster/ZombieVillagerEntity.java index c098fb5f6..c7fdc494a 100644 --- a/connector/src/main/java/org/geysermc/connector/entity/living/monster/ZombieVillagerEntity.java +++ b/connector/src/main/java/org/geysermc/connector/entity/living/monster/ZombieVillagerEntity.java @@ -48,8 +48,10 @@ public class ZombieVillagerEntity extends ZombieEntity { } if (entityMetadata.getId() == 19) { VillagerData villagerData = (VillagerData) entityMetadata.getValue(); - // Region - only one used on Bedrock + metadata.put(EntityData.VARIANT, VillagerEntity.VILLAGER_PROFESSIONS.get(villagerData.getProfession())); // Actually works properly with the OptionalPack metadata.put(EntityData.MARK_VARIANT, VillagerEntity.VILLAGER_REGIONS.get(villagerData.getType())); + // Used with the OptionalPack + metadata.put(EntityData.TRADE_TIER, villagerData.getLevel() - 1); } super.updateBedrockMetadata(entityMetadata, session); } diff --git a/connector/src/main/resources/mappings b/connector/src/main/resources/mappings index 53e13b7a0..c5925b01c 160000 --- a/connector/src/main/resources/mappings +++ b/connector/src/main/resources/mappings @@ -1 +1 @@ -Subproject commit 53e13b7a0d2ea14df71ed0c9582d29a9b4fb4453 +Subproject commit c5925b01cf8e7d8b284cf359e927145b9b4694aa