p = $main; $this->lvl = $level; $this->maxplayers = $maxplayers; $this->players = []; $this->cfg = $main->getConfig(); $this->radius = $radius; $main->getServer()->getPluginManager()->registerEvents($this, $main); $this->scenarioManager = new ScenarioManager($this->p, $this); } public function getLevel() { return $this->lvl; } public function isStarted() { return isset($this->p->UHCManager->getStartedUHCs()[$this->lvl->getName()]); } public function onEntityDamage(\pocketmine\event\entity\EntityDamageEvent $event) { if(!$this->isStarted()) { $event->setCancelled(); } } public function onBlockBreak(\pocketmine\event\block\BlockBreakEvent $event) { if(!$this->isStarted()) { if(!$event->getPlayer()->isCreative()) { $event->setCancelled(); } } } public function onBlockPlace(\pocketmine\event\block\BlockPlaceEvent $event) { if(!$this->isStarted()) { if(!$event->getPlayer()->isCreative()) { $event->setCancelled(); } } } public function getPlayers() { return $this->players; } public function getName() { return $this->lvl->getName(); } public function getMaxPlayers() { return $this->maxplayers; } public function setPlayers(array $players) { foreach($this->players as $key => $player) { if(!in_array($player, $this->players)){ $player->sendMessage(Main::PREFIX . C::YELLOW . "You joined the game."); foreach($this->players as $pl) { $pl->sendMessage(Main::PREFIX . C::YELLOW . "{$player->getName()} joined the game."); $this->getLevel()->addParticle($part = new FloatingTextParticle(new Vector3($this->getLevel()->getSafeSpawn()->x, $this->getLevel()->getSafeSpawn()->y, $this->getLevel()->getSafeSpawn()->z), C::GREEN . "Welcome to the UHC game, {$player->getName()}!\n" . C::GREEN . "Need help? Use /uhc howtoplay.", C::YELLOW . "-==-"), [$player]); } } } foreach($players as $player) { if(!in_array($player, $players)){ $player->sendMessage(Main::PREFIX . C::YELLOW . "You left the game."); foreach($this->players as $pl) { $pl->sendMessage(Main::PREFIX . C::YELLOW . "{$player->getName()} left the game."); } } } $this->players = $players; return true; } }