the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
1#include "stdafx.h"
2#include "net.minecraft.world.level.tile.entity.h"
3#include "ContainerOpenPacket.h"
4#include "PlayerEnderChestContainer.h"
5
6PlayerEnderChestContainer::PlayerEnderChestContainer() : SimpleContainer(IDS_TILE_ENDERCHEST, L"", false, 9 * 3)
7{
8 activeChest = nullptr;
9}
10
11int PlayerEnderChestContainer::getContainerType()
12{
13 return ContainerOpenPacket::ENDER_CHEST;
14}
15
16void PlayerEnderChestContainer::setActiveChest(shared_ptr<EnderChestTileEntity> activeChest)
17{
18 this->activeChest = activeChest;
19}
20
21void PlayerEnderChestContainer::setItemsByTag(ListTag<CompoundTag> *enderItemsList)
22{
23 for (int i = 0; i < getContainerSize(); i++)
24 {
25 setItem(i, nullptr);
26 }
27 for (int i = 0; i < enderItemsList->size(); i++)
28 {
29 CompoundTag *tag = enderItemsList->get(i);
30 int slot = tag->getByte(L"Slot") & 0xff;
31 if (slot >= 0 && slot < getContainerSize()) setItem(slot, ItemInstance::fromTag(tag));
32 }
33}
34
35ListTag<CompoundTag> *PlayerEnderChestContainer::createTag()
36{
37 ListTag<CompoundTag> *items = new ListTag<CompoundTag>(L"EnderItems");
38 for (int i = 0; i < getContainerSize(); i++)
39 {
40 shared_ptr<ItemInstance> item = getItem(i);
41 if (item != NULL)
42 {
43 CompoundTag *tag = new CompoundTag();
44 tag->putByte(L"Slot", (byte) i);
45 item->save(tag);
46 items->add(tag);
47 }
48 }
49 return items;
50}
51
52bool PlayerEnderChestContainer::stillValid(shared_ptr<Player> player)
53{
54 if (activeChest != NULL && !activeChest->stillValid(player))
55 {
56 return false;
57 }
58 return SimpleContainer::stillValid(player);
59}
60
61void PlayerEnderChestContainer::startOpen()
62{
63 if (activeChest != NULL)
64 {
65 activeChest->startOpen();
66 }
67 SimpleContainer::startOpen();
68}
69
70void PlayerEnderChestContainer::stopOpen()
71{
72 if (activeChest)
73 {
74 activeChest->stopOpen();
75 }
76 SimpleContainer::stopOpen();
77 activeChest = nullptr;
78}
79
80bool PlayerEnderChestContainer::canPlaceItem(int slot, shared_ptr<ItemInstance> item)
81{
82 return true;
83}