API Documentation/Example 02: Working with heads
Assuming you've completed the previous example and you've gotten an instance to the PlayerHeads API object, we can begin working with heads. The following are [non-exhaustive] examples of head operations.
Spawning a head
For an entity
ItemStack stack = ph_api.getHeadDrop(entity);
For a mob in the current server verson
HeadType type = ph_api.getHeadOf(EntityType.ZOMBIE);
if(type==null) throw new IllegalArgumentException("Head not supported by PH");
ItemStack stack = ph_api.getHeadItem(type,1);
For a user
ItemStack stack = ph_api.getHeadItem(player, 1, false); // get head of specific player - OR ItemStack stack = ph_api.getBoringPlayerheadItem(1); // get generic Player head
Determining the type of a head
HeadType type = ph_api.getHeadFrom(itemstack_or_blockstate);//get comparable type
if(type==null) throw new IllegalArgumentException("Head not supported by PH");
//Comparing to another head
HeadType type2 = ph_api.getHeadOf(EntityType.ZOMBIE);
if(type.equals(type2)) getLogger().info("Zombie head detected!");
//Getting the type name (Entity Type) of a head (for newest server version)
String typename = type.toEnum().name();//get internal head name. v5.0+
//String typename = ((Enum) type).name();//get internal head name. v4.10+
getLogger().info("PlayerHeads head: "+typename);