I'm trying to disguise players as various mobs, all is going well - the disguises are applied and are visible to other players. The issue arises when I want to disguise, for example, a player as a specific coloured sheep - the disguise is applied but the sheep is always the default white colour. My disguise constructor is here: https://github.com/eccentricdevotio...ischunkgenerator/disguise/TARDISDisguise.java The sheep colouring is: Code (Text): case SHEEP: EntitySheep sheep = (EntitySheep) entity; sheep.setColor(EnumColor.valueOf(o.toString())); break; Where o is an instance of org.bukkit.DyeColor AFAIK setColor() sets the datawatcher object for the entity. The disguise is being sent to players with PacketPlayOutSpawnEntityLiving packets - relevant code is here: https://github.com/eccentricdevotio...schunkgenerator/disguise/TARDISDisguiser.java I call my API method: Code (Text): public void disguise(EntityType entityType, Player player, Object[] options) { new TARDISDisguiser(entityType, player, options).disguiseToAll(); } I've added some debug output to the console to check the entity after the disguise options have been applied and when the packet is being sent and the output says that the sheep is the correct colour... What else do I need to do?
As far as I can see, you are not sending any Metadata values, is that correct? If so, you also have to send those (the packet is called something like PacketPlayOutEntityMetadata or something. Should take the entity‘s datawatcher)