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