Interface LootableInventory
- All Superinterfaces:
Lootable
- All Known Subinterfaces:
Barrel
,Chest
,ChestBoat
,Crafter
,Dispenser
,Dropper
,Hopper
,HopperMinecart
,LootableBlockInventory
,LootableEntityInventory
,ShulkerBox
,StorageMinecart
Represents an Inventory that contains a Loot Table associated to it that will
automatically fill on first open.
A new feature and API is provided to support automatically refreshing the contents
of the inventory based on that Loot Table after a configurable amount of time has passed.
The behavior of how the Inventory is filled based on the loot table may vary based
on Minecraft versions and the Loot Table feature.
-
Method Summary
Modifier and TypeMethodDescriptionboolean
canPlayerLoot
(@NotNull UUID player) Checks if this player can loot this block.long
Gets the timestamp in milliseconds that the Lootable object was last refilledgetLastLooted
(@NotNull UUID player) Gets the timestamp, in milliseconds, of when the player last looted this objectgetLastLooted
(@NotNull Player player) Gets the timestamp, in milliseconds, of when the player last looted this objectlong
Gets the timestamp in milliseconds that the Lootable object will refillboolean
Whether or not this object has ever been filledboolean
Returns Whether or not this object has been filled and now has a pending refillboolean
hasPlayerLooted
(@NotNull UUID player) Has this player ever looted this blockdefault boolean
hasPlayerLooted
(@NotNull Player player) Has this player ever looted this blockboolean
Server owners have to enable whether or not an object in a world should refillboolean
setHasPlayerLooted
(@NotNull UUID player, boolean looted) Change the state of whether or not a player has looted this blockdefault boolean
setHasPlayerLooted
(@NotNull Player player, boolean looted) Change the state of whether or not a player has looted this blocklong
setNextRefill
(long refillAt) Sets the timestamp in milliseconds of the next refill for this objectMethods inherited from interface org.bukkit.loot.Lootable
clearLootTable, getLootTable, getSeed, hasLootTable, setLootTable, setLootTable, setSeed
-
Method Details
-
isRefillEnabled
boolean isRefillEnabled()Server owners have to enable whether or not an object in a world should refill- Returns:
- If the world this inventory is currently in has Replenishable Lootables enabled
-
hasBeenFilled
boolean hasBeenFilled()Whether or not this object has ever been filled- Returns:
- Has ever been filled
-
hasPlayerLooted
Has this player ever looted this block- Parameters:
player
- The player to check- Returns:
- Whether or not this player has looted this block
-
canPlayerLoot
Checks if this player can loot this block. Takes into account the "restrict player reloot" settings- Parameters:
player
- the player to check- Returns:
- Whether this player can loot this block
-
hasPlayerLooted
Has this player ever looted this block- Parameters:
player
- The player to check- Returns:
- Whether or not this player has looted this block
-
getLastLooted
Gets the timestamp, in milliseconds, of when the player last looted this object- Parameters:
player
- The player to check- Returns:
- Timestamp last looted, or null if player has not looted this object
-
getLastLooted
Gets the timestamp, in milliseconds, of when the player last looted this object- Parameters:
player
- The player to check- Returns:
- Timestamp last looted, or null if player has not looted this object
-
setHasPlayerLooted
Change the state of whether or not a player has looted this block- Parameters:
player
- The player to change state forlooted
- true to add player to looted list, false to remove- Returns:
- The previous state of whether the player had looted this or not
-
setHasPlayerLooted
Change the state of whether or not a player has looted this block- Parameters:
player
- The player to change state forlooted
- true to add player to looted list, false to remove- Returns:
- The previous state of whether the player had looted this or not
-
hasPendingRefill
boolean hasPendingRefill()Returns Whether or not this object has been filled and now has a pending refill- Returns:
- Has pending refill
-
getLastFilled
long getLastFilled()Gets the timestamp in milliseconds that the Lootable object was last refilled- Returns:
- -1 if it was never refilled, or timestamp in milliseconds
-
getNextRefill
long getNextRefill()Gets the timestamp in milliseconds that the Lootable object will refill- Returns:
- -1 if it is not scheduled for refill, or timestamp in milliseconds
-
setNextRefill
long setNextRefill(long refillAt) Sets the timestamp in milliseconds of the next refill for this object- Parameters:
refillAt
- timestamp in milliseconds. -1 to clear next refill- Returns:
- The previous scheduled time to refill, or -1 if was not scheduled
-