Send inventory on invalid crafting/invalid movement of item

This commit is contained in:
Shoghi Cervantes 2014-02-14 19:54:14 +01:00
parent daf3198136
commit 2b15c440ee
2 changed files with 5 additions and 1 deletions

View File

@ -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){ if($this->server->api->dhandle("player.block.break.bypass", array("player" => $player, "target" => $target, "item" => $item)) !== true){
return $this->cancelAction($target, $player, false); return $this->cancelAction($target, $player, false);
} }

View File

@ -2170,6 +2170,7 @@ class Player{
if($item->getID() !== AIR and $slot->getID() == $item->getID()){ if($item->getID() !== AIR and $slot->getID() == $item->getID()){
if($slot->count < $item->count){ if($slot->count < $item->count){
if($this->removeItem($item->getID(), $item->getMetadata(), $item->count - $slot->count, false) === false){ if($this->removeItem($item->getID(), $item->getMetadata(), $item->count - $slot->count, false) === false){
$this->sendInventory();
break; break;
} }
}elseif($slot->count > $item->count){ }elseif($slot->count > $item->count){
@ -2177,6 +2178,7 @@ class Player{
} }
}else{ }else{
if($this->removeItem($item->getID(), $item->getMetadata(), $item->count, false) === false){ if($this->removeItem($item->getID(), $item->getMetadata(), $item->count, false) === false){
$this->sendInventory();
break; break;
} }
$this->addItem($slot->getID(), $slot->getMetadata(), $slot->count, false); $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($item->getID() !== AIR and $slot->getID() == $item->getID()){
if($slot->count < $item->count){ if($slot->count < $item->count){
if($this->removeItem($item->getID(), $item->getMetadata(), $item->count - $slot->count, false) === false){ if($this->removeItem($item->getID(), $item->getMetadata(), $item->count - $slot->count, false) === false){
$this->sendInventory();
break; break;
} }
}elseif($slot->count > $item->count){ }elseif($slot->count > $item->count){
@ -2223,6 +2226,7 @@ class Player{
} }
}else{ }else{
if($this->removeItem($item->getID(), $item->getMetadata(), $item->count, false) === false){ if($this->removeItem($item->getID(), $item->getMetadata(), $item->count, false) === false){
$this->sendInventory();
break; break;
} }
$this->addItem($slot->getID(), $slot->getMetadata(), $slot->count, false); $this->addItem($slot->getID(), $slot->getMetadata(), $slot->count, false);