Skip to content

Commit

Permalink
GeyserOptionalPack support for zombie villager textures (GeyserMC#2237)
Browse files Browse the repository at this point in the history
Trade tier and profession now show on zombie villagers with this commit.
  • Loading branch information
Camotoy authored May 29, 2021
1 parent 40d1e39 commit 08ba82a
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -46,29 +46,29 @@ 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
*/
public static final Int2IntMap VILLAGER_REGIONS = new Int2IntOpenHashMap();

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);
Expand All @@ -88,7 +88,7 @@ public void updateBedrockMetadata(EntityMetadata entityMetadata, GeyserSession s
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()));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,10 @@ public void updateBedrockMetadata(EntityMetadata entityMetadata, GeyserSession s
}
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);
}
Expand Down
2 changes: 1 addition & 1 deletion connector/src/main/resources/mappings
Submodule mappings updated 1 files
+44 −86 particles.json

0 comments on commit 08ba82a

Please sign in to comment.