Bukkit/src/main/java/org/bukkit/entity/HumanEntity.java
2013-08-03 21:46:30 -04:00

170 lines
5.1 KiB
Java

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;
/**
* Represents a human entity, such as an NPC or a player
*/
public interface HumanEntity extends LivingEntity, AnimalTamer, Permissible, InventoryHolder {
/**
* Returns the name of this player
*
* @return Player name
*/
public String getName();
/**
* Get the player's inventory.
*
* @return The inventory of the player, this also contains the armor slots.
*/
public PlayerInventory getInventory();
/**
* Get the player's EnderChest inventory
*
* @return The EnderChest of the player
*/
public Inventory getEnderChest();
/**
* 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.
*/
public ItemStack getItemInHand();
/**
* Sets the item to the given ItemStack, this will replace whatever the
* user was holding.
*
* @param item The ItemStack which will end up in the hand
*/
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
*/
public boolean isSleeping();
/**
* Get the sleep ticks of the player. This value may be capped.
*
* @return slumber ticks
*/
public int getSleepTicks();
/**
* Gets this humans current {@link GameMode}
*
* @return Current game mode
*/
public GameMode getGameMode();
/**
* Sets this humans current {@link GameMode}
*
* @param mode New game mode
*/
public void setGameMode(GameMode mode);
/**
* Check if the player is currently blocking (ie with a sword).
*
* @return Whether they are blocking.
*/
public boolean isBlocking();
/**
* Get the total amount of experience required for the player to level
*
* @return Experience required to level up
*/
public int getExpToLevel();
}