Update CraftBukkit to Minecraft 1.4(.2).
By: Travis Watkins <amaranth@ubuntu.com>
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
package org.bukkit.craftbukkit.entity;
|
||||
|
||||
import net.minecraft.server.EntityAmbient;
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
import org.bukkit.entity.Ambient;
|
||||
import org.bukkit.entity.EntityType;
|
||||
|
||||
public class CraftAmbient extends CraftLivingEntity implements Ambient {
|
||||
public CraftAmbient(CraftServer server, EntityAmbient entity) {
|
||||
super(server, entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityAmbient getHandle() {
|
||||
return (EntityAmbient) entity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "CraftAmbient";
|
||||
}
|
||||
|
||||
public EntityType getType() {
|
||||
return EntityType.UNKNOWN;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package org.bukkit.craftbukkit.entity;
|
||||
|
||||
import net.minecraft.server.EntityBat;
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
import org.bukkit.entity.Bat;
|
||||
import org.bukkit.entity.EntityType;
|
||||
|
||||
public class CraftBat extends CraftAmbient implements Bat {
|
||||
public CraftBat(CraftServer server, EntityBat entity) {
|
||||
super(server, entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityBat getHandle() {
|
||||
return (EntityBat) entity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "CraftBat";
|
||||
}
|
||||
|
||||
public EntityType getType() {
|
||||
return EntityType.BAT;
|
||||
}
|
||||
}
|
||||
@@ -1,17 +1,17 @@
|
||||
package org.bukkit.craftbukkit.entity;
|
||||
|
||||
import net.minecraft.server.EntityComplex;
|
||||
import net.minecraft.server.EntityLiving;
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
import org.bukkit.entity.ComplexLivingEntity;
|
||||
|
||||
public abstract class CraftComplexLivingEntity extends CraftLivingEntity implements ComplexLivingEntity {
|
||||
public CraftComplexLivingEntity(CraftServer server, EntityComplex entity) {
|
||||
public CraftComplexLivingEntity(CraftServer server, EntityLiving entity) {
|
||||
super(server, entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityComplex getHandle() {
|
||||
return (EntityComplex) entity;
|
||||
public EntityLiving getHandle() {
|
||||
return (EntityLiving) entity;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.bukkit.craftbukkit.entity;
|
||||
|
||||
import net.minecraft.server.EntityComplexPart;
|
||||
import net.minecraft.server.EntityEnderDragon;
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
import org.bukkit.entity.ComplexEntityPart;
|
||||
import org.bukkit.entity.ComplexLivingEntity;
|
||||
@@ -13,7 +14,7 @@ public class CraftComplexPart extends CraftEntity implements ComplexEntityPart {
|
||||
}
|
||||
|
||||
public ComplexLivingEntity getParent() {
|
||||
return (ComplexLivingEntity) getHandle().owner.getBukkitEntity();
|
||||
return (ComplexLivingEntity) ((EntityEnderDragon) getHandle().owner).getBukkitEntity();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -65,6 +65,8 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||
else if (entity instanceof EntityGiantZombie) { return new CraftGiant(server, (EntityGiantZombie) entity); }
|
||||
else if (entity instanceof EntitySkeleton) { return new CraftSkeleton(server, (EntitySkeleton) entity); }
|
||||
else if (entity instanceof EntityBlaze) { return new CraftBlaze(server, (EntityBlaze) entity); }
|
||||
else if (entity instanceof EntityWitch) { return new CraftWitch(server, (EntityWitch) entity); }
|
||||
else if (entity instanceof EntityWither) { return new CraftWither(server, (EntityWither) entity); }
|
||||
else if (entity instanceof EntitySpider) {
|
||||
if (entity instanceof EntityCaveSpider) { return new CraftCaveSpider(server, (EntityCaveSpider) entity); }
|
||||
else { return new CraftSpider(server, (EntitySpider) entity); }
|
||||
@@ -94,8 +96,13 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||
if (entity instanceof EntityGhast) { return new CraftGhast(server, (EntityGhast) entity); }
|
||||
else { return new CraftFlying(server, (EntityFlying) entity); }
|
||||
}
|
||||
else if (entity instanceof EntityComplex) {
|
||||
if (entity instanceof EntityEnderDragon) { return new CraftEnderDragon(server, (EntityEnderDragon) entity); }
|
||||
else if (entity instanceof EntityEnderDragon) {
|
||||
return new CraftEnderDragon(server, (EntityEnderDragon) entity);
|
||||
}
|
||||
// Ambient
|
||||
else if (entity instanceof EntityAmbient) {
|
||||
if (entity instanceof EntityBat) { return new CraftBat(server, (EntityBat) entity); }
|
||||
else { return new CraftAmbient(server, (EntityAmbient) entity); }
|
||||
}
|
||||
else { return new CraftLivingEntity(server, (EntityLiving) entity); }
|
||||
}
|
||||
@@ -117,6 +124,8 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||
else if (entity instanceof EntityFallingBlock) { return new CraftFallingSand(server, (EntityFallingBlock) entity); }
|
||||
else if (entity instanceof EntityFireball) {
|
||||
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 { return new CraftFireball(server, (EntityFireball) entity); }
|
||||
}
|
||||
else if (entity instanceof EntityEnderSignal) { return new CraftEnderSignal(server, (EntityEnderSignal) entity); }
|
||||
@@ -133,7 +142,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||
else if (mc.type == CraftMinecart.Type.PoweredMinecart.getId()) { return new CraftPoweredMinecart(server, mc); }
|
||||
else { return new CraftMinecart(server, mc); }
|
||||
}
|
||||
else if (entity instanceof EntityPainting) { return new CraftPainting(server, (EntityPainting) entity); }
|
||||
else if (entity instanceof EntityHanging) {
|
||||
if (entity instanceof EntityPainting) { return new CraftPainting(server, (EntityPainting) entity); }
|
||||
else if (entity instanceof EntityItemFrame) { return new CraftItemFrame(server, (EntityItemFrame) entity); }
|
||||
else { return new CraftHanging(server, (EntityHanging) entity); }
|
||||
}
|
||||
else if (entity instanceof EntityTNTPrimed) { return new CraftTNTPrimed(server, (EntityTNTPrimed) entity); }
|
||||
|
||||
throw new IllegalArgumentException("Unknown entity");
|
||||
|
||||
@@ -63,6 +63,6 @@ public class CraftFireball extends AbstractProjectile implements Fireball {
|
||||
}
|
||||
|
||||
public EntityType getType() {
|
||||
return EntityType.FIREBALL;
|
||||
return EntityType.UNKNOWN;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
package org.bukkit.craftbukkit.entity;
|
||||
|
||||
import net.minecraft.server.EntityHanging;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Hanging;
|
||||
|
||||
public class CraftHanging extends CraftEntity implements Hanging {
|
||||
public CraftHanging(CraftServer server, EntityHanging entity) {
|
||||
super(server, entity);
|
||||
}
|
||||
|
||||
public BlockFace getAttachedFace() {
|
||||
return getFacing().getOppositeFace();
|
||||
}
|
||||
|
||||
public void setFacingDirection(BlockFace face) {
|
||||
setFacingDirection(face, false);
|
||||
}
|
||||
|
||||
public boolean setFacingDirection(BlockFace face, boolean force) {
|
||||
Block block = getLocation().getBlock().getRelative(getAttachedFace()).getRelative(face.getOppositeFace()).getRelative(getFacing());
|
||||
EntityHanging hanging = getHandle();
|
||||
int x = hanging.x, y = hanging.y, z = hanging.z, dir = hanging.direction;
|
||||
hanging.x = block.getX();
|
||||
hanging.y = block.getY();
|
||||
hanging.z = block.getZ();
|
||||
switch (face) {
|
||||
case EAST:
|
||||
default:
|
||||
getHandle().setDirection(0);
|
||||
break;
|
||||
case NORTH:
|
||||
getHandle().setDirection(1);
|
||||
break;
|
||||
case WEST:
|
||||
getHandle().setDirection(2);
|
||||
break;
|
||||
case SOUTH:
|
||||
getHandle().setDirection(3);
|
||||
break;
|
||||
}
|
||||
if (!force && !hanging.survives()) {
|
||||
// Revert since it doesn't fit
|
||||
hanging.x = x;
|
||||
hanging.y = y;
|
||||
hanging.z = z;
|
||||
hanging.setDirection(dir);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public BlockFace getFacing() {
|
||||
switch (this.getHandle().direction) {
|
||||
case 0:
|
||||
default:
|
||||
return BlockFace.EAST;
|
||||
case 1:
|
||||
return BlockFace.NORTH;
|
||||
case 2:
|
||||
return BlockFace.WEST;
|
||||
case 3:
|
||||
return BlockFace.SOUTH;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityHanging getHandle() {
|
||||
return (EntityHanging) entity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "CraftHanging";
|
||||
}
|
||||
|
||||
public EntityType getType() {
|
||||
return EntityType.UNKNOWN;
|
||||
}
|
||||
}
|
||||
@@ -308,7 +308,7 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
|
||||
}
|
||||
|
||||
public boolean isBlocking() {
|
||||
return getHandle().aY();
|
||||
return getHandle().be();
|
||||
}
|
||||
|
||||
public boolean setWindowProperty(InventoryView.Property prop, int value) {
|
||||
|
||||
@@ -21,7 +21,7 @@ public class CraftIronGolem extends CraftGolem implements IronGolem {
|
||||
}
|
||||
|
||||
public boolean isPlayerCreated() {
|
||||
return getHandle().q();
|
||||
return getHandle().p();
|
||||
}
|
||||
|
||||
public void setPlayerCreated(boolean playerCreated) {
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
package org.bukkit.craftbukkit.entity;
|
||||
|
||||
import net.minecraft.server.EntityItemFrame;
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.ItemFrame;
|
||||
|
||||
public class CraftItemFrame extends CraftHanging implements ItemFrame {
|
||||
public CraftItemFrame(CraftServer server, EntityItemFrame entity) {
|
||||
super(server, entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityItemFrame getHandle() {
|
||||
return (EntityItemFrame) entity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "CraftItemFrame";
|
||||
}
|
||||
|
||||
public EntityType getType() {
|
||||
return EntityType.ITEM_FRAME;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package org.bukkit.craftbukkit.entity;
|
||||
|
||||
import net.minecraft.server.EntityLargeFireball;
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.LargeFireball;
|
||||
|
||||
public class CraftLargeFireball extends CraftFireball implements LargeFireball {
|
||||
public CraftLargeFireball(CraftServer server, EntityLargeFireball entity) {
|
||||
super(server, entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityLargeFireball getHandle() {
|
||||
return (EntityLargeFireball) entity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "CraftLargeFireball";
|
||||
}
|
||||
|
||||
public EntityType getType() {
|
||||
return EntityType.LARGE_FIREBALL;
|
||||
}
|
||||
}
|
||||
@@ -8,10 +8,11 @@ import java.util.List;
|
||||
|
||||
import net.minecraft.server.DamageSource;
|
||||
import net.minecraft.server.EntityArrow;
|
||||
import net.minecraft.server.EntityComplex;
|
||||
import net.minecraft.server.EntityEgg;
|
||||
import net.minecraft.server.EntityEnderDragon;
|
||||
import net.minecraft.server.EntityEnderPearl;
|
||||
import net.minecraft.server.EntityFireball;
|
||||
import net.minecraft.server.EntityLargeFireball;
|
||||
import net.minecraft.server.EntityLiving;
|
||||
import net.minecraft.server.EntitySmallFireball;
|
||||
import net.minecraft.server.EntitySnowball;
|
||||
@@ -160,8 +161,8 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
|
||||
reason = DamageSource.mobAttack(((CraftLivingEntity) source).getHandle());
|
||||
}
|
||||
|
||||
if (entity instanceof EntityComplex) {
|
||||
((EntityComplex) entity).dealDamage(reason, amount);
|
||||
if (entity instanceof EntityEnderDragon) {
|
||||
((EntityEnderDragon) entity).dealDamage(reason, amount);
|
||||
} else {
|
||||
entity.damageEntity(reason, amount);
|
||||
}
|
||||
@@ -279,7 +280,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
|
||||
if (SmallFireball.class.isAssignableFrom(projectile)) {
|
||||
launch = new EntitySmallFireball(world);
|
||||
} else {
|
||||
launch = new EntityFireball(world);
|
||||
launch = new EntityLargeFireball(world);
|
||||
}
|
||||
|
||||
Location location = getEyeLocation();
|
||||
@@ -300,6 +301,6 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
|
||||
}
|
||||
|
||||
public boolean hasLineOfSight(Entity other) {
|
||||
return getHandle().at().canSee(((CraftEntity) other).getHandle()); // am should be getEntitySenses
|
||||
return getHandle().az().canSee(((CraftEntity) other).getHandle()); // az should be getEntitySenses
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,6 @@ import net.minecraft.server.EnumArt;
|
||||
import net.minecraft.server.WorldServer;
|
||||
|
||||
import org.bukkit.Art;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.craftbukkit.CraftArt;
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
@@ -13,7 +12,7 @@ import org.bukkit.craftbukkit.CraftWorld;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Painting;
|
||||
|
||||
public class CraftPainting extends CraftEntity implements Painting {
|
||||
public class CraftPainting extends CraftHanging implements Painting {
|
||||
|
||||
public CraftPainting(CraftServer server, EntityPainting entity) {
|
||||
super(server, entity);
|
||||
@@ -43,60 +42,13 @@ public class CraftPainting extends CraftEntity implements Painting {
|
||||
return true;
|
||||
}
|
||||
|
||||
public BlockFace getAttachedFace() {
|
||||
return getFacing().getOppositeFace();
|
||||
}
|
||||
|
||||
public void setFacingDirection(BlockFace face) {
|
||||
setFacingDirection(face, false);
|
||||
}
|
||||
|
||||
public boolean setFacingDirection(BlockFace face, boolean force) {
|
||||
Block block = getLocation().getBlock().getRelative(getAttachedFace()).getRelative(face.getOppositeFace()).getRelative(getFacing());
|
||||
EntityPainting painting = getHandle();
|
||||
int x = painting.x, y = painting.y, z = painting.z, dir = painting.direction;
|
||||
painting.x = block.getX();
|
||||
painting.y = block.getY();
|
||||
painting.z = block.getZ();
|
||||
switch (face) {
|
||||
case EAST:
|
||||
default:
|
||||
getHandle().setDirection(0);
|
||||
break;
|
||||
case NORTH:
|
||||
getHandle().setDirection(1);
|
||||
break;
|
||||
case WEST:
|
||||
getHandle().setDirection(2);
|
||||
break;
|
||||
case SOUTH:
|
||||
getHandle().setDirection(3);
|
||||
break;
|
||||
if (super.setFacingDirection(face, force)) {
|
||||
update();
|
||||
return true;
|
||||
}
|
||||
if (!force && !painting.survives()) {
|
||||
// Revert painting since it doesn't fit
|
||||
painting.x = x;
|
||||
painting.y = y;
|
||||
painting.z = z;
|
||||
painting.setDirection(dir);
|
||||
return false;
|
||||
}
|
||||
this.update();
|
||||
return true;
|
||||
}
|
||||
|
||||
public BlockFace getFacing() {
|
||||
switch (this.getHandle().direction) {
|
||||
case 0:
|
||||
default:
|
||||
return BlockFace.EAST;
|
||||
case 1:
|
||||
return BlockFace.NORTH;
|
||||
case 2:
|
||||
return BlockFace.WEST;
|
||||
case 3:
|
||||
return BlockFace.SOUTH;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private void update() {
|
||||
|
||||
@@ -266,7 +266,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
if (getHandle().netServerHandler == null) return;
|
||||
|
||||
int packetData = effect.getId();
|
||||
Packet61WorldEvent packet = new Packet61WorldEvent(packetData, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), data);
|
||||
Packet61WorldEvent packet = new Packet61WorldEvent(packetData, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), data, false);
|
||||
getHandle().netServerHandler.sendPacket(packet);
|
||||
}
|
||||
|
||||
@@ -598,7 +598,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
}
|
||||
|
||||
public void setBedSpawnLocation(Location location) {
|
||||
getHandle().setRespawnPosition(new ChunkCoordinates(location.getBlockX(), location.getBlockY(), location.getBlockZ()));
|
||||
setBedSpawnLocation(location, false);
|
||||
}
|
||||
|
||||
public void setBedSpawnLocation(Location location, boolean override) {
|
||||
getHandle().setRespawnPosition(new ChunkCoordinates(location.getBlockX(), location.getBlockY(), location.getBlockZ()), override);
|
||||
getHandle().spawnWorld = location.getWorld().getName();
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
package org.bukkit.craftbukkit.entity;
|
||||
|
||||
import net.minecraft.server.EntityWitch;
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
import org.bukkit.entity.Witch;
|
||||
import org.bukkit.entity.EntityType;
|
||||
|
||||
public class CraftWitch extends CraftMonster implements Witch {
|
||||
public CraftWitch(CraftServer server, EntityWitch entity) {
|
||||
super(server, entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityWitch getHandle() {
|
||||
return (EntityWitch) entity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "CraftWitch";
|
||||
}
|
||||
|
||||
public EntityType getType() {
|
||||
return EntityType.WITCH;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package org.bukkit.craftbukkit.entity;
|
||||
|
||||
import net.minecraft.server.EntityWither;
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
import org.bukkit.entity.Wither;
|
||||
import org.bukkit.entity.EntityType;
|
||||
|
||||
public class CraftWither extends CraftMonster implements Wither {
|
||||
public CraftWither(CraftServer server, EntityWither entity) {
|
||||
super(server, entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityWither getHandle() {
|
||||
return (EntityWither) entity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "CraftWither";
|
||||
}
|
||||
|
||||
public EntityType getType() {
|
||||
return EntityType.WITHER;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package org.bukkit.craftbukkit.entity;
|
||||
|
||||
import net.minecraft.server.EntityWitherSkull;
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.WitherSkull;
|
||||
|
||||
public class CraftWitherSkull extends CraftFireball implements WitherSkull {
|
||||
public CraftWitherSkull(CraftServer server, EntityWitherSkull entity) {
|
||||
super(server, entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityWitherSkull getHandle() {
|
||||
return (EntityWitherSkull) entity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "CraftWitherSkull";
|
||||
}
|
||||
|
||||
public EntityType getType() {
|
||||
return EntityType.WITHER_SKULL;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user