only add damage to valid armor

closes #6
This commit is contained in:
hyperdefined
2022-02-23 19:52:58 -05:00
parent 7a89b31766
commit a421430fa8

View File

@@ -126,11 +126,13 @@ public class EntityDamage implements Listener {
PlayerInventory inventory = player.getInventory(); PlayerInventory inventory = player.getInventory();
for (ItemStack armor : inventory.getArmorContents()) { for (ItemStack armor : inventory.getArmorContents()) {
if (armor != null) { if (armor != null) {
if (isArmor(armor.getType().toString().toLowerCase(Locale.ROOT))) {
updateArmorDamage(armor, event.getDamage()); updateArmorDamage(armor, event.getDamage());
} }
} }
} }
} }
}
@EventHandler @EventHandler
public void onDamage(EntityDamageEvent event) { public void onDamage(EntityDamageEvent event) {
@@ -144,11 +146,13 @@ public class EntityDamage implements Listener {
PlayerInventory inventory = player.getInventory(); PlayerInventory inventory = player.getInventory();
for (ItemStack armor : inventory.getArmorContents()) { for (ItemStack armor : inventory.getArmorContents()) {
if (armor != null) { if (armor != null) {
if (isArmor(armor.getType().toString().toLowerCase(Locale.ROOT))) {
updateArmorDamage(armor, event.getDamage()); updateArmorDamage(armor, event.getDamage());
} }
} }
} }
} }
}
@EventHandler @EventHandler
public void onDamage(EntityDamageByBlockEvent event) { public void onDamage(EntityDamageByBlockEvent event) {
@@ -162,7 +166,9 @@ public class EntityDamage implements Listener {
PlayerInventory inventory = player.getInventory(); PlayerInventory inventory = player.getInventory();
for (ItemStack armor : inventory.getArmorContents()) { for (ItemStack armor : inventory.getArmorContents()) {
if (armor != null) { if (armor != null) {
updateArmorDamage(armor, event.getFinalDamage()); if (isArmor(armor.getType().toString().toLowerCase(Locale.ROOT))) {
updateArmorDamage(armor, event.getDamage());
}
} }
} }
} }
@@ -351,4 +357,13 @@ public class EntityDamage implements Listener {
} }
itemStack.setItemMeta(meta); itemStack.setItemMeta(meta);
} }
/**
* Check if item is an armor piece.
* @param itemType The item type, not name.
* @return If the item is an armor piece.
*/
private boolean isArmor(String itemType) {
return itemType.endsWith("_helmet") || itemType.endsWith("_chestplate") || itemType.endsWith("_leggings") || itemType.endsWith("_boots");
}
} }