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