Files
Paper/paper-api/src/main/java/org/bukkit/loot/LootTable.java
2023-09-25 18:53:42 +10:00

40 lines
1.3 KiB
Java

package org.bukkit.loot;
import java.util.Collection;
import java.util.Random;
import org.bukkit.Keyed;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/**
* LootTables are technical files that represent what items should be in
* naturally generated containers, what items should be dropped when killing a
* mob, or what items can be fished.
* <br>
* See the <a href="https://minecraft.wiki/w/Loot_table">
* Minecraft Wiki</a> for more information.
*/
public interface LootTable extends Keyed {
/**
* Returns a mutable list of loot generated by this LootTable.
*
* @param random the random instance to use to generate loot
* @param context context within to populate loot
* @return a list of ItemStacks
*/
@NotNull
Collection<ItemStack> populateLoot(@Nullable Random random, @NotNull LootContext context);
/**
* Attempt to fill an inventory with this LootTable's loot.
*
* @param inventory the inventory to fill
* @param random the random instance to use to generate loot
* @param context context within to populate loot
*/
void fillInventory(@NotNull Inventory inventory, @Nullable Random random, @NotNull LootContext context);
}