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);
}