diff --git a/src/main/java/org/dynmap/Armor.java b/src/main/java/org/dynmap/Armor.java new file mode 100644 index 00000000..1e5a26e3 --- /dev/null +++ b/src/main/java/org/dynmap/Armor.java @@ -0,0 +1,30 @@ +package org.dynmap; + +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; + +public class Armor { + /** + * http://www.minecraftwiki.net/wiki/Item_Durability#Armor_durability + * We rely on getArmorContents() to return 4 armor pieces in the order + * of: boots, pants, chest, helmet + */ + private static final double armorPoints[] = {1.5, 3.0, 4.0, 1.5}; + + public static final int getArmorPoints(Player player) { + int currentDurability = 0; + int baseDurability = 0; + double baseArmorPoints = 0; + ItemStack inventory[] = player.getInventory().getArmorContents(); + for(int i=0;i') - .addClass('playerHealth') - .css('width', (player.health/2*9) + 'px') + player.healthContainer = $('
') + .addClass('healthContainer') .appendTo(div); + if (player.health !== undefined && player.armor !== undefined) { + player.healthBar = $('
') + .addClass('playerHealth') + .css('width', (player.health/2*5) + 'px'); + player.armorBar = $('
') + .addClass('playerArmor') + .css('width', (player.armor/2*5) + 'px'); + + $('
') + .addClass('playerHealthBackground') + .append(player.healthBar) + .appendTo(player.healthContainer); + $('
') + .addClass('playerArmorBackground') + .append(player.armorBar) + .appendTo(player.healthContainer); + } else { + player.healthContainer.css('display','none'); + } } }); }); @@ -40,7 +58,14 @@ componentconstructors['playermarkers'] = function(dynmap, configuration) { player.marker.toggle(dynmap.world === player.location.world); player.marker.setPosition(markerPosition); // Update health - if (configuration.showplayerhealth) - player.healthBar.css('width', (player.health/2*9) + 'px'); + if (configuration.showplayerhealth) { + if (player.health !== undefined && player.armor !== undefined) { + player.healthContainer.css('display','block'); + player.healthBar.css('width', (player.health/2*5) + 'px'); + player.armorBar.css('width', (player.armor/2*5) + 'px'); + } else { + player.healthContainer.css('display','none'); + } + } }); -}; \ No newline at end of file +};