private function checkInVIP(Player $player) { //if ($player->getLevel ()->getName () === $this->plugin->vipLevelName) { if (isset($this->vips[$player->getName()])) { $this->plugin->log("[HG] VIPPlayerListener->VIPCheck-IN: " . $player->getName()); return true; } else { $vip = $this->plugin->profileManager->isPlayerVIP($player->getName()); if (!$vip) { return false; } if (!$player->isOp()) { if (!$player->isSurvival()) { $player->setGamemode(Player::SURVIVAL); } } $this->vips[$player->getName()] = $player->getName(); $this->plugin->log("[HG] VIPPlayerListener->VIPCheck-IN: " . $player->getName()); return true; } //} return false; }
public function restorePlayer(Player $player) { if (isset($this->players[$player->getName()])) { $get = $this->players[$player->getName()]; $player->setGamemode($get["gamemode"]); $player->getInventory()->setContents(unserialize($get["inventory"])); $player->getInventory()->setArmorContents(unserialize($get["armor"])); $player->teleport(unserialize($get["spawn"])); unset($this->players[$player->getName()]); } }
public function participate(Player $player) { $soldier = new soldier($player); if ($player->isCreative()) { $player->setGamemode(0); } if (count($this->redteam->soldiers) < count($this->blueteam->soldiers)) { $soldier->setTeam($this->redteam); $color = TextFormat::RED; } else { $soldier->setTeam($this->blueteam); $color = TextFormat::BLUE; } $soldier->getTeam()->soldiers[$player->getName()] = $soldier; $rank = RankProvider::getInstance()->getRank($player); $prefix = $color . $soldier->getTeam()->getTeamName() . TextFormat::GOLD; $rank->addPrefixs([$prefix]); $rank->setPrefix($prefix); $player->teleport($soldier->getTeam()->getSpawnPoint()); $this->eventlistener->giveRandomItem($player); $this->soldiers[$player->getName()] = $soldier; }
public function removePlayer(Player $player) { if (isset($this->players[$player->getName()])) { unset($this->players[$player->getName()]); unset($player->arena); $player->teleport(Server::getInstance()->getDefaultLevel()->getSafeSpawn()); $player->setGamemode($player->prevGamemode); unset($player->prevGamemode); $player->getInventory()->remove($player->breakItem); unset($player->breakItem); return true; } else { $player->sendMessage("You couldn't be removed from the arena."); } }
public function killHandler(Player $entity) { // $this->getServer()->broadcastMessage("killHandler tries to handle"); // player add deaths // $nr = $this->games[strtolower($entity->getLevel()->getName())]["players"][$entity->getName()]["deaths"] + 1; // $this->games[strtolower($entity->getLevel()->getName())]["players"][$entity->getName()]["deaths"] = $nr; // save to config.. WHY EVEN?! can't i do ranks just only by times played and wins? $this->getPlayerConfig(); $this->players->getAll()[$entity->getName()]["deaths"]++; $this->setPlayerConfig(); $entity->sendTip(TextFormat::RED . "You fell into void"); $entity->setGamemode(3); $entity->teleport($entity->getLevel()->getSpawnLocation()); $this->leaveLobby($entity, $entity->getLevel()); // if killer add kills /* * if($killer !== null){ * $players = array(); * foreach(array_keys($this->games[strtolower($killer->getLevel()->getName())]["players"]) as $player){ * array_push($players, $this->getServer()->getPlayer($player)); * } * $this->getServer()->broadcastMessage(TextFormat::RED . $killer->getDisplayName() . " killed " . $entity->getDisplayName(), $players); * $this->games[strtolower($killer->getLevel()->getName())]["players"][$killer->getName()]["kills"]++; * // add arrow * $killer->getInventory()->addItem(Item::fromString("Arrow")); * // save to config.. WHY EVEN?! can't i do ranks just only by times played and wins? * $this->getPlayerConfig(); * $this->players->getAll()[$killer->getName()]["kills"]++; * $this->setPlayerConfig(); * $killer->sendTip(TextFormat::GOLD . "Kills: " . TextFormat::GREEN . $this->games[strtolower($killer->getLevel()->getName())]["players"][$killer->getName()]["kills"] . TextFormat::LIGHT_PURPLE . " | " . TextFormat::GOLD . "Deaths: " . TextFormat::RED . $this->games[strtolower($killer->getLevel()->getName())]["players"][$killer->getName()]["deaths"]); */ if (isset($this->games[strtolower($entity->getLevel()->getName())])) { if (count(array_keys($this->games[strtolower($entity->getLevel()->getName())]["players"])) <= 1) { $this->stopGame($entity->getLevel(), $this->getServer()->getPlayer(array_keys($this->games[strtolower($entity->getLevel()->getName())]["players"])[0])); return; } // } // else{ $this->getServer()->broadcastTip(TextFormat::RED . $entity->getName() . " fell into void\n" . TextFormat::GREEN . count(array_keys($this->games[strtolower($entity->getLevel()->getName())]["players"])) . " players remaining"); } // } // end if died too often /* * if($nr >= $this->getConfig()->getNested("lobby-defaults.maxdeaths")){ * $entity->setGamemode(3); * $entity->sendMessage(TextFormat::RED . "You died too many times."); * // leave or better let the player spectate? if spectate then the player has to do /spleef leave.. but the game will run until the player will do this * } * else{ * $this->respawnPlayer($entity, strtolower($entity->getLevel()->getName())); * } */ $this->leaveLobby($entity, $entity->getLevel()); }
public function giveItemAndEffect(Player $player) { $player->setGamemode(2); $player->getInventory()->addItem(new Item(Item::MUSHROOM_STEW, 0, 1)); $this->giveEffect($player); }
public function TeleportToTeamSpawn(Player $p, $team, $arena) { $p->setHealth(20); $p->setFood(20); $p->setGamemode(0); $p->getInventory()->clearAll(); $p->setExpLevel(0); $config = new Config($this->getDataFolder() . "Arenas/" . $arena . ".yml", Config::YAML); $welt = $config->getNested("Spawn." . $team . ".Welt"); $x = $config->getNested("Spawn." . $team . ".X"); $y = $config->getNested("Spawn." . $team . ".Y"); $z = $config->getNested("Spawn." . $team . ".Z"); $yaw = $config->getNested("Spawn." . $team . ".Yaw"); $pitch = $config->getNested("Spawn." . $team . ".Pitch"); if ($p->getLevel() != $this->getServer()->getLevelByName($welt)) { $p->teleport($this->getServer()->getLevelByName($welt)->getSafeSpawn(), 0, 0); } $p->teleport(new Vector3($x, $y, $z), $yaw, $pitch); }