getTouchVector() public method

public getTouchVector ( ) : Vector3
return pocketmine\math\Vector3
Beispiel #1
0
 public function onPlayerInteract(PlayerInteractEvent $event)
 {
     $where = $event->getTouchVector();
     $teamBelong = false;
     foreach ($this->option["teamCore"] as $team => $axis) {
         if ($axis["x"] == $where . getX() and $axis["y"] == $where . getY() and $axis["z"] == $where . getZ()) {
             $teamBelong = $team;
         }
     }
     if ($teamBelong === false) {
         //the block is not a core.
         return;
     }
     if ($event->getBlock()->getId() == 0) {
         //problem in setup!
         return;
     }
     $player = $event->getPlayer();
     $teamPlayer = $this->plugin->teamInfo[mb_strtolower($player->getName())];
     if (!isset($teamPlayer)) {
         $player->sendMessage($this->plugin->system["messages"]["notInTeam"]);
         return;
     }
     if ($teamBelong == $teamPlayer) {
         //the player attacks its own core.
         $player->sendMessage($this->plugin->system["messages"]["yourCore"]);
         return;
     }
     $action = $event->getAction();
     if ($action != PlayerInteractEvent::LEFT_CLICK_BLOCK or $action != PlayerInteractEvent::RIGHT_CLICK_BLOCK) {
         return;
     }
     $inv = $player->getInventory();
     $item = $inv->getItemInHand();
     $handItemId = $item->getId();
     $damage = 5;
     switch ($handItemId) {
         case 283:
             //gold sword
             $damage = 55;
             break;
         case 284:
             //gold tools
         //gold tools
         case 285:
         case 286:
             $damage = 50;
             break;
         case 276:
             //diamond sword
             $damage = 45;
             break;
         case 275:
             //diamond tools
         //diamond tools
         case 274:
         case 273:
             $damage = 40;
             break;
         case 276:
             //iron sword
             $damage = 35;
             break;
         case 256:
             //iron tools
         //iron tools
         case 257:
         case 258:
             $damage = 30;
             break;
         case 276:
             //stone sword
             $damage = 25;
             break;
         case 256:
             //stone tools
         //stone tools
         case 257:
         case 258:
             $damage = 20;
             break;
         case 283:
             //wood sword
             $damage = 15;
             break;
         case 284:
             //wood tools
         //wood tools
         case 285:
         case 286:
             $damage = 10;
             break;
         case 290:
             //wood hoe
         //wood hoe
         case 291:
             //stone hoe
         //stone hoe
         case 292:
             //iron hoe
         //iron hoe
         case 293:
             //diamond hoe
         //diamond hoe
         case 294:
             //gold hoe
             $damage = 10;
             break;
     }
     processDamageCore($teamBelong, $damage);
 }
Beispiel #2
0
 public function onInteract(PlayerInteractEvent $event)
 {
     if ($this->status === self::STAT_GAME_IN_PROGRESS) {
         $player = $event->getPlayer();
         $item = $player->getInventory()->getItemInHand();
         if ($event->getAction() === PlayerInteractEvent::RIGHT_CLICK_BLOCK) {
             if ($item->getId() === self::GUN_ID) {
                 $this->players[$player->getName()][0]->shoot();
             }
         } elseif ($event->getAction() === PlayerInteractEvent::RIGHT_CLICK_AIR) {
             if ($item->getId() === self::GRENADE_ID) {
                 $this->players[$player->getName()][1]->lob($event->getTouchVector());
                 $player->getInventory()->removeItem(Item::get(self::GRENADE_ID, 0, 1));
             }
         }
     }
 }
Beispiel #3
0
 public function onTouch(PlayerInteractEvent $event)
 {
     $this->touchQueue[spl_object_hash($event->getPlayer())] = $event->getTouchVector();
 }