diff options
| author | Loki <lokirautio@gmail.com> | 2026-03-09 06:53:08 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-03-09 06:53:08 -0500 |
| commit | bda3b1078ac357b805156a8802a0649f7021716e (patch) | |
| tree | 838cf12ae598a810fb90a6e455f7fc03131f1342 /Minecraft.World/AbstractContainerMenu.cpp | |
| parent | a358a3caaee2a4781f910cfb440bd822ae73a7e5 (diff) | |
Port over RCE Patches from LCEMP (#1023)
* LCEMP RCE Fixes WIP
Based on https://github.com/LCEMP/LCEMP/commit/d017bfc30a68888bf5c79b23cf5c4f607cf828bf
* Update to LCEMP's ByteArrayIO version
Fixes compilation since ours was missing some revisions from LCEMP
* Add additional safety checks missed in first pass
* Remove duplicate recipe count check
Diffstat (limited to 'Minecraft.World/AbstractContainerMenu.cpp')
| -rw-r--r-- | Minecraft.World/AbstractContainerMenu.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/Minecraft.World/AbstractContainerMenu.cpp b/Minecraft.World/AbstractContainerMenu.cpp index 10d8afdc..c98fc22c 100644 --- a/Minecraft.World/AbstractContainerMenu.cpp +++ b/Minecraft.World/AbstractContainerMenu.cpp @@ -157,6 +157,9 @@ shared_ptr<ItemInstance> AbstractContainerMenu::clicked(int slotIndex, int butto shared_ptr<ItemInstance> clickedEntity = nullptr; shared_ptr<Inventory> inventory = player->inventory; + if (slotIndex < 0 || slotIndex >= (int)slots.size()) + return nullptr; + if (clickType == CLICK_QUICK_CRAFT) { int expectedStatus = quickcraftStatus; @@ -558,12 +561,13 @@ bool AbstractContainerMenu::isPauseScreen() void AbstractContainerMenu::setItem(unsigned int slot, shared_ptr<ItemInstance> item) { + if (slot >= slots.size()) return; getSlot(slot)->set(item); } void AbstractContainerMenu::setAll(ItemInstanceArray *items) { - for (unsigned int i = 0; i < items->length; i++) + for (unsigned int i = 0; i < items->length && i < slots.size(); i++) { getSlot(i)->set( (*items)[i] ); } |
