All entity stuff in org.bukkit.craftbukkit moved to org.bukkit.craftbukkit.entity
By: Dinnerbone <dinnerbone@dinnerbone.com>
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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() + '}';
|
||||
}
|
||||
}
|
||||
@@ -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() + '}';
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user