Весьма полезный хук, но проблему не решает. Да и красный оттенок не убирает, для этого видать еще один хук нужен.
Насколько я понимаю триггер идет на значение в
entitylivingbase.hurtTime
а он в свою очередь принимается где-то здесь:
public void setPlayerSPHealth(float p_71150_1_)
{
float f1 = this.getHealth() - p_71150_1_;
if (f1 <= 0.0F)
{
this.setHealth(p_71150_1_);
if (f1 < 0.0F)
{
this.hurtResistantTime = this.maxHurtResistantTime / 2;
}
}
else
{
this.lastDamage = f1;
this.setHealth(this.getHealth());
this.hurtResistantTime = this.maxHurtResistantTime;
this.damageEntity(DamageSource.generic, f1);
this.hurtTime = this.maxHurtTime = 10;
}
}
UPD: Отменяю хуком лишнее из этого метода и вроде все как нужно, при сете здоровья никаких фокусов.