Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Функция получает объект игрока
- * и координаты сундука.
- * Код и комментарии написаны gistrec'ом
- */
- public function OpenShop($player,$x, $y, $z){
- //Получаем тайл сундука
- $chest = $player->getLevel()->getTile(new Vector3($x, $y, $z));
- //Открываем игроку сундук
- $player->addWindow($chest->getInventory());
- }
- /*
- * Функция закрытия сундука,
- * на случай, если игрок долго засиделся
- */
- public function CloseShop($player, $x, $y, $z){
- $chest = $player->getLevel()->getTile(new Vector3($x, $y, $z));
- $player->removeWindow($chest->getInventory());
- }
- /*
- * Дальше идет самый загадочный эвент
- */
- public function ChestTrans(InventoryTransactionEvent $event){
- //Этот эвент вызывается очень часто, например, прикоманде /give
- //И поэтому нам нужно понять что игрок работает именно с сундуком
- $item = null;
- $player = null;
- $chest = null;
- //В этой переменнлй теперь храниться ерись, и мы должны перебрать ее и идентифицироватт
- $transactions = $event->getQueue()->getTransactions();
- foreach ($transactions as $tr){
- if ($tr->getTargetItem() instanceof Item) $item = $tr->getTargetItem();
- if ($tr->getInventory() instanceof PlayerInventory) $player = $tr->getInventory()->getHolder();
- if ($tr->getInventory() instanceof ChestInventory) $chest = $tr;
- }
- if ($player != null && $chest != null && $item != null){
- //Тут наш код, $player, $chest, $item у нас есть :3
Advertisement