From 2b15c440ee0c5c2763adafb7975487404ff36147 Mon Sep 17 00:00:00 2001 From: Shoghi Cervantes Date: Fri, 14 Feb 2014 19:54:14 +0100 Subject: [PATCH] Send inventory on invalid crafting/invalid movement of item --- src/API/BlockAPI.php | 2 +- src/Player.php | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/API/BlockAPI.php b/src/API/BlockAPI.php index e162ac1fe..4ee73014a 100644 --- a/src/API/BlockAPI.php +++ b/src/API/BlockAPI.php @@ -341,7 +341,7 @@ class BlockAPI{ } } - if((!$target->isBreakable($item, $player) and $this->server->api->dhandle("player.block.break.invalid", array("player" => $player, "target" => $target, "item" => $item)) !== true) or ($player->gamemode & 0x02) === 0x02 or (($player->lastBreak - $player->getLag() / 1000) + $target->getBreakTime($item, $player) - 0.1) >= microtime(true)){ + if((!$target->isBreakable($item, $player) and $this->server->api->dhandle("player.block.break.invalid", array("player" => $player, "target" => $target, "item" => $item)) !== true) or ($player->gamemode & 0x02) === 0x02 or (($player->lastBreak - $player->getLag() / 1000) + $target->getBreakTime($item, $player) - 0.2) >= microtime(true)){ if($this->server->api->dhandle("player.block.break.bypass", array("player" => $player, "target" => $target, "item" => $item)) !== true){ return $this->cancelAction($target, $player, false); } diff --git a/src/Player.php b/src/Player.php index b1a5b08a8..95dc81c5c 100644 --- a/src/Player.php +++ b/src/Player.php @@ -2170,6 +2170,7 @@ class Player{ if($item->getID() !== AIR and $slot->getID() == $item->getID()){ if($slot->count < $item->count){ if($this->removeItem($item->getID(), $item->getMetadata(), $item->count - $slot->count, false) === false){ + $this->sendInventory(); break; } }elseif($slot->count > $item->count){ @@ -2177,6 +2178,7 @@ class Player{ } }else{ if($this->removeItem($item->getID(), $item->getMetadata(), $item->count, false) === false){ + $this->sendInventory(); break; } $this->addItem($slot->getID(), $slot->getMetadata(), $slot->count, false); @@ -2216,6 +2218,7 @@ class Player{ if($item->getID() !== AIR and $slot->getID() == $item->getID()){ if($slot->count < $item->count){ if($this->removeItem($item->getID(), $item->getMetadata(), $item->count - $slot->count, false) === false){ + $this->sendInventory(); break; } }elseif($slot->count > $item->count){ @@ -2223,6 +2226,7 @@ class Player{ } }else{ if($this->removeItem($item->getID(), $item->getMetadata(), $item->count, false) === false){ + $this->sendInventory(); break; } $this->addItem($slot->getID(), $slot->getMetadata(), $slot->count, false);