summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
diff options
context:
space:
mode:
authormd_5 <git@md-5.net>2016-03-01 08:32:46 +1100
committermd_5 <git@md-5.net>2016-03-01 09:32:45 +1100
commitaa008dff0f9bedbe88e1fe79831776b0a52eb90a (patch)
treecb520e0f4cc5d683fb9b7fb95de37480a7443dfb /src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
parente1ebe524a78e27f6a2829ed4574fded3779094e1 (diff)
downloadcraftbukkit-aa008dff0f9bedbe88e1fe79831776b0a52eb90a.tar
craftbukkit-aa008dff0f9bedbe88e1fe79831776b0a52eb90a.tar.gz
craftbukkit-aa008dff0f9bedbe88e1fe79831776b0a52eb90a.tar.lz
craftbukkit-aa008dff0f9bedbe88e1fe79831776b0a52eb90a.tar.xz
craftbukkit-aa008dff0f9bedbe88e1fe79831776b0a52eb90a.zip
Update to Minecraft 1.9
Diffstat (limited to 'src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java')
-rw-r--r--src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java47
1 files changed, 32 insertions, 15 deletions
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index 5693e3a7..22d08a20 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -1,8 +1,6 @@
package org.bukkit.craftbukkit.entity;
import com.google.common.base.Preconditions;
-import java.util.ArrayList;
-import java.util.Collection;
import java.util.List;
import java.util.Set;
import java.util.UUID;
@@ -39,7 +37,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
}
});
-
+
protected final CraftServer server;
protected Entity entity;
private EntityDamageEvent lastDamageEvent;
@@ -108,6 +106,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
else if (entity instanceof EntityGolem) {
if (entity instanceof EntitySnowman) { return new CraftSnowman(server, (EntitySnowman) entity); }
else if (entity instanceof EntityIronGolem) { return new CraftIronGolem(server, (EntityIronGolem) entity); }
+ else if (entity instanceof EntityShulker) { return new CraftShulker(server, (EntityShulker) entity); }
}
else if (entity instanceof EntityVillager) { return new CraftVillager(server, (EntityVillager) entity); }
else { return new CraftCreature(server, (EntityCreature) entity); }
@@ -153,6 +152,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
if (entity instanceof EntitySmallFireball) { return new CraftSmallFireball(server, (EntitySmallFireball) entity); }
else if (entity instanceof EntityLargeFireball) { return new CraftLargeFireball(server, (EntityLargeFireball) entity); }
else if (entity instanceof EntityWitherSkull) { return new CraftWitherSkull(server, (EntityWitherSkull) entity); }
+ else if (entity instanceof EntityDragonFireball) { return new CraftDragonFireball(server, (EntityDragonFireball) entity); }
else { return new CraftFireball(server, (EntityFireball) entity); }
}
else if (entity instanceof EntityEnderSignal) { return new CraftEnderSignal(server, (EntityEnderSignal) entity); }
@@ -179,6 +179,8 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
}
else if (entity instanceof EntityTNTPrimed) { return new CraftTNTPrimed(server, (EntityTNTPrimed) entity); }
else if (entity instanceof EntityFireworks) { return new CraftFirework(server, (EntityFireworks) entity); }
+ else if (entity instanceof EntityShulkerBullet) { return new CraftShulkerBullet(server, (EntityShulkerBullet) entity); }
+ else if (entity instanceof EntityAreaEffectCloud) { return new CraftAreaEffectCloud(server, (EntityAreaEffectCloud) entity); }
throw new AssertionError("Unknown entity " + (entity == null ? null : entity.getClass()));
}
@@ -227,12 +229,12 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
}
public boolean teleport(Location location, TeleportCause cause) {
- if (entity.passenger != null || entity.dead) {
+ if (entity.isVehicle() || entity.dead) {
return false;
}
// If this entity is riding another entity, we must dismount before teleporting.
- entity.mount(null);
+ entity.stopRiding();
entity.world = ((CraftWorld) location.getWorld()).getHandle();
entity.setLocation(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch());
@@ -299,13 +301,14 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
}
public org.bukkit.entity.Entity getPassenger() {
- return isEmpty() ? null : getHandle().passenger.getBukkitEntity();
+ return isEmpty() ? null : getHandle().passengers.get(0).getBukkitEntity();
}
public boolean setPassenger(org.bukkit.entity.Entity passenger) {
Preconditions.checkArgument(!this.equals(passenger), "Entity cannot ride itself.");
if (passenger instanceof CraftEntity) {
- ((CraftEntity) passenger).getHandle().mount(getHandle());
+ eject();
+ ((CraftEntity) passenger).getHandle().startRiding(getHandle());
return true;
} else {
return false;
@@ -313,15 +316,15 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
}
public boolean isEmpty() {
- return getHandle().passenger == null;
+ return !getHandle().isVehicle();
}
public boolean eject() {
- if (getHandle().passenger == null) {
+ if (isEmpty()) {
return false;
}
- getHandle().passenger.mount(null);
+ getPassenger().leaveVehicle();
return true;
}
@@ -409,24 +412,24 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
}
public boolean isInsideVehicle() {
- return getHandle().vehicle != null;
+ return getHandle().isPassenger();
}
public boolean leaveVehicle() {
- if (getHandle().vehicle == null) {
+ if (!isInsideVehicle()) {
return false;
}
- getHandle().mount(null);
+ getHandle().stopRiding();
return true;
}
public org.bukkit.entity.Entity getVehicle() {
- if (getHandle().vehicle == null) {
+ if (!isInsideVehicle()) {
return null;
}
- return getHandle().vehicle.getBukkitEntity();
+ return getHandle().getVehicle().getBukkitEntity();
}
@Override
@@ -538,4 +541,18 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
public void setOp(boolean value) {
perm.setOp(value);
}
+
+ @Override
+ public void setGlowing(boolean flag) {
+ getHandle().glowing = flag;
+ Entity e = getHandle();
+ if (e.getFlag(6) != flag) {
+ e.setFlag(6, flag);
+ }
+ }
+
+ @Override
+ public boolean isGlowing() {
+ return getHandle().glowing;
+ }
}