public function onPlayerDeath(PlayerDeathEvent $event) { $this->plugin->log("GameLevelListener: onPlayerDeath " . $event->getEventName()); if ($event->getEntity() instanceof Player) { if ($this->plugin->gameLevelManager->handlePlayerDeath($event->getEntity())) { $event->setDeathMessage(""); } } }
/** * * @param EntityDeathEvent $event */ public function onPlayerDeath(PlayerDeathEvent $event) { $this->plugin->log("[HG] ScoreListener onPlayerDeath: " . $event->getEventName()); try { if ($event->getEntity() instanceof Player) { $player = $event->getEntity(); if ($player->getLastDamageCause() === EntityDamageEvent::CAUSE_ENTITY_ATTACK || $player->getLastDamageCause() === EntityDamageEvent::CAUSE_PROJECTILE) { foreach ($this->plugin->getAvailableLevels() as &$lv) { if (count($lv->joinedPlayers) == 0) { continue; } if ($lv instanceof GameLevelModel) { if (isset($lv->currentMap)) { if (isset($lv->currentMap->killedPlayers[$player->getName()])) { $killerName = $lv->currentMap->killedPlayers[$player->getName()]; if (isset($lv->currentMap->playerscores[$killerName])) { $scores = $lv->currentMap->playerscores[$killerName]; $scores["kills"] = $scores["kills"] + 1; $lv->currentMap->playerscores[$killerName] = $scores; } break; } } } } } } } catch (\Exception $e) { $this->plugin->printError($e); } }