public class ModArmorItem extends ArmorItem {
private static final Map<ArmorMaterial, MobEffectInstance> MATERIAL_TO_EFFECT_MAP =
(new ImmutableMap.Builder<ArmorMaterial, MobEffectInstance>())
.put(ModArmorMaterials.MINERAL,
new MobEffectInstance(MobEffects.HEALTH_BOOST, 1000000, 3)).build();
public ModArmorItem(ArmorMaterial material, EquipmentSlot slot, Properties settings) {
super(material, slot, settings);
}
@Override
public void onArmorTick(ItemStack stack, Level world, Player player) {
if(!world.isClientSide()) {
if(hasFullSuitOfArmorOn(player)) {
evaluateArmorEffects(player);
}
}
}
private void evaluateArmorEffects(Player player) {
for (Map.Entry<ArmorMaterial, MobEffectInstance> entry : MATERIAL_TO_EFFECT_MAP.entrySet()) {
ArmorMaterial mapArmorMaterial = entry.getKey();
MobEffectInstance mapStatusEffect = entry.getValue();
if(hasCorrectArmorOn(mapArmorMaterial, player)) {
addStatusEffectForMaterial(player, mapArmorMaterial, mapStatusEffect);
}
}
}
}