From 9e744da7beaa4637fb46a439be601a9136aad7e5 Mon Sep 17 00:00:00 2001 From: Shock95 <16858059+Shock95@users.noreply.github.com> Date: Mon, 4 May 2026 15:17:45 -0400 Subject: [PATCH 1/5] fix: update imports --- example/src/endstone_inventoryui_example/main.py | 2 +- src/endstone_inventoryui/listener.py | 3 +-- src/endstone_inventoryui/menu/inventory.py | 2 +- src/endstone_inventoryui/menu/menu.py | 3 +-- src/endstone_inventoryui/network/item_stack_wrapper.py | 3 +-- src/endstone_inventoryui/util/item_utils.py | 2 +- 6 files changed, 6 insertions(+), 9 deletions(-) diff --git a/example/src/endstone_inventoryui_example/main.py b/example/src/endstone_inventoryui_example/main.py index c956748..cf069b5 100644 --- a/example/src/endstone_inventoryui_example/main.py +++ b/example/src/endstone_inventoryui_example/main.py @@ -1,5 +1,5 @@ from endstone import Player -from endstone._internal.endstone_python import ItemStack +from endstone.inventory import ItemStack from endstone.command import CommandSender, Command from endstone.plugin import Plugin diff --git a/src/endstone_inventoryui/listener.py b/src/endstone_inventoryui/listener.py index 75301c6..a1574d5 100644 --- a/src/endstone_inventoryui/listener.py +++ b/src/endstone_inventoryui/listener.py @@ -1,8 +1,7 @@ from bedrock_protocol.packets import MinecraftPacketIds from bedrock_protocol.packets.enums import ItemStackRequestActionType from bedrock_protocol.packets.packet import ContainerClosePacket, ItemRegistryPacket, ItemStackRequestPacket -from endstone._internal.endstone_python import PacketSendEvent -from endstone.event import event_handler, EventPriority, PlayerQuitEvent, PacketReceiveEvent +from endstone.event import event_handler, EventPriority, PlayerQuitEvent, PacketReceiveEvent, PacketSendEvent from endstone.plugin import Plugin from .manager import Session diff --git a/src/endstone_inventoryui/menu/inventory.py b/src/endstone_inventoryui/menu/inventory.py index 90fd8f4..b604cea 100644 --- a/src/endstone_inventoryui/menu/inventory.py +++ b/src/endstone_inventoryui/menu/inventory.py @@ -1,6 +1,6 @@ from typing import overload, Callable -from endstone._internal.endstone_python import ItemStack +from endstone.inventory import ItemStack from endstone_inventoryui.util.item_utils import clone_item diff --git a/src/endstone_inventoryui/menu/menu.py b/src/endstone_inventoryui/menu/menu.py index acc7688..c47f172 100644 --- a/src/endstone_inventoryui/menu/menu.py +++ b/src/endstone_inventoryui/menu/menu.py @@ -1,8 +1,7 @@ from typing import Optional, Callable, TYPE_CHECKING from endstone import Player -from endstone._internal.endstone_python import ItemStack - +from endstone.inventory import ItemStack from endstone_inventoryui.manager.player_manager import find_session, create_session from endstone_inventoryui.menu.inventory import UIInventory from endstone_inventoryui.menu.menu_type import MenuType diff --git a/src/endstone_inventoryui/network/item_stack_wrapper.py b/src/endstone_inventoryui/network/item_stack_wrapper.py index f84bd25..c29a0d5 100644 --- a/src/endstone_inventoryui/network/item_stack_wrapper.py +++ b/src/endstone_inventoryui/network/item_stack_wrapper.py @@ -1,7 +1,6 @@ from bedrock_protocol.packets.types import ItemData from bstream import BinaryStream -from endstone._internal.endstone_python import ItemStack - +from endstone.inventory import ItemStack from endstone_inventoryui.util.item_utils import build_tag from endstone_inventoryui.util.item_utils import is_air diff --git a/src/endstone_inventoryui/util/item_utils.py b/src/endstone_inventoryui/util/item_utils.py index 063c546..e25bffe 100644 --- a/src/endstone_inventoryui/util/item_utils.py +++ b/src/endstone_inventoryui/util/item_utils.py @@ -1,7 +1,7 @@ from ctypes import c_int16 from bedrock_protocol.packets.types import ItemData -from endstone._internal.endstone_python import ItemStack, ItemMeta +from endstone.inventory import ItemStack, ItemMeta from rapidnbt import CompoundTag, ListTag enchant_map = { From 1e0de94c8b9f70b1331650787d277ca59f3ffa50 Mon Sep 17 00:00:00 2001 From: Shock95 <16858059+Shock95@users.noreply.github.com> Date: Tue, 5 May 2026 02:57:36 -0400 Subject: [PATCH 2/5] fix: update protocol dependency --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 7d2b02f..9c45be0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,7 @@ build-backend = "hatchling.build" name = "endstone-inventoryui" version = "1.1.0" dependencies = [ - "bedrock-protocol-packets" + "bedrock-protocol-packets-ng" ] authors = [ { name = "Shock95", email = "" }, From 097e4d54f4f6c17053181b97451ab4b933261f13 Mon Sep 17 00:00:00 2001 From: Shock95 <16858059+Shock95@users.noreply.github.com> Date: Tue, 5 May 2026 03:08:47 -0400 Subject: [PATCH 3/5] fix: prevent ItemStack amount being set to 0 --- src/endstone_inventoryui/menu/inventory.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/endstone_inventoryui/menu/inventory.py b/src/endstone_inventoryui/menu/inventory.py index b604cea..e31c19b 100644 --- a/src/endstone_inventoryui/menu/inventory.py +++ b/src/endstone_inventoryui/menu/inventory.py @@ -71,8 +71,10 @@ def add_item(self, *args: ItemStack) -> dict[int, ItemStack]: min(self._max_stack_size, slot_item.max_stack_size) - slot_item.amount) if max_add > 0: slot_item.amount += max_add - remaining.amount -= max_add self._notify_slot_update(slot_idx) + if remaining.amount == max_add: + break + remaining.amount -= max_add for slot_idx in range(self._size): if remaining.amount <= 0: @@ -83,6 +85,8 @@ def add_item(self, *args: ItemStack) -> dict[int, ItemStack]: new_item = clone_item(remaining) new_item.amount = max_add self._slots[slot_idx] = new_item + if remaining.amount == max_add: + break remaining.amount -= max_add self._notify_slot_update(slot_idx) if remaining.amount > 0: From 6180d601ad889535848751dcca65e63de850002a Mon Sep 17 00:00:00 2001 From: Shock95 <16858059+Shock95@users.noreply.github.com> Date: Tue, 5 May 2026 03:09:41 -0400 Subject: [PATCH 4/5] fix: replace NetworkBlockPosition with BlockPos --- src/endstone_inventoryui/menu/graphic/block_graphic.py | 6 +++--- src/endstone_inventoryui/menu/graphic/block_pair_graphic.py | 6 +++--- src/endstone_inventoryui/util/utils.py | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/endstone_inventoryui/menu/graphic/block_graphic.py b/src/endstone_inventoryui/menu/graphic/block_graphic.py index c5bf4ce..d8e5c5a 100644 --- a/src/endstone_inventoryui/menu/graphic/block_graphic.py +++ b/src/endstone_inventoryui/menu/graphic/block_graphic.py @@ -1,5 +1,5 @@ from bedrock_protocol.packets.packet import BlockActorDataPacket, ContainerOpenPacket -from bedrock_protocol.packets.types import BlockPos, NetworkBlockPosition +from bedrock_protocol.packets.types import BlockPos from endstone import Player from rapidnbt import CompoundTag @@ -24,12 +24,12 @@ def send_data(self, player: Player): pos = self.pos tag.set("id", self.menu.type.block_actor_id) tag.set("CustomName", self.menu.name) - pk = BlockActorDataPacket(NetworkBlockPosition(pos.x, pos.y, pos.z), tag) + pk = BlockActorDataPacket(BlockPos(pos.x, pos.y, pos.z), tag) player.send_packet(pk.get_packet_id(), pk.serialize()) def open(self, player: Player): from endstone_inventoryui.manager import Session - pos = NetworkBlockPosition(self.pos.x, self.pos.y, self.pos.z) + pos = BlockPos(self.pos.x, self.pos.y, self.pos.z) pk = ContainerOpenPacket(Session.CONTAINER_ID, self.menu.type.container_type, pos) player.send_packet(pk.get_packet_id(), pk.serialize()) diff --git a/src/endstone_inventoryui/menu/graphic/block_pair_graphic.py b/src/endstone_inventoryui/menu/graphic/block_pair_graphic.py index cd36d26..98ca66e 100644 --- a/src/endstone_inventoryui/menu/graphic/block_pair_graphic.py +++ b/src/endstone_inventoryui/menu/graphic/block_pair_graphic.py @@ -1,5 +1,5 @@ from bedrock_protocol.packets.packet import BlockActorDataPacket, ContainerOpenPacket -from bedrock_protocol.packets.types import BlockPos, NetworkBlockPosition +from bedrock_protocol.packets.types import BlockPos from endstone import Player from rapidnbt import CompoundTag @@ -28,13 +28,13 @@ def send_data(self, player: Player): tag = CompoundTag() tag.set("id", self.menu.type.block_actor_id) tag.set("CustomName", self.menu.name) - pk = BlockActorDataPacket(NetworkBlockPosition(p.x, p.y, p.z), tag) + pk = BlockActorDataPacket(BlockPos(p.x, p.y, p.z), tag) player.send_packet(pk.get_packet_id(), pk.serialize()) def open(self, player: Player): from endstone_inventoryui.manager import Session pos, _ = self.pos - net_pos = NetworkBlockPosition(pos.x, pos.y, pos.z) + net_pos = BlockPos(pos.x, pos.y, pos.z) pk = ContainerOpenPacket(Session.CONTAINER_ID, self.menu.type.container_type, net_pos) player.send_packet(pk.get_packet_id(), pk.serialize()) diff --git a/src/endstone_inventoryui/util/utils.py b/src/endstone_inventoryui/util/utils.py index a11829c..40d38fa 100644 --- a/src/endstone_inventoryui/util/utils.py +++ b/src/endstone_inventoryui/util/utils.py @@ -2,7 +2,7 @@ import random from bedrock_protocol.packets.packet import UpdateBlockPacket -from bedrock_protocol.packets.types import BlockPos, NetworkBlockPosition +from bedrock_protocol.packets.types import BlockPos from endstone import Player, Server from endstone_inventoryui.network.network_stack_latency_packet import NetworkStackLatencyPacket @@ -25,7 +25,7 @@ def send_ack_packet(player: Player) -> int: def send_block(player: Player, name: str, pos: BlockPos): block_data = player.server.create_block_data(name) - pk = UpdateBlockPacket(NetworkBlockPosition(pos.x, pos.y, pos.z), block_data.runtime_id, 0b0010, 0) + pk = UpdateBlockPacket(BlockPos(pos.x, pos.y, pos.z), block_data.runtime_id, 0b0010, 0) player.send_packet(pk.get_packet_id(), pk.serialize()) From 6e58ea0745a5e35904904d74f1b0b7a6e56edb62 Mon Sep 17 00:00:00 2001 From: Shock95 <16858059+Shock95@users.noreply.github.com> Date: Tue, 5 May 2026 03:15:18 -0400 Subject: [PATCH 5/5] chore: bump version to 1.1.1 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 9c45be0..6dcc0cf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "endstone-inventoryui" -version = "1.1.0" +version = "1.1.1" dependencies = [ "bedrock-protocol-packets-ng" ]