summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/bukkit/entity/HumanEntity.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/bukkit/entity/HumanEntity.java')
-rw-r--r--src/main/java/org/bukkit/entity/HumanEntity.java75
1 files changed, 74 insertions, 1 deletions
diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java
index 654a7475..92201d4a 100644
--- a/src/main/java/org/bukkit/entity/HumanEntity.java
+++ b/src/main/java/org/bukkit/entity/HumanEntity.java
@@ -1,6 +1,10 @@
package org.bukkit.entity;
import org.bukkit.GameMode;
+import org.bukkit.Location;
+import org.bukkit.inventory.Inventory;
+import org.bukkit.inventory.InventoryHolder;
+import org.bukkit.inventory.InventoryView;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.PlayerInventory;
import org.bukkit.permissions.Permissible;
@@ -8,7 +12,7 @@ import org.bukkit.permissions.Permissible;
/**
* Represents a human entity, such as an NPC or a player
*/
-public interface HumanEntity extends LivingEntity, AnimalTamer, Permissible {
+public interface HumanEntity extends LivingEntity, AnimalTamer, Permissible, InventoryHolder {
/**
* Returns the name of this player
@@ -25,6 +29,59 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, Permissible {
public PlayerInventory getInventory();
/**
+ * If the player currently has an inventory window open, this method will set a
+ * property of that window, such as the state of a progress bar.
+ * @param prop The property.
+ * @param value The value to set the property to.
+ * @return True if the property was successfully set.
+ */
+ public boolean setWindowProperty(InventoryView.Property prop, int value);
+
+ /**
+ * Gets the inventory view the player is currently viewing. If they do not have
+ * an inventory window open, it returns their internal crafting view.
+ * @return The inventory view.
+ */
+ public InventoryView getOpenInventory();
+
+ /**
+ * Opens an inventory window with the specified inventory on the top and the player's inventory
+ * on the bottom.
+ * @param inventory The inventory to open
+ * @return The newly opened inventory view
+ */
+ public InventoryView openInventory(Inventory inventory);
+
+ /**
+ * Opens an empty workbench inventory window with the player's inventory on the bottom.
+ * @param location The location to attach it to. If null, the player's location is used.
+ * @param force If false, and there is no workbench block at the location, no inventory will be
+ * opened and null will be returned.
+ * @return The newly opened inventory view, or null if it could not be opened.
+ */
+ public InventoryView openWorkbench(Location location, boolean force);
+
+ /**
+ * Opens an empty enchanting inventory window with the player's inventory on the bottom.
+ * @param location The location to attach it to. If null, the player's location is used.
+ * @param force If false, and there is no enchanting table at the location, no inventory will be
+ * opened and null will be returned.
+ * @return The newly opened inventory view, or null if it could not be opened.
+ */
+ public InventoryView openEnchanting(Location location, boolean force);
+
+ /**
+ * Opens an inventory window to the specified inventory view
+ * @param inventory The view to open
+ */
+ public void openInventory(InventoryView inventory);
+
+ /**
+ * Force-closes the currently open inventory view for this player, if any.
+ */
+ public void closeInventory();
+
+ /**
* Returns the ItemStack currently in your hand, can be empty.
*
* @return The ItemStack of the item you are currently holding.
@@ -40,6 +97,22 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, Permissible {
public void setItemInHand(ItemStack item);
/**
+ * Returns the ItemStack currently on your cursor, can be empty.
+ * Will always be empty if the player currently has no open window.
+ *
+ * @return The ItemStack of the item you are currently moving around.
+ */
+ public ItemStack getItemOnCursor();
+
+ /**
+ * Sets the item to the given ItemStack, this will replace whatever the
+ * user was moving. Will always be empty if the player currently has no open window.
+ *
+ * @param item The ItemStack which will end up in the hand
+ */
+ public void setItemOnCursor(ItemStack item);
+
+ /**
* Returns whether this player is slumbering.
*
* @return slumber state