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); }
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)); } } } }
public function onTouch(PlayerInteractEvent $event) { $this->touchQueue[spl_object_hash($event->getPlayer())] = $event->getTouchVector(); }