Update CraftBukkit to Minecraft 1.4(.2).

By: Travis Watkins <amaranth@ubuntu.com>
This commit is contained in:
CraftBukkit/Spigot
2012-10-24 22:53:23 -05:00
parent b2439099d0
commit 1177b02708
29 changed files with 368 additions and 98 deletions

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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

View File

@@ -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

View File

@@ -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");

View File

@@ -63,6 +63,6 @@ public class CraftFireball extends AbstractProjectile implements Fireball {
}
public EntityType getType() {
return EntityType.FIREBALL;
return EntityType.UNKNOWN;
}
}

View File

@@ -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;
}
}

View File

@@ -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) {

View File

@@ -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) {

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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
}
}

View File

@@ -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() {

View File

@@ -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();
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}