I’d like to know when an entity is damaged wether or not the hit is a critical hit. For that I’m listening to the
First I thought of using
DamageModifierTypes but I didn’t see any critical related modifier type. Then I saw there’s this
CriticalHitData interface but I don’t understand how it works (what would be its associated data holder ?).
Any ideas ?
TL;DR How to know if a
DamageEntityEvent is a critical hit or not ?
You’d want to query from the
DamageSource if it is an
EntityDamageSource and if the entity is an
Arrow entity, you can query for the
arrow.get(Keys.CRITICAL_HIT) since it will return a boolean.
I see… thanks !
So how could I get a critical hit a player did with a sword ? (It’s possible with a sword isn’t it ?)
If the damager is above the damagee and in the air, the hit is critical.
Not necessarily, according to the minecraft wiki:
In melee, a critical hit occurs when a player attacks a mob while falling
(Emphasis not mine)
That’s a bit tricky but if it works, why not…
But aren’t there any
DamageModifier for critical hits ?
There’s a new way to find out if a player critically attacked an entity with the new
AttackEntityEvent, as it will include a
DamageModifier with a
DamageModifierTypes.CRITICAL_HIT if the player in fact critically hit the target entity.
Note that the flow of events is as follows:
DamageEntityEvent. The reasoning for the separation is that attacking only evaluates the outgoing damage to the target entity, whereas damaging is evaluating the incoming damage.
Interesting ! Thank you for the info !