From 9eee1a9a6ec2cf1ac33f57b88bbac1ec04c36bfa Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Sun, 31 Aug 2025 03:22:58 +0100 Subject: [PATCH 1/5] Banner: don't bail on missing type tags we didn't set these prior to 5.33.0, so these won't be present on older worlds. --- src/block/tile/Banner.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/block/tile/Banner.php b/src/block/tile/Banner.php index 97ffe630d..b6a143fe7 100644 --- a/src/block/tile/Banner.php +++ b/src/block/tile/Banner.php @@ -82,7 +82,7 @@ class Banner extends Spawnable{ } } - $this->type = $nbt->getInt(self::TAG_TYPE); + $this->type = $nbt->getInt(self::TAG_TYPE, self::TYPE_NORMAL); } protected function writeSaveData(CompoundTag $nbt) : void{ From a540de1e3cd2edbbebf5e7d71057f060dea9d54e Mon Sep 17 00:00:00 2001 From: "Dylan T." Date: Sun, 31 Aug 2025 03:27:21 +0100 Subject: [PATCH 2/5] Prepare 5.33.1 patch release (#6784) --- changelogs/5.33.md | 6 ++++++ src/VersionInfo.php | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/changelogs/5.33.md b/changelogs/5.33.md index 45f03f521..fe2e15a07 100644 --- a/changelogs/5.33.md +++ b/changelogs/5.33.md @@ -127,3 +127,9 @@ Consider using the `mcpe-protocol` directive in `plugin.yml` as a constraint if ## Internals - `BlockStateUpgrader` is now almost entirely independent from `BlockStateData`. It's anticipated that the upgrader library will be separable from the core in the future. - `Block->readStateFromWorld()` is now triggered on chunk load for any position containing a tile. This should allow more effective updating of blocks with properties in their tiles. + +# 5.33.1 +Released 31st August 2025. + +## Fixes +- Fixed banners placed in prior versions getting their tiles deleted (due to missing `Type` tags). diff --git a/src/VersionInfo.php b/src/VersionInfo.php index 1d4179f7d..4592b3d14 100644 --- a/src/VersionInfo.php +++ b/src/VersionInfo.php @@ -32,7 +32,7 @@ use function str_repeat; final class VersionInfo{ public const NAME = "PocketMine-MP"; public const BASE_VERSION = "5.33.1"; - public const IS_DEVELOPMENT_BUILD = true; + public const IS_DEVELOPMENT_BUILD = false; public const BUILD_CHANNEL = "stable"; /** From 09cc76ae2b49f1fe3ab0253e6e987fb82bd0a08f Mon Sep 17 00:00:00 2001 From: "pmmp-admin-bot[bot]" <188621379+pmmp-admin-bot[bot]@users.noreply.github.com> Date: Sun, 31 Aug 2025 02:28:17 +0000 Subject: [PATCH 3/5] 5.33.2 is next Commit created by: https://github.com/pmmp/RestrictedActions/actions/runs/17351431906 --- src/VersionInfo.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/VersionInfo.php b/src/VersionInfo.php index 4592b3d14..855e78aaa 100644 --- a/src/VersionInfo.php +++ b/src/VersionInfo.php @@ -31,8 +31,8 @@ use function str_repeat; final class VersionInfo{ public const NAME = "PocketMine-MP"; - public const BASE_VERSION = "5.33.1"; - public const IS_DEVELOPMENT_BUILD = false; + public const BASE_VERSION = "5.33.2"; + public const IS_DEVELOPMENT_BUILD = true; public const BUILD_CHANNEL = "stable"; /** From c931437a303de526be3dc28858f7ed5dbefc7503 Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Sun, 31 Aug 2025 21:45:55 +0100 Subject: [PATCH 4/5] InventoryTransaction: Remove action shuffling we used to have this to prevent dependence on client ordering, and make ordering consistently not work. However, since the introduction of the ItemStackRequest protocol, we don't expect to see client actions in the wrong order anymore, so this shouldn't be needed anymore. closes #6701 --- .../transaction/InventoryTransaction.php | 24 +++++-------------- 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/src/inventory/transaction/InventoryTransaction.php b/src/inventory/transaction/InventoryTransaction.php index 6e010c7b8..99fa6a097 100644 --- a/src/inventory/transaction/InventoryTransaction.php +++ b/src/inventory/transaction/InventoryTransaction.php @@ -95,10 +95,13 @@ class InventoryTransaction{ } /** - * Returns an **unordered** set of actions involved in this transaction. + * Returns a set of actions involved in this transaction. * - * WARNING: This system is **explicitly designed NOT to care about ordering**. Any order seen in this set has NO - * significance and should not be relied on. + * Note: This system is designed to care only about item balances. While you can usually assume that the actions + * are provided in the correct order, it will still successfully complete transactions whose actions are provided in + * the "wrong" order, as long as the transaction balances. + * For example, you may see that an action setting a slot to a particular item may appear before the action that + * removes that item from its original slot. While unintuitive, this is still valid. * * @return InventoryAction[] * @phpstan-return array @@ -119,19 +122,6 @@ class InventoryTransaction{ } } - /** - * Shuffles actions in the transaction to prevent external things relying on any implicit ordering. - */ - private function shuffleActions() : void{ - $keys = array_keys($this->actions); - shuffle($keys); - $actions = []; - foreach($keys as $key){ - $actions[$key] = $this->actions[$key]; - } - $this->actions = $actions; - } - /** * @param Item[] $needItems * @param Item[] $haveItems @@ -308,8 +298,6 @@ class InventoryTransaction{ throw new TransactionValidationException("Transaction has already been executed"); } - $this->shuffleActions(); - $this->validate(); if(!$this->callExecuteEvent()){ From e569cc3275a88a454ce5b01412df50a03dd6c7bd Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Sun, 31 Aug 2025 21:47:49 +0100 Subject: [PATCH 5/5] stfu --- src/inventory/transaction/InventoryTransaction.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/inventory/transaction/InventoryTransaction.php b/src/inventory/transaction/InventoryTransaction.php index 99fa6a097..f8624030c 100644 --- a/src/inventory/transaction/InventoryTransaction.php +++ b/src/inventory/transaction/InventoryTransaction.php @@ -30,13 +30,11 @@ use pocketmine\inventory\transaction\action\SlotChangeAction; use pocketmine\item\Item; use pocketmine\player\Player; use pocketmine\utils\Utils; -use function array_keys; use function array_values; use function assert; use function count; use function get_class; use function min; -use function shuffle; use function spl_object_hash; use function spl_object_id;