Interface HumanEntity

    • Method Detail

      • getInventory

        @NotNull
        PlayerInventory getInventory()
        Get the player's inventory.
        Specified by:
        getInventory in interface InventoryHolder
        Returns:
        The inventory of the player, this also contains the armor slots.
      • getEnderChest

        @NotNull
        Inventory getEnderChest()
        Get the player's EnderChest inventory
        Returns:
        The EnderChest of the player
      • getMainHand

        @NotNull
        MainHand getMainHand()
        Gets the player's selected main hand
        Returns:
        the players main hand
      • setWindowProperty

        boolean setWindowProperty​(@NotNull
                                  InventoryView.Property prop,
                                  int value)
        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.
        Parameters:
        prop - The property.
        value - The value to set the property to.
        Returns:
        True if the property was successfully set.
      • getOpenInventory

        @NotNull
        InventoryView getOpenInventory()
        Gets the inventory view the player is currently viewing. If they do not have an inventory window open, it returns their internal crafting view.
        Returns:
        The inventory view.
      • openInventory

        @Nullable
        InventoryView openInventory​(@NotNull
                                    Inventory inventory)
        Opens an inventory window with the specified inventory on the top and the player's inventory on the bottom.
        Parameters:
        inventory - The inventory to open
        Returns:
        The newly opened inventory view
      • openWorkbench

        @Nullable
        InventoryView openWorkbench​(@Nullable
                                    Location location,
                                    boolean force)
        Opens an empty workbench inventory window with the player's inventory on the bottom.
        Parameters:
        location - The location to attach it to. If null, the player's location is used.
        force - If false, and there is no workbench block at the location, no inventory will be opened and null will be returned.
        Returns:
        The newly opened inventory view, or null if it could not be opened.
      • openEnchanting

        @Nullable
        InventoryView openEnchanting​(@Nullable
                                     Location location,
                                     boolean force)
        Opens an empty enchanting inventory window with the player's inventory on the bottom.
        Parameters:
        location - The location to attach it to. If null, the player's location is used.
        force - If false, and there is no enchanting table at the location, no inventory will be opened and null will be returned.
        Returns:
        The newly opened inventory view, or null if it could not be opened.
      • openInventory

        void openInventory​(@NotNull
                           InventoryView inventory)
        Opens an inventory window to the specified inventory view.
        Parameters:
        inventory - The view to open
      • openMerchant

        @Nullable
        InventoryView openMerchant​(@NotNull
                                   Villager trader,
                                   boolean force)
        Starts a trade between the player and the villager. Note that only one player may trade with a villager at once. You must use the force parameter for this.
        Parameters:
        trader - The merchant to trade with. Cannot be null.
        force - whether to force the trade even if another player is trading
        Returns:
        The newly opened inventory view, or null if it could not be opened.
      • openMerchant

        @Nullable
        InventoryView openMerchant​(@NotNull
                                   Merchant merchant,
                                   boolean force)
        Starts a trade between the player and the merchant. Note that only one player may trade with a merchant at once. You must use the force parameter for this.
        Parameters:
        merchant - The merchant to trade with. Cannot be null.
        force - whether to force the trade even if another player is trading
        Returns:
        The newly opened inventory view, or null if it could not be opened.
      • closeInventory

        void closeInventory()
        Force-closes the currently open inventory view for this player, if any.
      • getItemInHand

        @Deprecated
        @NotNull
        ItemStack getItemInHand()
        Deprecated.
        Humans may now dual wield in their off hand, use explicit methods in PlayerInventory.
        Returns the ItemStack currently in your hand, can be empty.
        Returns:
        The ItemStack of the item you are currently holding.
      • setItemInHand

        @Deprecated
        void setItemInHand​(@Nullable
                           ItemStack item)
        Deprecated.
        Humans may now dual wield in their off hand, use explicit methods in PlayerInventory.
        Sets the item to the given ItemStack, this will replace whatever the user was holding.
        Parameters:
        item - The ItemStack which will end up in the hand
      • getItemOnCursor

        @NotNull
        ItemStack getItemOnCursor()
        Returns the ItemStack currently on your cursor, can be empty. Will always be empty if the player currently has no open window.
        Returns:
        The ItemStack of the item you are currently moving around.
      • setItemOnCursor

        void setItemOnCursor​(@Nullable
                             ItemStack item)
        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.
        Parameters:
        item - The ItemStack which will end up in the hand
      • hasCooldown

        boolean hasCooldown​(@NotNull
                            Material material)
        Check whether a cooldown is active on the specified material.
        Parameters:
        material - the material to check
        Returns:
        if a cooldown is active on the material
      • getCooldown

        int getCooldown​(@NotNull
                        Material material)
        Get the cooldown time in ticks remaining for the specified material.
        Parameters:
        material - the material to check
        Returns:
        the remaining cooldown time in ticks
      • setCooldown

        void setCooldown​(@NotNull
                         Material material,
                         int ticks)
        Set a cooldown on the specified material for a certain amount of ticks. ticks. 0 ticks will result in the removal of the cooldown.

        Cooldowns are used by the server for items such as ender pearls and shields to prevent them from being used repeatedly.

        Note that cooldowns will not by themselves stop an item from being used for attacking.

        Parameters:
        material - the material to set the cooldown for
        ticks - the amount of ticks to set or 0 to remove
      • getSleepTicks

        int getSleepTicks()
        Get the sleep ticks of the player. This value may be capped.
        Returns:
        slumber ticks
      • getBedSpawnLocation

        @Nullable
        Location getBedSpawnLocation()
        Gets the Location where the player will spawn at their bed, null if they have not slept in one or their current bed spawn is invalid.
        Returns:
        Bed Spawn Location if bed exists, otherwise null.
      • setBedSpawnLocation

        void setBedSpawnLocation​(@Nullable
                                 Location location)
        Sets the Location where the player will spawn at their bed.
        Parameters:
        location - where to set the respawn location
      • setBedSpawnLocation

        void setBedSpawnLocation​(@Nullable
                                 Location location,
                                 boolean force)
        Sets the Location where the player will spawn at their bed.
        Parameters:
        location - where to set the respawn location
        force - whether to forcefully set the respawn location even if a valid bed is not present
      • sleep

        boolean sleep​(@NotNull
                      Location location,
                      boolean force)
        Attempts to make the entity sleep at the given location.
        The location must be in the current world and have a bed placed at the location. The game may also enforce other requirements such as proximity to bed, monsters, and dimension type if force is not set.
        Parameters:
        location - the location of the bed
        force - whether to try and sleep at the location even if not normally possible
        Returns:
        whether the sleep was successful
      • wakeup

        void wakeup​(boolean setSpawnLocation)
        Causes the player to wakeup if they are currently sleeping.
        Parameters:
        setSpawnLocation - whether to set their spawn location to the bed they are currently sleeping in
        Throws:
        IllegalStateException - if not sleeping
      • getBedLocation

        @NotNull
        Location getBedLocation()
        Gets the location of the bed the player is currently sleeping in
        Returns:
        location
        Throws:
        IllegalStateException - if not sleeping
      • getGameMode

        @NotNull
        GameMode getGameMode()
        Gets this human's current GameMode
        Returns:
        Current game mode
      • setGameMode

        void setGameMode​(@NotNull
                         GameMode mode)
        Sets this human's current GameMode
        Parameters:
        mode - New game mode
      • isBlocking

        boolean isBlocking()
        Check if the player is currently blocking (ie with a shield).
        Returns:
        Whether they are blocking.
      • isHandRaised

        boolean isHandRaised()
        Check if the player currently has their hand raised (ie about to begin blocking).
        Returns:
        Whether their hand is raised
      • getExpToLevel

        int getExpToLevel()
        Get the total amount of experience required for the player to level
        Returns:
        Experience required to level up
      • discoverRecipe

        boolean discoverRecipe​(@NotNull
                               NamespacedKey recipe)
        Discover a recipe for this player such that it has not already been discovered. This method will add the key's associated recipe to the player's recipe book.
        Parameters:
        recipe - the key of the recipe to discover
        Returns:
        whether or not the recipe was newly discovered
      • discoverRecipes

        int discoverRecipes​(@NotNull
                            Collection<NamespacedKey> recipes)
        Discover a collection of recipes for this player such that they have not already been discovered. This method will add the keys' associated recipes to the player's recipe book. If a recipe in the provided collection has already been discovered, it will be silently ignored.
        Parameters:
        recipes - the keys of the recipes to discover
        Returns:
        the amount of newly discovered recipes where 0 indicates that none were newly discovered and a number equal to recipes.size() indicates that all were new
      • undiscoverRecipe

        boolean undiscoverRecipe​(@NotNull
                                 NamespacedKey recipe)
        Undiscover a recipe for this player such that it has already been discovered. This method will remove the key's associated recipe from the player's recipe book.
        Parameters:
        recipe - the key of the recipe to undiscover
        Returns:
        whether or not the recipe was successfully undiscovered (i.e. it was previously discovered)
      • undiscoverRecipes

        int undiscoverRecipes​(@NotNull
                              Collection<NamespacedKey> recipes)
        Undiscover a collection of recipes for this player such that they have already been discovered. This method will remove the keys' associated recipes from the player's recipe book. If a recipe in the provided collection has not yet been discovered, it will be silently ignored.
        Parameters:
        recipes - the keys of the recipes to undiscover
        Returns:
        the amount of undiscovered recipes where 0 indicates that none were undiscovered and a number equal to recipes.size() indicates that all were undiscovered
      • getShoulderEntityLeft

        @Deprecated
        @Nullable
        Entity getShoulderEntityLeft()
        Deprecated.
        There are currently no well defined semantics regarding serialized entities in Bukkit. Use with care.
        Gets the entity currently perched on the left shoulder or null if no entity.
        The returned entity will not be spawned within the world, so most operations are invalid unless the entity is first spawned in.
        Returns:
        left shoulder entity
      • setShoulderEntityLeft

        @Deprecated
        void setShoulderEntityLeft​(@Nullable
                                   Entity entity)
        Deprecated.
        There are currently no well defined semantics regarding serialized entities in Bukkit. Use with care.
        Sets the entity currently perched on the left shoulder, or null to remove. This method will remove the entity from the world.
        Note that only a copy of the entity will be set to display on the shoulder.
        Also note that the client will currently only render Parrot entities.
        Parameters:
        entity - left shoulder entity
      • getShoulderEntityRight

        @Deprecated
        @Nullable
        Entity getShoulderEntityRight()
        Deprecated.
        There are currently no well defined semantics regarding serialized entities in Bukkit. Use with care.
        Gets the entity currently perched on the right shoulder or null if no entity.
        The returned entity will not be spawned within the world, so most operations are invalid unless the entity is first spawned in.
        Returns:
        right shoulder entity
      • setShoulderEntityRight

        @Deprecated
        void setShoulderEntityRight​(@Nullable
                                    Entity entity)
        Deprecated.
        There are currently no well defined semantics regarding serialized entities in Bukkit. Use with care.
        Sets the entity currently perched on the right shoulder, or null to remove. This method will remove the entity from the world.
        Note that only a copy of the entity will be set to display on the shoulder.
        Also note that the client will currently only render Parrot entities.
        Parameters:
        entity - right shoulder entity