All entity stuff in org.bukkit.craftbukkit moved to org.bukkit.craftbukkit.entity

By: Dinnerbone <dinnerbone@dinnerbone.com>
This commit is contained in:
CraftBukkit/Spigot
2011-01-15 21:23:28 +00:00
parent dcbc0f4b64
commit f4fdebbd4b
15 changed files with 45 additions and 13 deletions

View File

@@ -0,0 +1,16 @@
package org.bukkit.craftbukkit.entity;
import org.bukkit.entity.Arrow;
import net.minecraft.server.EntityArrow;
import org.bukkit.craftbukkit.CraftServer;
/**
* Represents an arrow.
*
* @author sk89q
*/
public class CraftArrow extends CraftEntity implements Arrow {
public CraftArrow(CraftServer server, EntityArrow entity) {
super(server, entity);
}
}

View File

@@ -0,0 +1,19 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.server.EntityBoat;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Boat;
/**
* A minecart.
*
* @author sk89q
*/
public class CraftBoat extends CraftVehicle implements Boat {
protected EntityBoat boat;
public CraftBoat(CraftServer server, EntityBoat entity) {
super(server, entity);
boat = entity;
}
}

View File

@@ -0,0 +1,16 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.server.EntityEgg;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Egg;
/**
* An egg.
*
* @author sk89q
*/
public class CraftEgg extends CraftEntity implements Egg {
public CraftEgg(CraftServer server, EntityEgg ent) {
super(server, ent);
}
}

View File

@@ -0,0 +1,87 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.server.Entity;
import net.minecraft.server.WorldServer;
import org.bukkit.Location;
import org.bukkit.Vector;
import org.bukkit.World;
import org.bukkit.craftbukkit.CraftServer;
public abstract class CraftEntity implements org.bukkit.entity.Entity {
protected final CraftServer server;
private Entity entity;
public CraftEntity(final CraftServer server, final Entity entity) {
this.server = server;
this.entity = entity;
}
public Location getLocation() {
return new Location(getWorld(), entity.p, entity.q, entity.r, entity.v, entity.w);
}
public Vector getVelocity() {
return new Vector(entity.s, entity.t, entity.u);
}
public void setVelocity(Vector vel) {
entity.s = vel.getX();
entity.t = vel.getY();
entity.u = vel.getZ();
}
public World getWorld() {
return ((WorldServer)entity.l).getWorld();
}
public void teleportTo(Location location) {
entity.b(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch());
}
public void teleportTo(org.bukkit.entity.Entity destination) {
teleportTo(destination.getLocation());
}
public int getEntityId() {
return entity.g;
}
public Entity getHandle() {
return entity;
}
public void setHandle(final Entity entity) {
this.entity = entity;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final CraftEntity other = (CraftEntity) obj;
if (this.server != other.server && (this.server == null || !this.server.equals(other.server))) {
return false;
}
if (this.entity != other.entity && (this.entity == null || !this.entity.equals(other.entity))) {
return false;
}
return true;
}
@Override
public int hashCode() {
int hash = 7;
hash = 89 * hash + (this.server != null ? this.server.hashCode() : 0);
hash = 89 * hash + (this.entity != null ? this.entity.hashCode() : 0);
return hash;
}
@Override
public String toString() {
return "CraftEntity{" + "id=" + getEntityId() + '}';
}
}

View File

@@ -0,0 +1,47 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.server.EntityPlayer;
import org.bukkit.entity.HumanEntity;
import org.bukkit.ItemStack;
import org.bukkit.PlayerInventory;
import org.bukkit.craftbukkit.CraftInventoryPlayer;
import org.bukkit.craftbukkit.CraftServer;
public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
private EntityPlayer entity;
private CraftInventoryPlayer inventory;
public CraftHumanEntity(final CraftServer server, final EntityPlayer entity) {
super(server, entity);
this.entity = entity;
this.inventory = new CraftInventoryPlayer( entity.an );
}
public String getName() {
return entity.aw;
}
@Override
public EntityPlayer getHandle() {
return entity;
}
public void setHandle(final EntityPlayer entity) {
super.setHandle((EntityPlayer)entity);
this.entity = entity;
}
public PlayerInventory getInventory() {
return inventory;
}
public ItemStack getItemInHand() {
return getInventory().getItemInHand();
}
@Override
public String toString() {
return "CraftHumanEntity{" + "id=" + getEntityId() + "name=" + getName() + '}';
}
}

View File

@@ -0,0 +1,25 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.server.EntityItem;
import org.bukkit.entity.ItemDrop;
import org.bukkit.ItemStack;
import org.bukkit.craftbukkit.CraftItemStack;
import org.bukkit.craftbukkit.CraftServer;
/**
* Represents an item drop.
*
* @author sk89q
*/
public class CraftItemDrop extends CraftEntity implements ItemDrop {
private EntityItem item;
public CraftItemDrop(CraftServer server, EntityItem ent) {
super(server, ent);
this.item = ent;
}
public ItemStack getItemStack() {
return new CraftItemStack(item.a);
}
}

View File

@@ -0,0 +1,99 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.server.Entity;
import net.minecraft.server.EntityArrow;
import net.minecraft.server.EntityEgg;
import net.minecraft.server.EntityLiving;
import net.minecraft.server.EntitySnowball;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.CraftWorld;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.Egg;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Snowball;
import org.bukkit.entity.Vehicle;
public class CraftLivingEntity extends CraftEntity implements LivingEntity {
private EntityLiving entity;
public CraftLivingEntity(final CraftServer server, final EntityLiving entity) {
super(server, entity);
this.entity = entity;
}
public int getHealth() {
return entity.ba;
}
public void setHealth(int health) {
if ((health < 0) || (health > 20)) {
throw new IllegalArgumentException("Health must be between 0 and 20");
}
entity.ba = health;
}
@Override
public EntityLiving getHandle() {
return entity;
}
public void setHandle(final EntityLiving entity) {
super.setHandle((Entity)entity);
this.entity = entity;
}
@Override
public String toString() {
return "CraftLivingEntity{" + "id=" + getEntityId() + '}';
}
public Egg throwEgg() {
net.minecraft.server.World world = ((CraftWorld)getWorld()).getHandle();
EntityEgg egg = new EntityEgg(world, entity);
world.a(egg);
return new CraftEgg(server, egg);
}
public Snowball throwSnowball() {
net.minecraft.server.World world = ((CraftWorld)getWorld()).getHandle();
EntitySnowball snowball = new EntitySnowball(world, entity);
world.a(snowball);
return new CraftSnowball(server, snowball);
}
public Arrow shootArrow() {
net.minecraft.server.World world = ((CraftWorld)getWorld()).getHandle();
EntityArrow snowball = new EntityArrow(world, entity);
world.a(snowball);
return new CraftArrow(server, snowball);
}
public boolean isInsideVehicle() {
return entity.k != null;
}
public boolean leaveVehicle() {
if (entity.k == null) {
return false;
}
entity.setPassengerOf(null);
return true;
}
public Vehicle getVehicle() {
if (entity.k == null) {
return null;
}
org.bukkit.entity.Entity vehicle = ((CraftWorld)getWorld()).toCraftEntity(entity.k);
if (vehicle instanceof Vehicle) {
return (Vehicle)vehicle;
}
return null;
}
}

View File

@@ -0,0 +1,68 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.server.EntityMinecart;
import org.bukkit.craftbukkit.CraftPoweredMinecart;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Minecart;
/**
* A minecart.
*
* @author sk89q
*/
public class CraftMinecart extends CraftVehicle implements Minecart {
/**
* Stores the minecart type id, which is used by Minecraft to differentiate
* minecart types. Here we use subclasses.
*/
public enum Type {
Minecart(0),
StorageMinecart(1),
PoweredMinecart(2);
private final int id;
private Type(int id) {
this.id = id;
}
public int getId() {
return id;
}
}
protected EntityMinecart minecart;
public CraftMinecart(CraftServer server, EntityMinecart entity) {
super(server, entity);
minecart = entity;
}
public void setDamage(int damage) {
minecart.a = damage;
}
public int getDamage() {
return minecart.a;
}
/**
* Internal function to convert an MC entity to an appropriate CraftBukkit
* entity.
*
* @param server
* @param minecart
* @return
*/
public static CraftMinecart getCraftMinecart(CraftServer server,
EntityMinecart minecart) {
if (minecart.d == Type.StorageMinecart.getId()) {
return new CraftStorageMinecart(server, minecart);
} else if (minecart.d == Type.PoweredMinecart.getId()) {
return new CraftPoweredMinecart(server, minecart);
} else {
return new CraftMinecart(server, minecart);
}
}
}

View File

@@ -0,0 +1,103 @@
package org.bukkit.craftbukkit.entity;
import java.net.InetSocketAddress;
import java.net.SocketAddress;
import net.minecraft.server.EntityPlayer;
import net.minecraft.server.EntityPlayerMP;
import net.minecraft.server.Packet3Chat;
import org.bukkit.Location;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Player;
public class CraftPlayer extends CraftHumanEntity implements Player {
private EntityPlayerMP entity;
private String name;
public CraftPlayer(CraftServer server, EntityPlayerMP entity) {
super(server, entity);
this.name = getName();
this.entity = entity;
}
public boolean isOp() {
return server.getHandle().g(getName());
}
public boolean isOnline() {
for (Object obj: server.getHandle().b) {
EntityPlayerMP player = (EntityPlayerMP) obj;
if (player.aw.equalsIgnoreCase(getName())) {
return true;
}
}
return false;
}
public InetSocketAddress getAddress() {
SocketAddress addr = entity.a.b.b();
if (addr instanceof InetSocketAddress) {
return (InetSocketAddress) addr;
} else {
return null;
}
}
@Override
public EntityPlayerMP getHandle() {
return entity;
}
public void setHandle(final EntityPlayerMP entity) {
super.setHandle((EntityPlayer) entity);
this.entity = entity;
}
public void sendMessage(String message) {
entity.a.b(new Packet3Chat(message));
}
@Override
public void teleportTo(Location location) {
entity.a.a(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch());
}
public String getDisplayName() {
return name;
}
public void setDisplayName(final String name) {
this.name = name;
}
@Override
public String toString() {
return "CraftPlayer{" + "name=" + getName() + '}';
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final CraftPlayer other = (CraftPlayer) obj;
if ((this.getName() == null) ? (other.getName() != null) : !this.getName().equals(other.getName())) {
return false;
}
return true;
}
@Override
public int hashCode() {
int hash = 5;
hash = 97 * hash + (this.getName() != null ? this.getName().hashCode() : 0);
return hash;
}
public void kickPlayer(String message) {
entity.a.a(message);
}
}

View File

@@ -0,0 +1,16 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.server.EntitySnowball;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Snowball;
/**
* A snowball.
*
* @author sk89q
*/
public class CraftSnowball extends CraftEntity implements Snowball {
public CraftSnowball(CraftServer server, EntitySnowball ent) {
super(server, ent);
}
}

View File

@@ -0,0 +1,26 @@
package org.bukkit.craftbukkit.entity;
import net.minecraft.server.EntityMinecart;
import org.bukkit.Inventory;
import org.bukkit.craftbukkit.CraftInventory;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.StorageMinecart;
/**
* A storage minecart.
*
* @author sk89q
*/
public class CraftStorageMinecart extends CraftMinecart implements StorageMinecart {
private CraftInventory inventory;
public CraftStorageMinecart(CraftServer server, EntityMinecart entity) {
super(server, entity);
inventory = new CraftInventory( entity );
}
public Inventory getInventory() {
return inventory;
}
}

View File

@@ -0,0 +1,39 @@
package org.bukkit.craftbukkit.entity;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.CraftWorld;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Vehicle;
/**
* A vehicle.
*
* @author sk89q
*/
public abstract class CraftVehicle extends CraftEntity implements Vehicle {
public CraftVehicle(CraftServer server, net.minecraft.server.Entity entity) {
super(server, entity);
}
public Entity getPassenger() {
return ((CraftWorld)getWorld()).toCraftEntity(getHandle().j);
}
public boolean setPassenger(Entity passenger) {
((CraftEntity)passenger).getHandle().setPassengerOf(getHandle());
return true;
}
public boolean isEmpty() {
return getHandle().j == null;
}
public boolean eject() {
if (getHandle().j == null) {
return false;
}
getHandle().j.setPassengerOf(null);
return true;
}
}