Add EntityEquipment API. Adds BUKKIT-3103

Adds:
- Getting/Setting equipment
- getting/setting drop rates
- getting/setting ability to pick up items
-- As an added feature, players with this flag start off with a canceled PlayerPickupItemEvent

By: feildmaster <admin@feildmaster.com>
This commit is contained in:
CraftBukkit/Spigot
2012-12-09 00:09:48 -06:00
parent 1b990d9590
commit 0ef3001c83
4 changed files with 209 additions and 1 deletions

View File

@@ -28,6 +28,7 @@ import org.bukkit.craftbukkit.inventory.CraftInventoryPlayer;
import org.bukkit.craftbukkit.inventory.CraftInventoryView;
import org.bukkit.craftbukkit.inventory.CraftItemStack;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.inventory.EntityEquipment;
import org.bukkit.permissions.PermissibleBase;
import org.bukkit.permissions.Permission;
import org.bukkit.permissions.PermissionAttachment;
@@ -56,6 +57,10 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
return inventory;
}
public EntityEquipment getEquipment() {
return inventory;
}
public Inventory getEnderChest() {
return enderChest;
}

View File

@@ -27,6 +27,7 @@ import org.bukkit.Location;
import org.bukkit.block.Block;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.CraftWorld;
import org.bukkit.craftbukkit.inventory.CraftEntityEquipment;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.Egg;
import org.bukkit.entity.Entity;
@@ -40,14 +41,21 @@ import org.bukkit.entity.Projectile;
import org.bukkit.entity.SmallFireball;
import org.bukkit.entity.Snowball;
import org.bukkit.entity.WitherSkull;
import org.bukkit.inventory.EntityEquipment;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import org.bukkit.util.BlockIterator;
import org.bukkit.util.Vector;
public class CraftLivingEntity extends CraftEntity implements LivingEntity {
private CraftEntityEquipment equipment;
public CraftLivingEntity(final CraftServer server, final EntityLiving entity) {
super(server, entity);
if (!(this instanceof HumanEntity)) {
equipment = new CraftEntityEquipment(this);
}
}
public int getHealth() {
@@ -312,4 +320,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
public void setRemoveWhenFarAway(boolean remove) {
getHandle().persistent = !remove;
}
public EntityEquipment getEquipment() {
return equipment;
}
public void setCanPickupItems(boolean pickup) {
getHandle().canPickUpLoot = pickup;
}
public boolean canPickupItems() {
return getHandle().canPickUpLoot;
}
}