Package net.minecraft.inventory
Class SimpleInventory
java.lang.Object
net.minecraft.inventory.SimpleInventory
- All Implemented Interfaces:
Inventory
,RecipeInputProvider
,Clearable
- Direct Known Subclasses:
ComposterBlock.ComposterInventory
,ComposterBlock.DummyInventory
,ComposterBlock.FullComposterInventory
,EnderChestInventory
A generic implementation of
Inventory
. This is used in a number of
places, mostly:
- To store the input of a
ScreenHandler
while it is open. The inventory is stored as a field, and the screen handler will have a slot backed by that inventory. - When defining the clientside constructor for a
ScreenHandler
subclass. The contents of the inventory will then be automatically synced from the serverside screen handler, which queries the original inventory. - For entities and block entities which do not interact with hoppers and therefore
do not need to implement
Inventory
themselves.
Changes to the inventory can be listened to either by subclassing this and
overriding markDirty()
, or by using addListener(net.minecraft.inventory.InventoryChangedListener)
.
- Mappings:
Namespace Name official bhf
intermediary net/minecraft/class_1277
named net/minecraft/inventory/SimpleInventory
-
Field Summary
Modifier and TypeFieldDescriptionprivate @Nullable List<InventoryChangedListener>
private final int
private final DefaultedList<ItemStack>
Fields inherited from interface net.minecraft.inventory.Inventory
field_42619, MAX_COUNT_PER_STACK
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addListener
(InventoryChangedListener listener) Adds alistener
for inventory modifications.Addsstack
to this inventory as much as possible.private void
addToExistingSlot
(ItemStack stack) private void
addToNewSlot
(ItemStack stack) boolean
Returns whetherstack
can be inserted into this inventory.boolean
canPlayerUse
(PlayerEntity player) Returns whetherplayer
can use this inventory.void
clear()
Clears this inventory and returns all the non-empty stacks in a list.getStack
(int slot) Returns the stack currently stored atslot
.boolean
isEmpty()
Returns whether the inventory consists entirely of empty item stacks.void
Marks the inventory as modified.void
provideRecipeInputs
(RecipeMatcher finder) void
readNbtList
(NbtList nbtList) Reads the item stacks fromnbtList
.removeItem
(Item item, int count) Searches this inventory for the specified item and removes the given amount from this inventory.void
removeListener
(InventoryChangedListener listener) Removes alistener
previously added by#addListener
.removeStack
(int slot) Removes the stack currently stored atslot
.removeStack
(int slot, int amount) Removes a specific number of items fromslot
.void
Sets the stack stored atslot
tostack
.int
size()
Returns the size of the inventory.Returns an NBT list of non-empty item stacks.toString()
private void
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface net.minecraft.inventory.Inventory
canTransferTo, containsAny, containsAny, count, getMaxCountPerStack, isValid, onClose, onOpen
-
Field Details
-
size
private final int size- Mappings:
Namespace Name Mixin selector official c
Lbhf;c:I
intermediary field_5831
Lnet/minecraft/class_1277;field_5831:I
named size
Lnet/minecraft/inventory/SimpleInventory;size:I
-
stacks
- Mappings:
Namespace Name Mixin selector official d
Lbhf;d:Lhn;
intermediary field_5828
Lnet/minecraft/class_1277;field_5828:Lnet/minecraft/class_2371;
named stacks
Lnet/minecraft/inventory/SimpleInventory;stacks:Lnet/minecraft/util/collection/DefaultedList;
-
listeners
- Mappings:
Namespace Name Mixin selector official e
Lbhf;e:Ljava/util/List;
intermediary field_5829
Lnet/minecraft/class_1277;field_5829:Ljava/util/List;
named listeners
Lnet/minecraft/inventory/SimpleInventory;listeners:Ljava/util/List;
-
-
Constructor Details
-
SimpleInventory
public SimpleInventory(int size) - Mappings:
Namespace Name Mixin selector official <init>
Lbhf;<init>(I)V
intermediary <init>
Lnet/minecraft/class_1277;<init>(I)V
named <init>
Lnet/minecraft/inventory/SimpleInventory;<init>(I)V
-
SimpleInventory
- Mappings:
Namespace Name Mixin selector official <init>
Lbhf;<init>([Lcjf;)V
intermediary <init>
Lnet/minecraft/class_1277;<init>([Lnet/minecraft/class_1799;)V
named <init>
Lnet/minecraft/inventory/SimpleInventory;<init>([Lnet/minecraft/item/ItemStack;)V
-
-
Method Details
-
addListener
Adds alistener
for inventory modifications. If a listener is added multiple times, it will also be triggered multiple times.- Mappings:
Namespace Name Mixin selector official a
Lbhf;a(Lbgt;)V
intermediary method_5489
Lnet/minecraft/class_1277;method_5489(Lnet/minecraft/class_1265;)V
named addListener
Lnet/minecraft/inventory/SimpleInventory;addListener(Lnet/minecraft/inventory/InventoryChangedListener;)V
-
removeListener
Removes alistener
previously added by#addListener
. Does nothing when the listener was not found.- Mappings:
Namespace Name Mixin selector official b
Lbhf;b(Lbgt;)V
intermediary method_5488
Lnet/minecraft/class_1277;method_5488(Lnet/minecraft/class_1265;)V
named removeListener
Lnet/minecraft/inventory/SimpleInventory;removeListener(Lnet/minecraft/inventory/InventoryChangedListener;)V
-
getStack
Returns the stack currently stored atslot
.If the slot is empty, or is outside the bounds of this inventory, this returns
ItemStack.EMPTY
.- Specified by:
getStack
in interfaceInventory
- Returns:
- the stack currently stored at
slot
- Mappings:
Namespace Name Mixin selector official a
Lbgr;a(I)Lcjf;
intermediary method_5438
Lnet/minecraft/class_1263;method_5438(I)Lnet/minecraft/class_1799;
named getStack
Lnet/minecraft/inventory/Inventory;getStack(I)Lnet/minecraft/item/ItemStack;
-
clearToList
Clears this inventory and returns all the non-empty stacks in a list.- Returns:
- the non-empty stacks previously in the inventory
- Mappings:
Namespace Name Mixin selector official f
Lbhf;f()Ljava/util/List;
intermediary method_24514
Lnet/minecraft/class_1277;method_24514()Ljava/util/List;
named clearToList
Lnet/minecraft/inventory/SimpleInventory;clearToList()Ljava/util/List;
-
removeStack
Removes a specific number of items fromslot
.- Specified by:
removeStack
in interfaceInventory
- Returns:
- the removed items as a stack
- Mappings:
Namespace Name Mixin selector official a
Lbgr;a(II)Lcjf;
intermediary method_5434
Lnet/minecraft/class_1263;method_5434(II)Lnet/minecraft/class_1799;
named removeStack
Lnet/minecraft/inventory/Inventory;removeStack(II)Lnet/minecraft/item/ItemStack;
-
removeItem
Searches this inventory for the specified item and removes the given amount from this inventory.- Returns:
- the stack of removed items
- Mappings:
Namespace Name Mixin selector official a
Lbhf;a(Lcja;I)Lcjf;
intermediary method_20631
Lnet/minecraft/class_1277;method_20631(Lnet/minecraft/class_1792;I)Lnet/minecraft/class_1799;
named removeItem
Lnet/minecraft/inventory/SimpleInventory;removeItem(Lnet/minecraft/item/Item;I)Lnet/minecraft/item/ItemStack;
-
addStack
Addsstack
to this inventory as much as possible. It is possible that the item stack gets inserted into a non-empty slot or spread across several slots, if it can combine with other stack(s) in this inventory.- Returns:
- the leftover part of the stack, or
ItemStack#EMPTY
if the entire stack fit inside the inventory - Mappings:
Namespace Name Mixin selector official a
Lbhf;a(Lcjf;)Lcjf;
intermediary method_5491
Lnet/minecraft/class_1277;method_5491(Lnet/minecraft/class_1799;)Lnet/minecraft/class_1799;
named addStack
Lnet/minecraft/inventory/SimpleInventory;addStack(Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack;
-
canInsert
Returns whetherstack
can be inserted into this inventory.- Returns:
- whether
stack
can be inserted into this inventory - Mappings:
Namespace Name Mixin selector official b
Lbhf;b(Lcjf;)Z
intermediary method_27070
Lnet/minecraft/class_1277;method_27070(Lnet/minecraft/class_1799;)Z
named canInsert
Lnet/minecraft/inventory/SimpleInventory;canInsert(Lnet/minecraft/item/ItemStack;)Z
-
removeStack
Removes the stack currently stored atslot
.- Specified by:
removeStack
in interfaceInventory
- Returns:
- the stack previously stored at the indicated slot
- Mappings:
Namespace Name Mixin selector official b
Lbgr;b(I)Lcjf;
intermediary method_5441
Lnet/minecraft/class_1263;method_5441(I)Lnet/minecraft/class_1799;
named removeStack
Lnet/minecraft/inventory/Inventory;removeStack(I)Lnet/minecraft/item/ItemStack;
-
setStack
Sets the stack stored atslot
tostack
. -
size
public int size()Returns the size of the inventory.The inventory should support the slot ID from
0
tosize() - 1
. This should remain constant throughout the inventory's lifetime. -
isEmpty
public boolean isEmpty()Returns whether the inventory consists entirely of empty item stacks.- Specified by:
isEmpty
in interfaceInventory
- Returns:
- whether the inventory consists entirely of empty item stacks
- Mappings:
Namespace Name Mixin selector official af_
Lbgr;af_()Z
intermediary method_5442
Lnet/minecraft/class_1263;method_5442()Z
named isEmpty
Lnet/minecraft/inventory/Inventory;isEmpty()Z
-
markDirty
public void markDirty()Marks the inventory as modified. Implementations should call this method every time the inventory is changed in any way. -
canPlayerUse
Returns whetherplayer
can use this inventory.This is called by
ScreenHandler.canUse(net.minecraft.screen.ScreenHandlerContext, net.minecraft.entity.player.PlayerEntity, net.minecraft.block.Block)
.- Specified by:
canPlayerUse
in interfaceInventory
- Returns:
- whether
player
can use this inventory - See Also:
- Mappings:
Namespace Name Mixin selector official a
Lbgr;a(Lcbu;)Z
intermediary method_5443
Lnet/minecraft/class_1263;method_5443(Lnet/minecraft/class_1657;)Z
named canPlayerUse
Lnet/minecraft/inventory/Inventory;canPlayerUse(Lnet/minecraft/entity/player/PlayerEntity;)Z
-
clear
public void clear() -
provideRecipeInputs
- Specified by:
provideRecipeInputs
in interfaceRecipeInputProvider
- Mappings:
Namespace Name Mixin selector official a
Lcgg;a(Lcby;)V
intermediary method_7683
Lnet/minecraft/class_1737;method_7683(Lnet/minecraft/class_1662;)V
named provideRecipeInputs
Lnet/minecraft/recipe/RecipeInputProvider;provideRecipeInputs(Lnet/minecraft/recipe/RecipeMatcher;)V
-
toString
-
addToNewSlot
- Mappings:
Namespace Name Mixin selector official c
Lbhf;c(Lcjf;)V
intermediary method_20633
Lnet/minecraft/class_1277;method_20633(Lnet/minecraft/class_1799;)V
named addToNewSlot
Lnet/minecraft/inventory/SimpleInventory;addToNewSlot(Lnet/minecraft/item/ItemStack;)V
-
addToExistingSlot
- Mappings:
Namespace Name Mixin selector official d
Lbhf;d(Lcjf;)V
intermediary method_20634
Lnet/minecraft/class_1277;method_20634(Lnet/minecraft/class_1799;)V
named addToExistingSlot
Lnet/minecraft/inventory/SimpleInventory;addToExistingSlot(Lnet/minecraft/item/ItemStack;)V
-
transfer
- Mappings:
Namespace Name Mixin selector official a
Lbhf;a(Lcjf;Lcjf;)V
intermediary method_20632
Lnet/minecraft/class_1277;method_20632(Lnet/minecraft/class_1799;Lnet/minecraft/class_1799;)V
named transfer
Lnet/minecraft/inventory/SimpleInventory;transfer(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)V
-
readNbtList
Reads the item stacks fromnbtList
.- See Also:
- Mappings:
Namespace Name Mixin selector official a
Lbhf;a(Lrc;)V
intermediary method_7659
Lnet/minecraft/class_1277;method_7659(Lnet/minecraft/class_2499;)V
named readNbtList
Lnet/minecraft/inventory/SimpleInventory;readNbtList(Lnet/minecraft/nbt/NbtList;)V
-
toNbtList
Returns an NBT list of non-empty item stacks.Unlike
Inventories.writeNbt(NbtCompound, DefaultedList, boolean)
, this does not serialize the slots.- Returns:
- an NBT list of non-empty item stacks
- See Also:
- Mappings:
Namespace Name Mixin selector official g
Lbhf;g()Lrc;
intermediary method_7660
Lnet/minecraft/class_1277;method_7660()Lnet/minecraft/class_2499;
named toNbtList
Lnet/minecraft/inventory/SimpleInventory;toNbtList()Lnet/minecraft/nbt/NbtList;
-