SPIGOT-7300, #1180: Add new DamageSource API providing enhanced information about entity damage
By: Doc <nachito94@msn.com>
This commit is contained in:
@@ -2,6 +2,7 @@ package org.bukkit.craftbukkit.entity;
|
||||
|
||||
import net.minecraft.world.entity.boss.EntityComplexPart;
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
import org.bukkit.damage.DamageSource;
|
||||
import org.bukkit.entity.EnderDragon;
|
||||
import org.bukkit.entity.EnderDragonPart;
|
||||
import org.bukkit.entity.Entity;
|
||||
@@ -26,6 +27,11 @@ public class CraftEnderDragonPart extends CraftComplexPart implements EnderDrago
|
||||
return "CraftEnderDragonPart";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void damage(double amount, DamageSource damageSource) {
|
||||
getParent().damage(amount, damageSource);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void damage(double amount) {
|
||||
getParent().damage(amount);
|
||||
|
||||
@@ -51,6 +51,7 @@ import org.bukkit.block.Block;
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
import org.bukkit.craftbukkit.CraftSound;
|
||||
import org.bukkit.craftbukkit.CraftWorld;
|
||||
import org.bukkit.craftbukkit.damage.CraftDamageSource;
|
||||
import org.bukkit.craftbukkit.entity.memory.CraftMemoryKey;
|
||||
import org.bukkit.craftbukkit.entity.memory.CraftMemoryMapper;
|
||||
import org.bukkit.craftbukkit.inventory.CraftEntityEquipment;
|
||||
@@ -280,13 +281,11 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
|
||||
|
||||
@Override
|
||||
public void damage(double amount) {
|
||||
damage(amount, null);
|
||||
damage(amount, getHandle().damageSources().generic());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void damage(double amount, org.bukkit.entity.Entity source) {
|
||||
Preconditions.checkState(!getHandle().generation, "Cannot damage entity during world generation");
|
||||
|
||||
DamageSource reason = getHandle().damageSources().generic();
|
||||
|
||||
if (source instanceof HumanEntity) {
|
||||
@@ -295,7 +294,21 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
|
||||
reason = getHandle().damageSources().mobAttack(((CraftLivingEntity) source).getHandle());
|
||||
}
|
||||
|
||||
entity.hurt(reason, (float) amount);
|
||||
damage(amount, reason);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void damage(double amount, org.bukkit.damage.DamageSource damageSource) {
|
||||
Preconditions.checkArgument(damageSource != null, "damageSource cannot be null");
|
||||
|
||||
damage(amount, ((CraftDamageSource) damageSource).getHandle());
|
||||
}
|
||||
|
||||
private void damage(double amount, DamageSource damageSource) {
|
||||
Preconditions.checkArgument(damageSource != null, "damageSource cannot be null");
|
||||
Preconditions.checkState(!getHandle().generation, "Cannot damage entity during world generation");
|
||||
|
||||
entity.hurt(damageSource, (float) amount);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user