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
ScreenHandlerwhile 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
ScreenHandlersubclass. 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
Inventorythemselves.
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 bkjintermediary net/minecraft/class_1277named net/minecraft/inventory/SimpleInventory
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final DefaultedList<ItemStack>private @Nullable List<InventoryChangedListener>private final intFields inherited from interface net.minecraft.inventory.Inventory
field_42619, MAX_COUNT_PER_STACK -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddListener(InventoryChangedListener listener) Adds alistenerfor inventory modifications.Addsstackto this inventory as much as possible.private voidaddToExistingSlot(ItemStack stack) private voidaddToNewSlot(ItemStack stack) booleanReturns whetherstackcan be inserted into this inventory.booleancanPlayerUse(PlayerEntity player) Returns whetherplayercan use this inventory.voidclear()Clears this inventory and returns all the non-empty stacks in a list.getStack(int slot) Returns the stack currently stored atslot.booleanisEmpty()Returns whether the inventory consists entirely of empty item stacks.voidMarks the inventory as modified.voidprovideRecipeInputs(RecipeMatcher finder) voidreadNbtList(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.voidremoveListener(InventoryChangedListener listener) Removes alistenerpreviously added by#addListener.removeStack(int slot) Removes the stack currently stored atslot.removeStack(int slot, int amount) Removes a specific number of items fromslot.voidSets the stack stored atslottostack.intsize()Returns the size of the inventory.Returns an NBT list of non-empty item stacks.toString()private voidMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods 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 cLbkj;c:Iintermediary field_5831Lnet/minecraft/class_1277;field_5831:Inamed sizeLnet/minecraft/inventory/SimpleInventory;size:I
-
heldStacks
- Mappings:
Namespace Name Mixin selector official dLbkj;d:Liq;intermediary field_5828Lnet/minecraft/class_1277;field_5828:Lnet/minecraft/class_2371;named heldStacksLnet/minecraft/inventory/SimpleInventory;heldStacks:Lnet/minecraft/util/collection/DefaultedList;
-
listeners
- Mappings:
Namespace Name Mixin selector official eLbkj;e:Ljava/util/List;intermediary field_5829Lnet/minecraft/class_1277;field_5829:Ljava/util/List;named listenersLnet/minecraft/inventory/SimpleInventory;listeners:Ljava/util/List;
-
-
Constructor Details
-
SimpleInventory
public SimpleInventory(int size) - Mappings:
Namespace Name Mixin selector official <init>Lbkj;<init>(I)Vintermediary <init>Lnet/minecraft/class_1277;<init>(I)Vnamed <init>Lnet/minecraft/inventory/SimpleInventory;<init>(I)V
-
SimpleInventory
- Mappings:
Namespace Name Mixin selector official <init>Lbkj;<init>([Lcmy;)Vintermediary <init>Lnet/minecraft/class_1277;<init>([Lnet/minecraft/class_1799;)Vnamed <init>Lnet/minecraft/inventory/SimpleInventory;<init>([Lnet/minecraft/item/ItemStack;)V
-
-
Method Details
-
addListener
Adds alistenerfor inventory modifications. If a listener is added multiple times, it will also be triggered multiple times.- Mappings:
Namespace Name Mixin selector official aLbkj;a(Lbjw;)Vintermediary method_5489Lnet/minecraft/class_1277;method_5489(Lnet/minecraft/class_1265;)Vnamed addListenerLnet/minecraft/inventory/SimpleInventory;addListener(Lnet/minecraft/inventory/InventoryChangedListener;)V
-
removeListener
Removes alistenerpreviously added by#addListener. Does nothing when the listener was not found.- Mappings:
Namespace Name Mixin selector official bLbkj;b(Lbjw;)Vintermediary method_5488Lnet/minecraft/class_1277;method_5488(Lnet/minecraft/class_1265;)Vnamed removeListenerLnet/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:
getStackin interfaceInventory- Returns:
- the stack currently stored at
slot - Mappings:
Namespace Name Mixin selector official aLbju;a(I)Lcmy;intermediary method_5438Lnet/minecraft/class_1263;method_5438(I)Lnet/minecraft/class_1799;named getStackLnet/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 fLbkj;f()Ljava/util/List;intermediary method_24514Lnet/minecraft/class_1277;method_24514()Ljava/util/List;named clearToListLnet/minecraft/inventory/SimpleInventory;clearToList()Ljava/util/List;
-
removeStack
Removes a specific number of items fromslot.- Specified by:
removeStackin interfaceInventory- Returns:
- the removed items as a stack
- Mappings:
Namespace Name Mixin selector official aLbju;a(II)Lcmy;intermediary method_5434Lnet/minecraft/class_1263;method_5434(II)Lnet/minecraft/class_1799;named removeStackLnet/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 aLbkj;a(Lcmt;I)Lcmy;intermediary method_20631Lnet/minecraft/class_1277;method_20631(Lnet/minecraft/class_1792;I)Lnet/minecraft/class_1799;named removeItemLnet/minecraft/inventory/SimpleInventory;removeItem(Lnet/minecraft/item/Item;I)Lnet/minecraft/item/ItemStack;
-
addStack
Addsstackto 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#EMPTYif the entire stack fit inside the inventory - Mappings:
Namespace Name Mixin selector official aLbkj;a(Lcmy;)Lcmy;intermediary method_5491Lnet/minecraft/class_1277;method_5491(Lnet/minecraft/class_1799;)Lnet/minecraft/class_1799;named addStackLnet/minecraft/inventory/SimpleInventory;addStack(Lnet/minecraft/item/ItemStack;)Lnet/minecraft/item/ItemStack;
-
canInsert
Returns whetherstackcan be inserted into this inventory.- Returns:
- whether
stackcan be inserted into this inventory - Mappings:
Namespace Name Mixin selector official bLbkj;b(Lcmy;)Zintermediary method_27070Lnet/minecraft/class_1277;method_27070(Lnet/minecraft/class_1799;)Znamed canInsertLnet/minecraft/inventory/SimpleInventory;canInsert(Lnet/minecraft/item/ItemStack;)Z
-
removeStack
Removes the stack currently stored atslot.- Specified by:
removeStackin interfaceInventory- Returns:
- the stack previously stored at the indicated slot
- Mappings:
Namespace Name Mixin selector official bLbju;b(I)Lcmy;intermediary method_5441Lnet/minecraft/class_1263;method_5441(I)Lnet/minecraft/class_1799;named removeStackLnet/minecraft/inventory/Inventory;removeStack(I)Lnet/minecraft/item/ItemStack;
-
setStack
Sets the stack stored atslottostack. -
size
public int size()Returns the size of the inventory.The inventory should support the slot ID from
0tosize() - 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:
isEmptyin interfaceInventory- Returns:
- whether the inventory consists entirely of empty item stacks
- Mappings:
Namespace Name Mixin selector official ai_Lbju;ai_()Zintermediary method_5442Lnet/minecraft/class_1263;method_5442()Znamed isEmptyLnet/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 whetherplayercan use this inventory.This is called by
ScreenHandler.canUse(net.minecraft.screen.ScreenHandlerContext, net.minecraft.entity.player.PlayerEntity, net.minecraft.block.Block).- Specified by:
canPlayerUsein interfaceInventory- Returns:
- whether
playercan use this inventory - See Also:
- Mappings:
Namespace Name Mixin selector official aLbju;a(Lcfi;)Zintermediary method_5443Lnet/minecraft/class_1263;method_5443(Lnet/minecraft/class_1657;)Znamed canPlayerUseLnet/minecraft/inventory/Inventory;canPlayerUse(Lnet/minecraft/entity/player/PlayerEntity;)Z
-
clear
public void clear() -
provideRecipeInputs
- Specified by:
provideRecipeInputsin interfaceRecipeInputProvider- Mappings:
Namespace Name Mixin selector official aLcjz;a(Lcfm;)Vintermediary method_7683Lnet/minecraft/class_1737;method_7683(Lnet/minecraft/class_1662;)Vnamed provideRecipeInputsLnet/minecraft/recipe/RecipeInputProvider;provideRecipeInputs(Lnet/minecraft/recipe/RecipeMatcher;)V
-
toString
-
addToNewSlot
- Mappings:
Namespace Name Mixin selector official cLbkj;c(Lcmy;)Vintermediary method_20633Lnet/minecraft/class_1277;method_20633(Lnet/minecraft/class_1799;)Vnamed addToNewSlotLnet/minecraft/inventory/SimpleInventory;addToNewSlot(Lnet/minecraft/item/ItemStack;)V
-
addToExistingSlot
- Mappings:
Namespace Name Mixin selector official dLbkj;d(Lcmy;)Vintermediary method_20634Lnet/minecraft/class_1277;method_20634(Lnet/minecraft/class_1799;)Vnamed addToExistingSlotLnet/minecraft/inventory/SimpleInventory;addToExistingSlot(Lnet/minecraft/item/ItemStack;)V
-
transfer
- Mappings:
Namespace Name Mixin selector official aLbkj;a(Lcmy;Lcmy;)Vintermediary method_20632Lnet/minecraft/class_1277;method_20632(Lnet/minecraft/class_1799;Lnet/minecraft/class_1799;)Vnamed transferLnet/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 aLbkj;a(Lst;)Vintermediary method_7659Lnet/minecraft/class_1277;method_7659(Lnet/minecraft/class_2499;)Vnamed readNbtListLnet/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 gLbkj;g()Lst;intermediary method_7660Lnet/minecraft/class_1277;method_7660()Lnet/minecraft/class_2499;named toNbtListLnet/minecraft/inventory/SimpleInventory;toNbtList()Lnet/minecraft/nbt/NbtList;
-
getHeldStacks
- Mappings:
Namespace Name Mixin selector official hLbkj;h()Liq;intermediary method_54454Lnet/minecraft/class_1277;method_54454()Lnet/minecraft/class_2371;named getHeldStacksLnet/minecraft/inventory/SimpleInventory;getHeldStacks()Lnet/minecraft/util/collection/DefaultedList;
-