summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java')
-rw-r--r--src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java44
1 files changed, 18 insertions, 26 deletions
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
index 5317cff6..28956287 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
@@ -9,9 +9,8 @@ import java.util.Set;
import net.minecraft.server.DamageSource;
import net.minecraft.server.EntityArmorStand;
-import net.minecraft.server.EntityArrow;
+import net.minecraft.server.EntityDragonFireball;
import net.minecraft.server.EntityEgg;
-import net.minecraft.server.EntityEnderDragon;
import net.minecraft.server.EntityEnderPearl;
import net.minecraft.server.EntityFishingHook;
import net.minecraft.server.EntityHuman;
@@ -24,6 +23,7 @@ import net.minecraft.server.EntityPotion;
import net.minecraft.server.EntitySmallFireball;
import net.minecraft.server.EntitySnowball;
import net.minecraft.server.EntityThrownExpBottle;
+import net.minecraft.server.EntityTippedArrow;
import net.minecraft.server.EntityWither;
import net.minecraft.server.EntityWitherSkull;
import net.minecraft.server.GenericAttributes;
@@ -33,12 +33,15 @@ import net.minecraft.server.MobEffectList;
import org.apache.commons.lang.Validate;
import org.bukkit.Location;
import org.bukkit.Material;
+import org.bukkit.attribute.Attribute;
+import org.bukkit.attribute.AttributeInstance;
import org.bukkit.block.Block;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.CraftWorld;
import org.bukkit.craftbukkit.inventory.CraftEntityEquipment;
import org.bukkit.craftbukkit.inventory.CraftItemStack;
import org.bukkit.entity.Arrow;
+import org.bukkit.entity.DragonFireball;
import org.bukkit.entity.Egg;
import org.bukkit.entity.EnderPearl;
import org.bukkit.entity.Entity;
@@ -108,16 +111,6 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
setMaxHealth(getHandle().getMaxHealth());
}
- @Deprecated
- public Egg throwEgg() {
- return launchProjectile(Egg.class);
- }
-
- @Deprecated
- public Snowball throwSnowball() {
- return launchProjectile(Snowball.class);
- }
-
public double getEyeHeight() {
return getHandle().getHeadHeight();
}
@@ -204,11 +197,6 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
return getLineOfSight(transparent, maxDistance, 2);
}
- @Deprecated
- public Arrow shootArrow() {
- return launchProjectile(Arrow.class);
- }
-
public int getRemainingAir() {
return getHandle().getAirTicks();
}
@@ -300,7 +288,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
}
removePotionEffect(effect.getType());
}
- getHandle().addEffect(new MobEffect(effect.getType().getId(), effect.getDuration(), effect.getAmplifier(), effect.isAmbient(), effect.hasParticles()));
+ getHandle().addEffect(new MobEffect(MobEffectList.fromId(effect.getType().getId()), effect.getDuration(), effect.getAmplifier(), effect.isAmbient(), effect.hasParticles()));
return true;
}
@@ -313,20 +301,17 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
}
public boolean hasPotionEffect(PotionEffectType type) {
- return getHandle().hasEffect(MobEffectList.byId[type.getId()]);
+ return getHandle().hasEffect(MobEffectList.fromId(type.getId()));
}
public void removePotionEffect(PotionEffectType type) {
- getHandle().removeEffect(type.getId());
+ getHandle().removeEffect(MobEffectList.fromId(type.getId()));
}
public Collection<PotionEffect> getActivePotionEffects() {
List<PotionEffect> effects = new ArrayList<PotionEffect>();
- for (Object raw : getHandle().effects.values()) {
- if (!(raw instanceof MobEffect))
- continue;
- MobEffect handle = (MobEffect) raw;
- effects.add(new PotionEffect(PotionEffectType.getById(handle.getEffectId()), handle.getDuration(), handle.getAmplifier(), handle.isAmbient(), handle.isShowParticles()));
+ for (MobEffect handle : getHandle().effects.values()) {
+ effects.add(new PotionEffect(PotionEffectType.getById(MobEffectList.getId(handle.getMobEffect())), handle.getDuration(), handle.getAmplifier(), handle.isAmbient(), handle.isShowParticles()));
}
return effects;
}
@@ -347,7 +332,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
} else if (EnderPearl.class.isAssignableFrom(projectile)) {
launch = new EntityEnderPearl(world, getHandle());
} else if (Arrow.class.isAssignableFrom(projectile)) {
- launch = new EntityArrow(world, getHandle(), 1);
+ launch = new EntityTippedArrow(world, getHandle());
} else if (ThrownPotion.class.isAssignableFrom(projectile)) {
launch = new EntityPotion(world, getHandle(), CraftItemStack.asNMSCopy(new ItemStack(Material.POTION, 1)));
} else if (ThrownExpBottle.class.isAssignableFrom(projectile)) {
@@ -362,6 +347,8 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
launch = new EntitySmallFireball(world, getHandle(), direction.getX(), direction.getY(), direction.getZ());
} else if (WitherSkull.class.isAssignableFrom(projectile)) {
launch = new EntityWitherSkull(world, getHandle(), direction.getX(), direction.getY(), direction.getZ());
+ } else if (DragonFireball.class.isAssignableFrom(projectile)) {
+ launch = new EntityDragonFireball(world, getHandle(), direction.getX(), direction.getY(), direction.getZ());
} else {
launch = new EntityLargeFireball(world, getHandle(), direction.getX(), direction.getY(), direction.getZ());
}
@@ -500,4 +487,9 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
public void _INVALID_setMaxHealth(int health) {
setMaxHealth(health);
}
+
+ @Override
+ public AttributeInstance getAttribute(Attribute attribute) {
+ return getHandle().craftAttributes.getAttribute(attribute);
+ }
}