public class BiggerChestBlockEntity extends LootableContainerBlockEntity { private DefaultedList inventory; private static final int INVENTORY_SIZE = 54; // 9 * 6 = 54 public BiggerChestBlockEntity() { super(ExampleMod.BIGGER_CHEST_ENTITY_TYPE); this.inventory = DefaultedList.ofSize(INVENTORY_SIZE, ItemStack.EMPTY); } @Override protected Text getContainerName() { // versions 1.18.2 and below return new TranslatableText("container.chest"); // versions since 1.19 return Text.translatable("container.chest"); } @Override protected ScreenHandler createScreenHandler(int syncId, PlayerInventory playerInventory) { return new BiggerChestScreenHandler(syncId, playerInventory, (Inventory) this); } @Override protected DefaultedList getInvStackList() { return this.inventory; } @Override protected void setInvStackList(DefaultedList list) { this.inventory = list; } @Override public int size() { return INVENTORY_SIZE; } @Override public void fromTag(CompoundTag tag) { super.fromTag(tag); this.inventory = DefaultedList.ofSize(this.size(), ItemStack.EMPTY); if (!this.deserializeLootTable(tag)) { Inventories.fromTag(tag, this.inventory); } } @Override public CompoundTag toTag(CompoundTag tag) { super.toTag(tag); if (!this.serializeLootTable(tag)) { Inventories.toTag(tag, this.inventory); } return tag; } }