mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-28 07:20:24 +01:00
Add critical damage API
This commit is contained in:
parent
5c9be07722
commit
4bfca492a5
1 changed files with 27 additions and 0 deletions
|
@ -5,6 +5,7 @@ import java.util.Map;
|
|||
import org.bukkit.damage.DamageSource;
|
||||
import org.bukkit.damage.DamageType;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
|
@ -12,15 +13,18 @@ import org.jetbrains.annotations.NotNull;
|
|||
*/
|
||||
public class EntityDamageByEntityEvent extends EntityDamageEvent {
|
||||
private final Entity damager;
|
||||
private final boolean critical; // Paper
|
||||
|
||||
@Deprecated(since = "1.20.4", forRemoval = true)
|
||||
public EntityDamageByEntityEvent(@NotNull final Entity damager, @NotNull final Entity damagee, @NotNull final DamageCause cause, final double damage) {
|
||||
this(damager, damagee, cause, DamageSource.builder(DamageType.GENERIC).withCausingEntity(damager).withDirectEntity(damager).build(), damage);
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public EntityDamageByEntityEvent(@NotNull final Entity damager, @NotNull final Entity damagee, @NotNull final DamageCause cause, @NotNull final DamageSource damageSource, final double damage) {
|
||||
super(damagee, cause, damageSource, damage);
|
||||
this.damager = damager;
|
||||
this.critical = false; // Paper - add critical damage API
|
||||
}
|
||||
|
||||
@Deprecated(since = "1.20.4", forRemoval = true)
|
||||
|
@ -28,11 +32,34 @@ public class EntityDamageByEntityEvent extends EntityDamageEvent {
|
|||
this(damager, damagee, cause, DamageSource.builder(DamageType.GENERIC).withCausingEntity(damager).withDirectEntity(damager).build(), modifiers, modifierFunctions);
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public EntityDamageByEntityEvent(@NotNull final Entity damager, @NotNull final Entity damagee, @NotNull final DamageCause cause, @NotNull final DamageSource damageSource, @NotNull final Map<DamageModifier, Double> modifiers, @NotNull final Map<DamageModifier, ? extends Function<? super Double, Double>> modifierFunctions) {
|
||||
super(damagee, cause, damageSource, modifiers, modifierFunctions);
|
||||
this.damager = damager;
|
||||
// Paper start
|
||||
this.critical = false;
|
||||
}
|
||||
|
||||
@ApiStatus.Internal
|
||||
public EntityDamageByEntityEvent(@NotNull final Entity damager, @NotNull final Entity damagee, @NotNull final DamageCause cause, @NotNull final DamageSource damageSource, @NotNull final Map<DamageModifier, Double> modifiers, @NotNull final Map<DamageModifier, ? extends Function<? super Double, Double>> modifierFunctions, boolean critical) {
|
||||
super(damagee, cause, damageSource, modifiers, modifierFunctions);
|
||||
this.damager = damager;
|
||||
this.critical = critical;
|
||||
}
|
||||
|
||||
/**
|
||||
* Shows this damage instance was critical.
|
||||
* The damage instance can be critical if the attacking player met the respective conditions.
|
||||
* Furthermore, arrows may also cause a critical damage event if the arrow {@link org.bukkit.entity.AbstractArrow#isCritical()}.
|
||||
*
|
||||
* @return if the hit was critical.
|
||||
* @see <a href="https://minecraft.wiki/wiki/Damage#Critical_hit">https://minecraft.wiki/wiki/Damage#Critical_hit</a>
|
||||
*/
|
||||
public boolean isCritical() {
|
||||
return this.critical;
|
||||
}
|
||||
// Paper end
|
||||
|
||||
/**
|
||||
* Returns the entity that damaged the defender.
|
||||
*
|
||||
|
|
Loading…
Reference in a new issue