Package net.minecraft.inventory
Interface LootableInventory
- All Known Implementing Classes:
BarrelBlockEntity
,ChestBlockEntity
,CrafterBlockEntity
,DecoratedPotBlockEntity
,DispenserBlockEntity
,DropperBlockEntity
,HopperBlockEntity
,LootableContainerBlockEntity
,ShulkerBoxBlockEntity
,TrappedChestBlockEntity
An inventory whose contents can be supplied from a loot table.
This is usually implemented by block entities, which extend LootableContainerBlockEntity
.
- Mappings:
Namespace Name named net/minecraft/inventory/LootableInventory
intermediary net/minecraft/class_8934
official bqy
-
Field Summary
Fields inherited from interface net.minecraft.inventory.Inventory
DEFAULT_MAX_INTERACTION_RANGE
-
Method Summary
Modifier and TypeMethodDescriptiondefault void
generateLoot
(@Nullable PlayerEntity player) Replaces the contents of this inventory with the generated loot, if it exists.long
Returns the loot table's seed.getPos()
getWorld()
default boolean
readLootTable
(NbtCompound nbt) Reads the loot table and seed fromnbt
, if the loot table exists innbt
.void
setLootTable
(@Nullable RegistryKey<LootTable> lootTable) default void
setLootTable
(RegistryKey<LootTable> lootTableId, long lootTableSeed) Sets the loot table and seed at once.static void
setLootTable
(BlockView world, Random random, BlockPos pos, RegistryKey<LootTable> lootTableId) Queries the block entity atpos
, checks if it is aLootableInventory
, and sets the loot table and seed if applicable.void
setLootTableSeed
(long lootTableSeed) Sets the loot table's seed.default boolean
Methods inherited from interface net.minecraft.inventory.Inventory
canPlayerUse, canTransferTo, containsAny, containsAny, count, getMaxCount, getMaxCountPerStack, getStack, isEmpty, isValid, markDirty, onClose, onOpen, removeStack, removeStack, setStack, size
-
Field Details
-
LOOT_TABLE_KEY
- See Also:
- Mappings:
Namespace Name Mixin selector named LOOT_TABLE_KEY
Lnet/minecraft/inventory/LootableInventory;LOOT_TABLE_KEY:Ljava/lang/String;
intermediary field_47154
Lnet/minecraft/class_8934;field_47154:Ljava/lang/String;
official b
Lbqy;b:Ljava/lang/String;
-
LOOT_TABLE_SEED_KEY
- See Also:
- Mappings:
Namespace Name Mixin selector named LOOT_TABLE_SEED_KEY
Lnet/minecraft/inventory/LootableInventory;LOOT_TABLE_SEED_KEY:Ljava/lang/String;
intermediary field_47155
Lnet/minecraft/class_8934;field_47155:Ljava/lang/String;
official c
Lbqy;c:Ljava/lang/String;
-
-
Method Details
-
getLootTable
- Mappings:
Namespace Name Mixin selector named getLootTable
Lnet/minecraft/inventory/LootableInventory;getLootTable()Lnet/minecraft/registry/RegistryKey;
intermediary method_54869
Lnet/minecraft/class_8934;method_54869()Lnet/minecraft/class_5321;
official ax_
Lbqy;ax_()Lakp;
-
setLootTable
- Mappings:
Namespace Name Mixin selector named setLootTable
Lnet/minecraft/inventory/LootableInventory;setLootTable(Lnet/minecraft/registry/RegistryKey;)V
intermediary method_11285
Lnet/minecraft/class_8934;method_11285(Lnet/minecraft/class_5321;)V
official a
Lbqy;a(Lakp;)V
-
setLootTable
Sets the loot table and seed at once. This is useful for code-based structure generation.- See Also:
- Mappings:
Namespace Name Mixin selector named setLootTable
Lnet/minecraft/inventory/LootableInventory;setLootTable(Lnet/minecraft/registry/RegistryKey;J)V
intermediary method_54867
Lnet/minecraft/class_8934;method_54867(Lnet/minecraft/class_5321;J)V
official a
Lbqy;a(Lakp;J)V
-
getLootTableSeed
long getLootTableSeed()Returns the loot table's seed.Vanilla implementations return
0
when there is no loot table associated with the inventory, although it is not necessary.This is usually stored under the "LootTableSeed" NBT key.
- Returns:
- the loot table's seed
- Mappings:
Namespace Name Mixin selector named getLootTableSeed
Lnet/minecraft/inventory/LootableInventory;getLootTableSeed()J
intermediary method_54870
Lnet/minecraft/class_8934;method_54870()J
official ay_
Lbqy;ay_()J
-
setLootTableSeed
void setLootTableSeed(long lootTableSeed) Sets the loot table's seed.Vanilla implementations return
0
when there is no loot table associated with the inventory, although it is not necessary.This is usually stored under the "LootTableSeed" NBT key.
- Mappings:
Namespace Name Mixin selector named setLootTableSeed
Lnet/minecraft/inventory/LootableInventory;setLootTableSeed(J)V
intermediary method_54866
Lnet/minecraft/class_8934;method_54866(J)V
official a
Lbqy;a(J)V
-
getPos
BlockPos getPos()- Mappings:
Namespace Name Mixin selector named getPos
Lnet/minecraft/inventory/LootableInventory;getPos()Lnet/minecraft/util/math/BlockPos;
intermediary method_11016
Lnet/minecraft/class_8934;method_11016()Lnet/minecraft/class_2338;
official az_
Lbqy;az_()Ljd;
-
getWorld
- Mappings:
Namespace Name Mixin selector named getWorld
Lnet/minecraft/inventory/LootableInventory;getWorld()Lnet/minecraft/world/World;
intermediary method_10997
Lnet/minecraft/class_8934;method_10997()Lnet/minecraft/class_1937;
official i
Lbqy;i()Ldcu;
-
setLootTable
static void setLootTable(BlockView world, Random random, BlockPos pos, RegistryKey<LootTable> lootTableId) Queries the block entity atpos
, checks if it is aLootableInventory
, and sets the loot table and seed if applicable. This is useful for code-based structure generation.- See Also:
- Mappings:
Namespace Name Mixin selector named setLootTable
Lnet/minecraft/inventory/LootableInventory;setLootTable(Lnet/minecraft/world/BlockView;Lnet/minecraft/util/math/random/Random;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/registry/RegistryKey;)V
intermediary method_54868
Lnet/minecraft/class_8934;method_54868(Lnet/minecraft/class_1922;Lnet/minecraft/class_5819;Lnet/minecraft/class_2338;Lnet/minecraft/class_5321;)V
official a
Lbqy;a(Ldca;Layv;Ljd;Lakp;)V
-
readLootTable
Reads the loot table and seed fromnbt
, if the loot table exists innbt
. Implementations should skip reading the contents of the inventory if this returnstrue
.- Returns:
- whether the loot table was found
- Mappings:
Namespace Name Mixin selector named readLootTable
Lnet/minecraft/inventory/LootableInventory;readLootTable(Lnet/minecraft/nbt/NbtCompound;)Z
intermediary method_54871
Lnet/minecraft/class_8934;method_54871(Lnet/minecraft/class_2487;)Z
official a_
Lbqy;a_(Lua;)Z
-
writeLootTable
Writes the loot table and seed tonbt
, if the loot table is notnull
. Implementations should skip writing the contents of the inventory if this returnstrue
.This skips writing the seed if it equals
0L
. This has no practical difference in-game, as getting nonexistentlong
values return0L
.- Returns:
- whether the loot table was non-
null
- Mappings:
Namespace Name Mixin selector named writeLootTable
Lnet/minecraft/inventory/LootableInventory;writeLootTable(Lnet/minecraft/nbt/NbtCompound;)Z
intermediary method_54872
Lnet/minecraft/class_8934;method_54872(Lnet/minecraft/class_2487;)Z
official b_
Lbqy;b_(Lua;)Z
-
generateLoot
Replaces the contents of this inventory with the generated loot, if it exists. Does nothing if there is no loot table associated with this inventory. After generation, the loot table is removed from the inventory.Implementations should call this method whenever the inventory is accessed.
- Parameters:
player
- the player that triggered this generation (by opening, breaking, etc), ornull
if there was no player involvement- Mappings:
Namespace Name Mixin selector named generateLoot
Lnet/minecraft/inventory/LootableInventory;generateLoot(Lnet/minecraft/entity/player/PlayerEntity;)V
intermediary method_54873
Lnet/minecraft/class_8934;method_54873(Lnet/minecraft/class_1657;)V
official e_
Lbqy;e_(Lcmv;)V
-