/** * Updates a villager entity with the zombie info this object is tracking. * * @param villager */ public void updateVillager(EntityVillager villager) { // Note: I must trust that this object actually contain a zombie info. If not, the cast below // will fail. final ExtendedVillagerZombie properties = (ExtendedVillagerZombie) this.getObject(); // Custom name if (this.getCustomName() != "") { villager.setCustomNameTag(this.getCustomName()); } // Profession if (properties.getProfession() >= 0 && properties.getProfession() <= 4) { // vanilla professions villager.setProfession(properties.getProfession()); } }
/** Updates a zombie entity with the villager info this object is tracking. */ public void updateZombie(EntityZombie zombie, ExtendedVillagerZombie properties) { // Note: I must trust that this object actually contain a villager info. If not, the cast below // will fail. final Object[] extraInfo = (Object[]) this.getObject(); final int profession = (Integer) extraInfo[0]; final boolean isBaby = (Boolean) extraInfo[1]; // Custom name if (this.getCustomName() != "") { zombie.setCustomNameTag(this.getCustomName()); zombie.enablePersistence(); } // Adult or child zombie.setChild(isBaby); // Profession if (profession >= 0 && profession <= 4) { // vanilla professions properties.setProfession(profession); } else { properties.setProfession(-1); // vanilla zombie villager } }