From 2e11e448dd0f03c449e875fa03726986fa2e169b Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Fri, 22 Dec 2017 11:31:31 +0000 Subject: [PATCH] Player: Dump crafting grid on death, not on respawn This fixes players managing to retain items by getting killed while they have something in the crafting grid. --- src/pocketmine/Player.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/pocketmine/Player.php b/src/pocketmine/Player.php index c3fa1723f..268084c6d 100644 --- a/src/pocketmine/Player.php +++ b/src/pocketmine/Player.php @@ -2645,8 +2645,6 @@ class Player extends Human implements CommandSender, ChunkLoader, IPlayer{ break; } - $this->resetCraftingGridType(); - $this->server->getPluginManager()->callEvent($ev = new PlayerRespawnEvent($this, $this->getSpawn())); $realSpawn = Position::fromObject($ev->getRespawnPosition()->add(0.5, 0, 0.5), $ev->getRespawnPosition()->getLevel()); @@ -3552,6 +3550,10 @@ class Player extends Human implements CommandSender, ChunkLoader, IPlayer{ break; } + //Crafting grid must always be evacuated even if keep-inventory is true. This dumps the contents into the + //main inventory and drops the rest on the ground. + $this->resetCraftingGridType(); + $this->server->getPluginManager()->callEvent($ev = new PlayerDeathEvent($this, $this->getDrops(), new TranslationContainer($message, $params))); if(!$ev->getKeepInventory()){