Gistrec

MCPE Chest Event

Sep 17th, 2016
313
0
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.95 KB | None | 0 0
  1. /*
  2.  * Функция получает объект игрока
  3.  * и координаты сундука.
  4.  * Код и комментарии написаны gistrec'ом
  5. */
  6.      public function OpenShop($player,$x, $y, $z){
  7.          //Получаем тайл сундука
  8.          $chest = $player->getLevel()->getTile(new Vector3($x, $y, $z));
  9.          //Открываем игроку сундук
  10.          $player->addWindow($chest->getInventory());
  11.      }
  12.  
  13. /*
  14.  * Функция закрытия сундука,
  15.  * на случай, если игрок долго засиделся
  16. */
  17.      public function CloseShop($player, $x, $y, $z){
  18.          $chest = $player->getLevel()->getTile(new Vector3($x, $y, $z));
  19.          $player->removeWindow($chest->getInventory());
  20.      }
  21.  
  22. /*
  23.  * Дальше идет самый загадочный эвент
  24. */
  25.      public function ChestTrans(InventoryTransactionEvent $event){
  26.          //Этот эвент вызывается очень часто, например, прикоманде /give
  27.          //И поэтому нам нужно понять что игрок работает именно с сундуком
  28.          $item = null;  
  29.          $player = null;
  30.          $chest = null;
  31.          //В этой переменнлй теперь храниться ерись, и мы должны перебрать ее и идентифицироватт
  32.          $transactions = $event->getQueue()->getTransactions();
  33.          foreach ($transactions as $tr){
  34.              if ($tr->getTargetItem() instanceof Item) $item = $tr->getTargetItem();
  35.              if ($tr->getInventory() instanceof PlayerInventory) $player = $tr->getInventory()->getHolder();
  36.              if ($tr->getInventory() instanceof ChestInventory) $chest = $tr;
  37.           }
  38.          if ($player != null && $chest != null && $item != null){
  39.              //Тут наш код, $player, $chest, $item у нас есть :3
Advertisement
Comments
  • User was banned
Add Comment
Please, Sign In to add comment