Fixed Double Chest behavior

This commit is contained in:
Shoghi Cervantes
2014-10-29 12:57:26 +01:00
parent 50cfeaa393
commit afaa2cf722
4 changed files with 46 additions and 9 deletions

View File

@ -22,6 +22,10 @@
namespace pocketmine\inventory;
use pocketmine\item\Item;
use pocketmine\level\Level;
use pocketmine\network\protocol\TileEventPacket;
use pocketmine\Player;
use pocketmine\Server;
use pocketmine\tile\Chest;
class DoubleChestInventory extends ChestInventory implements InventoryHolder{
@ -83,6 +87,37 @@ class DoubleChestInventory extends ChestInventory implements InventoryHolder{
}
}
public function onOpen(Player $who){
parent::onOpen($who);
if(count($this->getViewers()) === 1){
$pk = TileEventPacket::getFromPool();
$pk->x = $this->right->getHolder()->getX();
$pk->y = $this->right->getHolder()->getY();
$pk->z = $this->right->getHolder()->getZ();
$pk->case1 = 1;
$pk->case2 = 2;
if(($level = $this->right->getHolder()->getLevel()) instanceof Level){
Server::broadcastPacket($level->getUsingChunk($this->right->getHolder()->getX() >> 4, $this->right->getHolder()->getZ() >> 4), $pk);
}
}
}
public function onClose(Player $who){
if(count($this->getViewers()) === 1){
$pk = TileEventPacket::getFromPool();
$pk->x = $this->right->getHolder()->getX();
$pk->y = $this->right->getHolder()->getY();
$pk->z = $this->right->getHolder()->getZ();
$pk->case1 = 1;
$pk->case2 = 0;
if(($level = $this->right->getHolder()->getLevel()) instanceof Level){
Server::broadcastPacket($level->getUsingChunk($this->right->getHolder()->getX() >> 4, $this->right->getHolder()->getZ() >> 4), $pk);
}
}
parent::onClose($who);
}
/**
* @return ChestInventory
*/