Делаю броню, которая при фул сете уменьшает получаемый урон, делаю через LivingHurtEvent. В одиночке или в локальной сети все работает, но когда поставил мод на сборку на сервере Kcauldron, то ивент срабатывает (сделал вывод в консоль для тестов), но урон все равно проходит.

Ивент вроде бы отменен, но все равно смерть...
EventHandler:
@SubscribeEvent(priority = EventPriority.HIGHEST)
public void onLivingHurtEvent(LivingHurtEvent event) {
System.out.println("On hurt HIGHEST");
if (event.entity instanceof EntityPlayer) {
System.out.println("entity is player");
System.out.println("initial amount: " + event.ammount);
EntityPlayer player = (EntityPlayer)event.entity;
System.out.println("player health: " + player.getHealth() + "/" + player.getMaxHealth());
if (player.getCurrentArmor(0) != null && player.getCurrentArmor(1) != null && player.getCurrentArmor(2) != null && player.getCurrentArmor(3) != null
&& player.getCurrentArmor(3).getItem() == Init.EldHelmet && player.getCurrentArmor(2).getItem() == Init.EldChestplate
&& player.getCurrentArmor(1).getItem() == Init.EldLeggins && player.getCurrentArmor(0).getItem() == Init.EldBoots) {
System.out.println("is wearing armor");
event.ammount *= 0.2f;
if (event.ammount < player.getMaxHealth()) {
event.ammount /= 10;
}
else {
event.ammount /= 100;
}
if (event.ammount < 1f) {
event.ammount = 0;
event.setCanceled(true);
}
}
}
System.out.println("result amount: " + event.ammount + "result cancelled: " + event.isCanceled());
}
Код для теста, отдельный хандлер:
@SubscribeEvent(priority = EventPriority.LOWEST, receiveCanceled = true)
public void onLivingHurtEventLowest(LivingHurtEvent event) {
System.out.println("Lowest on hurt amount: " + event.ammount + " isCanceled: " + event.isCanceled());
if (event.entityLiving instanceof EntityPlayer) {
System.out.println("Entity is player");
System.out.println("DamageSource: ");
System.out.println(event.source.getClass().getName());
}
}

Ивент вроде бы отменен, но все равно смерть...