程序包 org.bukkit.event.world

# 类 LootGenerateEvent

java.lang.Object
org.bukkit.event.Event
org.bukkit.event.world.WorldEvent
org.bukkit.event.world.LootGenerateEvent

所有已实现的接口:
  `Cancellable`

public class LootGenerateEvent extends WorldEvent implements Cancellable
当生成给予`InventoryHolder`的`战利品`时调用. 目前本事件不会在实体的战利品表已经创建时调用 (使用 `EntityDeathEvent.getDrops()` 方法), 但将会因插件使用 `LootTable.fillInventory(org.bukkit.inventory.Inventory, java.util.Random, LootContext)` 方法而调用.

原文: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)`.

- ## 嵌套类概要

  ## 从类继承的嵌套类/接口 org.bukkit.event.Event

  `Event.Result`

- ## 构造器概要

  构造器
  构造器
  说明
  `LootGenerateEvent(@NotNull World world, @Nullable Entity entity, @Nullable InventoryHolder inventoryHolder, @NotNull LootTable lootTable, @NotNull LootContext lootContext, @NotNull List<ItemStack> items, boolean plugin)`

- ## 方法概要

  修饰符和类型
  方法
  说明
  `@Nullable Entity`
  `getEntity()`
  获取生成战利品所用的实体 (若适用).
  `static @NotNull HandlerList`
  `getHandlerList()`
  `@NotNull HandlerList`
  `getHandlers()`
  `@Nullable InventoryHolder`
  `getInventoryHolder()`
  获取产生的战利品所在的物品栏持有者.
  `@NotNull List<ItemStack>`
  `getLoot()`
  获取生成的战利品的可变列表.
  `@NotNull LootContext`
  `getLootContext()`
  获取战利品表上下文, 用于为战利品生成提供上下文信息.
  `@NotNull LootTable`
  `getLootTable()`
  获取所使用的战利品表.
  `boolean`
  `isCancelled()`
  获取这个事件是否被取消.一个被取消的事件不会在服务器里执行，但是仍然会传递事件到其他插件.
  `boolean`
  `isPlugin()`
  检测此事件是否因插件调用 `LootTable.fillInventory(org.bukkit.inventory.Inventory, java.util.Random, LootContext)` 方法触发.
  `void`
  `setCancelled(boolean cancel)`
  取消这个事件.
  `void`
  `setLoot(@Nullable Collection<ItemStack> loot)`
  设置将要生成的战利品.

  ### 从类继承的方法 org.bukkit.event.world.WorldEvent

  `getWorld`

  ### 从类继承的方法 org.bukkit.event.Event

  `getEventName, isAsynchronous`

  ### 从类继承的方法 java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## 构造器详细资料

  - ### LootGenerateEvent

    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)

- ## 方法详细资料

  - ### getEntity

    @Nullable public @Nullable Entity getEntity()
    获取生成战利品所用的实体 (若适用). 对于不需要使用实体生成战利品的物品栏, 比如漏斗, 将返回 null. 本方法是 `getLootContext().getLootedEntity()` 的便利用法.

    原文: 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 for `getLootContext().getLootedEntity()`.

    返回:
      实体

  - ### getInventoryHolder

    @Nullable public @Nullable InventoryHolder getInventoryHolder()
    获取产生的战利品所在的物品栏持有者. 如果战利品因破坏方块而生成, 此物品栏持有者将为 null, 因为此事件在方块破坏后发生.

    原文: 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.

    返回:
      物品栏持有者

  - ### getLootTable

    @NotNull public @NotNull LootTable getLootTable()
    获取所使用的战利品表.

    原文: Get the loot table used to generate loot.

    返回:
      战利品表

  - ### getLootContext

    @NotNull public @NotNull LootContext getLootContext()
    获取战利品表上下文, 用于为战利品生成提供上下文信息.

    原文: Get the loot context used to provide context to the loot table's loot generation.

    返回:
      战利品表上下文

  - ### setLoot

    public void setLoot(@Nullable @Nullable Collection<ItemStack> loot)
    设置将要生成的战利品. Null 物品堆将被当作空气. 注意: 您设置的集合与`getLoot()`方法返回的集合不是同一个对象. (译注:此方法会将自身的战利品集合清空后, 调用addAll方法添加设置的集合. 所以您不能使用`getLoot()`返回的集合作为本方法的参数).

    原文: 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 by `getLoot()`.

    参数:
      `loot` - 生成的战利品, 设为 null 以清空所有战利品

  - ### getLoot

    @NotNull public @NotNull List<ItemStack> getLoot()
    获取生成的战利品的可变列表. 在此列表添加或移除的任何物品将影响到战利品的生成结果. Null 物品堆将被当作空气.

    原文: 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.

    返回:
      生成的战利品

  - ### isPlugin

    public boolean isPlugin()
    检测此事件是否因插件调用 `LootTable.fillInventory(org.bukkit.inventory.Inventory, java.util.Random, LootContext)` 方法触发.

    原文: Check whether or not this event was called as a result of a plugin invoking `LootTable.fillInventory(org.bukkit.inventory.Inventory, java.util.Random, LootContext)`.

    返回:
      若为插件触发则为 true

  - ### setCancelled

    public void setCancelled(boolean cancel)
    从接口复制的说明: `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.

    指定者:
      `setCancelled` 在接口中 `Cancellable`
    参数:
      `cancel` - 如果你想取消这个事件，则为true

  - ### isCancelled

    public boolean isCancelled()
    从接口复制的说明: `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

    指定者:
      `isCancelled` 在接口中 `Cancellable`
    返回:
      如果事件已经被取消，则为true

  - ### getHandlers

    @NotNull public @NotNull HandlerList getHandlers()
    指定者:
      `getHandlers` 在类中 `Event`

  - ### getHandlerList

    @NotNull public static @NotNull HandlerList getHandlerList()