Пример #1
0
 public function execute(CommandSender $sender, array $args)
 {
     if (!empty($args)) {
         return false;
     }
     $player = $sender->getServer()->getPlayer($sender->getName());
     $levelName = $player->getLevel()->getName();
     if (!$this->getPlugin()->isLevelLoaded($levelName)) {
         $sender->sendMessage(TextFormat::RED . "You are not inside a plot world");
         return true;
     }
     $sender->sendMessage(TextFormat::RED . "Finding a free plot for you");
     if ($this->getPlugin()->getProvider() instanceof \MyPlot\provider\MYSQLDataProvider) {
         $plot = $this->getPlugin()->getPlotByPosition($sender->getPosition());
         $plot = $this->getPlugin()->getProvider()->getNextFreePlot($levelName, 20, $plot->X, $plot->Z);
     } else {
         $plot = $this->getPlugin()->getProvider()->getNextFreePlot($levelName);
     }
     if ($plot !== null) {
         $this->getPlugin()->teleportPlayerToPlot($player, $plot);
         $sender->sendMessage(TextFormat::GREEN . "Teleported to " . TextFormat::WHITE . $plot);
         $sender->sendMessage(TextFormat::GREEN . "If you dont like this plot use the /p auto command again to find another.");
     } else {
         $sender->sendMessage(TextFormat::RED . "No free plots found in this world");
     }
     return true;
 }
Пример #2
0
 public function execute(CommandSender $sender, $label, array $params)
 {
     if (!$this->plugin->isEnabled()) {
         return false;
     }
     if (!$sender instanceof Player) {
         $sender->sendMessage("Please use the command in-game");
         return true;
     }
     if ($sender->hasPermission("hungergames.addlobby")) {
         $this->arenaManager->setLobbySpawn($sender->getPosition());
         return true;
     }
 }
Пример #3
0
 public function onCommand(CommandSender $sender, Command $command, $label, array $args)
 {
     if ($sender instanceof Player) {
         switch ($command->getName()) {
             case "tpaccept":
                 if (in_array($sender->getName(), $this->requests)) {
                     foreach ($this->requests as $requester => $accepter) {
                         if ($accepter === $sender->getName()) {
                             $pos = $sender->getPosition();
                             $sender->sendMessage("§8§l[§bDark§4Realms§8§l]" . TextFormat::GREEN . "TPA request accepted!");
                             $requester = $this->getServer()->getPlayer($requester);
                             $requester->sendMessage("TPA request accepted teleporting in " . $this->config->get("tpdelay") . " secs!");
                             $task = new teleport($this, $sender, $pos);
                             $this->getServer()->getScheduler()->scheduleDelayedTask($task, 20 * $this->getConfig()->get("tpdelay"));
                             $this->removeRequest($requester);
                         }
                     }
                 } else {
                     $sender->sendMessage("No pending tpa requests :(");
                 }
                 break;
             case "tpa":
                 if (isset($args[0])) {
                     $requestp = $this->getServer()->getPlayer($args[0]);
                     if ($requestp instanceof Player) {
                         if ($this->config->get("usefriendapi") == true) {
                             if ($this->friendsapi->isFriend($sender, $requestp->getName())) {
                                 $sender->sendMessage("Sent tpa request!");
                                 $this->addRequest($sender, $requestp);
                             } else {
                                 $sender->sendMessage("You are not friends with this player. :( \nDo /friend add [name] \nto request to be friends");
                             }
                         } else {
                             $sender->sendMessage("Sent tpa request!");
                             $this->addRequest($sender, $requestp);
                         }
                     } else {
                         $sender->sendMessage("§8§l[§bDark§4Realms§8§l] Player not online :(");
                     }
                 } else {
                     $sender->sendMessage("USAGE: /tpa [name]");
                 }
                 break;
         }
     }
 }
Пример #4
0
 public function execute(CommandSender $sender, $label, array $params)
 {
     if (!$this->plugin->isEnabled()) {
         return false;
     }
     if (!$sender instanceof Player) {
         $sender->sendMessage("Please use the command in-game");
         return true;
     }
     if ($sender->hasPermission("hungergames.spawnadd")) {
         //Get location of issuer
         $position = $sender->getPosition();
         //Add spawnpoint where user is standing for Arena(id)
         if (isset($params[0])) {
             $this->arenaManager->addSpawnpoint($position, $sender, $params[0]);
         } else {
             $sender->sendMessage(TextFormat::DARK_BLUE . "[HungerGames]" . TextFormat::WHITE . " Include the id of the arena ");
         }
         return true;
     } else {
         $sender->sendMessage(TextFormat::RED . "[HungerGames] You do not have the permissions to use this command");
     }
 }
Пример #5
0
 public function onCommand(CommandSender $sender, Command $command, $label, array $args)
 {
     switch ($command->getName()) {
         case 'ss':
             switch ($args[0]) {
                 case 'arena':
                     switch ($args[1]) {
                         case 'create':
                             if ($sender instanceof Player) {
                                 $spawn = $sender->getPosition();
                                 $arena = $this->createArena($args[2], $spawn);
                                 if ($arena != false) {
                                     $sender->sendMessage(TextFormat::AQUA . "[SimpleSpleef] " . TextFormat::GOLD . "Created arena " . $args[2]);
                                 } else {
                                     $sender->sendMessage(TextFormat::DARK_RED . "Error while creating the arena.");
                                 }
                             }
                             return true;
                             break;
                         case 'edit':
                             switch ($args[2]) {
                                 case 'spawn':
                                     if ($sender instanceof Player) {
                                         $arena = $this->getArenaByName($args[3]);
                                         if ($arena instanceof Arena) {
                                             $arena->setSpawn($sender->getPosition());
                                             $sender->sendMessage(TextFormat::AQUA . "[SimpleSpleef] " . TextFormat::GOLD . "Set new arena spawn.");
                                         }
                                     }
                                     return true;
                                     break;
                                 case 'state':
                                     if ($sender instanceof Player) {
                                         $arena = $this->getArenaByName($args[3]);
                                         if ($arena instanceof Arena) {
                                             if ($arena->enabled == false) {
                                                 $arena->enabled = true;
                                                 $sender->sendMessage(TextFormat::AQUA . "[SimpleSpleef] " . TextFormat::GOLD . "Enabled arena.");
                                             } else {
                                                 $arena->enabled = false;
                                                 $sender->sendMessage(TextFormat::AQUA . "[SimpleSpleef] " . TextFormat::GOLD . "Disabled arena.");
                                             }
                                         }
                                     }
                                     return true;
                                     break;
                                 case 'floor':
                                     if ($sender instanceof Player) {
                                         $arena = $this->getArenaByName($args[3]);
                                         if ($arena instanceof Arena) {
                                             $arena->setFloor($sender->getPosition()->getFloorY());
                                             $sender->sendMessage(TextFormat::AQUA . "[SimpleSpleef] " . TextFormat::GOLD . "Set arena floor.");
                                         }
                                     }
                                     return true;
                                     break;
                                 case 'start':
                                     if ($sender instanceof Player) {
                                         $arena = $this->getArenaByName($args[3]);
                                         if ($arena instanceof Arena) {
                                             $arena->second = 1;
                                             $sender->sendMessage(TextFormat::AQUA . "[SimpleSpleef] " . TextFormat::GOLD . "Started arena " . $arena->getArenaName());
                                         }
                                     }
                                     break;
                                 case 'stop':
                                     if ($sender instanceof Player) {
                                         $arena = $this->getArenaByName($args[3]);
                                         if ($arena instanceof Arena) {
                                             $arena->resetArena();
                                             $sender->sendMessage(TextFormat::AQUA . "[SimpleSpleef] " . TextFormat::GOLD . "Stopped arena " . $arena->getArenaName());
                                         }
                                     }
                                     break;
                             }
                             break;
                     }
                     break;
             }
             break;
         case 'spleef':
             if ($sender instanceof Player) {
                 switch ($args[0]) {
                     case 'join':
                         $arena = $this->getArenaByName($args[1]);
                         if ($arena instanceof Arena and isset($sender->arena) == false) {
                             $arena->addPlayer($sender);
                         } else {
                             $sender->sendMessage(TextFormat::AQUA . "[SimpleSpleef] " . TextFormat::GOLD . "You're already in an arena.");
                         }
                         return true;
                         break;
                     case 'leave':
                         $arena = $sender->arena;
                         if (!isset($sender->arena)) {
                             $sender->sendMessage(TextFormat::AQUA . "[SimpleSpleef] " . TextFormat::GOLD . "You're not in an arena.");
                         } else {
                             if ($arena instanceof Arena) {
                                 $arena->removePlayer($sender);
                             }
                         }
                         return true;
                         break;
                 }
             } else {
                 $sender->sendMessage(TextFormat::RED . "Please run this command in-game.");
             }
             break;
     }
 }
Пример #6
0
 public function onCommand(CommandSender $sender, Command $cmd, $label, array $args)
 {
     switch ($cmd->getName()) {
         case "xyz":
             if ($sender instanceof Player) {
                 $pos = $sender->getPosition();
                 $sender->sendMessage(mc::_("You are at %1%,%2%,%3%", intval($pos->getX()), intval($pos->getY()), intval($pos->getZ())));
             } else {
                 $sender->sendMessage(TextFormat::RED . mc::_("[SignWarp] This command may only be used in-game"));
             }
             return true;
     }
     return false;
 }
Пример #7
0
 public function onCommand(CommandSender $i, Command $cmd, $label, array $sub)
 {
     $output = "[EntityManager]";
     switch (array_shift($sub)) {
         case "remove":
             if (!$i->hasPermission("entitymanager.command.remove")) {
                 $i->sendMessage(TextFormat::RED . "You do not have permission to use this command");
                 return true;
             }
             if (isset($sub[0])) {
                 $level = $this->getServer()->getLevelByName($sub[0]);
             } else {
                 $level = $i instanceof Player ? $i->getLevel() : null;
             }
             self::clear([BaseEntity::class, Projectile::class, ItemEntity::class], $level);
             $output .= "All spawned entities were removed";
             break;
         case "check":
             if (!$i->hasPermission("entitymanager.command.check")) {
                 $i->sendMessage(TextFormat::RED . "You do not have permission to use this command");
                 return true;
             }
             $mob = 0;
             $animal = 0;
             $item = 0;
             $projectile = 0;
             $other = 0;
             if (isset($sub[0])) {
                 $level = $this->getServer()->getLevelByName($sub[0]);
             } else {
                 $level = $i instanceof Player ? $i->getLevel() : $this->getServer()->getDefaultLevel();
             }
             foreach ($level->getEntities() as $id => $ent) {
                 if ($ent instanceof Monster) {
                     $mob++;
                 } elseif ($ent instanceof Animal) {
                     $animal++;
                 } elseif ($ent instanceof ItemEntity) {
                     $item++;
                 } elseif ($ent instanceof Projectile) {
                     $projectile++;
                 } elseif (!$ent instanceof Player) {
                     $other++;
                 }
             }
             $output = "--- All entities in Level \"{$level->getName()}\" ---\n";
             $output .= TextFormat::YELLOW . "Monster: {$mob}\n";
             $output .= TextFormat::YELLOW . "Animal: {$animal}\n";
             $output .= TextFormat::YELLOW . "Items: {$item}\n";
             $output .= TextFormat::YELLOW . "Projectiles: {$projectile}\n";
             $output .= TextFormat::YELLOW . "Others: {$other}\n";
             break;
         case "create":
             if (!$i->hasPermission("entitymanager.command.create")) {
                 $i->sendMessage(TextFormat::RED . "You do not have permission to use this command");
                 return true;
             }
             if (!isset($sub[0]) or !is_numeric($sub[0]) and gettype($sub[0]) !== "string") {
                 $output .= "Entity's name is incorrect";
                 break;
             }
             $pos = null;
             if (count($sub) >= 4) {
                 $level = $this->getServer()->getDefaultLevel();
                 if (isset($sub[4]) && ($k = $this->getServer()->getLevelByName($sub[4]))) {
                     $level = $k;
                 } elseif ($i instanceof Player) {
                     $level = $i->getLevel();
                 }
                 $pos = new Position($sub[1], $sub[2], $sub[3], $level);
             } elseif ($i instanceof Player) {
                 $pos = $i->getPosition();
             }
             if ($pos == null) {
                 $output .= "usage: /{$label} create <id/name> (x) (y) (z) (level)";
                 break;
             }
             $entity = self::create($sub[0], $pos);
             if ($entity == null) {
                 $output .= "An error occurred while summoning entity";
                 break;
             }
             $entity->spawnToAll();
             break;
         default:
             $output .= "usage: /{$label} <remove/check/create>";
             break;
     }
     $i->sendMessage($output);
     return true;
 }
Пример #8
0
 public function onCommand(CommandSender $i, Command $cmd, $label, array $sub)
 {
     $output = "[WorldEditor]";
     if (!$i instanceof Player) {
         return true;
     }
     switch ($cmd->getName()) {
         case "/pos1":
             $pos = $i->floor();
             self::$pos[$i->getName()][0] = $pos;
             $output .= "Pos1 지점을 선택했어요 ({$pos->x}, {$pos->y}, {$pos->z})";
             break;
         case "/pos2":
             $pos = $i->floor();
             self::$pos[$i->getName()][1] = $pos;
             $output .= "Pos2 지점을 선택했어요 ({$pos->x}, {$pos->y}, {$pos->z})";
             break;
         case "/set":
             if (!isset($sub[0])) {
                 $output .= "사용법: //set <id[:meta]>";
                 break;
             }
             if (!isset(self::$pos[$i->getName()]) or count(self::$pos[$i->getName()]) < 2) {
                 $output .= "지역을 먼저 설정해주세요";
                 break;
             }
             $set = explode(":", $sub[0]);
             $block = self::$pos[$i->getName()];
             $endX = max($block[0]->x, $block[1]->x);
             $endY = max($block[0]->y, $block[1]->y);
             $endZ = max($block[0]->z, $block[1]->z);
             $startX = min($block[0]->x, $block[1]->x);
             $startY = min($block[0]->y, $block[1]->y);
             $startZ = min($block[0]->z, $block[1]->z);
             $output .= "블럭 설정을 시작했어요";
             if ($this->getData("debug", false)) {
                 self::core()->getLogger()->info("[WorldEditor]{$i->getName()}님이 블럭설정을 시작했어요");
             }
             $callback = "setBlock";
             $params = [$startX, $startY, $startZ, $endX, $endY, $endZ, Block::get($set[0], isset($set[1]) ? $set[1] : 0, $i->getPosition()), $i];
             break;
         case "/replace":
             if (!isset($sub[0]) or !isset($sub[1])) {
                 $output .= "사용법: //replace <(선택)id[:meta]> <(바꿀)id[:meta>]";
                 break;
             }
             if (!isset(self::$pos[$i->getName()]) or count(self::$pos[$i->getName()]) < 2) {
                 $output .= "지역을 먼저 설정해주세요";
                 break;
             }
             $get = explode(":", $sub[0]);
             $set = explode(":", $sub[1]);
             $block = self::$pos[$i->getName()];
             $endX = max($block[0]->x, $block[1]->x);
             $endY = max($block[0]->y, $block[1]->y);
             $endZ = max($block[0]->z, $block[1]->z);
             $startX = min($block[0]->x, $block[1]->x);
             $startY = min($block[0]->y, $block[1]->y);
             $startZ = min($block[0]->z, $block[1]->z);
             $output .= "블럭 변경을 시작했어요";
             if ($this->getData("debug", false)) {
                 self::core()->getLogger()->info("[WorldEditor]{$i->getName()}님이 블럭변경을 시작했어요");
             }
             $callback = "replaceBlock";
             $params = [$startX, $startY, $startZ, $endX, $endY, $endZ, Block::get($get[0], isset($get[1]) ? $get[1] : 0, $i->getPosition()), Block::get($set[0], isset($set[1]) ? $set[1] : 0, $i->getPosition()), $i];
             break;
         case "/undo":
             if (!isset(self::$pos[$i->getName()]) or count(self::$pos[$i->getName()]) < 2) {
                 $output .= "지역을 먼저 설정해주세요";
                 break;
             }
             $block = self::$pos[$i->getName()];
             $endX = max($block[0]->x, $block[1]->x);
             $endY = max($block[0]->y, $block[1]->y);
             $endZ = max($block[0]->z, $block[1]->z);
             $startX = min($block[0]->x, $block[1]->x);
             $startY = min($block[0]->y, $block[1]->y);
             $startZ = min($block[0]->z, $block[1]->z);
             $output .= "블럭을 되돌리는 중입니다";
             if ($this->getData("debug", false)) {
                 self::core()->getLogger()->info("[WorldEditor]{$i->getName()}님이 블럭을 복구하기 시작했어요");
             }
             $callback = "undoBlock";
             $params = [$startX, $startY, $startZ, $endX, $endY, $endZ, $i];
             break;
         case "/redo":
             if (!isset(self::$pos[$i->getName()]) or count(self::$pos[$i->getName()]) < 2) {
                 $output .= "지역을 먼저 설정해주세요";
                 break;
             }
             $block = self::$pos[$i->getName()];
             $endX = max($block[0]->x, $block[1]->x);
             $endY = max($block[0]->y, $block[1]->y);
             $endZ = max($block[0]->z, $block[1]->z);
             $startX = min($block[0]->x, $block[1]->x);
             $startY = min($block[0]->y, $block[1]->y);
             $startZ = min($block[0]->z, $block[1]->z);
             $output .= "블럭 설정을 시작했어요";
             if ($this->getData("debug", false)) {
                 self::core()->getLogger()->info("[WorldEditor]{$i->getName()}님이 복구한 블럭을 되돌리기 시작했어요");
             }
             $callback = "redoBlock";
             $params = [$startX, $startY, $startZ, $endX, $endY, $endZ, $i];
             break;
         case "/copy":
             if (!isset(self::$pos[$i->getName()]) or count(self::$pos[$i->getName()]) < 2) {
                 $output .= "지역을 먼저 설정해주세요";
                 break;
             }
             $block = self::$pos[$i->getName()];
             $endX = max($block[0]->x, $block[1]->x);
             $endY = max($block[0]->y, $block[1]->y);
             $endZ = max($block[0]->z, $block[1]->z);
             $startX = min($block[0]->x, $block[1]->x);
             $startY = min($block[0]->y, $block[1]->y);
             $startZ = min($block[0]->z, $block[1]->z);
             $output .= "블럭 복사를 시작했어요";
             if ($this->getData("debug", false)) {
                 self::core()->getLogger()->info("[WorldEditor]{$i->getName()}님이 블럭 복사를 시작했어요");
             }
             $this->copyBlock($startX, $startY, $startZ, $endX, $endY, $endZ, $i);
             break;
         case "/paste":
             $output .= "블럭 붙여넣기를 시작했어요";
             if ($this->getData("debug", false)) {
                 self::core()->getLogger()->info("[WorldEditor]{$i->getName()}님이 블럭 붙여넣기를 시작했어요");
             }
             $callback = "pasteBlock";
             $params = [$i->floor(), $i];
             break;
         case "/cut":
             if (!isset(self::$pos[$i->getName()]) or count(self::$pos[$i->getName()]) < 2) {
                 $output .= "지역을 먼저 설정해주세요";
                 break;
             }
             $block = self::$pos[$i->getName()];
             $endX = max($block[0]->x, $block[1]->x);
             $endY = max($block[0]->y, $block[1]->y);
             $endZ = max($block[0]->z, $block[1]->z);
             $startX = min($block[0]->x, $block[1]->x);
             $startY = min($block[0]->y, $block[1]->y);
             $startZ = min($block[0]->z, $block[1]->z);
             $output .= "블럭 복사를 시작했어요";
             if ($this->getData("debug", false)) {
                 self::core()->getLogger()->info("[WorldEditor]{$i->getName()}님이 블럭 복사를 시작했어요");
             }
             $callback = "cutBlock";
             $params = [$startX, $startY, $startZ, $endX, $endY, $endZ, $i];
             break;
     }
     if ($output !== "[WorldEditor]") {
         $i->sendMessage($output);
     }
     if (isset($callback) && isset($params) && is_array($params)) {
         $this->{$callback}(...$params);
     }
     return true;
 }
Пример #9
0
 public function onCommand(CommandSender $i, Command $cmd, $label, array $sub)
 {
     $output = "[EntityManager]";
     switch ($cmd->getName()) {
         case "제거":
             if (isset($sub[0])) {
                 $level = $this->getServer()->getLevelByName($sub[0]);
             } else {
                 $level = $i instanceof Player ? $i->getLevel() : null;
             }
             self::clearEntity($level, [BaseEntity::class, Projectile::class, ItemEntity::class]);
             $output .= "소환된 엔티티를 모두 제거했어요";
             break;
         case "체크":
             $mob = [];
             $animal = [];
             $item = [];
             $projectile = [];
             if (isset($sub[0])) {
                 $level = $this->getServer()->getLevelByName($sub[0]);
             } else {
                 $level = $i instanceof Player ? $i->getLevel() : $this->getServer()->getDefaultLevel();
             }
             foreach ($level->getEntities() as $id => $ent) {
                 if ($ent instanceof Monster) {
                     $mob[$id] = $ent;
                 } elseif ($ent instanceof Animal) {
                     $animal[$id] = $ent;
                 } elseif ($ent instanceof ItemEntity) {
                     $item[$id] = $ent;
                 } elseif ($ent instanceof Projectile) {
                     $projectile[$id] = $ent;
                 }
             }
             $output = "--- Level \"{$level->getName()}\" 에 있는 엔티티 ---\n";
             $output .= TextFormat::YELLOW . "Monster: " . count($mob) . "\n";
             $output .= TextFormat::YELLOW . "Animal: " . count($animal) . "\n";
             $output .= TextFormat::YELLOW . "Items: " . count($item) . "\n";
             $output .= TextFormat::YELLOW . "Projectiles: " . count($projectile) . "\n";
             break;
         case "스폰":
             if (!is_numeric($sub[0]) and gettype($sub[0]) !== "string") {
                 $output .= "엔티티 이름이 올바르지 않아요";
                 break;
             }
             if (count($sub) >= 4) {
                 $level = $this->getServer()->getDefaultLevel();
                 if (isset($sub[4]) && ($k = $this->getServer()->getLevelByName($sub[4]))) {
                     $level = $k;
                 } elseif ($i instanceof Player) {
                     $level = $i->getLevel();
                 }
                 $pos = new Position($sub[1], $sub[2], $sub[3], $level);
             } elseif ($i instanceof Player) {
                 $pos = $i->getPosition();
             }
             if (!isset($pos) || self::createEntity($sub[0], $pos) == null) {
                 $output .= "사용법: /스폰 <id|name> (x) (y) (z) (level)";
             }
             break;
     }
     $i->sendMessage($output);
     return true;
 }