Andre\SurvivalGames\Main::gameTask PHP Method

gameTask() public method

public gameTask ( )
    public function gameTask()
    {
        if (!isset($this->lastpos) || $this->lastpos == array()) {
            return false;
        }
        $this->level = $this->getServer()->getLevelByName($this->config->get("pos1")["level"]);
        $this->signlevel = $this->getServer()->getLevelByName($this->config->get("sign")["level"]);
        if (!$this->signlevel instanceof Level) {
            return false;
        }
        $this->changeStatusSign();
        if ($this->gameStatus == 0) {
            $i = 0;
            foreach ($this->players as $key => $val) {
                $i++;
                $p = $this->getServer()->getPlayer($val["id"]);
                //echo($i."\n");
                $p->setLevel($this->level);
                eval("\$p->teleport(\$this->pos" . $i . ");");
                unset($p);
            }
        }
        if ($this->gameStatus == 1) {
            $this->lastTime--;
            $i = 0;
            foreach ($this->players as $key => $val) {
                $i++;
                $p = $this->getServer()->getPlayer($val["id"]);
                //echo($i."\n");
                $p->setLevel($this->level);
                eval("\$p->teleport(\$this->pos" . $i . ");");
                unset($p);
            }
            switch ($this->lastTime) {
                case 1:
                    $this->sendMessage("{$Starting} " . $this->lastTime . " seconds");
                    break;
                case 2:
                    $this->sendMessage("{$Starting} " . $this->lastTime . " seconds");
                    break;
                case 3:
                    $this->sendMessage("{$Starting} " . $this->lastTime . " seconds");
                    break;
                case 4:
                    $this->sendMessage("{$Starting} " . $this->lastTime . " seconds");
                    break;
                case 5:
                    $this->sendMessage("{$Starting} " . $this->lastTime . " seconds");
                    break;
                case 10:
                    $this->sendMessage(TextFormat::RED . "[{$this->getConfig()->get("prefix")}] {$Time} 0:10.");
                    break;
                case 30:
                    $this->sendMessage(TextFormat::RED . "[{$this->getConfig()->get("prefix")}] {$Time} 0:30.");
                    break;
                case 60:
                    $this->sendMessage(TextFormat::RED . "[{$this->getConfig()->get("prefix")}] {$Time} 1:00.");
                    break;
                case 90:
                    $this->sendMessage(TextFormat::RED . "[{$this->getConfig()->get("prefix")}] {$Time} 1:30.");
                    break;
                case 120:
                    $this->sendMessage(TextFormat::RED . "[{$this->getConfig()->get("prefix")}] {$Time} 2:00.");
                    break;
                case 150:
                    $this->sendMessage(TextFormat::RED . "[{$this->getConfig()->get("prefix")}] {$Time} 2:30.");
                    break;
                case 0:
                    $this->gameStatus = 2;
                    $arena = $this->getConfig()->get("Arena-Map");
                    Server::getInstance()->broadcastMessage(TextFormat::BLUE . "{$Started}");
                    foreach ($this->players as $key => $val) {
                        if ($p->hasPermission("SurvivalGames.vip")) {
                            $p->getInventory()->addItem(new Item(Item::IRON_HELMET, 0, 1));
                            $p->getInventory()->addItem(new Item(Item::IRON_CHESTPLATE, 0, 1));
                            $p->getInventory()->addItem(new Item(Item::IRON_LEGGINGS, 0, 1));
                            $p->getInventory()->addItem(new Item(Item::IRON_BOOTS, 0, 1));
                            $p->getInventory()->addItem(new Item(Item::DIAMOND_AXE, 0, 1));
                        }
                        $p = $this->getServer()->getPlayer($val["id"]);
                        $p->setMaxHealth(25);
                        $p->setHealth(25);
                        $p->setGamemode(0);
                        //Those who cheats
                        $p->setLevel($this->level);
                    }
                    $this->all = count($this->players);
                    break;
            }
        }
        if ($this->gameStatus == 2) {
            $this->lastTime--;
            if ($this->lastTime <= 0) {
                $this->gameStatus = 3;
                $this->sendMessage("{$Chest_Refilled}");
                $this->lastTime = $this->gameTime;
            }
        }
        if ($this->gameStatus == 3 || $this->gameStatus == 4) {
            if (count($this->players) == 1) {
                $this->sendMessage(TextFormat::RED . "[{$this->getConfig()->get("prefix")}] ");
                // DELETED
                foreach ($this->players as &$pl) {
                    $p = $this->getServer()->getPlayer($pl["id"]);
                    $p->setLevel($this->signlevel);
                    $p->getInventory()->clearAll();
                    $p->setMaxHealth(25);
                    $p->setHealth(25);
                    $p->teleport($this->signlevel->getSpawnLocation());
                    unset($pl, $p);
                }
                $this->players = array();
                $this->gameStatus = 0;
                $this->lastTime = 0;
            } else {
                if (count($this->players) == 0) {
                    $this->gameStatus = 0;
                    $this->lastTime = 0;
                    $this->ClearAllInv();
                }
            }
        }
        if ($this->gameStatus == 3) {
            $this->lastTime--;
            switch ($this->lastTime) {
                case 1:
                    $this->sendMessage("{$Deathmatch_starting} §b1 seconds");
                    break;
                case 2:
                    $this->sendMessage("{$Deathmatch_starting} §b2 seconds");
                    break;
                case 3:
                    $this->sendMessage("{$Deathmatch_starting} §b3 seconds");
                    break;
                case 4:
                    $this->sendMessage("{$Deathmatch_starting} §b4 seconds");
                    break;
                case 5:
                    $this->sendMessage("{$Deathmatch_starting} §b5 seconds");
                    break;
                case 10:
                    $this->sendMessage(TextFormat::YELLOW . "[{$this->getConfig()->get("prefix")}] Deathmatch will start in 0:10.");
                    break;
                case 0:
                    $this->sendMessage(TextFormat::YELLOW . "[{$this->getConfig()->get("prefix")}] {$Deatchmatch_started}");
                    foreach ($this->players as $pl) {
                        $p = $this->getServer()->getPlayer($pl["id"]);
                        $p->setLevel($this->level);
                        $p->teleport($this->lastpos);
                        unset($p, $pl);
                    }
                    $this->gameStatus = 4;
                    $this->lastTime = $this->endTime;
                    break;
            }
        }
        if ($this->gameStatus == 4) {
            $this->lastTime--;
            switch ($this->lastTime) {
                case 1:
                    $this->sendMessage(TextFormat::RED . "[{$this->getConfig()->get("prefix")}] {$Match_Ending} " . $this->lastTime . ".");
                    break;
                case 2:
                    $this->sendMessage(TextFormat::RED . "[{$this->getConfig()->get("prefix")}] {$Match_Ending} " . $this->lastTime . ".");
                    break;
                case 3:
                    $this->sendMessage(TextFormat::RED . "[{$this->getConfig()->get("prefix")}] {$Match_Endingn} " . $this->lastTime . ".");
                    break;
                case 4:
                    $this->sendMessage(TextFormat::RED . "[{$this->getConfig()->get("prefix")}] {$Match_Ending} " . $this->lastTime . ".");
                    break;
                case 5:
                    $this->sendMessage(TextFormat::RED . "[{$this->getConfig()->get("prefix")}] {$Match_Ending} " . $this->lastTime . ".");
                    break;
                case 10:
                    $this->sendMessage(TextFormat::RED . "[{$this->getConfig()->get("prefix")}] {$Match_Ending} 0:10.");
                    break;
                    //case 20:
                //case 20:
                case 30:
                    $this->sendMessage(TextFormat::RED . "[{$this->getConfig()->get("prefix")}] {$Match_Ending} 0:30.");
                    break;
                case 0:
                    $this->sendMessage(TextFormat::BLUE . "[{$this->getConfig()->get("prefix")}] {$Match_Ended}");
                    foreach ($this->players as $pl) {
                        $p = $this->getServer()->getPlayer($pl["id"]);
                        $p->setLevel($this->signlevel);
                        $p->teleport($this->signlevel->getSpawnLocation());
                        $p->getInventory()->clearAll();
                        $p->setMaxHealth(25);
                        $p->setHealth(25);
                        unset($p, $pl);
                    }
                    $this->players = array();
                    $this->gameStatus = 0;
                    $this->lastTime = 0;
                    break;
            }
        }
        $this->changeStatusSign();
    }