From c778e0467e8c1cfc132edd4bf1df6fc2e55bcebd Mon Sep 17 00:00:00 2001 From: Shoghi Cervantes Date: Wed, 28 May 2014 15:22:25 +0200 Subject: [PATCH] Fixed touching items with an empty hand --- src/pocketmine/Player.php | 2 +- src/pocketmine/inventory/PlayerInventory.php | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/pocketmine/Player.php b/src/pocketmine/Player.php index 3058cfcec..f9341c833 100644 --- a/src/pocketmine/Player.php +++ b/src/pocketmine/Player.php @@ -1529,7 +1529,7 @@ class Player extends Human implements CommandSender, InventoryHolder, IPlayer{ break; } - if($packet->slot === 0x28 or $packet->slot === 0){ //0 for 0.8.0 compatibility + if($packet->slot === 0x28 or $packet->slot === 0 or $packet->slot === 255){ //0 for 0.8.0 compatibility $packet->slot = -1; //Air }else{ $packet->slot -= 9; //Get real block slot diff --git a/src/pocketmine/inventory/PlayerInventory.php b/src/pocketmine/inventory/PlayerInventory.php index 5990edfc3..80238589b 100644 --- a/src/pocketmine/inventory/PlayerInventory.php +++ b/src/pocketmine/inventory/PlayerInventory.php @@ -34,7 +34,7 @@ use pocketmine\Server; class PlayerInventory extends BaseInventory{ - protected $itemInHandIndex = 0; + protected $itemInHandIndex = -1; /** @var int[] */ protected $hotbar; @@ -101,10 +101,10 @@ class PlayerInventory extends BaseInventory{ } public function setHeldItemSlot($slot){ - if($slot >= 0 and $slot < $this->getSize()){ + if($slot >= -1 and $slot < $this->getSize()){ $item = $this->getItem($slot); if($this->getHolder() instanceof Player){ - Server::getInstance()->getPluginManager()->callEvent($ev = new PlayerItemHeldEvent($this->getHolder(), $item, $slot, 0)); + Server::getInstance()->getPluginManager()->callEvent($ev = new PlayerItemHeldEvent($this->getHolder(), $item, $slot, $this->itemInHandIndex)); if($ev->isCancelled()){ $this->sendHeldItem($this->getHolder());