public function onCommand(CommandSender $sender, Command $command, $label, array $args)
 {
     if ($sender instanceof Player) {
         if (count($args) == 0) {
             $sender->sendMessage(TextFormat::RED . "Not enough arguments.");
             return;
         }
         if (count($args) == 1) {
             if ($this->getServer()->getPlayer($args[0])) {
                 $location = $this->getServer()->getPlayer($args[0])->getLocation();
                 $sender->teleport($location);
                 $sender->sendMessage(TextFormat::BLUE . "[Server] You have teleported to {$args['0']}");
                 return;
             } else {
                 $sender->sendMessage(TextFormat::RED . "[Server] That player isn't online!");
                 return;
             }
         }
         if (count($args) == 2) {
             if ($this->getServer()->getPlayer($args[0]) & getLocation() && $this->getServer()->getPlayer($args[1])) {
                 $location2 = $this->getServer()->getPlayer($args[1])->getLocation();
                 $player1 = $this->getServer()->getPlayer($args[0]);
                 $player2 = $this->getServer()->getPlayer($args[1]);
                 $player1->teleport($location2);
                 $player1->sendMessage(TextFormat::BLUE . "[Server] You have teleported to {$args['1']}");
                 return;
             }
         }
     }
 }
 public function onCommand(CommandSender $sender, Command $command, $label, array $args)
 {
     if ($player->hasPermission("signstats.commands.stats")) {
         switch ($command->getName()) {
             case 'sethouse':
                 $this->config->player[$sender->getName()]['house']['x'] = $sender->x;
                 $this->config->player[$sender->getName()]['house']['y'] = $sender->y;
                 $this->config->player[$sender->getName()]['house']['z'] = $sender->z;
                 $sender->sendMessage(TextFormat::GREEN . '[EasyHouse] House set.');
                 break;
             case 'delhouse':
                 unset($this->config->player[$sender->getName()]['house']);
                 $sender->sendMessage(TextFormat::RED . '[EasyHouse] house Deleted');
                 break;
             case 'house':
                 if (isset($this->config->player[$sender->getName()]['house'])) {
                     $this->viellePosition[$sender->getName()] = array($sender->x, $sender->y, $sender->z);
                     $sender->teleport(new Vector3($this->config->player[$sender->getName()]['house']['x'], $this->config->player[$sender->getName()]['house']['y'], $this->config->player[$sender->getName()]['house']['z']));
                     $sender->sendMessage(TextFormat::GREEN . '[EasyHouse] Teleported.');
                 } else {
                     $sender->sendMessage(TextFormat::RED . 'House is not set.');
                 }
                 break;
         }
     } else {
         $player->sendMessage(TextFormat::RED . "[EasyHouse] You don't have permissions!");
     }
 }
Пример #3
0
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $sub)
 {
     $mm = "[TeleportView] ";
     if ($sender->getName() == "CONSOLE") {
         $sender->sendMessage($mm . ($this->isKorean() ? "게임내에서만 사용가능합니다." : "Please run this command in-game"));
         return true;
     }
     $yaw = $sender->getYaw();
     $ptch = $sender->getPitch();
     $yawS = -sin($yaw / 180 * M_PI);
     $yawC = cos($yaw / 180 * M_PI);
     $ptchS = -sin($ptch / 180 * M_PI);
     $ptchC = cos($ptch / 180 * M_PI);
     $x = $sender->getX();
     $y = $sender->getY() + $sender->getEyeHeight();
     $z = $sender->getZ();
     $l = $sender->getLevel();
     for ($f = 0; $f < 50; ++$f) {
         $x += $yawS * $ptchC;
         $y += $ptchS;
         $z += $yawC * $ptchC;
         $b = $l->getBlock(new Position($x, $y, $z, $l));
         if ($b->isSolid) {
             $sender->teleport(new Position($x - $yawS * $ptchC, $y - $ptchS + 0.1, $z - $yawC * $ptchC, $l));
             $f = true;
         }
     }
     if (!isset($f)) {
         $sender->sendMessage($mm . ($this->isKorean() ? "타겟 블럭이 너무 멉니다." : "TargetBlock is too far"));
     }
     return true;
 }
Пример #4
0
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $sub)
 {
     $mm = "[TeleportView] ";
     if ($sender->getName() == "CONSOLE") {
         $sender->sendMessage($mm . ($this->isKorean() ? "게임내에서만 사용가능합니다." : "Please run this command in-game"));
         return true;
     }
     $yaw = $sender->getYaw();
     $pitch = $sender->getPitch();
     $yawS = -sin($yaw / 180 * M_PI);
     $yawC = cos($yaw / 180 * M_PI);
     $pitchS = -sin($pitch / 180 * M_PI);
     $pitchC = cos($pitch / 180 * M_PI);
     $x = $sender->x;
     $y = $sender->y + $sender->getEyeHeight();
     $z = $sender->z;
     $l = $sender->getLevel();
     $ps = $this->getServer()->getOnlinePlayers();
     for ($f = 0; $f < 50; ++$f) {
         $x += $yawS * $pitchC;
         $y += $pitchS;
         $z += $yawC * $pitchC;
         $b = $l->getBlock(new Position($x, $y, $z, $l));
         if ($b->isSolid()) {
             break;
         }
         if ($f >= 50) {
             $sender->sendMessage($mm . ($this->isKorean() ? "타겟 블럭이 너무 멉니다." : "TargetBlock is too far"));
             return true;
         }
     }
     $sender->teleport(new Position($x, $y, $z, $sender->getLevel()));
     return true;
 }
Пример #5
0
 public function onCommand(CommandSender $sender, Command $command, $label, array $args)
 {
     if (!$sender instanceof Player) {
         $sender->sendMessage("This command must be used in-game.");
         return true;
     }
     switch (strtolower($command->getName())) {
         case "shop":
             $sender->teleport(new Location(-280.279358, 66.00000300000001, 368.750275, 179, -1, $this->getServer()->getLevelByName("Gorzen")));
             break;
         case "pvp":
             $sender->teleport(new Location(1701.638306, 12.663271, -1027.24585, 179, -1, $this->getServer()->getLevelByName("PvP")));
             break;
         default:
             $sender->sendMessage("Invalid command.");
             break;
     }
     return true;
 }
Пример #6
0
 public function onCommand(CommandSender $sender, Command $command, $label, array $args)
 {
     if (strtolower($command->getName()) === "spawnport") {
         if (!$sender instanceof Player) {
             $sender->sendMessage(TextFormat::AQUA . "Please run this command in game");
             return true;
         }
         $worldspawn = $sender->getLevel()->getSpawnLocation();
         $sender->teleport($worldspawn);
         $sender->sendMessage(TextFormat::AQUA . "Teleported to WorldSpawn");
     }
     return true;
 }
Пример #7
0
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $args)
 {
     if (strtolower($cmd->getName()) === "spawn" && $this->main->getConfig()->get("Spawn-Command-Enabled") === true) {
         if ($sender instanceof Player) {
             if ($sender->hasPermission("morecommands.command.spawn")) {
                 $sender->sendMessage($this->main->getConfig()->get("Teleport-to-Spawn-Message"));
                 $sender->teleport($this->main->getServer()->getDefaultLevel()->getSpawnLocation());
                 return true;
             } else {
                 $sender->sendMessage(TextFormat::RED . "You don't have permissions to use this command.");
             }
         } else {
             $sender->sendMessage(TextFormat::RED . "Please use this command in-game!");
             return true;
         }
     }
 }
Пример #8
0
 public function onCommand(CommandSender $player, Command $cmd, $label, array $args)
 {
     switch ($cmd->getName()) {
         case "bw":
             if ($player->isOp()) {
                 if ($this->mode == 0 and $args[0] == "addarena") {
                     $this->mode = 1;
                     $player->sendMessage(TextFormat::YELLOW . "Use /bw add [worldname] to add an arena");
                 } elseif ($this->mode == 1 and $args[0] == "add") {
                     if (file_exists($this->getServer()->getDataPath() . "/worlds/" . $args[0])) {
                         if (!$this->getServer()->getLevelByName($args[1]) instanceof Level) {
                             $this->getServer()->loadLevel($args[1]);
                         }
                         $spawn = $this->getServer()->getLevelByName($args[1])->getSafeSpawn();
                         $this->getServer()->getLevelByName($args[1])->loadChunk($spawn->x, $spawn->z);
                         if ($player instanceof Player) {
                             $player->teleport($spawn);
                         }
                         $this->arenaname = $args[1];
                         $player->sendMessage(TextFormat::GREEN . "You have successfully entered the arena! Now you have to set 4 bases");
                         $player->sendMessage(TextFormat::GOLD . "Touch" . TextFormat::BLUE . "Team blue" . TextFormat::GOLD . "'s bed now");
                         $this->mode = 2;
                     } else {
                         $player->sendMessage(TextFormat::RED . "This is not a valid name!");
                     }
                 } elseif ($this->mode == 0 and $args[0] == "regsign" and isset($args[1])) {
                     if (file_exists($this->getDataFolder() . "/arenas/" . $args[1])) {
                         $player->sendMessage(TextFormat::YELLOW . "You are about to register a sign for the arena {$args['1']}. Tap a sign to activate it!");
                         $this->regname = $args[1];
                         $this->mode = 10;
                     } else {
                         $player->sendMessage(TextFormat::RED . "This is not a valid name!");
                     }
                 } elseif ($this->mode == 0 and $args[0] == "regsign") {
                     $player->sendMessage(TextFormat::YELLOW . "Usage: /bw regsign [worldname]");
                 } elseif ($args[0] == "cancel") {
                     $this->mode = 0;
                     $player->sendMessage(TextFormat::GREEN . "Cancelled!");
                 }
             }
             return true;
     }
     return true;
 }
Пример #9
0
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $args)
 {
     $cfg = $this->getConfig();
     $defgm = $cfg->get("Default-Game-Mode");
     $tptosp = $cfg->get("Teleport-To-Spawn");
     if (isset($args[0])) {
         switch ($args[0]) {
             case "on":
                 $sender->setGamemode(3);
                 $sender->sendMessage(TextFormat::GREEN . "You are now a Spectator!");
                 $this->getLogger()->info($sender->getName() . " Has changed his gamemode to Spectator");
                 return true;
             case "off":
                 $sender->setGamemode($defgm);
                 $sender->sendMessage(TextFormat::YELLOW . "You are no longer Espectator");
                 if ($tptosp === true) {
                     $sender->teleport($this->getServer()->getDefaultLevel()->getSpawn());
                 }
                 return true;
         }
     }
     return false;
 }
Пример #10
0
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $args)
 {
     switch ($cmd->getName()) {
         case "skywarshowto":
             if ($sender->hasPermission("skywars.command.howto") or $sender->hasPermission("skywars.command") or $sender->hasPermission("skywars")) {
                 $sender->sendMessage("----How To Play skywars----");
                 $sender->sendMessage("/sk play = start a game");
                 $sender->sendMessage("/sk exit = exit from a game");
                 $sender->sendMessage("/sk stat [player] = get a player stats");
                 $sender->sendMessage("/sk skiptime = skip the waiting time");
                 return true;
             } else {
                 $sender->sendMessage("You haven't the permission to run this command");
             }
         case "skywars":
         case "sw":
             //same as setting aliases in plugin.yml, both cmds (skywars & sw) are usable
         //same as setting aliases in plugin.yml, both cmds (skywars & sw) are usable
         case "sk":
             switch ($args[0]) {
                 case "play":
                     if ($sender->hasPermission("skywars.command.play") or $sender->hasPermission("skywars.command") or $sender->hasPermission("skywars")) {
                         if ($this->aplayers >= $this->getConfig()->get('neededplayers') and $this->skywarsstarted == false) {
                             //if players in the world are more or equal as the max players
                             $sender->sendMessage("The game is full");
                             // game full
                             return true;
                         } elseif ($this->aplayers < $this->getConfig()->get('neededplayers') and $this->skywarsstarted == false) {
                             //if player number is less than the max.
                             $spawn = $this->getConfig()->get('spawns')[$this->aplayers];
                             //no need to do + 1 on this, because arrays start counting form 0 // get the correct spawn place
                             $sender->teleport(new Position($spawn[0], $spawn[1], $spawn[2], $this->getServer()->getLevelByName($this->getConfig()->get('aworld'))));
                             //teleport to it
                             $this->aplayers = $this->aplayers + 1;
                             //then add a player to the array
                             $sender->sendMessage("You have been teleported to the game world.");
                             if ($this->aplayers == $this->getConfig()->get('neededplayers')) {
                                 //if the players became the same as neededplayers
                                 $this->startGame($this->getConfig() > get('aworld'));
                                 //start the game
                             }
                             return true;
                         } elseif ($this->skywarsstarted == true) {
                             //if the game is already started
                             $sender->sendMessage("The game is already started");
                             return true;
                         }
                     } else {
                         $sender->sendMessage("You haven't the permission to run this command.");
                         return true;
                     }
                     break;
                 case "exit":
                     if ($sender->hasPermission("skywars.command.exit") or $sender->hasPermission("skywars.command") or $sender->hasPermission("skywars")) {
                         if ($sender->getLevel()->getName() == $this->getConfig()->get('aworld')) {
                             //if the level of the sender is a skywars one
                             $this->aplayers = $this->aplayers - 1;
                             //remove 1 to the array
                             $sender->teleport($this->getServer()->getLevelByName($this->getConfig() > get('lobby'))->getSafeSpawn());
                             //teleport to the lobby
                             $sender->sendMessage("You left the game.");
                             if ($this->aplayers <= 1) {
                                 //if only 1 player is left
                                 foreach ($this->getServer()->getLevelByName($this->getConfig()->get('aworld'))->getPlayers() as $p) {
                                     //detects the winner
                                     if ($p->getGameMode() == 0) {
                                         $p->sendMessage("You won the match!");
                                         $p->sendMessage("The game has finished, you will be teleported to the lobby.");
                                         $p->teleport($this->getServer()->getLevelByName($this->config->get('lobby'))->getSafeSpawn());
                                         //teleport to the lobby
                                         $points = $this->points->get($p)[2] + $this->getConfig()->get('points-per-match');
                                         //get points and add
                                         $deaths = $this->points->get($player)[0];
                                         //get the victim's deaths, add one and store in a variable
                                         $kills = $this->points->get($player)[1];
                                         //get the players kills and store in a var
                                         $this->getConfig()->set($p, array($deaths, $kills, $points));
                                     } else {
                                         $p->sendMessage("The match has finished, thanks for watching.");
                                         $p->teleport($this->getServer()->getLevelByName($this->getConfig()->get('lobby'))->getSafeSpawn());
                                         $p->setGameMode(0);
                                     }
                                     $this->stopGame($this->getConfig()->get('aworld'));
                                     //stop the game
                                 }
                             }
                             return true;
                         } else {
                             $sender->sendMessage("You are not in the SkyWars world.");
                             return true;
                         }
                     } else {
                         $sender->sendMessage("You haven't the permission to run this command.");
                         return true;
                     }
                     break;
                 case "stat":
                     if ($sender->hasPermission("skywars.command.stat") or $sender->hasPermission("skywars.command") or $sender->hasPermission("skywars")) {
                         if (!isset($args[1])) {
                             $player = $sender->getName();
                             $deaths = $this->points->get($player)[0];
                             $kills = $this->points->get($player)[1];
                             $points = $this->points->get($player)[2];
                             $sender->sendMessage("You have " . $deaths . " deaths, " . $kills . " kills and " . $points . " points.");
                             return true;
                         } else {
                             $player = $args[1];
                             $deaths = $this->points->get($player)[0];
                             $kills = $this->points->get($player)[1];
                             $points = $this->points->get($player)[2];
                             $sender->sendMessage($player . " has " . $deaths . " deaths, " . $kills . " kills and " . $points . " points.");
                             return true;
                         }
                     } else {
                         $sender->sendMessage("You haven't the permission to run this command.");
                         return true;
                     }
                     break;
                 case "spawnpos":
                     if ($sender->hasPermission("skywars.command.pos") or $sender->hasPermission("skywars.command") or $sender->hasPermission("skywars")) {
                         $x = $sender->getX();
                         $y = $sender->getY();
                         //get coordinates and store in variables
                         $z = $sender->getZ();
                         $this->getConfig()->set('spawns', array($x, $y, $z));
                         $sender->sendMessage("Spawn position set to: " . $x . ", " . $y . ", " . $z . ", level: " . $sender->getLevel()->getName());
                         return true;
                     } else {
                         $sender->sendMessage("You haven't the permission to run this command.");
                         return true;
                     }
                     break;
                 case "skiptime":
                     if ($sender->hasPermission("skywars.command.skiptime") or $sender->hasPermission("skywars.command") or $sender->hasPermission("skywars")) {
                         if ($this->aplayers >= $this->getConfig()->get("minplayers")) {
                             $this->startGame($sender->getLevel()->getName());
                             //start game on the sender level
                             $sender->sendMessage("You started the game skipping the waiting time!");
                             return true;
                         } else {
                             $sender->sendMessage("There are less than 3 players, you can't start the game yet.");
                             return true;
                         }
                     } else {
                         $sender->sendMessage("You haven't the permission to run this command.");
                         return true;
                     }
                     break;
                 case "left":
                     if ($sender->hasPermission("skywars.command.left") or $sender->hasPermission("skywars.command") or $sender->hasPermission("skywars")) {
                         if ($sender->getLevel()->getName() == $this->getConfig()->get('aworld')) {
                             $playersleft = $this->getConfig()->get('neededplayers') - $this->aplayers;
                             $sender->sendMessage("Players left untill the game begin: " . $playersleft);
                             return true;
                         } else {
                             $sender->sendMessage("You are not in a SkyWars world.");
                             return true;
                         }
                     } else {
                         $sender->sendMessage("You haven't the permission to run this command.");
                         return true;
                     }
                     break;
                 case "see":
                     if ($sender->hasPermission("skywars.command.see") or $sender->hasPermission("skywars.command") or $sender->hasPermission("skywars")) {
                         $sender->sendMessage("You will join a match as a spectator");
                         $sender->setGamemode(3);
                         //Actually, this will crash mcpe I think.
                         $spawn = $this->getConfig()->get('spectatorspawn');
                         $sender->teleport(new Position($spawn[0], $spawn[1], $spawn[2], $this->getServer()->getLevelByName($this->getConfig()->get('aworld'))));
                     } else {
                         $sender->sendMessage("You haven't the permission to run this command.");
                         return true;
                     }
                     break;
                 default:
                     return false;
             }
     }
 }
Пример #11
0
 public function onCommand(CommandSender $sender, Command $command, $label, array $args)
 {
     $this->getLogger()->info("test");
     if ($command->getName() == "pk") {
         if ($args[0] == "join") {
             if (isset($args[1])) {
                 if (isset($this->arenas[strtolower($args[1])]) and substr(strtolower($args[1]), -5) != "_race") {
                     if (!isset($this->activeplayers[$sender->getName()])) {
                         $this->activeplayers[$sender->getName()] = array("current-map" => strtolower($args[1]), "last-set" => 0, "micro-seconds" => 0, "active" => false, "current-checkpoint" => 0);
                         $sender->teleport($this->arenas[strtolower($args[1])]->getStartPosition());
                         $sender->setRotation($this->arenas[strtolower($args[1])]->getStartYaw(), $sender->getPitch());
                         $sender->sendMessage("§cYou have started the map '§b" . $this->arenas[strtolower($args[1])]->getMapName() . "§c'.");
                     } else {
                         $sender->sendMessage("§cYou are currently still playing a different map\n§cUse §b/pk leave§c to leave this map.");
                     }
                 } else {
                     $sender->sendMessage("§cThe map '§b" . strtolower($args[1]) . "§c' doesn't exist.");
                 }
             } else {
                 $sender->sendMessage("§cUsage: §b/pk join [map name]");
             }
         } else {
             if ($args[0] == "leave") {
                 if (isset($this->activeplayers[$sender->getName()])) {
                     unset($this->activeplayers[$sender->getName()]);
                     $sender->sendMessage("§cYou have left your current map.");
                 } else {
                     $sender->sendMessage("§cYou aren't currently playing any maps.");
                 }
             } else {
                 if ($args[0] == "info") {
                     if (isset($args[1])) {
                         if (isset($this->arenas[strtolower($args[1])])) {
                             $map = $this->arenas[strtolower($args[1])];
                             $currentlyplaying = array();
                             foreach ($this->activeplayers as $player => $name) {
                                 if ($name['current-map'] == strtolower($args[1])) {
                                     array_push($currentlyplaying, $player);
                                 }
                             }
                             $sender->sendMessage("§cMap info:\n§cMap name: §b" . $map->getMapName() . "\n§cMap maker: §b" . $map->getMapMaker() . "\n§cDate of creation: §b" . $map->getDateOfCreation() . "\n§cMap world name: §b" . $map->getMapLevel()->getName() . "\n§cYour current highscore: §b" . ($map->getTime($sender) === null ? "none" : $map->getTime($sender)) . "\n§cCurrently playing: §b" . implode(", ", $currentlyplaying) . "\n§cFor leaderboards, please type §b/pk topten " . strtolower($args[1]));
                         } else {
                             $sender->sendMessage("§cThis map doesn't exist.");
                         }
                     } else {
                         $sender->sendMessage("§cUsage: §b/pk info [map name]");
                     }
                 } else {
                     if ($args[0] == "topten") {
                         if (isset($args[1])) {
                             if (isset($this->arenas[strtolower($args[1])])) {
                                 $sender->sendMessage("§cTop ten laps of the map §b" . $this->arenas[strtolower($args[1])]->getMapName() . "§c:");
                                 $count = 0;
                                 foreach ($this->arenas[strtolower($args[1])]->getTopTen() as $player) {
                                     $count++;
                                     $sender->sendMessage("§c" . $count . ") §b" . $player['username'] . "§c with §b" . $player['highscore']);
                                 }
                             } else {
                                 $sender->sendMessage("§cThis map doesn't exist.");
                             }
                         } else {
                             $sender->sendMessage("§cUsage: §b/pk topten [map name]");
                         }
                     }
                 }
             }
         }
         if ($args[0] == "create") {
             if (isset($args[1])) {
                 $this->arenaconf->set($args[1], array("date-of-creation" => date("d/m/Y"), "map-maker" => $sender->getName(), "level" => $sender->getLevel()->getName(), "floor-y" => 0, "start-position" => array("x" => 0, "y" => 0, "z" => 0, "yaw" => 360), "timer-block" => array("x" => 0, "y" => 0, "z" => 0), "end-block" => array("x" => 0, "y" => 0, "z" => 0)));
                 $sender->sendMessage("§cNew map '§b" . $args[1] . "§c' has been created.\n§cPlease use the follwing command to set the start position:\n§b/pk setstart " . strtolower($args[1]));
             } else {
                 $sender->sendMessage("§cUsage: §b/pk create [map name]");
             }
         } else {
             if ($args[0] == "setstart") {
                 if (isset($args[1])) {
                     if ($this->arenaconf->exists($args[1])) {
                         $newmap = $this->arenaconf->get($args[1]);
                         $newmap['start-position'] = array("x" => $sender->getFloorX(), "y" => $sender->getFloorY(), "z" => $sender->getFloorZ(), $sender->getYaw());
                         $this->arenaconf->set($args[1], $newmap);
                         $sender->sendMessage("§cAwesome! Now use the follwing command to set the floor that will reset you once you fall below/on it.\n§b/pk setfloor " . strtolower($args[1]));
                     } else {
                         $sender->sendMessage("§cThis map doesn't exist.");
                     }
                 } else {
                     $sender->sendMessage("§cUsage: §b/pk setfloor [map name]");
                 }
             } else {
                 if ($args[0] == "setfloor") {
                     if (isset($args[1])) {
                         if ($this->arenaconf->exists($args[1])) {
                             $newmap = $this->arenaconf->get($args[1]);
                             $newmap['floor-y'] = $sender->getFloorY();
                             $this->arenaconf->set($args[1], $newmap);
                             $sender->sendMessage("§cGreat! Now use the follwing command to set the timer start position.\n§b/pk settimer " . strtolower($args[1]));
                         } else {
                             $sender->sendMessage("§cThis map doesn't exist.");
                         }
                     } else {
                         $sender->sendMessage("§cUsage: §b/pk setfloor [map name]");
                     }
                 } else {
                     if ($args[0] == "settimer") {
                         if (isset($args[1])) {
                             if ($this->arenaconf->exists($args[1])) {
                                 $newmap = $this->arenaconf->get($args[1]);
                                 $newmap['timer-block'] = array("x" => $sender->getFloorX(), "y" => $sender->getFloorY(), "z" => $sender->getFloorZ());
                                 $this->arenaconf->set($args[1], $newmap);
                                 $sender->sendMessage("§cAlmost there! Use the following command to set the end of the map.\n§b/pk setend " . strtolower($args[1]) . "\n§cAfter that use §b/pk setcheckpoint " . strtolower($args[1]) . " §cfor every checkpoint you would like to set.");
                             } else {
                                 $sender->sendMessage("§cThis map doesn't exist.");
                             }
                         } else {
                             $sender->sendMessage("§cUsage: §b/pk settimer [map name]");
                         }
                     } else {
                         if ($args[0] == "setend") {
                             if (isset($args[1])) {
                                 if ($this->arenaconf->exists($args[1])) {
                                     $newmap = $this->arenaconf->get($args[1]);
                                     $newmap['end-block'] = array("x" => $sender->getFloorX(), "y" => $sender->getFloorY(), "z" => $sender->getFloorZ());
                                     $this->arenaconf->set($args[1], $newmap);
                                     $this->arenaconf->save();
                                     $sender->sendMessage("§cAwesome! Your new map is now ready to use.\n§cRestart the server to use the new map.\n§c(Refreshing maps would cause too much confusion)");
                                 } else {
                                     $sender->sendMessage("§cThis map doesn't exist.");
                                 }
                             } else {
                                 $sender->sendMessage("§cUsage: §b/pk setend [map name]");
                             }
                         } else {
                             if ($args[0] == "setcheckpoint") {
                                 if (isset($args[1])) {
                                     if ($this->arenaconf->exists($args[1])) {
                                         $checkpoints = $this->arenaconf->get($args[1]);
                                         $checkpoints['checkpoints'][count($checkpoints['checkpoints']) + 1] = array("yaw" => $sender->getYaw(), "x" => $sender->getFloorX(), "y" => $sender->getFloorY(), "z" => $sender->getFloorZ());
                                         $this->arenaconf->set($args[1], $checkpoints);
                                         $this->arenaconf->save();
                                         $sender->sendMessage("§cNew checkpoint set. Restart the server to apply the new changes.");
                                     } else {
                                         $sender->sendMessage("§cThis map doesn't exist.");
                                     }
                                 } else {
                                     $sender->sendMessage("§cUsage: §b/pk setcheckpoint [map name]");
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     return true;
 }
Пример #12
0
 public function onCommand(CommandSender $sender, Command $command, $label, array $args)
 {
     if ($command->getName() == "lobby") {
         if ($this->gameStatus >= 2) {
             $sender->sendMessage("[{$this->getConfig()->get("prefix")}] {$Already_Playing}");
             return;
         }
         if (isset($this->players[$sender->getName()])) {
             unset($this->players[$sender->getName()]);
             $sender->setLevel($this->signlevel);
             $sender->teleport($this->signlevel->getSpawnLocation());
             $sender->sendMessage(TextFormat::GREEN . "[{$this->getConfig()->get("prefix")}] Teleporting to lobby...");
             $this->getServer()->broadcastMessage(TextFormat::RED . "[{$this->getConfig()->get("prefix")}]Player " . $sender->getName() . " left the match.");
             $this->changeStatusSign();
             if ($this->gameStatus == 1 && count($this->players) < 2) {
                 $this->gameStatus = 0;
                 $this->lastTime = 0;
                 $event->getPlayer()->sendMessage("[{$this->getConfig()->get("prefix")}] {$Arena}");
                 /*foreach($this->players as $pl)
                 		{
                 			$p=$this->getServer()->getPlayer($pl["id"]);
                 			$p->setLevel($this->signlevel);
                 			$p->teleport($this->signlevel->getSpawnLocation());
                 			unset($p,$pl);
                 		}*/
             }
         } else {
             $sender->sendMessage(TextFormat::RED . "[{$this->getConfig()->get("prefix")}] {$Not_In_Match}");
         }
         return true;
     }
     if (!isset($args[0])) {
         unset($sender, $cmd, $label, $args);
         return false;
     }
     switch ($args[0]) {
         case "help":
             if ($sender->hasPermission("sg.command.help") or $sender->hasPermission("sg.command") or $sender->hasPermission("sg")) {
                 $sender->sendMessage("§d§o-------SurvivalGames Help-------");
                 $sender->sendMessage("§d§oUse §e/sg stats - View your stats");
                 $sender->sendMessage("§d§oUse §e/sg set - Set up an arena");
                 $sender->sendMessage("§d§oUse §e/sg remove - Remove a arena");
                 $sender->sendMessage("§d§oUse §e/sg start - Force start a match");
                 $sender->sendMessage("§d§oUse §e/sg reload - Reload the spawn positions");
                 $sender->sendMessage("§d§o--------------------------------");
                 return true;
             }
             break;
         case "stats":
             if ($sender instanceof Player) {
                 if ($sender->hasPermission("sg.command.stats") or $sender->hasPermission("sg.command") or $sender->hasPermission("sg")) {
                     if (!isset($args[1])) {
                         $player = $sender->getName();
                         $deaths = $this->points->get($player)[0];
                         $kills = $this->points->get($player)[1];
                         $points = $this->points->get($player)[2];
                         $sender->sendMessage(TextFormat::RED . "[{$this->getConfig()->get("prefix")}] ---------------");
                         $sender->sendMessage(TextFormat::RED . "[{$this->getConfig()->get("prefix")}] §bYou're stats");
                         $sender->sendMessage(TextFormat::RED . "[{$this->getConfig()->get("prefix")}] §lDeaths: §9{$deaths}");
                         $sender->sendMessage(TextFormat::RED . "[{$this->getConfig()->get("prefix")}] §lKills: §9{$kills}");
                         $sender->sendMessage(TextFormat::RED . "[{$this->getConfig()->get("prefix")}] ---------------");
                         return true;
                     } else {
                         $player = $args[1];
                         $deaths = $this->points->get($player)[0];
                         $kills = $this->points->get($player)[1];
                         $points = $this->points->get($player)[2];
                         $sender->sendMessage(TextFormat::RED . "[{$this->getConfig()->get("prefix")}] ---------------");
                         $sender->sendMessage(TextFormat::RED . "[{$this->getConfig()->get("prefix")}] §bPlayer: §9{$player} Stats");
                         $sender->sendMessage(TextFormat::RED . "[{$this->getConfig()->get("prefix")}] §lDeaths: §9{$deaths}");
                         $sender->sendMessage(TextFormat::RED . "[{$this->getConfig()->get("prefix")}] §lKills: §9{$kills}");
                         $sender->sendMessage(TextFormat::RED . "[{$this->getConfig()->get("prefix")}] ---------------");
                         return true;
                     }
                 } else {
                     $sender->sendMessage("{$No_Permission}");
                     return true;
                 }
             } else {
                 $sender->sendMessage(TextFormat::RED . "That command can only be used in-game!");
                 return true;
             }
             break;
         case "set":
             if ($sender instanceof Player) {
                 if ($this->config->exists("lastpos")) {
                     $sender->sendMessage("Seems like you have already setup an arena");
                 } else {
                     $name = $sender->getName();
                     $this->SetStatus[$name] = 0;
                     $sender->sendMessage("Tap a sign to set it as join sign!");
                 }
             } else {
                 $sender->sendMessage(TextFormat::RED . "You may only use ths command in-game!");
                 return true;
             }
             break;
         case "remove":
             $this->config->remove("sign");
             $this->config->remove("pos1");
             $this->config->remove("pos2");
             $this->config->remove("pos3");
             $this->config->remove("pos4");
             $this->config->remove("pos5");
             $this->config->remove("pos6");
             $this->config->remove("pos7");
             $this->config->remove("pos8");
             $this->config->remove("pos9");
             $this->config->remove("pos10");
             $this->config->remove("pos11");
             $this->config->remove("pos12");
             $this->config->remove("pos13");
             $this->config->remove("pos14");
             $this->config->remove("pos15");
             $this->config->remove("pos16");
             $this->config->remove("pos17");
             $this->config->remove("pos18");
             $this->config->remove("pos19");
             $this->config->remove("pos20");
             $this->config->remove("pos21");
             $this->config->remove("pos22");
             $this->config->remove("pos23");
             $this->config->remove("pos24");
             $this->config->remove("lastpos");
             $this->config->save();
             unset($this->sign, $this->pos1, $this->pos2, $this->pos3, $this->pos4, $this->pos5, $this->pos6, $this->pos7, $this->pos8, $this->pos9, $this->pos10, $this->pos11, $this->pos12, $this->pos13, $this->pos14, $this->pos15, $this->pos16, $this->pos17, $this->pos18, $this->pos19, $this->pos20, $this->pos21, $this->pos22, $this->pos23, $this->pos24, $this->lastpos);
             $sender->sendMessage(TextFormat::GREEN . "Game settings successfully removed.");
             break;
         case "start":
             $this->getServer()->broadcastMessage(TextFormat::BLUE . "{$Force_Start}");
             $this->gameStatus = 1;
             $this->lastTime = 5;
             break;
         case "reload":
             @mkdir($this->getDataFolder(), 0777, true);
             $this->config = new Config($this->getDataFolder() . "config.yml", Config::YAML, array());
             if ($this->config->exists("lastpos")) {
                 $this->sign = $this->config->get("sign");
                 $this->pos1 = $this->config->get("pos1");
                 $this->pos2 = $this->config->get("pos2");
                 $this->pos3 = $this->config->get("pos3");
                 $this->pos4 = $this->config->get("pos4");
                 $this->pos5 = $this->config->get("pos5");
                 $this->pos6 = $this->config->get("pos6");
                 $this->pos7 = $this->config->get("pos7");
                 $this->pos8 = $this->config->get("pos8");
                 $this->pos9 = $this->config->get("pos9");
                 $this->pos10 = $this->config->get("pos10");
                 $this->pos11 = $this->config->get("pos11");
                 $this->pos12 = $this->config->get("pos12");
                 $this->pos13 = $this->config->get("pos13");
                 $this->pos14 = $this->config->get("pos14");
                 $this->pos15 = $this->config->get("pos15");
                 $this->pos16 = $this->config->get("pos16");
                 $this->pos17 = $this->config->get("pos17");
                 $this->pos18 = $this->config->get("pos18");
                 $this->pos19 = $this->config->get("pos19");
                 $this->pos20 = $this->config->get("pos20");
                 $this->pos21 = $this->config->get("pos21");
                 $this->pos22 = $this->config->get("pos22");
                 $this->pos23 = $this->config->get("pos23");
                 $this->pos24 = $this->config->get("pos24");
                 $this->lastpos = $this->config->get("lastpos");
                 $this->signlevel = $this->getServer()->getLevelByName($this->config->get("sign")["level"]);
                 $this->sign = new Vector3($this->sign["x"], $this->sign["y"], $this->sign["z"]);
                 $this->pos1 = new Vector3($this->pos1["x"] + 0.5, $this->pos1["y"], $this->pos1["z"] + 0.5);
                 $this->pos2 = new Vector3($this->pos2["x"] + 0.5, $this->pos2["y"], $this->pos2["z"] + 0.5);
                 $this->pos3 = new Vector3($this->pos3["x"] + 0.5, $this->pos3["y"], $this->pos3["z"] + 0.5);
                 $this->pos4 = new Vector3($this->pos4["x"] + 0.5, $this->pos4["y"], $this->pos4["z"] + 0.5);
                 $this->pos5 = new Vector3($this->pos5["x"] + 0.5, $this->pos5["y"], $this->pos5["z"] + 0.5);
                 $this->pos6 = new Vector3($this->pos6["x"] + 0.5, $this->pos6["y"], $this->pos6["z"] + 0.5);
                 $this->pos7 = new Vector3($this->pos7["x"] + 0.5, $this->pos7["y"], $this->pos7["z"] + 0.5);
                 $this->pos8 = new Vector3($this->pos8["x"] + 0.5, $this->pos8["y"], $this->pos8["z"] + 0.5);
                 $this->pos9 = new Vector3($this->pos9["x"] + 0.5, $this->pos9["y"], $this->pos9["z"] + 0.5);
                 $this->pos10 = new Vector3($this->pos10["x"] + 0.5, $this->pos10["y"], $this->pos10["z"] + 0.5);
                 $this->pos11 = new Vector3($this->pos11["x"] + 0.5, $this->pos11["y"], $this->pos11["z"] + 0.5);
                 $this->pos12 = new Vector3($this->pos12["x"] + 0.5, $this->pos12["y"], $this->pos12["z"] + 0.5);
                 $this->pos13 = new Vector3($this->pos13["x"] + 0.5, $this->pos13["y"], $this->pos13["z"] + 0.5);
                 $this->pos14 = new Vector3($this->pos14["x"] + 0.5, $this->pos14["y"], $this->pos14["z"] + 0.5);
                 $this->pos15 = new Vector3($this->pos15["x"] + 0.5, $this->pos15["y"], $this->pos15["z"] + 0.5);
                 $this->pos16 = new Vector3($this->pos16["x"] + 0.5, $this->pos16["y"], $this->pos16["z"] + 0.5);
                 $this->pos17 = new Vector3($this->pos17["x"] + 0.5, $this->pos17["y"], $this->pos17["z"] + 0.5);
                 $this->pos18 = new Vector3($this->pos18["x"] + 0.5, $this->pos18["y"], $this->pos18["z"] + 0.5);
                 $this->pos19 = new Vector3($this->pos19["x"] + 0.5, $this->pos19["y"], $this->pos19["z"] + 0.5);
                 $this->pos20 = new Vector3($this->pos20["x"] + 0.5, $this->pos20["y"], $this->pos20["z"] + 0.5);
                 $this->pos21 = new Vector3($this->pos21["x"] + 0.5, $this->pos21["y"], $this->pos21["z"] + 0.5);
                 $this->pos22 = new Vector3($this->pos22["x"] + 0.5, $this->pos22["y"], $this->pos22["z"] + 0.5);
                 $this->pos23 = new Vector3($this->pos23["x"] + 0.5, $this->pos23["y"], $this->pos23["z"] + 0.5);
                 $this->pos24 = new Vector3($this->pos24["x"] + 0.5, $this->pos24["y"], $this->pos24["z"] + 0.5);
                 $this->lastpos = new Vector3($this->lastpos["x"] + 0.5, $this->lastpos["y"], $this->lastpos["z"] + 0.5);
             }
             if (!$this->config->exists("gameTime")) {
                 $this->config->set("gameTime", 300);
             }
             if (!$this->config->exists("prefix")) {
                 $this->config->set("prefix", "Game");
             }
             $this->gameTime = (int) $this->config->get("gameTime");
             $this->prefix = (int) $this->config->get("prefix");
             $this->gameStatus = 0;
             $this->lastTime = 0;
             $this->players = array();
             $this->SetStatus = array();
             $this->all = 0;
             //
             $this->config->save();
             $sender->sendMessage(TextFormat::GREEN . "All SurvivalGames configuration has been reloaded");
             break;
         default:
             return false;
             break;
     }
     return true;
 }
Пример #13
0
 public function onCommand(CommandSender $runner, Command $call, $alia, array $arg)
 {
     switch (strtolower($call->getName())) {
         case 'brawl':
             if (empty($arg) && $runner instanceof Player) {
                 $runner->sendMessage(TextFormat::RED . "Usage: /brawl <join|quit>");
             }
             if ($runner->hasPermission("brawl.cmd") && $runner instanceof Player && isset($arg[0])) {
                 switch (strtolower($arg[0])) {
                     case 'join':
                         if (!isset($this->brawl[$runner->getName()])) {
                             $this->cnt[$runner->getName()] = 0;
                             $this->brawl[$runner->getName()] = $runner;
                             $runner->teleport(new Position($this->wx, $this->wy, $this->wz, $this->wlvl), 0, 0);
                             foreach ($this->brawl as $pl) {
                                 $pl->sendMessage(TextFormat::GOLD . "[CL-BrawlArena] " . $runner->getName() . " joined the match.");
                             }
                             if (count($this->brawl) >= $this->min) {
                                 $t = new WaitTask($this);
                                 $h = $this->getServer()->getScheduler()->scheduleDelayedTask($t, 20 * $this->wait_time);
                                 $t->setHandler($h);
                                 foreach ($this->brawl as $pl) {
                                     $min = $this->wait_time / 60;
                                     $pl->sendMessage(TextFormat::GOLD . "[CL-BrawlArena] Game starting in " . ($this->wait_time <= 60 ? "{$this->wait_time} seconds" : "{$min} minutes."));
                                     break;
                                 }
                             }
                         } else {
                             $runner->sendMessage(TextFormat::RED . "[CL-BrawlArena] You already joined.");
                         }
                         if (count($this->brawl) >= $this->max) {
                             $runner->sendMessage(TextFormat::RED . "[CL-BrawlArena] Game full.");
                         }
                         if ($this->running) {
                             $runner->sendMessage(TextFormat::RED . "[CL-BrawlArena] Game already running.");
                         }
                         break;
                     case 'quit':
                         if (isset($this->brawl[$runner->getName()])) {
                             $runner->teleport(new Position($this->lx, $this->ly, $this->lz, $this->llvl), 0, 0);
                             $runner->sendMessage(TextFormat::GREEN . "[CL-BrawlArena] Teleporting...");
                             unset($this->brawl[$runner->getName()]);
                             unset($this->cnt[$runner->getName()]);
                             if (count($this->brawl) <= 0) {
                                 $this->getServer()->broadcastMessage(TextFormat::GREEN . "[CL-BrawlArena] Game is open.");
                                 $this->running = false;
                                 unset($this->brawl);
                                 unset($this->cnt);
                             }
                         }
                         break;
                 }
             }
             break;
     }
 }
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $args)
 {
     $name = $sender->getName();
     switch ($cmd->getName()) {
         case "vote":
             if (!isset($args[0])) {
                 $sender->sendMessage(MT::RED . 'Vote with /vote *arenanumber* (1-5)');
                 $this->getLogger()->info("{$name} benutzt vote befehl");
                 return true;
             } else {
                 if ($args[0] == 1 || $args[0] == 2 || $args[0] == 3 || $args[0] == 4 || $args[0] == 5) {
                     $sender->sendMessage(MT::RED . 'Thank u for voting the arena ' . MT::GREEN . $args[0]);
                     $this->getLogger()->info("{$name} hat gevotet Arena {$args['0']}");
                     if ($args[0] == 1) {
                         $this->arena1[$name] = 1;
                     }
                     if ($args[0] == 2) {
                         $this->arena2[$name] = 1;
                     }
                     if ($args[0] == 3) {
                         $this->arena3[$name] = 1;
                     }
                     if ($args[0] == 4) {
                         $this->arena4[$name] = 1;
                     }
                     if ($args[0] == 5) {
                         $this->arena5[$name] = 1;
                     }
                     return true;
                 } else {
                     $sender->sendMessage(MT::RED . 'Wrong arena number or arena not loaded');
                     return false;
                 }
             }
             break;
         case "watch":
             $level = $sender->getLevel()->getName();
             if ($level == $this->lobbyname) {
                 if (isset($this->selectarena)) {
                     $arenaname = $this->selectarena;
                     if ($this->arena1name == $arenaname) {
                         $pos111 = explode(",", $this->arena1areapos1);
                         $pos222 = explode(",", $this->arena1areapos2);
                     }
                     if ($this->arena2name == $arenaname) {
                         $pos111 = explode(",", $this->arena2areapos1);
                         $pos222 = explode(",", $this->arena2areapos2);
                     }
                     if ($this->arena3name == $arenaname) {
                         $pos111 = explode(",", $this->arena3areapos1);
                         $pos222 = explode(",", $this->arena3areapos2);
                     }
                     if ($this->arena4name == $arenaname) {
                         $pos111 = explode(",", $this->arena4areapos1);
                         $pos222 = explode(",", $this->arena4areapos2);
                     }
                     if ($this->arena5name == $arenaname) {
                         $pos111 = explode(",", $this->arena5areapos1);
                         $pos222 = explode(",", $this->arena5areapos2);
                     }
                     $randx = rand($pos111[0], $pos222[0]);
                     $randz = rand($pos111[2], $pos222[2]);
                     $randy = rand($pos111[1], $pos222[1]);
                     $sender->teleport($this->getServer()->getLevelByName($this->selectarena)->getSafeSpawn(new Position($randx, $randy, $randz)));
                     $sender->setGamemode(3);
                     return true;
                 } else {
                     $sender->sendMessage(MT::RED . 'Round isnt started yet!');
                     return false;
                 }
             } else {
                 $name = $sender->getName();
                 if (in_array($name, $this->players)) {
                     $sender->sendMessage(MT::RED . 'Your are not in Lobby and playing!');
                 } else {
                     $sender->teleport($this->getServer()->getLevelByName($this->lobbyname)->getSafeSpawn());
                     $sender->setGamemode(0);
                 }
                 return false;
             }
             break;
         case "playerspawn":
             $level = $sender->getLevel()->getName();
             if ($sender->isOp()) {
                 if (isset($args[0])) {
                     $config = $this->config->getAll();
                     $ppos = $config["PlayerspawnPos"];
                     $ppos2 = $config["PlayerspawnPos2"];
                     $ppos3 = $config["PlayerspawnPos3"];
                     $ppos4 = $config["PlayerspawnPos4"];
                     $ppos5 = $config["PlayerspawnPos5"];
                     if ($args[0] == "add") {
                         if (isset($args[1])) {
                             if ($this->arena1name == $level) {
                                 $commandpos = $args[1];
                                 if (!in_array($commandpos, $ppos)) {
                                     if (!is_array($ppos)) {
                                         $ppos = array($commandpos);
                                         return true;
                                     } else {
                                         $ppos[] = $commandpos;
                                         $sender->sendMessage(MT::GREEN . "Position setted " . $commandpos);
                                         $config["PlayerspawnPos"] = $ppos;
                                         $this->config->setAll($config);
                                         $this->config->save();
                                         return true;
                                     }
                                 } else {
                                     $sender->sendMessage(MT::RED . "Position exist");
                                     return false;
                                 }
                             }
                             if ($this->arena2name == $level) {
                                 $commandpos = $args[1];
                                 if (!in_array($commandpos, $ppos2)) {
                                     if (!is_array($ppos2)) {
                                         $ppos2 = array($commandpos);
                                         return true;
                                     } else {
                                         $ppos2[] = $commandpos;
                                         $sender->sendMessage(MT::GREEN . "Position setted " . $commandpos);
                                         $config["PlayerspawnPos2"] = $ppos2;
                                         $this->config->setAll($config);
                                         $this->config->save();
                                         return true;
                                     }
                                 } else {
                                     $sender->sendMessage(MT::RED . "Position exist");
                                     return false;
                                 }
                             }
                             if ($this->arena3name == $level) {
                                 $commandpos = $args[1];
                                 if (!in_array($commandpos, $ppos3)) {
                                     if (!is_array($ppos3)) {
                                         $ppos3 = array($commandpos);
                                         return true;
                                     } else {
                                         $ppos3[] = $commandpos;
                                         $sender->sendMessage(MT::GREEN . "Position setted " . $commandpos);
                                         $config["PlayerspawnPos3"] = $ppos3;
                                         $this->config->setAll($config);
                                         $this->config->save();
                                         return true;
                                     }
                                 } else {
                                     $sender->sendMessage(MT::RED . "Position exist");
                                     return false;
                                 }
                             }
                             if ($this->arena4name == $level) {
                                 $commandpos = $args[1];
                                 if (!in_array($commandpos, $ppos4)) {
                                     if (!is_array($ppos4)) {
                                         $ppos4 = array($commandpos);
                                         return true;
                                     } else {
                                         $ppos4[] = $commandpos;
                                         $sender->sendMessage(MT::GREEN . "Position setted " . $commandpos);
                                         $config["PlayerspawnPos4"] = $ppos4;
                                         $this->config->setAll($config);
                                         $this->config->save();
                                         return true;
                                     }
                                 } else {
                                     $sender->sendMessage(MT::RED . "Position exist");
                                     return false;
                                 }
                             }
                             if ($this->arena5name == $level) {
                                 $commandpos = $args[1];
                                 if (!in_array($commandpos, $ppos5)) {
                                     if (!is_array($ppos5)) {
                                         $ppos5 = array($commandpos);
                                         return true;
                                     } else {
                                         $ppos5[] = $commandpos;
                                         $sender->sendMessage(MT::GREEN . "Position setted " . $commandpos);
                                         $config["PlayerspawnPos5"] = $ppos5;
                                         $this->config->setAll($config);
                                         $this->config->save();
                                         return true;
                                     }
                                 } else {
                                     $sender->sendMessage(MT::RED . "Position exist");
                                     return false;
                                 }
                             }
                         } else {
                             $sender->sendMessage(MT::RED . "Please select a position \nexample : /playerspawn add 10,5,25");
                             return false;
                         }
                     }
                     if ($args[0] == "dell") {
                         if (isset($args[1])) {
                             $commandpos = $args[1];
                             if ($this->arena1name == $level) {
                                 if (in_array($commandpos, $ppos)) {
                                     $key = array_search($commandpos, $ppos);
                                     unset($ppos[$key]);
                                     $sender->sendMessage(MT::GREEN . "Position deleted " . $commandpos);
                                     $config["PlayerspawnPos"] = $ppos;
                                     $this->config->setAll($config);
                                     $this->config->save();
                                     return true;
                                 } else {
                                     $sender->sendMessage(MT::RED . "Position dont exist");
                                     return false;
                                 }
                             }
                             if ($this->arena2name == $level) {
                                 if (in_array($commandpos, $ppos2)) {
                                     $key = array_search($commandpos, $ppos2);
                                     unset($ppos2[$key]);
                                     $sender->sendMessage(MT::GREEN . "Position deleted " . $commandpos);
                                     $config["PlayerspawnPos2"] = $ppos2;
                                     $this->config->setAll($config);
                                     $this->config->save();
                                     return true;
                                 } else {
                                     $sender->sendMessage(MT::RED . "Position dont exist");
                                     return false;
                                 }
                             }
                             if ($this->arena3name == $level) {
                                 if (in_array($commandpos, $ppos3)) {
                                     $key = array_search($commandpos, $ppos3);
                                     unset($ppos3[$key]);
                                     $sender->sendMessage(MT::GREEN . "Position deleted " . $commandpos);
                                     $config["PlayerspawnPos3"] = $ppos3;
                                     $this->config->setAll($config);
                                     $this->config->save();
                                     return true;
                                 } else {
                                     $sender->sendMessage(MT::RED . "Position dont exist");
                                     return false;
                                 }
                             }
                             if ($this->arena4name == $level) {
                                 if (in_array($commandpos, $ppos4)) {
                                     $key = array_search($commandpos, $ppos4);
                                     unset($ppos4[$key]);
                                     $sender->sendMessage(MT::GREEN . "Position deleted " . $commandpos);
                                     $config["PlayerspawnPos4"] = $ppos4;
                                     $this->config->setAll($config);
                                     $this->config->save();
                                     return true;
                                 } else {
                                     $sender->sendMessage(MT::RED . "Position dont exist");
                                     return false;
                                 }
                             }
                             if ($this->arena5name == $level) {
                                 if (in_array($commandpos, $ppos5)) {
                                     $key = array_search($commandpos, $ppos5);
                                     unset($ppos5[$key]);
                                     $sender->sendMessage(MT::GREEN . "Position deleted " . $commandpos);
                                     $config["PlayerspawnPos5"] = $ppos5;
                                     $this->config->setAll($config);
                                     $this->config->save();
                                     return true;
                                 } else {
                                     $sender->sendMessage(MT::RED . "Position dont exist");
                                     return false;
                                 }
                             }
                         } else {
                             $sender->sendMessage(MT::RED . "Please select a position \nexample : /playerspawn dell 10,5,25");
                             return false;
                         }
                     }
                     if ($args[0] == "list") {
                         $sender->sendMessage(MT::GREEN . "Playerspawns: " . implode(", ", $ppos));
                         return true;
                     }
                 } else {
                     $sender->sendMessage(MT::RED . 'add / dell / list');
                     return true;
                 }
             } else {
                 $sender->sendMessage(MT::RED . 'Only for Operators');
                 return false;
             }
             break;
         case "chestspawn":
             $level = $sender->getLevel()->getName();
             if ($sender->isOp()) {
                 if (isset($args[0])) {
                     $config = $this->config->getAll();
                     $ppos = $config["ChestspawnPos"];
                     $ppos2 = $config["ChestspawnPos2"];
                     $ppos3 = $config["ChestspawnPos3"];
                     $ppos4 = $config["ChestspawnPos4"];
                     $ppos5 = $config["ChestspawnPos5"];
                     if ($args[0] == "add") {
                         if (isset($args[1])) {
                             $commandpos = $args[1];
                             if ($this->arena1name == $level) {
                                 if (!in_array($commandpos, $ppos)) {
                                     if (!is_array($ppos)) {
                                         $ppos = array($commandpos);
                                         return true;
                                     } else {
                                         $ppos[] = $commandpos;
                                         $sender->sendMessage(MT::GREEN . "Position setted " . $commandpos);
                                         $config["ChestspawnPos"] = $ppos;
                                         $this->config->setAll($config);
                                         $this->config->save();
                                         return true;
                                     }
                                 } else {
                                     $sender->sendMessage(MT::RED . "Position exist");
                                     return false;
                                 }
                             }
                             if ($this->arena2name == $level) {
                                 if (!in_array($commandpos, $ppos2)) {
                                     if (!is_array($ppos2)) {
                                         $ppos2 = array($commandpos);
                                         return true;
                                     } else {
                                         $ppos2[] = $commandpos;
                                         $sender->sendMessage(MT::GREEN . "Position setted " . $commandpos);
                                         $config["ChestspawnPos2"] = $ppos2;
                                         $this->config->setAll($config);
                                         $this->config->save();
                                         return true;
                                     }
                                 } else {
                                     $player->sendMessage(MT::RED . "Position exist");
                                     return false;
                                 }
                             }
                             if ($this->arena3name == $level) {
                                 if (!in_array($commandpos, $ppos3)) {
                                     if (!is_array($ppos3)) {
                                         $ppos3 = array($commandpos);
                                         return true;
                                     } else {
                                         $ppos3[] = $commandpos;
                                         $sender->sendMessage(MT::GREEN . "Position setted " . $commandpos);
                                         $config["ChestspawnPos3"] = $ppos3;
                                         $this->config->setAll($config);
                                         $this->config->save();
                                         return true;
                                     }
                                 } else {
                                     $sender->sendMessage(MT::RED . "Position exist");
                                     return false;
                                 }
                             }
                             if ($this->arena4name == $level) {
                                 if (!in_array($commandpos, $ppos4)) {
                                     if (!is_array($ppos4)) {
                                         $ppos4 = array($commandpos);
                                         return true;
                                     } else {
                                         $ppos4[] = $commandpos;
                                         $sender->sendMessage(MT::GREEN . "Position setted " . $commandpos);
                                         $config["ChestspawnPos4"] = $ppos4;
                                         $this->config->setAll($config);
                                         $this->config->save();
                                         return true;
                                     }
                                 } else {
                                     $sender->sendMessage(MT::RED . "Position exist");
                                     return false;
                                 }
                             }
                             if ($this->arena5name == $level) {
                                 if (!in_array($commandpos, $ppos5)) {
                                     if (!is_array($ppos5)) {
                                         $ppos = array($commandpos);
                                         return true;
                                     } else {
                                         $ppos5[] = $commandpos;
                                         $sender->sendMessage(MT::GREEN . "Position setted " . $commandpos);
                                         $config["ChestspawnPos5"] = $ppos5;
                                         $this->config->setAll($config);
                                         $this->config->save();
                                         return true;
                                     }
                                 } else {
                                     $sender->sendMessage(MT::RED . "Position exist");
                                     return false;
                                 }
                             }
                         } else {
                             $sender->sendMessage(MT::RED . "Please select a position \nexample : /playerspawn add 10,5,25");
                             return false;
                         }
                     }
                     if ($args[0] == "dell") {
                         if (isset($args[1])) {
                             $commandpos = $args[1];
                             if ($this->arena1name == $level) {
                                 if (in_array($commandpos, $ppos)) {
                                     $key = array_search($commandpos, $ppos);
                                     unset($ppos[$key]);
                                     $sender->sendMessage(MT::GREEN . "Position deleted " . $commandpos);
                                     $config["ChestspawnPos"] = $ppos;
                                     $this->config->setAll($config);
                                     $this->config->save();
                                     return true;
                                 } else {
                                     $sender->sendMessage(MT::RED . "Position dont exist");
                                     return false;
                                 }
                             }
                             if ($this->arena2name == $level) {
                                 if (in_array($commandpos, $ppos2)) {
                                     $key = array_search($commandpos, $ppos2);
                                     unset($ppos2[$key]);
                                     $sender->sendMessage(MT::GREEN . "Position deleted " . $commandpos);
                                     $config["ChestspawnPos2"] = $ppos2;
                                     $this->config->setAll($config);
                                     $this->config->save();
                                     return true;
                                 } else {
                                     $sender->sendMessage(MT::RED . "Position dont exist");
                                     return false;
                                 }
                             }
                             if ($this->arena3name == $level) {
                                 if (in_array($commandpos, $ppos3)) {
                                     $key = array_search($commandpos, $ppos3);
                                     unset($ppos3[$key]);
                                     $sender->sendMessage(MT::GREEN . "Position deleted " . $commandpos);
                                     $config["ChestspawnPos"] = $ppos3;
                                     $this->config->setAll($config);
                                     $this->config->save();
                                     return true;
                                 } else {
                                     $sender->sendMessage(MT::RED . "Position dont exist");
                                     return false;
                                 }
                             }
                             if ($this->arena4name == $level) {
                                 if (in_array($commandpos, $ppos4)) {
                                     $key = array_search($commandpos, $ppos4);
                                     unset($ppos4[$key]);
                                     $sender->sendMessage(MT::GREEN . "Position deleted " . $commandpos);
                                     $config["ChestspawnPos4"] = $ppos4;
                                     $this->config->setAll($config);
                                     $this->config->save();
                                     return true;
                                 } else {
                                     $sender->sendMessage(MT::RED . "Position dont exist");
                                     return false;
                                 }
                             }
                             if ($this->arena5name == $level) {
                                 if (in_array($commandpos, $ppos5)) {
                                     $key = array_search($commandpos, $ppos5);
                                     unset($ppos5[$key]);
                                     $sender->sendMessage(MT::GREEN . "Position deleted " . $commandpos);
                                     $config["ChestspawnPos5"] = $ppos5;
                                     $this->config->setAll($config);
                                     $this->config->save();
                                     return true;
                                 } else {
                                     $sender->sendMessage(MT::RED . "Position dont exist");
                                     return false;
                                 }
                             }
                         } else {
                             $sender->sendMessage(MT::RED . "Please select a position \nexample : /playerspawn dell 10,5,25");
                             return false;
                         }
                     }
                     if ($args[0] == "list") {
                         $sender->sendMessage(MT::GREEN . "Playerspawns: " . implode(", ", $ppos));
                         return true;
                     }
                 } else {
                     $sender->sendMessage(MT::RED . 'add / dell / list');
                     return true;
                 }
             } else {
                 $sender->sendMessage(MT::RED . 'Only for Operators');
                 return false;
             }
             break;
     }
 }
Пример #15
0
 function tpCommand(CommandSender $sender, array $args)
 {
     if (count($args) !== 0) {
         $sender->sendMessage($this->getMessage("l.tp.usage"));
         return true;
     }
     if (($pair = $this->provider->getPair($sender->getName())) === null) {
         $sender->sendMessage($this->getMessage("l.no-married"));
         return true;
     }
     if (!($Player = $this->getServer()->getPlayer($pair))) {
         $sender->sendMessage($this->getMessage("l.pair-offline"));
         return true;
     }
     $sender->teleport($Player);
     return true;
 }
Пример #16
0
 public function onCommand(CommandSender $sender, Command $command, $label, array $args)
 {
     if (strtolower($command->getName()) == "is") {
         if (!isset($args[0])) {
             $sender->sendMessage(TextFormat::YELLOW . "No pusiste un subcomando");
             $sender->sendMessage(TextFormat::GREEN . "Usa: " . TextFormat::RESET . "/is help");
             return true;
         } elseif (isset($args[0])) {
             if ($args[0] == "help") {
                 if ($sender->hasPermission("is") || $sender->hasPermission("is.help")) {
                     if (!isset($args[1]) or $args[1] == "1") {
                         $sender->sendMessage(TextFormat::GREEN . "[Skyblock] Enseñando lista de Ayuda");
                         $sender->sendMessage(TextFormat::GREEN . "/is help");
                         $sender->sendMessage(TextFormat::GREEN . "/is create");
                         $sender->sendMessage(TextFormat::GREEN . "/is home");
                         $sender->sendMessage(TextFormat::GREEN . "/is sethome");
                         $sender->sendMessage(TextFormat::GREEN . "/is find (Solo Op)");
                         return true;
                     } elseif ($args[1] == "2") {
                         $sender->sendMessage("Pronto habra mas Comandos");
                         return true;
                     }
                 } else {
                     $sender->sendMessage(TextFormat::RED . "[SkyBlock] No puedes ver el menu de ayuda");
                     return true;
                 }
             } elseif ($args[0] == "create") {
                 if ($sender->hasPermission("is") || $sender->hasPermission("is.command") || $sender->hasPermission("is.command.create")) {
                     $senderIs = $this->getDataFolder() . "Islands/" . $sender->getName() . ".txt";
                     if ($sender->getLevel()->getName() == $this->getConfig()->get("Lobby")) {
                         $sender->sendMessage(TextFormat::YELLOW . "[Skyblock] No Puedes Hacer una isla en Spawn, desgraciado :L");
                         return true;
                     } else {
                         if (!file_exists($senderIs)) {
                             $this->makeIsland($sender->getName());
                             return true;
                         } else {
                             $sender->sendMessage(TextFormat::YELLOW . "[Skyblock] Tu ya tienes una isla!");
                             return true;
                         }
                     }
                 } else {
                     $sender->sendMessage(TextFormat::RED . "[Skyblock] Tu No Puedes Crear una isla!");
                     return true;
                 }
             } elseif ($args[0] == "home") {
                 if ($sender->hasPermission("is") || $sender->hasPermission("is.command") || $sender->hasPermission("is.command.home")) {
                     if (!file_exists($this->getDataFolder() . "Islands/" . $sender->getName() . ".txt")) {
                         $sender->sendMessage("You don't have an island. Use /is create to make one");
                         return true;
                     } else {
                         $level = $this->getServer()->getLevelByName(yaml_parse_file($this->getDataFolder() . "Players/" . $sender->getName() . ".txt"));
                         if ($level !== null) {
                             $sender->sendMessage(TextFormat::GREEN . "Teleporting to your island...");
                             if ($sender->getLevel()->getName() !== $level->getName()) {
                                 $sender->sendMessage(TextFormat::RED . "[Skyblock] Tu no estas en el mismo mundo de tu isla. Usa " . TextFormat::YELLOW . "/mw tp " . $level->getName() . TextFormat::RESET . " E intenta de nuevo");
                                 return true;
                             } else {
                                 $sender->teleport(new Vector3(yaml_parse_file($this->getDataFolder() . "Islands/" . $sender->getName() . ".txt")));
                                 $sender->sendMessage(TextFormat::GREEN . "[Skyblock] Listo!");
                                 return true;
                             }
                         } else {
                             $sender->sendMessage(TextFormat::RED . "[Skyblock] Un Error a ocurrido.");
                             return true;
                         }
                     }
                 } else {
                     $sender->sendMessage(TextFormat::ORANGE . "[Skyblock] No Tienes permisos para hacer eso");
                     return true;
                 }
             } elseif ($args[0] == "find") {
                 if ($sender->hasPermission("is") || $sender->hasPermission("is.command") || $sender->hasPermission("is.command.find")) {
                     if (isset($args[1])) {
                         $p = $sender->getServer()->getPlayer($args[1]);
                         if ($p instanceof Player) {
                             $name = $p->getName();
                             if (file_exists($this->getDataFolder() . "Islands/" . $name . ".txt")) {
                                 $sender->sendMessage("The coords for " . $name . "'s island are");
                                 $sender->sendMessage(file_get_contents($this->getDataFolder() . "Islands/" . $name . ".txt"));
                                 $sender->sendMessage(file_get_contents($this->getDataFolder() . "Players/" . $name . ".txt"));
                                 return true;
                             } else {
                                 $sender->sendMessage(TextFormat::YELLOW . "[Skyblock] " . $name . " No Tiene una Isla");
                                 return true;
                             }
                         } elseif (file_exists($this->getDataFolder() . "Islands/" . $args[1] . ".txt")) {
                             $sender->sendMessage("The coords for " . $args[1] . "'s island are");
                             $sender->sendMessage(file_get_contents($this->getDataFolder() . "Islands/" . $args[1] . ".txt"));
                             $sender->sendMessage("in world " . file_get_contents($this->getDataFolder() . "Players/" . $args[1] . ".txt"));
                             return true;
                         }
                     } else {
                         $sender->sendMessage(TextFormat::YELLOW . "[Skyblock] Necesitas especificar un Jugador");
                         return true;
                     }
                 } else {
                     $sender->sendMessage(TextFormat::YELLOW . "[Skyblock] Tu no Puedes encontrar la s coordenadas de la isla de un jugador");
                     return true;
                 }
             } elseif ($args[0] == "delete") {
                 if ($sender->hasPermission("is") || $sender->hasPermission("is.command") || $sender->hasPermission("is.command.delete")) {
                     if (!isset($args[1])) {
                         $sender->sendMessage(TextFormat::RED . "[Skyblock] Estas Seguro? Usa /is delete yes para confirmar");
                         return true;
                     } elseif ($args[1] == "yes") {
                         if (file_exists($this->getDataFolder() . "Islands/" . $sender->getName() . ".txt")) {
                             unlink($this->getDataFolder() . "Islands/" . $sender->getName() . ".txt");
                             $sender->sendMessage(TextFormat::BLUE . "[Skyblock] Tu Isla a sido eliminada!");
                             return true;
                         } else {
                             $sender->sendMessage(TextFormat::YELLOW . "[Skyblock] Tu no Tienes una isla!");
                             return true;
                         }
                     } elseif ($args[1] == "no") {
                         $sender->sendMessage(TextFormat::GRAY . "[Skyblock] Ok, No eliminaremos tu isla, De todos modos nos vale queso :D");
                         return true;
                     } else {
                         return false;
                     }
                 } else {
                     $sender->sendMessage(TextFormat::RED . "[Skyblock] Tu No puedes eliminar tu Isla");
                     return true;
                 }
             } elseif ($args[0] == "sethome") {
                 if ($sender->hasPermission("is") || $sender->hasPermission("is.command") || $sender->hasPermission("is.command.sethome")) {
                     if (!isset($args[1])) {
                         $sender->sendMessage(TextFormat::RED . "[Skyblock] Estas seguro? Asegurate que estas en tu isla");
                         $sender->sendMessage(TextFormat::RED . "[Skyblock] Tu Isla se perdera si no estas en tu isla. Pon /is sethome yes para confirmar");
                         return true;
                     } elseif ($args[1] == "yes") {
                         if (file_exists($this->getDataFolder() . "Islands/" . $sender->getName() . ".txt")) {
                             $sender->sendMessage("[Skyblock] Setting your home...");
                             $file = $this->getDataFolder() . "Islands/" . $sender->getName() . ".txt";
                             unlink($file);
                             $newFile = fopen($file, "w");
                             fwrite($newFile, $sender->x . ", " . $sender->y . ", " . $sender->z);
                             $sender->sendMessage(TextFormat::GREEN . "[Skyblock] Pones Home en el lugar que quieres.");
                             return true;
                         } else {
                             $sender->sendMessage(TextFormat::RED . "[Skyblock] TU no tienes una isla!");
                             return true;
                         }
                     } elseif ($args[1] == "no") {
                         $sender->sendMessage(TextFormat::BLUE . "[Skyblock] Ok, no haremos eso....");
                         return true;
                     } else {
                         $sender->sendMessage(TextFormat::GRAY . "[Skyblock] Comando Desconosido: " . $args[1]);
                         $sender->sendMessage(TextFormat::GREEN . "[Skyblock] /sethome <yes | no>");
                         return true;
                     }
                 } else {
                     $sender->sendMessage(TextFormat::RED . "[Skyblock] No tienes permiso para Poner Home.");
                     return true;
                 }
             }
         }
     }
 }
Пример #17
0
 public function onCommand(CommandSender $sender, Command $command, $label, array $args)
 {
     if ($command->getName() == "lobby") {
         if ($this->gameStatus >= 2) {
             $sender->sendMessage("[SurvivalGames] The game was started,you can't back to lobby.");
             return;
         }
         if (isset($this->players[$sender->getName()])) {
             unset($this->players[$sender->getName()]);
             $sender->setLevel($this->signlevel);
             $sender->teleport($this->signlevel->getSpawnLocation());
             $sender->sendMessage("[SurvivalGames] Back to lobby...");
             $this->sendToAll("[SurvivalGames] Player " . $sender->getName() . " exit from game");
             $this->changeStatusSign();
             if ($this->gameStatus == 1 && count($this->players) < 2) {
                 $this->gameStatus = 0;
                 $this->lastTime = 0;
                 $this->sendToAll("[SurvivalGames] Less than 2 players,stopped countdown");
                 /*foreach($this->players as $pl)
                 		{
                 			$p=$this->getServer()->getPlayer($pl["id"]);
                 			$p->setLevel($this->signlevel);
                 			$p->teleport($this->signlevel->getSpawnLocation());
                 			unset($p,$pl);
                 		}*/
             }
         } else {
             $sender->sendMessage("[SurvivalGames] You are not in the game.");
         }
         return true;
     }
     if (!isset($args[0])) {
         unset($sender, $cmd, $label, $args);
         return false;
     }
     switch ($args[0]) {
         case "set":
             if ($this->config->exists("lastpos")) {
                 $sender->sendMessage("[SurvivalGames] The game was set before,please use /fsg remove and try again.");
             } else {
                 $name = $sender->getName();
                 $this->SetStatus[$name] = 0;
                 $sender->sendMessage("[SurvivalGames] Please tap the status sign.");
             }
             break;
         case "remove":
             $this->config->remove("sign");
             $this->config->remove("pos1");
             $this->config->remove("pos2");
             $this->config->remove("pos3");
             $this->config->remove("pos4");
             $this->config->remove("pos5");
             $this->config->remove("pos6");
             $this->config->remove("pos7");
             $this->config->remove("pos8");
             $this->config->remove("lastpos");
             $this->config->save();
             unset($this->sign, $this->pos1, $this->pos2, $this->pos3, $this->pos4, $this->pos5, $this->pos6, $this->pos7, $this->pos8, $this->lastpos);
             $sender->sendMessage("[SurvivalGames] succeeded in deleting game settings");
             break;
         case "start":
             $this->sendToAll("[SurvivalGames] Force start game...");
             $this->gameStatus = 1;
             $this->lastTime = 5;
             break;
         case "reload":
             unset($this->config);
             @mkdir($this->getDataFolder(), 0777, true);
             $this->config = new Config($this->getDataFolder() . "config.yml", Config::YAML, array());
             if ($this->config->exists("lastpos")) {
                 $this->sign = $this->config->get("sign");
                 $this->pos1 = $this->config->get("pos1");
                 $this->pos2 = $this->config->get("pos2");
                 $this->pos3 = $this->config->get("pos3");
                 $this->pos4 = $this->config->get("pos4");
                 $this->pos5 = $this->config->get("pos5");
                 $this->pos6 = $this->config->get("pos6");
                 $this->pos7 = $this->config->get("pos7");
                 $this->pos8 = $this->config->get("pos8");
                 $this->lastpos = $this->config->get("lastpos");
                 $this->level = $this->getServer()->getLevelByName($this->config->get("pos1")["level"]);
                 $this->signlevel = $this->getServer()->getLevelByName($this->config->get("sign")["level"]);
                 $this->sign = new Vector3($this->sign["x"], $this->sign["y"], $this->sign["z"]);
                 $this->pos1 = new Vector3($this->pos1["x"] + 0.5, $this->pos1["y"], $this->pos1["z"] + 0.5);
                 $this->pos2 = new Vector3($this->pos2["x"] + 0.5, $this->pos2["y"], $this->pos2["z"] + 0.5);
                 $this->pos3 = new Vector3($this->pos3["x"] + 0.5, $this->pos3["y"], $this->pos3["z"] + 0.5);
                 $this->pos4 = new Vector3($this->pos4["x"] + 0.5, $this->pos4["y"], $this->pos4["z"] + 0.5);
                 $this->pos5 = new Vector3($this->pos5["x"] + 0.5, $this->pos5["y"], $this->pos5["z"] + 0.5);
                 $this->pos6 = new Vector3($this->pos6["x"] + 0.5, $this->pos6["y"], $this->pos6["z"] + 0.5);
                 $this->pos7 = new Vector3($this->pos7["x"] + 0.5, $this->pos7["y"], $this->pos7["z"] + 0.5);
                 $this->pos8 = new Vector3($this->pos8["x"] + 0.5, $this->pos8["y"], $this->pos8["z"] + 0.5);
                 $this->lastpos = new Vector3($this->lastpos["x"] + 0.5, $this->lastpos["y"], $this->lastpos["z"] + 0.5);
             }
             if (!$this->config->exists("endTime")) {
                 $this->config->set("endTime", 600);
             }
             if (!$this->config->exists("gameTime")) {
                 $this->config->set("gameTime", 300);
             }
             if (!$this->config->exists("waitTime")) {
                 $this->config->set("waitTime", 180);
             }
             if (!$this->config->exists("godTime")) {
                 $this->config->set("godTime", 15);
             }
             $this->endTime = (int) $this->config->get("endTime");
             //游戏时间
             $this->gameTime = (int) $this->config->get("gameTime");
             //游戏时间
             $this->waitTime = (int) $this->config->get("waitTime");
             //等待时间
             $this->godTime = (int) $this->config->get("godTime");
             //无敌时间
             $this->gameStatus = 0;
             //当前状态
             $this->lastTime = 0;
             //还没开始
             $this->players = array();
             //加入游戏的玩家
             $this->SetStatus = array();
             //设置状态
             $this->all = 0;
             //最大玩家数量
             $this->config->save();
             $sender->sendMessage("[SurvivalGame] Config reloaded");
             break;
         default:
             return false;
             break;
     }
     return true;
 }
Пример #18
0
 public function onCommand(CommandSender $sender, Command $command, $label, array $args)
 {
     if ($command->getName() == "lobby") {
         if ($this->gameStatus >= 2) {
             $sender->sendMessage("[游戏系统] [饥饿游戏] 游戏已开始 ,不能退出");
             return;
         }
         if (isset($this->players[$sender->getName()])) {
             unset($this->players[$sender->getName()]);
             $sender->setLevel($this->signlevel);
             $sender->teleport($this->signlevel->getSpawnLocation());
             $sender->sendMessage("[游戏系统] [饥饿游戏] 成功退出");
             $this->sendToAll("[游戏系统] [饥饿游戏] 玩家" . $sender->getName() . "退出了游戏");
             $this->changeStatusSign();
             if ($this->gameStatus == 1 && count($this->players) < 2) {
                 $this->gameStatus = 0;
                 $this->lastTime = 0;
                 $this->sendToAll("[游戏系统] [饥饿游戏] 人数不足 ,已停止倒计时");
                 /*foreach($this->players as $pl)
                 		{
                 			$p=$this->getServer()->getPlayer($pl["id"]);
                 			$p->setLevel($this->signlevel);
                 			$p->teleport($this->signlevel->getSpawnLocation());
                 			unset($p,$pl);
                 		}*/
             }
         } else {
             $sender->sendMessage("[游戏系统] [饥饿游戏] 你不在游戏中");
         }
         return true;
     }
     if (!isset($args[0])) {
         unset($sender, $cmd, $label, $args);
         return false;
     }
     switch ($args[0]) {
         case "set":
             if ($this->config->exists("lastpos")) {
                 $sender->sendMessage("[游戏系统] [饥饿游戏] 游戏已经设置,请先删除设置");
             } else {
                 $name = $sender->getName();
                 $this->SetStatus[$name] = 0;
                 $sender->sendMessage("[游戏系统] [饥饿游戏] 已进入设置模式 ,请先设置状态牌子");
             }
             break;
         case "remove":
             $this->config->remove("sign");
             $this->config->remove("pos1");
             $this->config->remove("pos2");
             $this->config->remove("pos3");
             $this->config->remove("pos4");
             $this->config->remove("pos5");
             $this->config->remove("pos6");
             $this->config->remove("pos7");
             $this->config->remove("pos8");
             $this->config->remove("lastpos");
             $this->config->save();
             unset($this->sign, $this->pos1, $this->pos2, $this->pos3, $this->pos4, $this->pos5, $this->pos6, $this->pos7, $this->pos8, $this->lastpos);
             $sender->sendMessage("[游戏系统] [饥饿游戏] 已删除游戏设置");
             break;
         case "start":
             $this->sendToAll("[游戏系统] [饥饿游戏] 已强制开始游戏");
             $this->gameStatus = 1;
             $this->lastTime = 5;
             break;
         case "reload":
             unset($this->config);
             @mkdir($this->getDataFolder(), 0777, true);
             $this->config = new Config($this->getDataFolder() . "config.yml", Config::YAML, array());
             if ($this->config->exists("lastpos")) {
                 $this->sign = $this->config->get("sign");
                 $this->pos1 = $this->config->get("pos1");
                 $this->pos2 = $this->config->get("pos2");
                 $this->pos3 = $this->config->get("pos3");
                 $this->pos4 = $this->config->get("pos4");
                 $this->pos5 = $this->config->get("pos5");
                 $this->pos6 = $this->config->get("pos6");
                 $this->pos7 = $this->config->get("pos7");
                 $this->pos8 = $this->config->get("pos8");
                 $this->lastpos = $this->config->get("lastpos");
                 $this->level = $this->getServer()->getLevelByName($this->config->get("pos1")["level"]);
                 $this->signlevel = $this->getServer()->getLevelByName($this->config->get("sign")["level"]);
                 $this->sign = new Vector3($this->sign["x"], $this->sign["y"], $this->sign["z"]);
                 $this->pos1 = new Vector3($this->pos1["x"] + 0.5, $this->pos1["y"], $this->pos1["z"] + 0.5);
                 $this->pos2 = new Vector3($this->pos2["x"] + 0.5, $this->pos2["y"], $this->pos2["z"] + 0.5);
                 $this->pos3 = new Vector3($this->pos3["x"] + 0.5, $this->pos3["y"], $this->pos3["z"] + 0.5);
                 $this->pos4 = new Vector3($this->pos4["x"] + 0.5, $this->pos4["y"], $this->pos4["z"] + 0.5);
                 $this->pos5 = new Vector3($this->pos5["x"] + 0.5, $this->pos5["y"], $this->pos5["z"] + 0.5);
                 $this->pos6 = new Vector3($this->pos6["x"] + 0.5, $this->pos6["y"], $this->pos6["z"] + 0.5);
                 $this->pos7 = new Vector3($this->pos7["x"] + 0.5, $this->pos7["y"], $this->pos7["z"] + 0.5);
                 $this->pos8 = new Vector3($this->pos8["x"] + 0.5, $this->pos8["y"], $this->pos8["z"] + 0.5);
                 $this->lastpos = new Vector3($this->lastpos["x"] + 0.5, $this->lastpos["y"], $this->lastpos["z"] + 0.5);
             }
             if (!$this->config->exists("endTime")) {
                 $this->config->set("endTime", 600);
             }
             if (!$this->config->exists("gameTime")) {
                 $this->config->set("gameTime", 300);
             }
             if (!$this->config->exists("waitTime")) {
                 $this->config->set("waitTime", 180);
             }
             if (!$this->config->exists("godTime")) {
                 $this->config->set("godTime", 15);
             }
             $this->endTime = (int) $this->config->get("endTime");
             //游戏时间
             $this->gameTime = (int) $this->config->get("gameTime");
             //游戏时间
             $this->waitTime = (int) $this->config->get("waitTime");
             //等待时间
             $this->godTime = (int) $this->config->get("godTime");
             //无敌时间
             $this->gameStatus = 0;
             //当前状态
             $this->lastTime = 0;
             //还没开始
             $this->players = array();
             //加入游戏的玩家
             $this->SetStatus = array();
             //设置状态
             $this->all = 0;
             //最大玩家数量
             $this->config->save();
             $sender->sendMessage("[游戏系统] [饥饿游戏] 重载完成");
             break;
         default:
             return false;
             break;
     }
     return true;
 }
Пример #19
0
 public function onCommand(CommandSender $sender, Command $command, $label, array $args)
 {
     if ($command->getName() == "lobby") {
         if ($this->gameStatus >= 2) {
             $In - Match == $this->getConfig()->get("In-Match");
             $sender->sendMessage("[{$this->getConfig()->get("prefix")}] {$In}-Match");
             return;
         }
         if (isset($this->players[$sender->getName()])) {
             unset($this->players[$sender->getName()]);
             $sender->setLevel($this->signlevel);
             $sender->teleport($this->signlevel->getSpawnLocation());
             $sender->sendMessage(TextFormat::GREEN . "[{$this->getConfig()->get("prefix")}] Teleporting to lobby...");
             $event->getPlayer()->sendMessage(TextFormat::RED . "[{$this->getConfig()->get("prefix")}]Player " . $sender->getName() . " left the match.");
             $this->changeStatusSign();
             if ($this->gameStatus == 1 && count($this->players) < 2) {
                 $this->gameStatus = 0;
                 $this->lastTime = 0;
                 $Arena - Join == $this->getConfig()->get("Arena-Join");
                 $event->getPlayer()->sendMessage("[{$this->getConfig()->get("prefix")}] {$Arena}-Join");
                 /*foreach($this->players as $pl)
                 		{
                 			$p=$this->getServer()->getPlayer($pl["id"]);
                 			$p->setLevel($this->signlevel);
                 			$p->teleport($this->signlevel->getSpawnLocation());
                 			unset($p,$pl);
                 		}*/
             }
         } else {
             $sender->sendMessage(TextFormat::RED . "[{$this->getConfig()->get("prefix")}] You are not in a match.");
         }
         return true;
     }
     if (!isset($args[0])) {
         unset($sender, $cmd, $label, $args);
         return false;
     }
     switch ($args[0]) {
         case "stats":
             if ($sender->hasPermission("sg.command.stats") or $sender->hasPermission("sg.command") or $sender->hasPermission("sg")) {
                 if (!isset($args[1])) {
                     $player = $sender->getName();
                     $deaths = $this->points->get($player)[0];
                     $kills = $this->points->get($player)[1];
                     $points = $this->points->get($player)[2];
                     $sender->sendMessage(TextFormat::RED . "[{$this->getConfig()->get("prefix")}] You have " . $deaths . " deaths and " . $kills . " kills. ");
                     return true;
                 } else {
                     $player = $args[1];
                     $deaths = $this->points->get($player)[0];
                     $kills = $this->points->get($player)[1];
                     $points = $this->points->get($player)[2];
                     $sender->sendMessage(TextFormat::RED . "[{$this->getConfig()->get("prefix")}]" . $player . " has " . $deaths . " deaths and " . $kills . " kills. ");
                     return true;
                 }
             } else {
                 $sender->sendMessage("You dont have permissions to run this command.");
                 return true;
             }
             break;
         case "set":
             if ($this->config->exists("lastpos")) {
                 $sender->sendMessage(TextFormat::RED . "[{$this->getConfig()->get("prefix")}] You already setup the arena. use /sg remove to remove the current arena.");
             } else {
                 $name = $sender->getName();
                 $this->SetStatus[$name] = 0;
                 $sender->sendMessage(TextFormat::DARK_BLUE . "[{$this->getConfig()->get("prefix")}] Tap a sign to set join sign.");
             }
             break;
         case "remove":
             $this->config->remove("sign");
             $this->config->remove("pos1");
             $this->config->remove("pos2");
             $this->config->remove("pos3");
             $this->config->remove("pos4");
             $this->config->remove("pos5");
             $this->config->remove("pos6");
             $this->config->remove("pos7");
             $this->config->remove("pos8");
             $this->config->remove("pos9");
             $this->config->remove("pos10");
             $this->config->remove("pos11");
             $this->config->remove("pos12");
             $this->config->remove("pos13");
             $this->config->remove("pos14");
             $this->config->remove("pos15");
             $this->config->remove("pos16");
             $this->config->remove("lastpos");
             $this->config->save();
             unset($this->sign, $this->pos1, $this->pos2, $this->pos3, $this->pos4, $this->pos5, $this->pos6, $this->pos7, $this->pos8, $this->pos9, $this->pos10, $this->pos11, $this->pos12, $this->pos13, $this->pos14, $this->pos15, $this->pos16, $this->pos17, $this->pos18, $this->pos19, $this->pos20, $this->pos21, $this->pos22, $this->pos23, $this->pos24, $this->lastpos);
             $sender->sendMessage(TextFormat::GREEN . "[SG]Game settings successfully removed.");
             break;
         case "start":
             Server::getInstance()->broadcastMessage(TextFormat::BLUE . "[Game] The Tournament has been forced to start.");
             $this->gameStatus = 1;
             $this->lastTime = 5;
             break;
         case "reload":
             @mkdir($this->getDataFolder(), 0777, true);
             $this->config = new Config($this->getDataFolder() . "config.yml", Config::YAML, array());
             if ($this->config->exists("lastpos")) {
                 $this->sign = $this->config->get("sign");
                 $this->pos1 = $this->config->get("pos1");
                 $this->pos2 = $this->config->get("pos2");
                 $this->pos3 = $this->config->get("pos3");
                 $this->pos4 = $this->config->get("pos4");
                 $this->pos5 = $this->config->get("pos5");
                 $this->pos6 = $this->config->get("pos6");
                 $this->pos7 = $this->config->get("pos7");
                 $this->pos8 = $this->config->get("pos8");
                 $this->pos9 = $this->config->get("pos9");
                 $this->pos10 = $this->config->get("pos10");
                 $this->pos11 = $this->config->get("pos11");
                 $this->pos12 = $this->config->get("pos12");
                 $this->pos13 = $this->config->get("pos13");
                 $this->pos14 = $this->config->get("pos14");
                 $this->pos15 = $this->config->get("pos15");
                 $this->pos16 = $this->config->get("pos16");
                 $this->lastpos = $this->config->get("lastpos");
                 $this->signlevel = $this->getServer()->getLevelByName($this->config->get("sign")["level"]);
                 $this->sign = new Vector3($this->sign["x"], $this->sign["y"], $this->sign["z"]);
                 $this->pos1 = new Vector3($this->pos1["x"] + 0.5, $this->pos1["y"], $this->pos1["z"] + 0.5);
                 $this->pos2 = new Vector3($this->pos2["x"] + 0.5, $this->pos2["y"], $this->pos2["z"] + 0.5);
                 $this->pos3 = new Vector3($this->pos3["x"] + 0.5, $this->pos3["y"], $this->pos3["z"] + 0.5);
                 $this->pos4 = new Vector3($this->pos4["x"] + 0.5, $this->pos4["y"], $this->pos4["z"] + 0.5);
                 $this->pos5 = new Vector3($this->pos5["x"] + 0.5, $this->pos5["y"], $this->pos5["z"] + 0.5);
                 $this->pos6 = new Vector3($this->pos6["x"] + 0.5, $this->pos6["y"], $this->pos6["z"] + 0.5);
                 $this->pos7 = new Vector3($this->pos7["x"] + 0.5, $this->pos7["y"], $this->pos7["z"] + 0.5);
                 $this->pos8 = new Vector3($this->pos8["x"] + 0.5, $this->pos8["y"], $this->pos8["z"] + 0.5);
                 $this->pos9 = new Vector3($this->pos9["x"] + 0.5, $this->pos9["y"], $this->pos9["z"] + 0.5);
                 $this->pos10 = new Vector3($this->pos10["x"] + 0.5, $this->pos10["y"], $this->pos10["z"] + 0.5);
                 $this->pos11 = new Vector3($this->pos11["x"] + 0.5, $this->pos11["y"], $this->pos11["z"] + 0.5);
                 $this->pos12 = new Vector3($this->pos12["x"] + 0.5, $this->pos12["y"], $this->pos12["z"] + 0.5);
                 $this->pos13 = new Vector3($this->pos13["x"] + 0.5, $this->pos13["y"], $this->pos13["z"] + 0.5);
                 $this->pos14 = new Vector3($this->pos14["x"] + 0.5, $this->pos14["y"], $this->pos14["z"] + 0.5);
                 $this->pos15 = new Vector3($this->pos15["x"] + 0.5, $this->pos15["y"], $this->pos15["z"] + 0.5);
                 $this->pos16 = new Vector3($this->pos16["x"] + 0.5, $this->pos16["y"], $this->pos16["z"] + 0.5);
                 $this->lastpos = new Vector3($this->lastpos["x"] + 0.5, $this->lastpos["y"], $this->lastpos["z"] + 0.5);
             }
             if (!$this->config->exists("gameTime")) {
                 $this->config->set("gameTime", 300);
             }
             if (!$this->config->exists("prefix")) {
                 $this->config->set("prefix", "Game");
             }
             $this->gameTime = (int) $this->config->get("gameTime");
             //how long a match is
             $this->prefix = (int) $this->config->get("prefix");
             $this->gameStatus = 0;
             //status of the game (sign)
             $this->lastTime = 0;
             //just a variable :P
             $this->players = array();
             //players
             $this->SetStatus = array();
             $this->all = 0;
             //
             $this->config->save();
             $sender->sendMessage(TextFormat::GREEN . "[SG] Config reloaded");
             break;
         default:
             return false;
             break;
     }
     return true;
 }
Пример #20
0
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $sub)
 {
     $ik = $this->isKorean();
     $rm = TextFormat::RED . "Usage: /";
     $wm = $this->wm;
     switch (strtolower($cmd->getName())) {
         case "worldmanager":
             if (!isset($sub[0])) {
                 return false;
             }
             $mm = "[WorldManager] ";
             $rm .= "WorldManager ";
             switch (strtolower($sub[0])) {
                 case "generate":
                 case "generator":
                 case "g":
                 case "생성":
                 case "add":
                 case "a":
                 case "추가":
                     if (!isset($sub[1])) {
                         $r = $rm . ($ik ? "생성 <이름> <타입> <시드>" : "Generate <Name> <Type> <Seed>");
                     } else {
                         $seed = isset($sub[3]) ? $sub[3] : null;
                         $gn = $this->getServer()->getLevelType();
                         $this->getServer()->setConfigString("level-type", isset($sub[2]) ? $sub[2] : null);
                         $this->getServer()->generateLevel(strtolower($sub[1]), $seed);
                         $this->getServer()->setConfigString("level-type", $gn);
                         $r = $mm . ($ik ? "월드가 생성되었습니다. 월드명: " : "World is generate. World: ") . strtolower($sub[1]);
                     }
                     break;
                 case "load":
                 case "l":
                 case "로딩":
                 case "로드":
                 case "불러오기":
                     if (!isset($sub[1])) {
                         $r = $rm . ($ik ? "로드 <이름>" : "Load <Name>");
                     } else {
                         $ln = strtolower($sub[1]);
                         if (!$this->getServer()->loadLevel($ln)) {
                             $r = $mm . $ln . ($ik ? "는 잘못된 월드명입니다." : "is invalid world name");
                         } else {
                             $wm["Load"][$ln] = true;
                             $r = $mm . ($ik ? "{$ln} 월드를 로딩햇습니다." : "Load {$ln} world");
                         }
                     }
                     break;
                 case "list":
                 case "목록":
                     $page = 1;
                     if (isset($sub[0]) && is_numeric($sub[0])) {
                         $page = max(floor($sub[0]), 1);
                     }
                     $list = array_chunk($this->getServer()->getLevels(), 5, true);
                     if ($page >= ($c = count($list))) {
                         $page = $c;
                     }
                     $r = $mm . ($ik ? "월드 목록 (페이지" : "World List (Page") . " {$page}/{$c}) \n";
                     $num = ($page - 1) * 5;
                     if ($c > 0) {
                         foreach ($list[$page - 1] as $v) {
                             $num++;
                             $r .= "  [{$num}] " . $v->getName() . " : " . $v->getFolderName() . "\n";
                         }
                     }
                     break;
                 case "spawn":
                 case "s":
                 case "스폰":
                     $wm["MainSpawn"] = !$wm["MainSpawn"];
                     $r = $mm . ($wm["MainSpawn"] ? $ik ? "스폰시 메인월드에서 스폰합니다." : "Main spawn is On" : ($ik ? "스폰시 해당 월드에서 스폰합니다." : "Main spawn is off"));
                     break;
                 default:
                     return false;
                     break;
             }
             break;
         case "worldprotect":
             if (!isset($sub[0])) {
                 return false;
             }
             $mm = "[WorldProtect] ";
             $rm .= "WorldProtect ";
             $wp = $wm["Protect"];
             switch (strtolower($sub[0])) {
                 case "add":
                 case "a":
                 case "추가":
                     if (!isset($sub[1]) || !$sub[1]) {
                         $r = $rm . ($ik ? "추가 <월드명>" : "Add(A) <WorldName>");
                     } else {
                         $w = strtolower($sub[1]);
                         if (!in_array($w, $wp)) {
                             $wp[] = $w;
                         }
                         $r = $mm . ($ik ? " 추가됨 " : "Add") . " : {$w}";
                     }
                     break;
                 case "del":
                 case "d":
                 case "삭제":
                 case "제거":
                     if (!isset($sub[1])) {
                         $r = $rm . ($ik ? "제거 <월드명>" : "Del(D) <WorldName>");
                     } else {
                         $w = strtolower($sub[1]);
                         if (!in_array($w, $wp)) {
                             $r = " [{$w}] " . ($ik ? "목록에 존재하지 않습니다.\n {$rm} 목록 " : "does not exist.\n {$rm} List(L)");
                         } else {
                             foreach ($wp as $k => $v) {
                                 if ($v == $w) {
                                     unset($wp[$k]);
                                     $r = $mm . ($ik ? " 제거됨 " : "Del") . " : {$w}";
                                     break;
                                 }
                             }
                         }
                     }
                     break;
                 case "reset":
                 case "r":
                 case "리셋":
                 case "초기화":
                     $wp = [];
                     $r = $mm . ($ik ? " 리셋됨." : " Reset");
                     break;
                 case "list":
                 case "l":
                 case "목록":
                 case "리스트":
                     $page = 1;
                     if (isset($sub[0]) && is_numeric($sub[0])) {
                         $page = max(floor($sub[0]), 1);
                     }
                     $list = array_chunk($wp, 5, true);
                     if ($page >= ($c = count($list))) {
                         $page = $c;
                     }
                     $r = $mm . ($ik ? "월드보호 목록 (페이지" : "WorldProtect List (Page") . " {$page}/{$c}) \n";
                     $num = ($page - 1) * 5;
                     if ($c > 0) {
                         foreach ($list[$page - 1] as $v) {
                             $num++;
                             $r .= "  [{$num}] {$v}\n";
                         }
                     }
                     break;
                 default:
                     return false;
                     break;
             }
             $wm["Protect"] = $wp;
             break;
         case "worldpvp":
             if (!isset($sub[0])) {
                 return false;
             }
             $mm = "[WorldPVP] ";
             $rm .= "WorldPVP ";
             $wpvp = $wm["PVP"];
             switch (strtolower($sub[0])) {
                 case "add":
                 case "a":
                 case "추가":
                     if (!isset($sub[1]) || !$sub[1]) {
                         $r = $rm . ($ik ? "추가 <월드명>" : "Add(A) <WorldName>");
                     } else {
                         $w = strtolower($sub[1]);
                         if (!in_array($w, $wpvp)) {
                             $wpvp[] = $w;
                         }
                         $r = $mm . ($ik ? " 추가됨 " : "Add") . " : {$w}";
                     }
                     break;
                 case "del":
                 case "d":
                 case "삭제":
                 case "제거":
                     if (!isset($sub[1])) {
                         $r = $rm . ($ik ? "제거 <월드명>" : "Del(D) <WorldName>");
                     } else {
                         $w = strtolower($sub[1]);
                         if (!in_array($w, $wpvp)) {
                             $r = " [{$w}] " . ($ik ? "목록에 존재하지 않습니다.\n {$rm} 목록 " : "does not exist.\n {$rm} List(L)");
                         } else {
                             foreach ($wpvp as $k => $v) {
                                 if ($v == $w) {
                                     unset($wpvp[$k]);
                                     $r = $mm . ($ik ? " 제거됨 " : "Del") . " : {$w}";
                                     break;
                                 }
                             }
                         }
                     }
                     break;
                 case "reset":
                 case "r":
                 case "리셋":
                 case "초기화":
                     $wpvp = [];
                     $r = $mm . ($ik ? " 리셋됨." : " Reset");
                     break;
                 case "list":
                 case "l":
                 case "목록":
                 case "리스트":
                     $page = 1;
                     if (isset($sub[0]) && is_numeric($sub[0])) {
                         $page = max(floor($sub[0]), 1);
                     }
                     $list = array_chunk($wpvp, 5, true);
                     if ($page >= ($c = count($list))) {
                         $page = $c;
                     }
                     $r = $mm . ($ik ? "PVP 월드 목록 (페이지" : "PVP World List (Page") . " {$page}/{$c}) \n";
                     $num = ($page - 1) * 5;
                     if ($c > 0) {
                         foreach ($list[$page - 1] as $v) {
                             $num++;
                             $r .= "  [{$num}] {$v}\n";
                         }
                     }
                     break;
                 default:
                     return false;
                     break;
             }
             $wm["PVP"] = $wpvp;
             break;
         case "worldinv":
             if (!isset($sub[0])) {
                 return false;
             }
             $mm = "[WorldInv] ";
             $rm .= "WorldInv ";
             $winv = $wm["Inv"];
             switch (strtolower($sub[0])) {
                 case "add":
                 case "a":
                 case "추가":
                     if (!isset($sub[1]) || !$sub[1]) {
                         $r = $rm . ($ik ? "추가 <월드명>" : "Add(A) <WorldName>");
                     } else {
                         $w = strtolower($sub[1]);
                         if (!in_array($w, $winv)) {
                             $winv[] = $w;
                         }
                         $r = $mm . ($ik ? " 추가됨 " : "Add") . " : {$w}";
                     }
                     break;
                 case "del":
                 case "d":
                 case "삭제":
                 case "제거":
                     if (!isset($sub[1])) {
                         $r = $rm . ($ik ? "제거 <월드명>" : "Del(D) <WorldName>");
                     } else {
                         $w = strtolower($sub[1]);
                         if (!in_array($w, $winv)) {
                             $r = " [{$w}] " . ($ik ? "목록에 존재하지 않습니다.\n {$rm} 목록 " : "does not exist.\n {$rm} List(L)");
                         } else {
                             foreach ($winv as $k => $v) {
                                 if ($v == $w) {
                                     unset($winv[$k]);
                                     $r = $mm . ($ik ? " 제거됨 " : "Del") . " : {$w}";
                                     break;
                                 }
                             }
                         }
                     }
                     break;
                 case "reset":
                 case "r":
                 case "리셋":
                 case "초기화":
                     $winv = [];
                     $r = $mm . ($ik ? " 리셋됨." : " Reset");
                     break;
                 case "list":
                 case "l":
                 case "목록":
                 case "리스트":
                     $page = 1;
                     if (isset($sub[0]) && is_numeric($sub[0])) {
                         $page = max(floor($sub[0]), 1);
                     }
                     $list = array_chunk($winv, 5, true);
                     if ($page >= ($c = count($list))) {
                         $page = $c;
                     }
                     $r = $mm . ($ik ? "인벤세이브 월드 목록 (페이지" : "InventorySave World List (Page") . " {$page}/{$c}) \n";
                     $num = ($page - 1) * 5;
                     if ($c > 0) {
                         foreach ($list[$page - 1] as $v) {
                             $num++;
                             $r .= "  [{$num}] {$v}\n";
                         }
                     }
                     break;
                 default:
                     return false;
                     break;
             }
             $wm["Inv"] = $winv;
             break;
         case "setspawn":
             if (isset($sub[0]) && ($player = $this->getServer()->getPlayer($sub[0]))) {
             } else {
                 $player = $sender;
             }
             $ln = strtolower($player->getLevel()->getFolderName());
             $wm["Spawn"][$ln] = $player->x . ":" . $player->y . ":" . $player->z;
             $r = "[SetSpawn] " . ($ik ? "스폰 설정되었습니다.  월드명: {$ln} , 좌표: " : "Spawn set. World: {$ln} , Position: ") . $wm["Spawn"][$ln];
             break;
         case "spawn":
             if ($wm["MainSpawn"]) {
                 $world = $this->getServer()->getDefaultLevel();
             } else {
                 $world = $sender->getLevel();
             }
             $sender->teleport($world->getSpawn());
             $r = "[Spawn] " . ($ik ? "스폰으로 텔레포트되었습니다. 월드명: " : "Teleport to spawn. World: ") . $world->getFolderName();
             break;
     }
     if (isset($r)) {
         $sender->sendMessage($r);
     }
     if ($this->wm !== $wm) {
         $this->wm = $wm;
         $this->saveYml();
     }
     $this->loadWorlds();
     return true;
 }
Пример #21
0
 public function onCommand(CommandSender $sender, Command $command, $label, array $args)
 {
     if ($command->getName() == "lobby") {
         if (isset($this->players[$sender->getName()])) {
             unset($this->players[$sender->getName()]);
             $sender->setLevel($this->signlevel);
             $sender->teleport($this->signlevel->getSpawnLocation());
             $sender->sendMessage("§3> §eBack to lobby...");
             $this->sendToAll("§3> §7Player " . $sender->getName() . " left the game");
             $this->changeStatusSign();
             if ($this->gameStatus == 1 && count($this->players) < 2) {
                 $this->gameStatus = 0;
                 $this->lastTime = 0;
                 $this->sendPopup("§3> §eGame taking to long to start invite your friends");
                 /*foreach($this->players as $pl)
                 		{
                 			$p=$this->getServer()->getPlayer($pl["id"]);
                 			$p->setLevel($this->signlevel);
                 			$p->teleport($this->signlevel->getSpawnLocation());
                 			unset($p,$pl);
                 		}*/
             }
         }
     }
     if (!isset($args[0])) {
         unset($sender, $cmd, $label, $args);
         return false;
     }
     switch ($args[0]) {
         case "set":
             if ($this->config->exists("lastpos")) {
                 $sender->sendMessage("GAME HAS ALREADY BEEN SET");
             } else {
                 $name = $sender->getName();
                 $this->SetStatus[$name] = 0;
                 $sender->sendMessage("PLEASE TAP A SIGN.");
             }
             break;
         case "remove":
             $this->config->remove("sign");
             $this->config->remove("pos1");
             $this->config->remove("pos2");
             $this->config->remove("pos3");
             $this->config->remove("pos4");
             $this->config->remove("pos5");
             $this->config->remove("pos6");
             $this->config->remove("pos7");
             $this->config->remove("pos8");
             $this->config->remove("lastpos");
             $this->config->save();
             unset($this->sign, $this->pos1, $this->pos2, $this->pos3, $this->pos4, $this->pos5, $this->pos6, $this->pos7, $this->pos8, $this->pos9, $this->pos10, $this->pos11, $this->pos12, $this->pos13, $this->pos14, $this->pos15, $this->pos16, $this->pos17, $this->pos18, $this->pos19, $this->pos20, $this->pos21, $this->pos22, $this->pos23, $this->pos24, $this->lastpos);
             $sender->sendMessage("YOU HAVE DELETED THE SETTINGS");
             break;
         case "start":
             $this->sendPopup("§6§lBeing Force to Start");
             $this->gameStatus = 1;
             $this->lastTime = 5;
             break;
         case "reload":
             unset($this->config);
             @mkdir($this->getDataFolder(), 0777, true);
             $this->config = new Config($this->getDataFolder() . "config.yml", Config::YAML, array());
             if ($this->config->exists("lastpos")) {
                 $this->sign = $this->config->get("sign");
                 $this->pos1 = $this->config->get("pos1");
                 $this->pos2 = $this->config->get("pos2");
                 $this->pos3 = $this->config->get("pos3");
                 $this->pos4 = $this->config->get("pos4");
                 $this->pos5 = $this->config->get("pos5");
                 $this->pos6 = $this->config->get("pos6");
                 $this->pos7 = $this->config->get("pos7");
                 $this->pos8 = $this->config->get("pos8");
                 $this->lastpos = $this->config->get("lastpos");
                 $this->level = $this->getServer()->getLevelByName($this->config->get("pos1")["level"]);
                 $this->signlevel = $this->getServer()->getLevelByName($this->config->get("sign")["level"]);
                 $this->sign = new Vector3($this->sign["x"], $this->sign["y"], $this->sign["z"]);
                 $this->pos1 = new Vector3($this->pos1["x"] + 0.5, $this->pos1["y"] + 1, $this->pos1["z"] + 0.5);
                 $this->pos2 = new Vector3($this->pos2["x"] + 0.5, $this->pos2["y"] + 1, $this->pos2["z"] + 0.5);
                 $this->pos3 = new Vector3($this->pos3["x"] + 0.5, $this->pos3["y"] + 1, $this->pos3["z"] + 0.5);
                 $this->pos4 = new Vector3($this->pos4["x"] + 0.5, $this->pos4["y"] + 1, $this->pos4["z"] + 0.5);
                 $this->pos5 = new Vector3($this->pos5["x"] + 0.5, $this->pos5["y"] + 1, $this->pos5["z"] + 0.5);
                 $this->pos6 = new Vector3($this->pos6["x"] + 0.5, $this->pos6["y"] + 1, $this->pos6["z"] + 0.5);
                 $this->pos7 = new Vector3($this->pos7["x"] + 0.5, $this->pos7["y"] + 1, $this->pos7["z"] + 0.5);
                 $this->pos8 = new Vector3($this->pos8["x"] + 0.5, $this->pos8["y"] + 1, $this->pos8["z"] + 0.5);
                 $this->lastpos = new Vector3($this->lastpos["x"] + 0.5, $this->lastpos["y"] + 1, $this->lastpos["z"] + 0.5);
             }
             if (!$this->config->exists("endTime")) {
                 $this->config->set("endTime", 600);
             }
             if (!$this->config->exists("gameTime")) {
                 $this->config->set("gameTime", 300);
             }
             if (!$this->config->exists("waitTime")) {
                 $this->config->set("waitTime", 180);
             }
             if (!$this->config->exists("godTime")) {
                 $this->config->set("godTime", 15);
             }
             $this->endTime = (int) $this->config->get("endTime");
             $this->gameTime = (int) $this->config->get("gameTime");
             $this->waitTime = (int) $this->config->get("waitTime");
             $this->godTime = (int) $this->config->get("godTime");
             $this->gameStatus = 0;
             $this->lastTime = 0;
             $this->players = array();
             $this->SetStatus = array();
             $this->all = 0;
             $this->config->save();
             $sender->sendPopup("RELOADED");
             break;
         default:
             return false;
             break;
     }
     return true;
 }
Пример #22
0
 public function onCommand(CommandSender $sender, Command $command, $label, array $args)
 {
     switch ($command->getName()) {
         case "pvp":
             $name = $sender->getName();
             echo 1;
             if (isset($this->joinedpvp[$name])) {
                 echo 2;
                 if ($this->joinedpvp[$name] == 1) {
                     $sender->sendMessage(TextFormat::RED . "[WallPVP]あなたはすでにpvpに参加しています。");
                     break;
                 }
             }
             if (time() - @$this->teamc[1][$name] <= 30 * 1) {
                 echo "a2";
                 $this->team[1][$name] = 1;
                 $teamname = "S";
                 $tcolor = TextFormat::LIGHT_PURPLE;
                 $pos1 = new Position(73, 72, 132);
                 //座標を指定
                 $sender->sendMessage(TextFormat::LIGHT_PURPLE . "[WallPVP]あなたは" . $teamname . "チームです。");
             } elseif (time() - @$this->teamc[2][$name] <= 30 * 1) {
                 echo "b1";
                 $this->team[2][$name] = 1;
                 $teamname = "M";
                 $tcolor = TextFormat::AQUA;
                 $pos1 = new Position(64, 76, 28);
                 //座標を指定
                 $sender->sendMessage(TextFormat::AQUA . "[WallPVP]あなたは" . $teamname . "チームです。");
             } else {
                 echo 3;
                 $this->joinedpvp[$name] = 1;
                 if (count($this->team[1]) <= count($this->team[2])) {
                     $this->team[1][$name] = 1;
                     $teamname = "S";
                     $tcolor = TextFormat::LIGHT_PURPLE;
                     $pos1 = new Position(73, 72, 132);
                     //座標を指定
                     $sender->sendMessage(TextFormat::LIGHT_PURPLE . "[WallPVP]あなたは" . $teamname . "チームです。");
                 } else {
                     $this->team[2][$name] = 1;
                     $teamname = "M";
                     $tcolor = TextFormat::AQUA;
                     $pos1 = new Position(64, 76, 28);
                     //座標を指定
                     $sender->sendMessage(TextFormat::AQUA . "[WallPVP]あなたは" . $teamname . "チームです。");
                 }
             }
             if (isset($this->team[1][$name])) {
                 $teamname = "[S]";
                 $tcolor = TextFormat::LIGHT_PURPLE;
             } elseif (isset($this->team[2][$name])) {
                 $teamname = "[M]";
                 $tcolor = TextFormat::AQUA;
             } else {
                 $teamname = null;
                 $tcolor = null;
             }
             if ($sender->isOp()) {
                 $op = "[OP]";
             } else {
                 $op = null;
             }
             $sender->setDisPlayName($tcolor . $op . $teamname . $name . "[" . $this->hapi->getkill($name) . "kill]");
             $sender->setNameTag($tcolor . $op . $teamname . $name . "[" . $this->hapi->getkill($name) . "kill]");
             $sender->teleport($pos1);
             $effect = Effect::getEffect(11);
             //Effect ID
             $effect->setVisible(true);
             //Particles
             $effect->setAmplifier(1000);
             $effect->setDuration(100);
             //Ticks
             $sender->addEffect($effect);
             break;
         case "rekit":
             $this->setKit($sender);
             break;
         case "ok":
             $cfg = $this->settings->getAll();
             $name = $sender->getName();
             if (isset($this->buy[$name])) {
                 if (time() - $this->buy[$name]["time"] <= 20) {
                     $amount = $cfg[$this->buy[$name]["id"]];
                     if ($this->hapi->getkit1($name) == $this->buy[$name]["id"]) {
                         $sender->sendMessage(TextFormat::RED . "[WallPVP]購入済みです。");
                     } else {
                         if ($this->hapi->useexp($name, $amount)) {
                             $this->hapi->setkit1($name, $this->buy[$name]["id"]);
                             $this->setKit($sender);
                             $sender->sendMessage(TextFormat::RED . "[WallPVP]" . $amount . "EXPの" . $this->buy[$name]["id"] . "を購入しました。");
                         } else {
                             $sender->sendMessage(TextFormat::RED . "[WallPVP]EXPが足りません。");
                         }
                     }
                 }
             }
             break;
         case "buy":
             $name = $sender->getName();
             if (!isset($args[0])) {
                 $sender->sendMessage("Usege: /buy '[effectID]'");
                 break;
             }
             if (!ctype_digit($args[0])) {
                 $sender->sendMessage("Usege: /buy '[effectID]'");
                 break;
             }
             $cfg = $this->settings->getAll();
             $ecost = $cfg[$args[0]];
             $sender->sendMessage("ID " . $args[0] . ": 値段\$" . $ecost . "を買うのなら/ok");
             if (isset($this->buy[$name])) {
                 unset($this->buy[$name]);
             }
             $this->buy[$name]["time"] = time();
             $this->buy[$name]["id"] = $args[0];
             unset($cfg);
             unset($ecost);
             break;
         case "shop":
             $cfg = $this->settings->getAll();
             if (!isset($args[0])) {
                 $sender->sendMessage("Usege: /shop [effectID] [price]");
                 break;
             }
             if (!ctype_digit($args[0])) {
                 $sender->sendMessage("Usege: /shop '[effectID]' [price]");
                 break;
             }
             if (!isset($args[1])) {
                 $sender->sendMessage("Usege: /shop [effectID] '[price]'");
                 break;
             }
             if (!$this->settings->exists($args[1])) {
                 $sender->sendMessage("EffectID is wrong.");
                 break;
             }
             if (!ctype_digit($args[1])) {
                 $sender->sendMessage("Usege: /shop [effectID] '[price]'");
                 break;
             }
             $this->settings->set($args[0], $args[1]);
             $this->settings->save();
             $sender->sendMessage("You changed EffectID " . $args[0] . " 's price \$" . $args[1]);
             $this->settings->reload();
             break;
             break;
         case "c":
             $name = $sender->getName();
             $players = Server::getInstance()->getOnlinePlayers();
             if (isset($this->team[1][$name])) {
                 foreach ($players as $player) {
                     if (isset($this->team[1][$player->getName()])) {
                         $player->sendMessage(TextFormat::YELLOW . "[SチームC]" . $name . "|" . $args);
                     }
                 }
             } elseif (isset($this->team[2][$name])) {
                 foreach ($players as $player) {
                     if (isset($this->team[2][$player->getName()])) {
                         $player->sendMessage(TextFormat::YELLOW . "[MチームC]" . $name . "|" . $args);
                     }
                 }
             }
             break;
         case "mi":
             $name = $sender->getName();
             if (isset($this->team[1][$name])) {
                 $teamname = "S";
             } elseif (isset($this->team[2][$name])) {
                 $teamname = "M";
             }
             $name = $sender->getName();
             $sender->sendMessage(TextFormat::RED . "//////" . $name . "さんの情報/////");
             if (isset($teamname)) {
                 $sender->sendMessage(TextFormat::RED . "[チーム] " . $teamname . "チーム");
             }
             #		$sender->sendMessage(TextFormat::RED ."[KIT] ".$this->hapi->getkit1($name));
             $sender->sendMessage(TextFormat::RED . "[レベル] " . $this->getServer()->getPluginManager()->getPlugin("hapi")->getlevel($name));
             $sender->sendMessage(TextFormat::RED . "[EXP] " . $this->getServer()->getPluginManager()->getPlugin("hapi")->getexp($name));
             $sender->sendMessage(TextFormat::RED . "[キル数] " . $this->getServer()->getPluginManager()->getPlugin("hapi")->getkill($name) . "回");
             $sender->sendMessage(TextFormat::RED . "[連続キル数] " . $this->getServer()->getPluginManager()->getPlugin("hapi")->getrenkill($name) . "回");
             if ($this->getServer()->getPluginManager()->getPlugin("hapi")->getexp($name) != 0 and $this->getServer()->getPluginManager()->getPlugin("hapi")->getdes($name) != 0) {
                 $sender->sendMessage(TextFormat::RED . "[キルレート] " . $this->getServer()->getPluginManager()->getPlugin("hapi")->getkill($name) / $this->getServer()->getPluginManager()->getPlugin("hapi")->getdes($name));
             }
             $sender->sendMessage(TextFormat::RED . "/////////////////////////////");
             break;
         case "stat":
             $sender->sendMessage(TextFormat::RED . "[WallPVP]各チームの人数です。");
             $sender->sendMessage(TextFormat::RED . "[S]" . count($this->team[1]) . "人、[コア]" . $this->teamcore[1] . "HP");
             $sender->sendMessage(TextFormat::RED . "[M]" . count($this->team[2]) . "人、[コア]" . $this->teamcore[2] . "HP");
     }
 }
Пример #23
0
 public function onCommand(CommandSender $sender, Command $command, $label, array $args)
 {
     if (strtolower($command->getName()) == "is") {
         if (!isset($args[0])) {
             $sender->sendMessage(TextFormat::YELLOW . "You didn't add a subcommand");
             $sender->sendMessage(TextFormat::GREEN . "Use: " . TextFormat::RESET . "/is help");
             return true;
         } elseif (isset($args[0])) {
             if ($args[0] == "help") {
                 if ($sender->hasPermission("is") || $sender->hasPermission("is.help")) {
                     if (!isset($args[1]) or $args[1] == "1") {
                         $sender->sendMessage(TextFormat::GREEN . "Showing help page 1 of 1");
                         $sender->sendMessage(TextFormat::GREEN . "/is help");
                         $sender->sendMessage(TextFormat::GREEN . "/is create");
                         $sender->sendMessage(TextFormat::GREEN . "/is home");
                         $sender->sendMessage(TextFormat::GREEN . "/is sethome");
                         $sender->sendMessage(TextFormat::GREEN . "/is find (op only)");
                         return true;
                     } elseif ($args[1] == "2") {
                         $sender->sendMessage("More commands coming soon");
                         return true;
                     }
                 } else {
                     $sender->sendMessage(TextFormat::RED . "You cannot view the help menu");
                     return true;
                 }
             } elseif ($args[0] == "create") {
                 if ($sender->hasPermission("is") || $sender->hasPermission("is.command") || $sender->hasPermission("is.command.create")) {
                     $senderIs = $this->getDataFolder() . "Islands/" . $sender->getName() . ".txt";
                     if ($sender->getLevel()->getName() == $this->getConfig()->get("Lobby")) {
                         $sender->sendMessage(TextFormat::YELLOW . "You can't make an island in spawn, silly");
                         return true;
                     } else {
                         if (!file_exists($senderIs)) {
                             $this->makeIsland($sender->getName());
                             return true;
                         } else {
                             $sender->sendMessage(TextFormat::YELLOW . "You already have an island");
                             return true;
                         }
                     }
                 } else {
                     $sender->sendMessage(TextFormat::RED . "You cannot create an island");
                     return true;
                 }
             } elseif ($args[0] == "home") {
                 if ($sender->hasPermission("is") || $sender->hasPermission("is.command") || $sender->hasPermission("is.command.home")) {
                     if (!file_exists($this->getDataFolder() . "Islands/" . $sender->getName() . ".txt")) {
                         $sender->sendMessage("You don't have an island. Use /is create to make one");
                         return true;
                     } else {
                         $level = $this->getServer()->getLevelByName(yaml_parse_file($this->getDataFolder() . "Players/" . $sender->getName() . ".txt"));
                         if ($level !== null) {
                             $sender->sendMessage(TextFormat::GREEN . "Teleporting to your island...");
                             if ($sender->getLevel()->getName() !== $level->getName()) {
                                 $sender->sendMessage("You are not in the same world as your island. Use " . TextFormat::YELLOW . "/mw tp " . $level->getName() . TextFormat::RESET . " and try again");
                                 return true;
                             } else {
                                 $sender->teleport(new Vector3(yaml_parse_file($this->getDataFolder() . "Islands/" . $sender->getName() . ".txt")));
                                 $sender->sendMessage(TextFormat::GREEN . "Done!");
                                 return true;
                             }
                         } else {
                             $sender->sendMessage("An error has occored.");
                             return true;
                         }
                     }
                 } else {
                     $sender->sendMessage("You do not have permission to do that");
                     return true;
                 }
             } elseif ($args[0] == "find") {
                 if ($sender->hasPermission("is") || $sender->hasPermission("is.command") || $sender->hasPermission("is.command.find")) {
                     if (isset($args[1])) {
                         $p = $sender->getServer()->getPlayer($args[1]);
                         if ($p instanceof Player) {
                             $name = $p->getName();
                             if (file_exists($this->getDataFolder() . "Islands/" . $name . ".txt")) {
                                 $sender->sendMessage("The coords for " . $name . "'s island are");
                                 $sender->sendMessage(file_get_contents($this->getDataFolder() . "Islands/" . $name . ".txt"));
                                 $sender->sendMessage(file_get_contents($this->getDataFolder() . "Players/" . $name . ".txt"));
                                 return true;
                             } else {
                                 $sender->sendMessage($name . " does not have an island");
                                 return true;
                             }
                         } elseif (file_exists($this->getDataFolder() . "Islands/" . $args[1] . ".txt")) {
                             $sender->sendMessage("The coords for " . $args[1] . "'s island are");
                             $sender->sendMessage(file_get_contents($this->getDataFolder() . "Islands/" . $args[1] . ".txt"));
                             $sender->sendMessage("in world " . file_get_contents($this->getDataFolder() . "Players/" . $args[1] . ".txt"));
                             return true;
                         }
                     } else {
                         $sender->sendMessage(TextFormat::YELLOW . "You need to specify a player");
                         return true;
                     }
                 } else {
                     $sender->sendMessage(TextFormat::YELLOW . "You cannot find the coords of a player's island");
                     return true;
                 }
             } elseif ($args[0] == "delete") {
                 if ($sender->hasPermission("is") || $sender->hasPermission("is.command") || $sender->hasPermission("is.command.delete")) {
                     if (!isset($args[1])) {
                         $sender->sendMessage("Are you sure? Use /is delete yes to confirm");
                         return true;
                     } elseif ($args[1] == "yes") {
                         if (file_exists($this->getDataFolder() . "Islands/" . $sender->getName() . ".txt")) {
                             unlink($this->getDataFolder() . "Islands/" . $sender->getName() . ".txt");
                             $sender->sendMessage("Your island has been deleted");
                             return true;
                         } else {
                             $sender->sendMessage("You don't have an island");
                             return true;
                         }
                     } elseif ($args[1] == "no") {
                         $sender->sendMessage("Okay, we won't delete your island");
                         return true;
                     } else {
                         return false;
                     }
                 } else {
                     $sender->sendMessage("You cannot delete your island");
                     return true;
                 }
             } elseif ($args[0] == "sethome") {
                 if ($sender->hasPermission("is") || $sender->hasPermission("is.command") || $sender->hasPermission("is.command.sethome")) {
                     if (!isset($args[1])) {
                         $sender->sendMessage("Are you sure? Make sure you are on your island");
                         $sender->sendMessage("Your island will be lost if you're not on your island. Do /is sethome yes to confirm");
                         return true;
                     } elseif ($args[1] == "yes") {
                         if (file_exists($this->getDataFolder() . "Islands/" . $sender->getName() . ".txt")) {
                             $sender->sendMessage("Setting your home...");
                             $file = $this->getDataFolder() . "Islands/" . $sender->getName() . ".txt";
                             unlink($file);
                             $newFile = fopen($file, "w");
                             fwrite($newFile, $sender->x . ", " . $sender->y . ", " . $sender->z);
                             $sender->sendMessage("Set your home.");
                             return true;
                         } else {
                             $sender->sendMessage("You don't have an island");
                             return true;
                         }
                     } elseif ($args[1] == "no") {
                         $sender->sendMessage("Okay, we won't set your home");
                         return true;
                     } else {
                         $sender->sendMessage("Unknown subcommand: " . $args[1]);
                         $sender->sendMessage("/sethome <yes | no>");
                         return true;
                     }
                 } else {
                     $sender->sendMessage("You don't have permission to set your home");
                     return true;
                 }
             }
         }
     }
 }
Пример #24
0
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $args)
 {
     $teams = array("red", "blue");
     switch ($cmd->getName()) {
         case "team":
             switch (strtolower($args[0])) {
                 case "red":
                     if ($sender instanceof Player) {
                         $this->setTeam($sender->getName(), "red");
                         $sender->inGame = true;
                         $sender->teleport(new Vector3($this->yml["red_enter_x"], $this->yml["red_enter_y"], $this->yml["red_enter_z"]));
                         return true;
                     } else {
                         return false;
                     }
                 case "blue":
                     if ($sender instanceof Player) {
                         $this->setTeam($sender->getName(), "blue");
                         $sender->inGame = true;
                         $sender->teleport(new Vector3($this->yml["blue_enter_x"], $this->yml["blue_enter_y"], $this->yml["blue_enter_z"]));
                         return true;
                     } else {
                         return false;
                     }
                 case "var":
                     var_dump($this->red);
                     var_dump($this->blue);
                     return true;
                 default:
                     return false;
             }
     }
 }
Пример #25
0
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $sub)
 {
     if (!isset($sub[0])) {
         return false;
     }
     $ik = $this->isKorean();
     $rm = TextFormat::RED . "Usage: /";
     $mm = "[MineFarm] ";
     $smd = strtolower(array_shift($sub));
     $n = strtolower($sender->getName());
     $mn = $this->mn;
     $c = false;
     $sh = $this->sh;
     $t = $this->touch;
     switch (strtolower($cmd->getName())) {
         case "myfarm":
             if (!$sender instanceof Player) {
                 $r = $mm . ($ik ? "게임내에서만 실행해주세요." : "Please run this command in-game");
             } else {
                 $rm .= "MyFarm ";
                 switch ($smd) {
                     case "move":
                     case "my":
                     case "me":
                     case "m":
                     case "이동":
                         if (!in_array($n, $this->mf["Farm"])) {
                             $r = $mm . ($ik ? "팜을 보유하고있지 않습니다." : "You don't have farm");
                         } else {
                             $sender->teleport($this->getPosition($n));
                             $r = $mm . ($ik ? "나의 팜으로 텔레포트되었습니다. : " : "Teleported to your farm. : ") . $this->getNum($sender);
                         }
                         break;
                     case "buy":
                     case "b":
                     case "구매":
                         if (in_array($n, $this->mf["Farm"])) {
                             $r = $mm . ($ik ? "이미 팜을 보유하고있습니다." : "You already have farm");
                         } elseif (!$this->mf["Sell"]) {
                             $r = $mm . ($ik ? "이 서버는 팜을 판매하지 않습니다.." : "This server not sell the farm");
                         } elseif (!$this->hasMoney($n, $pr = $this->mf["Price"])) {
                             $r = $mm . ($ik ? "당신은 {$pr} 보다 돈이 적습니다. 나의 돈 : " : "You don't have {$pr} \$. Your money : ") . $this->getMoney($n);
                         } else {
                             $this->takeMoney($n, $pr);
                             $this->giveFarm($n);
                             $r = $mm . ($ik ? "팜을 구매하였습니다. 나의 돈 : " : "Buy the farm. Your money : ") . $this->getMoney($n) . "\n/‡ " . $mm . ($ik ? "팜 번호 : " : "Farm Number : ") . $this->getNum($n);
                         }
                         break;
                     case "visit":
                     case "v":
                     case "방문":
                         if (!isset($sub[0]) || !$sub[0] || is_numeric($sub[0]) && $sub[0] < 1) {
                             $r = $mm . ($ik ? "이동 <팜번호 or 플레이어명>" : "Move <FarmNum or PlayerName>");
                         } else {
                             if (is_numeric($sub[0])) {
                                 $fn = floor($sub[0]);
                                 $nm = $ik ? "번" : "";
                             } else {
                                 $fn = strtolower($sub[0]);
                                 if (!in_array($fn, $this->mf["Farm"])) {
                                     $r = $mm . $fn . ($ik ? "는 잘못된 플레이어명입니다." : " is invalid player");
                                 } else {
                                     $nm = $ik ? "님의" : "'s ";
                                 }
                             }
                             if (!isset($r)) {
                                 if (!$this->isInvite($n, $fn)) {
                                     $r = $mm . ($ik ? "{$fn} {$nm} 팜에 초대받지 않았습니다." : "You don't invited to {$fn} {$nm} farm");
                                 } else {
                                     $sender->teleport($this->getPosition($fn));
                                     $r = $mm . ($ik ? "{$fn} {$nm} 팜으로 텔레포트되었습니다." : "Teleported to {$fn} {$nm} Minefarm");
                                     if ($p = $this->getServer()->getplayerExact($this->getOwnName($fn))) {
                                         $p->sendMessage("/☜ [MineFarm] " . $n . ($ik ? "님이 당신의 팜에 방문햇습니다." : " is invited to your farm."));
                                     }
                                 }
                             }
                         }
                         break;
                     case "invite":
                     case "i":
                     case "초대":
                         if (!in_array($n, $this->mf["Farm"])) {
                             $r = $mm . ($ik ? "팜을 보유하고있지 않습니다." : "You don't have farm");
                         } elseif (!isset($sub[0])) {
                             $r = $rm . ($ik ? "초대 <플레이어명>" : "Invite <PlayerName");
                         } elseif ($this->isInvite($sub[0] = strtolower($sub[0]), $n)) {
                             $r = $mm . $sub[0] . ($ik ? "님은 이미 초대된 상태입니다." : " is already invited");
                         } else {
                             $this->mf["Invite"][$n][$sub[0]] = false;
                             $this->saveYml();
                             $r = $mm . ($ik ? "{$sub['0']} 님을 팜에 초대합니다." : "Invite {$sub['0']} on my farm");
                             if ($p = $this->getServer()->getplayerExact($sub[0])) {
                                 $p->sendMessage("/☜ [MineFarm] " . $n . ($ik ? "님이 당신을 팜에 초대하였습니다." : " invite you out to farm"));
                             }
                         }
                         break;
                     case "share":
                     case "s":
                     case "초대":
                         if (!in_array($n, $this->mf["Farm"])) {
                             $r = $mm . ($ik ? "마인팜을 보유하고있지 않습니다." : "You don't have MineFarm");
                         } elseif (!isset($sub[0])) {
                             $r = $rm . ($ik ? "공유 <플레이어명>" : "Share <PlayerName");
                         } elseif ($this->isShare($sub[0] = strtolower($sub[0]), $n)) {
                             $r = $mm . $sub[0] . ($ik ? "님은 이미 공유된 상태입니다." : " is already shared");
                         } else {
                             $this->mf["Invite"][$n][$sub[0]] = true;
                             $this->saveYml();
                             $r = $mm . ($ik ? "{$sub['0']} 님에게 팜을 공유합니다." : "Shared your farm to {$sub['0']}");
                             if ($p = $this->getServer()->getplayerExact($sub[0])) {
                                 $p->sendMessage("/☜ [MineFarm] " . $n . ($ik ? "님이 당신에게 팜을 공유하였습니다." : " shared the farm with you"));
                             }
                         }
                         break;
                     case "kick":
                     case "k":
                     case "강퇴":
                         if (!in_array($n, $this->mf["Farm"])) {
                             $r = $mm . ($ik ? "마인팜을 보유하고있지 않습니다." : "You don't have MineFarm");
                         } elseif (!isset($sub[0])) {
                             $r = $rm . ($ik ? "강퇴 <플레이어명>" : "Kick <PlayerName");
                         } elseif (!$this->isInvite($sub[0] = strtolower($sub[0]), $n)) {
                             $r = $mm . $sub[0] . ($ik ? "님은 초대되지 않았습니다." : " is not invited");
                         } else {
                             unset($this->mf["Invite"][$n][$sub[0]]);
                             $this->saveYml();
                             $r = $mm . ($ik ? "{$sub['0']} 님을 마인팜에서 강퇴합니다." : "Kick {$sub['0']} on my minefarm");
                             if ($p = $this->getServer()->getplayerExact($sub[0])) {
                                 $p->sendMessage("/☜ [MineFarm] " . ($ik ? "{$n} 님의 팜에서 강퇴되었습니다." : "You are kicked from {$n}'s Minefarm."));
                             }
                         }
                         break;
                     case "list":
                     case "l":
                     case "목록":
                         if (!in_array($n, $this->mf["Farm"])) {
                             $r = $mm . ($ik ? "마인팜을 보유하고있지 않습니다." : "You don't have MineFarm");
                         } else {
                             $page = 1;
                             if (isset($sub[0]) && is_numeric($sub[0])) {
                                 $page = round($sub[0]);
                             }
                             $list = array_chunk($this->mf["Invite"][$n], 5, true);
                             if ($page >= ($c = count($list))) {
                                 $page = $c;
                             }
                             $r = $mm . ($ik ? "초대 (공유) 목록 (페이지" : "Invite(Share) List (Page") . " {$page}/{$c}) \n";
                             $num = ($page - 1) * 5;
                             if ($c > 0) {
                                 foreach ($list[$page - 1] as $k => $v) {
                                     $num++;
                                     $r .= "  [{$num}] " . (strlen($k) <= 3 ? $ik ? "오류." : "Error." : "[" . ($ik ? $v ? "공유" : "초대" : ($v ? "Share" : "Invite")) . "] {$k}\n");
                                 }
                             }
                         }
                         break;
                     case "message":
                     case "msg":
                     case "메세지":
                     case "tip":
                     case "t":
                     case "팁":
                         if (in_array($n, $this->mf["Edge"])) {
                             unset($this->mf["Edge"][array_search($n, $this->mf["Edge"])]);
                             $a = false;
                         } else {
                             $this->mf["Edge"][] = $n;
                             $a = true;
                         }
                         $this->saveYml();
                         $r = $mm . ($ik ? "이제 팁 메세지를 받" . ($a ? "" : "지않") . "습니다." : "Now " . ($a ? "" : "not ") . "show tip message");
                         break;
                     case "here":
                     case "h":
                     case "여기":
                         if (!$this->isFarm($sender)) {
                             $r = $mm . ($ik ? "이곳은 팜이 아닙니다." : "Here is not Farm");
                         } else {
                             $r = $mm . ($ik ? "이곳의 팜 번호 : " : "Here farm number : ") . $this->getNum($sender, true) . ",  " . ($this->getOwnName($sender, true) !== false ? ($ik ? "주인 : " : "Own : ") . $this->getOwnName($sender, true) : "");
                         }
                         break;
                     default:
                         return false;
                         break;
                 }
             }
             break;
         case "minefarm":
             $rm .= "MineFarm ";
             switch ($smd) {
                 case "give":
                 case "g":
                 case "지급":
                     if (!isset($sub[0])) {
                         $r = $rm . ($ik ? "지급 <플레이어명> (지역번호)" : "Give(G) <PlayerName> (FarmNumber)");
                     } elseif (!($p = $this->getServer()->getPlayer($sub[0]))) {
                         $r = $mm . $sub[0] . ($ik ? "는 잘못된 플레이어명입니다." : " is invalid player");
                     } elseif (in_array(strtolower($p->getName()), $this->mf["Farm"])) {
                         $r = $mm . $sub[0] . ($ik ? "님은 이미 마인팜을 소유중입니다. " : " is already have minefarm");
                     } else {
                         $num = $this->giveFarm($p) + 1;
                         $pn = $p->getName();
                         $r = $mm . ($ik ? "{$pn} 님에게 마인팜을 지급했습니다. : " : "Give the minefarm to {$pn} : ") . ($num = $this->getNum($p));
                         $p->sendMessage($mm . ($ik ? "마인팜을 지급받았습니다. : " : "Now you have your minefarm : ") . $num);
                     }
                     break;
                 case "move":
                 case "m":
                 case "이동":
                     if (!isset($sub[0]) || !$sub[0] || is_numeric($sub[0]) && $sub[0] < 1) {
                         $r = $mm . ($ik ? "이동 <땅번호 or 플레이어명>" : "Move <FarmNum or PlayerName>");
                     } else {
                         if (is_numeric($sub[0])) {
                             $n = floor($sub[0]);
                             $nm = $ik ? "번" : "";
                         } else {
                             $n = $sub[0];
                             if (!in_array($n, $this->mf["Farm"])) {
                                 $r = $mm . $n . ($ik ? "는 잘못된 플레이어명입니다." : " is invalid player");
                             } else {
                                 $nm = $ik ? "님의" : "'s ";
                             }
                         }
                         if (!isset($r)) {
                             $sender->teleport($this->getPosition($n));
                             $r = $mm . ($ik ? "{$n} {$nm} 마인팜으로 텔레포트되었습니다." : "Teleported to {$n} {$nm} Minefarm");
                         }
                     }
                     break;
                 case "here":
                 case "h":
                 case "여기":
                     if (!$sender instanceof Player) {
                         $r = $mm . ($ik ? "게임내에서만 실행해주세요." : "Please run this command in-game");
                     } elseif (!$this->isFarm($sender)) {
                         $r = $mm . ($ik ? "이곳은 팜이 아닙니다." : "Here is not Farm");
                     } else {
                         $r = $mm . ($ik ? "이곳의 팜 번호 : " : "Here farm number : ") . $this->getNum($sender, true) . ",  " . ($this->getOwnName($sender, true) !== false ? ($ik ? "주인 : " : "Own : ") . $this->getOwnName($sender, true) : "");
                     }
                     break;
                 case "distace":
                 case "d":
                 case "거리":
                 case "간격":
                     if (!isset($sub[0])) {
                         $r = $rm . ($ik ? "거리 <숫자>" : "Distance(D) (Number)");
                     } elseif (!is_numeric($sub[0]) || $sub[0] < 0) {
                         $r = $mm . $sub[0] . ($ik ? "는 잘못된 숫자입니다." : " is invalid number");
                     } else {
                         $this->mf["Distance"] = floor($sub[0]);
                         $this->saveYml();
                         $r = $mm . ($ik ? " 마인팜간 간격이 {$sub['0']} 으로 설정되엇습니다." : "minefarm distance is set to {$sub['0']}");
                     }
                     break;
                 case "size":
                 case "sz":
                 case "크기":
                     if (!isset($sub[0])) {
                         $r = $rm . ($ik ? "크기 <숫자>" : "Size(SZ) (Number)");
                     } elseif (!is_numeric($sub[0])) {
                         $r = $mm . $sub[0] . ($ik ? "는 잘못된 숫자입니다." : " is invalid number");
                     } else {
                         $this->mf["Size"] = floor($sub[0]);
                         $this->saveYml();
                         $r = $mm . ($ik ? " 마인팜의 크기가 {$sub['0']} 으로 설정되엇습니다." : "minefarm size is set to {$sub['0']}");
                     }
                     break;
                 case "air":
                 case "a":
                 case "공기":
                     if (!isset($sub[0])) {
                         $r = $rm . ($ik ? "공기 <숫자>" : "Air(A) (Number)");
                     } elseif (!is_numeric($sub[0]) || $sub[0] < 0) {
                         $r = $mm . $sub[0] . ($ik ? "는 잘못된 숫자입니다." : " is invalid number");
                     } else {
                         $this->mf["Air"] = floor($sub[0]);
                         $this->saveYml();
                         $r = $mm . ($ik ? " 마인팜의 공기지역 크기가 {$sub['0']} 으로 설정되엇습니다." : "minefarm air place size is set to {$sub['0']}");
                     }
                     break;
                 case "sell":
                 case "s":
                 case "판매":
                     $a = !$this->mf["Sell"];
                     $this->mf["Sell"] = $a;
                     $this->saveYml();
                     $m = $mm . ($ik ? "이제 마인팜을 판매" . ($a ? "합" : "하지않습") . "니다." : "Now " . ($a ? "" : "not ") . "sell the minefarm");
                     break;
                 case "price":
                 case "p":
                 case "가격":
                     if (!isset($sub[0])) {
                         $r = $rm . ($ik ? "가격 <숫자>" : "Money(Mn) (Number)");
                     } elseif (!$sub[0] || !is_numeric($sub[0])) {
                         $r = $mm . $sub[0] . ($ik ? "는 잘못된 숫자입니다." : " is invalid number");
                     } else {
                         $this->mf["Price"] = floor($sub[0]);
                         $this->saveYml();
                         $m = $mm . ($ik ? "마인팜의 가격이 {$sub['0']} 으로 설정되엇습니다." : "minefarm distance is set to {$sub['0']}");
                     }
                     break;
                 case "auto":
                 case "at":
                 case "자동":
                     $a = !$this->mf["Auto"];
                     $this->mf["Auto"] = $a;
                     $this->saveYml();
                     if ($a) {
                         foreach ($this->getServer()->getOnlinePlayers() as $p) {
                             if ($this->giveFarm($p)) {
                                 $p->sendMessage("[MineFarm] [Auto] " . ($ik ? "마인팜을 지급받았습니다. : " : "Now you gave minefarm. : ") . $this->getNum($p));
                             }
                         }
                     }
                     $m = $mm . ($ik ? "이제 마인팜을 자동 분배" . ($a ? "합" : "하지않습") . "니다." : "Now " . ($a ? "" : "not ") . "auto give the minefarm");
                     break;
                 case "item":
                 case "i":
                 case "아이템":
                     $a = !$this->mf["Item"];
                     $this->mf["Item"] = $a;
                     $this->saveYml();
                     $m = $mm . ($ik ? "이제 기초 지급템을 " . ($a ? "줍" : "주지않습") . "니다." : "Now " . ($a ? "" : "not ") . "give the first item");
                     break;
                 case "list":
                 case "l":
                 case "목록":
                     $page = 1;
                     if (isset($sub[0]) && is_numeric($sub[0])) {
                         $page = max(floor($sub[0]), 1);
                     }
                     $list = array_chunk($this->mf["Farm"], 5, true);
                     if ($page >= ($c = count($list))) {
                         $page = $c;
                     }
                     $r = $mm . ($ik ? "마인팜 목록 (페이지" : "MineFarm List (Page") . " {$page}/{$c}) \n";
                     $num = ($page - 1) * 5;
                     if ($c > 0) {
                         foreach ($list[$page - 1] as $v) {
                             $num++;
                             $r .= "  [{$num}] {$v}\n";
                         }
                     }
                     break;
                 case "reset":
                 case "r":
                 case "리셋":
                     $this->mf["Farm"] = [];
                     $this->mf["Invite"] = [];
                     $this->saveYml();
                     if ($this->mf["Auto"]) {
                         foreach ($this->getServer()->getOnlinePlayers() as $p) {
                             if ($this->giveFarm($p)) {
                                 $p->sendMessage("[MineFarm] [Auto] " . ($ik ? "마인팜을 지급받았습니다. : " : "Now you gave minefarm. : ") . $this->getNum($p));
                             }
                         }
                     }
                     $r = $mm . ($ik ? "리셋됨" : "Reset");
                     break;
                 case "trim":
                     $full = count($this->mf["Edge"]);
                     $count = 0;
                     foreach ($this->mf["Edge"] as $k => $v) {
                         if (is_bool($v)) {
                             unset($this->mf["Edge"][$k]);
                             $count++;
                         }
                     }
                     if ($count > 0) {
                         $this->saveYml();
                     }
                     $r = $mm . ($ik ? "필요없는 데이터를 제거했습니다. 갯수 : " : "Delete useless data. Count : ") . $count . " [{$full} => " . count($this->mf["Edge"]) . "]";
                     break;
                 default:
                     return false;
                     break;
             }
             break;
         case "money":
             $mm = "[Money] ";
             $rm = TextFormat::RED . "Usage: /Money ";
             switch ($smd) {
                 case "me":
                 case "my":
                 case "m":
                 case "내돈":
                 case "나":
                     $r = $mm . ($ik ? "나의 돈 : " : "Your Money : ") . $this->getMoney($n) . ($ik ? "원  ,  랭킹 : " : "\$  ,  Rank : ") . $this->getRank($n);
                     break;
                 case "see":
                 case "view":
                 case "v":
                 case "보기":
                     if (!isset($sub[0])) {
                         $r = $rm . ($ik ? "보기 <플레이어명>" : "View(V) <PlayerName>");
                     } elseif (!($p = $this->getPlayer($sub[0]))) {
                         $r = $mm . $sub[0] . ($ik ? "은 잘못된 이름입니다." : " is invalid name");
                     } else {
                         $r = $mm . $p . ($ik ? "의 돈 : " : "'s Money : ") . $this->getMoney($p) . ($ik ? "원  ,  랭킹 : " : "\$  ,  Rank : ") . $this->getRank($p);
                     }
                     break;
                 case "pay":
                 case "p":
                 case "지불":
                     if (!$sender instanceof Player) {
                         $r = $mm . ($ik ? "게임내에서 실행해주세요." : "Please run this command in-game");
                     } elseif (!isset($sub[1])) {
                         $r = $rm . ($ik ? "지불 <플레이어명> <돈> " : "Pay <PlayerName> <Money>");
                     } elseif (!($p = $this->getPlayer($sub[0])) || strtolower($n) == strtolower($sub[0])) {
                         $r = $mm . $sub[0] . ($ik ? "은 잘못된 이름입니다." : " is invalid name");
                     } elseif (!is_numeric($sub[1]) || $sub[1] < 1) {
                         $r = $mm . $sub[1] . ($ik ? "은 잘못된 숫자입니다." : " is invalid number");
                     } elseif (!$this->hasMoney($n, $sub[1])) {
                         $r = $mm . ($ik ? "돈이 {$sub['1']} 보다 부족합니다. (나의 돈 : " : "You don't have {$sub['1']} \$ (You have : ") . $this->getMoney($n) . ($ik ? " 원" : "\$");
                     } else {
                         $sub[1] = $sub[1] < 0 ? 0 : floor($sub[1]);
                         $this->takeMoney($n, $sub[1]);
                         $this->giveMoney($p, $sub[1]);
                         $r = $mm . ($ik ? "당신은 {$sub['1']} 원을  {$p} 님에게 지불햇습니다. " : "You pay {$sub['1']} \$ (To : {$p})");
                         if ($player = $this->getServer()->getPlayerExact($p)) {
                             $player->sendMessage($mm . $n . ($ik ? "님이 당신에게 {$sub['1']} 원을 지불햇습니다. " : "{$n} pay {$sub['2']}\$ to you"));
                         }
                     }
                     break;
                 case "rank":
                 case "r":
                 case "랭킹":
                 case "순위":
                     if (isset($sub[0]) && is_numeric($sub[0]) && $sub[0] > 1) {
                         $r = $this->getRanks(round($sub[0]));
                     } else {
                         $r = $this->getRanks(1);
                     }
                     break;
                 default:
                     return false;
                     break;
             }
             break;
         case "moneyop":
             $mm = "[Money] ";
             $rm = TextFormat::RED . "Usage: /MoneyOP ";
             switch ($smd) {
                 case "set":
                 case "s":
                 case "설정":
                     if (!isset($sub[1])) {
                         $r = $rm . ($ik ? "설정 <플레이어명> <돈>" : "Set(S) <PlayerName> <Money>");
                     } elseif (!($p = $this->getPlayer($sub[0]))) {
                         $r = $mm . $sub[0] . ($ik ? "은 잘못된 이름입니다." : " is invalid name");
                     } elseif (!is_numeric($sub[1]) || $sub[1] < 0) {
                         $r = $mm . $sub[1] . ($ik ? "은 잘못된 숫자입니다." : " is invalid number");
                     } else {
                         $sub[1] = $sub[1] < 0 ? 0 : floor($sub[1]);
                         $this->setMoney($p, $sub[1]);
                         $r = $mm . $p . ($ik ? "의 돈을 {$sub['1']} 원으로 설정했습니다.  " : "'s money is set to {$sub['1']} \$");
                         if ($player = $this->getServer()->getPlayerExact($p)) {
                             $player->sendMessage($mm . ($ik ? "당신의 돈이 어드민에 의해 변경되었습니다. 나의 돈 : " : "Your money is change by admin. Your money : ") . $this->getMoney($p) . ($ik ? "원" : "\$"));
                         }
                     }
                     break;
                 case "give":
                 case "g":
                 case "지급":
                     if (!isset($sub[1])) {
                         $r = $rm . ($ik ? "지급 <플레이어명> <돈>" : "Give(G) <PlayerName> <Money>");
                     } elseif (!($p = $this->getPlayer($sub[0]))) {
                         $r = $mm . $sub[0] . ($ik ? "은 잘못된 이름입니다." : " is invalid name");
                     } elseif (!is_numeric($sub[1]) || $sub[1] < 0) {
                         $r = $mm . $sub[1] . ($ik ? "은 잘못된 숫자입니다." : " is invalid number");
                     } else {
                         $sub[1] = $sub[1] < 0 ? 0 : floor($sub[1]);
                         $this->giveMoney($p, $sub[1]);
                         $r = $mm . ($ik ? "{$p} 님에게 {$sub['1']} 원을 지급햇습니다. " : "Give the {$sub['1']} \$ to {$p}");
                     }
                     break;
                 case "take":
                 case "t":
                 case "뺏기":
                     if (!isset($sub[1])) {
                         $r = $rm . ($ik ? "뺏기 <플레이어명> <돈>" : "Take(T) <PlayerName> <Money>");
                     } elseif (!($p = $this->getPlayer($sub[0]))) {
                         $r = $mm . $sub[0] . ($ik ? "은 잘못된 이름입니다." : " is invalid name");
                     } elseif (!is_numeric($sub[1]) || $sub[1] < 0) {
                         $r = $mm . $sub[1] . ($ik ? "은 잘못된 숫자입니다." : " is invalid number");
                     } else {
                         $sub[1] = $sub[1] < 0 ? 0 : floor($sub[1]);
                         $this->takeMoney($p, $sub[1]);
                         $r = $mm . ($ik ? "{$p} 님에게서 {$sub['1']} 원을 빼앗았습니다. " : "Take the {$sub['1']} \$ to {$p}");
                     }
                     break;
                     break;
                 case "clear":
                 case "c":
                 case "초기화":
                     foreach ($mn["Money"] as $k => $v) {
                         $mn["Money"][$k] = $mn["Default"];
                     }
                     $m = $mm . ($ik ? "모든 플레이어의 돈이 초기화되었습다." : "All Player's money is reset");
                     $c = true;
                     break;
                 case "default":
                 case "d":
                 case "기본":
                     if (!isset($sub[0])) {
                         $r = $rm . ($ik ? "기본 <돈>" : "Defualt(D) <Money>");
                     } elseif (!is_numeric($sub[0]) || $sub[0] < 0) {
                         $r = $mm . $sub[0] . ($ik ? "은 잘못된 숫자입니다." : " is invalid number");
                     } else {
                         $sub[0] = floor($sub[0]);
                         $mn["Default"] = $sub[0];
                         $r = $mm . ($ik ? "기초자금이 {$sub['0']} 로 설정되었습니다." : "Defualt money is set to {$sub['0']} \$");
                         $c = true;
                     }
                     break;
                 case "nick":
                 case "n":
                 case "닉네임":
                     $mn["Nick"] = !$mn["Nick"];
                     $r = $mm . ($ik ? "닉네임 모드를 " . ($mn["Nick"] ? "켭" : "끕") . "니다." : "MickName mode is " . ($mn["Nick"] ? "On" : "Off"));
                     $c = true;
                     break;
                 case "op":
                 case "o":
                 case "오피":
                     $mn["OP"] = !$mn["OP"];
                     $r = $mm . ($ik ? "오피를 랭킹에 포함" . ($mn["OP"] ? "" : "안") . "합니다." : "Show on rank the Op is " . ($mn["OP"] ? "On" : "Off"));
                     $c = true;
                     break;
                 case "trim":
                     $full = count($mn["Money"]);
                     $count = 0;
                     foreach ($mn["Money"] as $k => $v) {
                         if ($mn["Money"][$k] == $mn["Default"] || $this->getServer()->getNameBans()->isBanned($k) || !file_exists($this->getServer()->getDataPath() . "players/" . $k . ".dat")) {
                             unset($mn["Money"][$k]);
                             $count++;
                         }
                     }
                     if ($count > 0) {
                         $c = true;
                     }
                     $r = $mm . ($ik ? "필요없는 데이터를 제거했습니다. 갯수 : " : "Delete useless data. Count : ") . $count . " [{$full} => " . count($mn["Money"]) . "]";
                     break;
                 default:
                     return false;
                     break;
             }
             break;
         case "shop":
             $mm = "[Shop] ";
             $rm = TextFormat::RED . "Usage: /Shop ";
             switch ($smd) {
                 case "add":
                 case "a":
                 case "추가":
                     if (isset($t[$n])) {
                         $r = $mm . ($ik ? "상점 추가 해제" : " Shop Add Touch Disable");
                         unset($t[$n]);
                     } else {
                         if (!isset($sub[3])) {
                             $r = $rm . ($ik ? "추가 <구매|판매> <아이템ID> <갯수> <가격>" : "Add(A) <Buy|Sell> <ItemID> <Amount> <Price>");
                         } else {
                             switch (strtolower($sub[0])) {
                                 case "buy":
                                 case "b":
                                 case "shop":
                                 case "구매":
                                     $mode = "Buy";
                                     break;
                                 case "sell":
                                 case "s":
                                 case "판매":
                                     $mode = "Sell";
                                     break;
                             }
                             $i = Item::fromString($sub[1]);
                             if (!isset($mode)) {
                                 $r = "{$sub['0']} " . ($ik ? "는 잘못된 모드입니다. (구매/판매)" : "is invalid Mode (Buy/Sell)");
                             } elseif ($i->getID() == 0) {
                                 $r = "{$sub['1']} " . ($ik ? "는 잘못된 아이템ID입니다." : "is invalid ItemID");
                             } elseif (!is_numeric($sub[2]) || $sub[2] < 1) {
                                 $r = "{$sub['2']} " . ($ik ? "는 잘못된 갯수입니다." : "is invalid count");
                             } elseif (!is_numeric($sub[3]) || $sub[3] < 0) {
                                 $r = "{$sub['3']} " . ($ik ? "는 잘못된 가격입니다." : "is invalid price");
                             } else {
                                 $id = $i->getID() . ":" . $i->getDamage();
                                 $r = $mm . ($ik ? "대상 블럭을 터치해주세요." : "Touch the target block");
                                 $t[$n] = ["Type" => "Add", "Mode" => $mode, "Item" => $id, "Count" => floor($sub[2]), "Price" => floor($sub[3])];
                             }
                         }
                     }
                     break;
                 case "del":
                 case "d":
                 case "삭제":
                 case "제거":
                     if (isset($t[$n])) {
                         $r = $mm . ($ik ? "상점 제거 해제" : " Shop Del Touch Disable");
                         unset($t[$n]);
                     } else {
                         $r = $mm . ($ik ? "대상 블럭을 터치해주세요. " : "Touch the block");
                         $t[$n] = ["Type" => "Del"];
                     }
                     break;
                 case "reset":
                 case "r":
                 case "리셋":
                 case "초기화":
                     $sh = [];
                     $r = $mm . ($ik ? " 리셋됨." : " Reset");
                     $this->spawnCase();
                     break;
                 default:
                     return false;
                     break;
             }
         case "login":
             if ($this->isLogin($sender)) {
                 $sender->sendMessage($mm . ($ik ? "이미 로그인되었습니다." : "Already logined"));
             } else {
                 $this->login($sender, $smd, false, isset($sub[0]) ? $sub[0] : "");
             }
             break;
         case "register":
             if ($this->isRegister($sender)) {
                 $sender->sendMessage($mm . ($ik ? "이미 가입되었습니다." : "Already registered"));
             } elseif (!isset($sub[0]) || $sub[0] == "" || $smd !== $sub[0]) {
                 return false;
             } elseif (strlen($smd) < 5) {
                 $sender->sendMessage($mm . ($ik ? "비밀번호가 너무 짧습니다." : "Password is too short"));
                 return false;
             } else {
                 $this->register($sender, $smd);
                 if (!$sender->isOp()) {
                     $this->login($sender, $smd);
                 }
             }
             break;
         case "loginop":
             if (isset($sub[0])) {
                 $sub[0] = strtolower($sub[0]);
             }
             switch (strtolower($smd)) {
                 case "del":
                 case "d":
                 case "제거":
                 case "탈퇴":
                     if (!isset($sub[0]) || $sub[0] == "" || !isset($this->lg[$sub[0]])) {
                         $sender->sendMessage($mm . ($ik ? "<플레이어명>을 확인해주세요." : "Please check <PlayerName>"));
                         return false;
                     } else {
                         unset($this->lg[$sub[0]]);
                         $sender->sendMessage($mm . ($ik ? "{$sub['0']} 님의 비밀번호을 제거합니다." : "Delete {$sub['0']} 's password"));
                     }
                     break;
                 case "change":
                 case "c":
                     if (!isset($sub[0]) || $sub[0] == "" || !isset($this->lg[$sub[0]])) {
                         $sender->sendMessage($mm . ($ik ? "<플레이어명>을 확인해주세요." : "Please check <PlayerName>"));
                         return false;
                     } else {
                         $this->lg[$sub[0]]["PW"] = hash("sha256", $sub[1]);
                         $sender->sendMessage($mm . $sub[0] . ($ik ? "님의 비밀번호를 바꿨습니다. : " : "'s Password is changed : ") . "{$sub['1']}");
                     }
                     break;
                 case "reset":
                 case "r":
                 case "리셋":
                 case "초기화":
                     $this->lg = [];
                     $r = $mm . ($ik ? " 리셋됨." : " Reset");
                     break;
                 case "trim":
                     $full = count($list = glob($a = $this->getServer()->getDataPath() . "players/*.dat"));
                     $count = 0;
                     foreach ($list as $v) {
                         if (!isset($this->lg[$n = strtolower(str_replace([$this->getServer()->getDataPath() . "players/", ".dat"], ["", ""], $v))])) {
                             if ($p = $this->getServer()->getPlayerExact($n)) {
                                 $p->close($ik ? "플레이어 데이터 제거" : "Delete player data");
                             }
                             @unlink($v);
                             $count++;
                         }
                     }
                     if ($count > 0) {
                         $c = true;
                     }
                     $r = $mm . ($ik ? "필요없는 데이터를 제거했습니다. 갯수 : " : "Delete useless data. Count : ") . $count . " [{$full} => " . count(glob($this->getServer()->getDataPath() . "/players/*.dat")) . "]";
                     break;
             }
             $this->saveYml();
             break;
     }
     if (isset($r)) {
         $sender->sendMessage($r);
     }
     if (isset($m)) {
         $this->getServer()->broadcastMessage($m);
     }
     if ($c && $this->mn !== $mn) {
         $this->mn = $mn;
     }
     if ($this->sh !== $sh) {
         $this->sh = $sh;
         $this->saveYml();
     }
     $this->touch = $t;
     return true;
 }