Package org.bukkit.event.world
Class LootGenerateEvent
java.lang.Object
org.bukkit.event.Event
org.bukkit.event.world.WorldEvent
org.bukkit.event.world.LootGenerateEvent
- All Implemented Interfaces:
Cancellable
Called when a
LootTable
is generated in the world for an
InventoryHolder
.
This event is NOT currently called when an entity's loot table has been
generated (use EntityDeathEvent.getDrops()
), but WILL be called by
plugins invoking
LootTable.fillInventory(org.bukkit.inventory.Inventory, java.util.Random, LootContext)
.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.bukkit.event.Event
Event.Result
-
Field Summary
Fields inherited from class org.bukkit.event.world.WorldEvent
world
-
Constructor Summary
ConstructorsConstructorDescriptionLootGenerateEvent
(@NotNull World world, @Nullable Entity entity, @Nullable InventoryHolder inventoryHolder, @NotNull LootTable lootTable, @NotNull LootContext lootContext, @NotNull List<ItemStack> items, boolean plugin) -
Method Summary
Modifier and TypeMethodDescription@Nullable Entity
Get the entity used as context for loot generation (if applicable).static @NotNull HandlerList
@NotNull HandlerList
@Nullable InventoryHolder
Get the inventory holder in which the loot was generated.getLoot()
Get a mutable list of all loot to be generated.@NotNull LootContext
Get the loot context used to provide context to the loot table's loot generation.@NotNull LootTable
Get the loot table used to generate loot.boolean
Gets the cancellation state of this event.boolean
isPlugin()
Check whether this event was called as a result of a plugin invokingLootTable.fillInventory(org.bukkit.inventory.Inventory, java.util.Random, LootContext)
.void
setCancelled
(boolean cancel) Sets the cancellation state of this event.void
setLoot
(@Nullable Collection<ItemStack> loot) Set the loot to be generated.Methods inherited from class org.bukkit.event.world.WorldEvent
getWorld
Methods inherited from class org.bukkit.event.Event
callEvent, getEventName, isAsynchronous
-
Constructor Details
-
LootGenerateEvent
@Internal public LootGenerateEvent(@NotNull @NotNull World world, @Nullable @Nullable Entity entity, @Nullable @Nullable InventoryHolder inventoryHolder, @NotNull @NotNull LootTable lootTable, @NotNull @NotNull LootContext lootContext, @NotNull @NotNull List<ItemStack> items, boolean plugin)
-
-
Method Details
-
getEntity
Get the entity used as context for loot generation (if applicable).For inventories where entities are not required to generate loot, such as hoppers,
null
will be returned.
This is a convenience method forgetLootContext().getLootedEntity()
.- Returns:
- the entity
-
getInventoryHolder
Get the inventory holder in which the loot was generated.If the loot was generated as a result of the block being broken, the inventory holder will be
null
as this event is called post block break.- Returns:
- the inventory holder
-
getLootTable
Get the loot table used to generate loot.- Returns:
- the loot table
-
getLootContext
Get the loot context used to provide context to the loot table's loot generation.- Returns:
- the loot context
-
setLoot
Set the loot to be generated.null
items will be treated as air.
Note: the set collection is not the one which will be returned bygetLoot()
.- Parameters:
loot
- the loot to generate,null
to clear all loot
-
getLoot
Get a mutable list of all loot to be generated.Any items added or removed from the returned list will be reflected in the loot generation.
null
items will be treated as air.- Returns:
- the loot to generate
-
isPlugin
public boolean isPlugin()Check whether this event was called as a result of a plugin invokingLootTable.fillInventory(org.bukkit.inventory.Inventory, java.util.Random, LootContext)
.- Returns:
true
if plugin caused,false
otherwise
-
setCancelled
public void setCancelled(boolean cancel) Description copied from interface:Cancellable
Sets the cancellation state of this event. A cancelled event will not be executed in the server, but will still pass to other plugins.- Specified by:
setCancelled
in interfaceCancellable
- Parameters:
cancel
-true
if you wish to cancel this event
-
isCancelled
public boolean isCancelled()Description copied from interface:Cancellable
Gets the cancellation state of this event. A cancelled event will not be executed in the server, but will still pass to other plugins- Specified by:
isCancelled
in interfaceCancellable
- Returns:
true
if this event is cancelled
-
getHandlers
- Specified by:
getHandlers
in classEvent
-
getHandlerList
-