Fix spigot api break for entity damage events

This commit is contained in:
nossr50
2024-02-13 17:47:54 -08:00
parent 94754b150c
commit 5bfca3c218
8 changed files with 47 additions and 112 deletions

View File

@@ -7,8 +7,6 @@ import com.gmail.nossr50.datatypes.meta.OldName;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import com.gmail.nossr50.datatypes.skills.SubSkillType;
import com.gmail.nossr50.events.fake.FakeEntityDamageByEntityEvent;
import com.gmail.nossr50.events.fake.FakeEntityDamageEvent;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.metadata.MobMetaFlagType;
import com.gmail.nossr50.metadata.MobMetadataService;
@@ -29,7 +27,6 @@ import org.bukkit.attribute.Attribute;
import org.bukkit.attribute.AttributeInstance;
import org.bukkit.entity.*;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
import org.bukkit.inventory.ItemStack;
import org.bukkit.metadata.MetadataValue;
@@ -527,7 +524,6 @@ public final class CombatUtils {
* @param target LivingEntity which to attempt to damage
* @param damage Amount of damage to attempt to do
*/
@Deprecated
public static void dealDamage(@NotNull LivingEntity target, double damage) {
dealDamage(target, damage, DamageCause.CUSTOM, null);
}
@@ -572,10 +568,15 @@ public final class CombatUtils {
if (target.isDead()) {
return;
}
if(canDamage(attacker, target, cause, damage)) {
try {
// TODO: Check for Spigot API for DamageSource, if DamageSource is found then send out a damage() with a custom damage source
applyIgnoreDamageMetadata(target);
target.damage(damage);
if (attacker != null) {
target.damage(damage, attacker);
} else {
target.damage(damage);
}
} finally {
removeIgnoreDamageMetadata(target);
}
}
@@ -885,19 +886,6 @@ public final class CombatUtils {
return false;
}
public static boolean canDamage(@Nullable Entity attacker, @NotNull Entity target, @NotNull DamageCause damageCause, double damage) {
EntityDamageEvent damageEvent;
if (attacker != null) {
damageEvent = new FakeEntityDamageByEntityEvent(attacker, target, damageCause, damage);
} else {
damageEvent = new FakeEntityDamageEvent(target, damageCause, damage);
}
mcMMO.p.getServer().getPluginManager().callEvent(damageEvent);
return !damageEvent.isCancelled();
}
/**
* Get the upgrade tier of the item in hand.
*