summaryrefslogtreecommitdiffstats
path: root/src/main/java/org
diff options
context:
space:
mode:
authorfeildmaster <admin@feildmaster.com>2012-12-09 00:52:20 -0600
committerfeildmaster <admin@feildmaster.com>2012-12-10 19:09:58 -0600
commit7221df2963bfa0de13dbdf39e4eb39659b51acc7 (patch)
treea2100de80b71a70dc951104fe0cf69f07918b0bc /src/main/java/org
parentee44d5ff0dea3099911ce0d067363e02ead52a1a (diff)
downloadbukkit-7221df2963bfa0de13dbdf39e4eb39659b51acc7.tar
bukkit-7221df2963bfa0de13dbdf39e4eb39659b51acc7.tar.gz
bukkit-7221df2963bfa0de13dbdf39e4eb39659b51acc7.tar.lz
bukkit-7221df2963bfa0de13dbdf39e4eb39659b51acc7.tar.xz
bukkit-7221df2963bfa0de13dbdf39e4eb39659b51acc7.zip
Add EntityEquipment API. Adds BUKKIT-3103
Diffstat (limited to 'src/main/java/org')
-rw-r--r--src/main/java/org/bukkit/entity/LivingEntity.java22
-rw-r--r--src/main/java/org/bukkit/inventory/EntityEquipment.java209
2 files changed, 231 insertions, 0 deletions
diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java
index af292397..870b4619 100644
--- a/src/main/java/org/bukkit/entity/LivingEntity.java
+++ b/src/main/java/org/bukkit/entity/LivingEntity.java
@@ -6,6 +6,7 @@ import java.util.List;
import org.bukkit.Location;
import org.bukkit.block.Block;
+import org.bukkit.inventory.EntityEquipment;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
@@ -293,4 +294,25 @@ public interface LivingEntity extends Entity {
* @param remove The remove status
*/
public void setRemoveWhenFarAway(boolean remove);
+
+ /**
+ * Gets the inventory with the equipment worn by this entity.
+ *
+ * @return the entities inventory.
+ */
+ public EntityEquipment getEquipment();
+
+ /**
+ * Sets whether or not the entity can pick up items
+ *
+ * @param pickup Whether or not the entity can pick up items
+ */
+ public void setCanPickupItems(boolean pickup);
+
+ /**
+ * Gets if the entity can pick up items
+ *
+ * @return whether or not the entity can pick up items
+ */
+ public boolean getCanPickupItems();
}
diff --git a/src/main/java/org/bukkit/inventory/EntityEquipment.java b/src/main/java/org/bukkit/inventory/EntityEquipment.java
new file mode 100644
index 00000000..f2a71199
--- /dev/null
+++ b/src/main/java/org/bukkit/inventory/EntityEquipment.java
@@ -0,0 +1,209 @@
+package org.bukkit.inventory;
+
+import org.bukkit.entity.Entity;
+
+/**
+ * An interface to a creatures inventory
+ */
+public interface EntityEquipment {
+ /**
+ * Gets a copy of the item the entity is currently holding
+ *
+ * @return the currently held item
+ */
+ ItemStack getItemInHand();
+
+ /**
+ * Sets the item the entity is holding
+ *
+ * @param stack The item to put into the entities hand
+ */
+ void setItemInHand(ItemStack stack);
+
+ /**
+ * Gets a copy of the helmet currently being worn by the entity
+ *
+ * @return The helmet being worn
+ */
+ ItemStack getHelmet();
+
+ /**
+ * Sets the helmet worn by the entity
+ *
+ * @param helmet The helmet to put on the entity
+ */
+ void setHelmet(ItemStack helmet);
+
+ /**
+ * Gets a copy of the chest plate currently being worn by the entity
+ *
+ * @return The chest plate being worn
+ */
+ ItemStack getChestplate();
+
+ /**
+ * Sets the chest plate worn by the entity
+ *
+ * @param chestplate The chest plate to put on the entity
+ */
+ void setChestplate(ItemStack chestplate);
+
+ /**
+ * Gets a copy of the leggings currently being worn by the entity
+ *
+ * @return The leggings being worn
+ */
+ ItemStack getLeggings();
+
+ /**
+ * Sets the leggings worn by the entity
+ *
+ * @param leggings The leggings to put on the entity
+ */
+ void setLeggings(ItemStack leggings);
+
+ /**
+ * Gets a copy of the boots currently being worn by the entity
+ *
+ * @return The boots being worn
+ */
+ ItemStack getBoots();
+
+ /**
+ * Sets the boots worn by the entity
+ *
+ * @param boots The boots to put on the entity
+ */
+ void setBoots(ItemStack boots);
+
+ /**
+ * Gets a copy of all worn armor
+ *
+ * @return The array of worn armor
+ */
+ ItemStack[] getArmorContents();
+
+ /**
+ * Sets the entities armor to the provided array of ItemStacks
+ *
+ * @param items The items to set the armor as
+ */
+ void setArmorContents(ItemStack[] items);
+
+ /**
+ * Clears the entity of all armor and held items
+ */
+ void clear();
+
+ /**
+ * Gets the chance of the currently held item being dropped upon this creature's death
+ * <p />
+ * <li />A drop chance of 0F will never drop
+ * <li />A drop chance of 1F will always drop
+ *
+ * @return chance of the currently held item being dropped (1 for players)
+ */
+ float getItemInHandDropChance();
+
+ /**
+ * Sets the chance of the item this creature is currently holding being dropped upon this creature's death
+ * <p />
+ * <li />A drop chance of 0F will never drop
+ * <li />A drop chance of 1F will always drop
+ *
+ * @param chance the chance of the currently held item being dropped
+ * @throws UnsupportedOperationException when called on players
+ */
+ void setItemInHandDropChance(float chance);
+
+ /**
+ * Gets the chance of the helmet being dropped upon this creature's death
+ * <p />
+ * <li />A drop chance of 0F will never drop
+ * <li />A drop chance of 1F will always drop
+ *
+ * @return the chance of the helmet being dropped (1 for players)
+ */
+ float getHelmetDropChance();
+
+ /**
+ * Sets the chance of the helmet being dropped upon this creature's death
+ * <p />
+ * <li />A drop chance of 0F will never drop
+ * <li />A drop chance of 1F will always drop
+ *
+ * @param chance of the helmet being dropped
+ * @throws UnsupportedOperationException when called on players
+ */
+ void setHelmetDropChance(float chance);
+
+ /**
+ * Gets the chance of the chest plate being dropped upon this creature's death
+ * <p />
+ * <li />A drop chance of 0F will never drop
+ * <li />A drop chance of 1F will always drop
+ *
+ * @return the chance of the chest plate being dropped (1 for players)
+ */
+ float getChestPlateDropChance();
+
+ /**
+ * Sets the chance of the chest plate being dropped upon this creature's death
+ * <p />
+ * <li />A drop chance of 0F will never drop
+ * <li />A drop chance of 1F will always drop
+ *
+ * @param chance of the chest plate being dropped
+ * @throws UnsupportedOperationException when called on players
+ */
+ void setChestPlateDropChance(float chance);
+
+ /**
+ * Gets the chance of the leggings being dropped upon this creature's death
+ * <p />
+ * <li />A drop chance of 0F will never drop
+ * <li />A drop chance of 1F will always drop
+ *
+ * @return the chance of the leggings being dropped (1 for players)
+ */
+ float getLeggingsDropChance();
+
+ /**
+ * Sets the chance of the leggings being dropped upon this creature's death
+ * <p />
+ * <li />A drop chance of 0F will never drop
+ * <li />A drop chance of 1F will always drop
+ *
+ * @param chance chance of the leggings being dropped
+ * @throws UnsupportedOperationException when called on players
+ */
+ void setLeggingsDropChance(float chance);
+
+ /**
+ * Gets the chance of the boots being dropped upon this creature's death
+ * <p />
+ * <li />A drop chance of 0F will never drop
+ * <li />A drop chance of 1F will always drop
+ *
+ * @return the chance of the boots being dropped (1 for players)
+ */
+ float getBootsDropChance();
+
+ /**
+ * Sets the chance of the boots being dropped upon this creature's death
+ * <p />
+ * <li />A drop chance of 0F will never drop
+ * <li />A drop chance of 1F will always drop
+ *
+ * @param chance of the boots being dropped
+ * @throws UnsupportedOperationException when called on players
+ */
+ void setBootsDropChance(float chance);
+
+ /**
+ * Get the entity this CreatureEquipment belongs to
+ *
+ * @return the entity this CreatureEquipment belongs to
+ */
+ Entity getHolder();
+}