Example #1
0
 /**
  * @param string $name
  * @param Plugin $owner
  */
 public function __construct($name, Plugin $owner)
 {
     parent::__construct($name);
     $this->owningPlugin = $owner;
     $this->executor = $owner;
     $this->usageMessage = "";
 }
 public function execute(CommandSender $sender, $currentAlias, array $args)
 {
     if (!$this->testPermission($sender)) {
         return true;
     }
     if (count($args) !== 1) {
         $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
         return false;
     }
     $difficulty = Server::getDifficultyFromString($args[0]);
     if ($sender->getServer()->isHardcore()) {
         $difficulty = 3;
     }
     if ($difficulty !== -1) {
         $sender->getServer()->setConfigInt("difficulty", $difficulty);
         $pk = new SetDifficultyPacket();
         $pk->difficulty = $sender->getServer()->getDifficulty();
         Server::broadcastPacket($sender->getServer()->getOnlinePlayers(), $pk);
         Command::broadcastCommandMessage($sender, new TranslationContainer("commands.difficulty.success", [$difficulty]));
     } else {
         $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
         return false;
     }
     return true;
 }
Example #3
0
 public function execute(CommandSender $sender, $currentAlias, array $args)
 {
     if (!$this->testPermission($sender)) {
         return true;
     }
     if (count($args) === 0 or count($args) > 2) {
         $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
         return true;
     }
     if (count($args) === 1) {
         if ($this->badPerm($sender, strtolower($args[0]))) {
             return false;
         }
         switch (strtolower($args[0])) {
             case "reload":
                 $sender->getServer()->reloadWhitelist();
                 Command::broadcastCommandMessage($sender, new TranslationContainer("commands.whitelist.reloaded"));
                 return true;
             case "on":
                 $sender->getServer()->setConfigBool("white-list", true);
                 Command::broadcastCommandMessage($sender, new TranslationContainer("commands.whitelist.enabled"));
                 return true;
             case "off":
                 $sender->getServer()->setConfigBool("white-list", false);
                 Command::broadcastCommandMessage($sender, new TranslationContainer("commands.whitelist.disabled"));
                 return true;
             case "list":
                 $result = "";
                 $count = 0;
                 foreach ($sender->getServer()->getWhitelisted()->getAll(true) as $player) {
                     $result .= $player . ", ";
                     ++$count;
                 }
                 $sender->sendMessage(new TranslationContainer("commands.whitelist.list", [$count, $count]));
                 $sender->sendMessage(substr($result, 0, -2));
                 return true;
             case "add":
                 $sender->sendMessage(new TranslationContainer("commands.generic.usage", ["%commands.whitelist.add.usage"]));
                 return true;
             case "remove":
                 $sender->sendMessage(new TranslationContainer("commands.generic.usage", ["%commands.whitelist.remove.usage"]));
                 return true;
         }
     } elseif (count($args) === 2) {
         if ($this->badPerm($sender, strtolower($args[0]))) {
             return false;
         }
         switch (strtolower($args[0])) {
             case "add":
                 $sender->getServer()->getOfflinePlayer($args[1])->setWhitelisted(true);
                 Command::broadcastCommandMessage($sender, new TranslationContainer("commands.whitelist.add.success", [$args[1]]));
                 return true;
             case "remove":
                 $sender->getServer()->getOfflinePlayer($args[1])->setWhitelisted(false);
                 Command::broadcastCommandMessage($sender, new TranslationContainer("commands.whitelist.remove.success", [$args[1]]));
                 return true;
         }
     }
     return true;
 }
Example #4
0
 public function execute(CommandSender $sender, $currentAlias, array $args)
 {
     if (!$this->testPermission($sender)) {
         return true;
     }
     if (count($args) === 0) {
         $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
         return false;
     }
     $value = array_shift($args);
     $reason = implode(" ", $args);
     if (preg_match("/^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\$/", $value)) {
         $this->processIPBan($value, $sender, $reason);
         Command::broadcastCommandMessage($sender, new TranslationContainer("commands.banip.success", [$value]));
     } else {
         if (($player = $sender->getServer()->getPlayer($value)) instanceof Player) {
             $this->processIPBan($player->getAddress(), $sender, $reason);
             Command::broadcastCommandMessage($sender, new TranslationContainer("commands.banip.success.players", [$player->getAddress(), $player->getName()]));
         } else {
             $sender->sendMessage(new TranslationContainer("commands.banip.invalid"));
             return false;
         }
     }
     return true;
 }
Example #5
0
 public function execute(CommandSender $sender, $currentAlias, array $args)
 {
     if (!$this->testPermission($sender)) {
         return true;
     }
     $sender->getServer()->setAutoSave(true);
     Command::broadcastCommandMessage($sender, new TranslationContainer("commands.save.enabled"));
     return true;
 }
Example #6
0
 public function execute(CommandSender $sender, $currentAlias, array $args)
 {
     if (!$this->testPermission($sender)) {
         return true;
     }
     if (count($args) > 2 || count($args) === 0) {
         $sender->sendMessage(new TranslationContainer("commands.weather.usage", [$this->usageMessage]));
         return false;
     }
     if (count($args) > 1) {
         $seconds = (int) $args[1];
     } else {
         $seconds = 600 * 20;
     }
     if ($sender instanceof Player) {
         $level = $sender->getLevel();
     } else {
         $level = $sender->getServer()->getDefaultLevel();
     }
     if ($args[0] === "clear") {
         if (!$sender->hasPermission("BukkitPE.command.weather.clear")) {
             $sender->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.generic.permission"));
             return true;
         }
         $level->setWeather(Level::WEATHER_CLEARSKY);
         Command::broadcastCommandMessage($sender, new TranslationContainer("commands.weather.clear"));
         return true;
     } elseif ($args[0] === "rain") {
         if (!$sender->hasPermission("BukkitPE.command.weather.rain")) {
             $sender->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.generic.permission"));
             return true;
         }
         if (isset($args[1]) and is_numeric($args[1]) and $args[1] > 0) {
             $time = $args[1];
         } else {
             $time = 120;
         }
         $level->setWeather(Level::WEATHER_RAIN, $time);
         Command::broadcastCommandMessage($sender, new TranslationContainer("commands.weather.rain"));
         return true;
     } elseif ($args[0] === "thunder") {
         if (!$sender->hasPermission("BukkitPE.command.weather.thunder")) {
             $sender->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.generic.permission"));
             return true;
         }
         //WEATHER TODO : THUNDER
         //$level->setThundering(true);
         //$level->setRainTime($seconds * 20);
         //$level->setThunderTime($seconds * 20);
         Command::broadcastCommandMessage($sender, "WIP");
         return true;
     } else {
         $sender->sendMessage(new TranslationContainer("commands.weather.usage", [$this->usageMessage]));
         return false;
     }
 }
Example #7
0
 public function execute(CommandSender $sender, $currentAlias, array $args)
 {
     if (!$this->testPermission($sender)) {
         return true;
     }
     Command::broadcastCommandMessage($sender, new TranslationContainer(TextFormat::YELLOW . "%BukkitPE.command.reload.reloading"));
     $sender->getServer()->reload();
     Command::broadcastCommandMessage($sender, new TranslationContainer(TextFormat::YELLOW . "%BukkitPE.command.reload.reloaded"));
     return true;
 }
Example #8
0
 public function execute(CommandSender $sender, $currentAlias, array $args)
 {
     if (!$this->testPermission($sender)) {
         return true;
     }
     Command::broadcastCommandMessage($sender, new TranslationContainer("commands.stop.start"));
     $sender->getServer()->setshutdownreason(implode(" ", $args));
     $sender->getServer()->shutdown();
     return true;
 }
Example #9
0
 public function execute(CommandSender $sender, $currentAlias, array $args)
 {
     if (!$this->testPermission($sender)) {
         return true;
     }
     if (count($args) !== 1) {
         $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
         return false;
     }
     $sender->getServer()->getNameBans()->remove($args[0]);
     Command::broadcastCommandMessage($sender, new TranslationContainer("commands.unban.success", [$args[0]]));
     return true;
 }
Example #10
0
 public function execute(CommandSender $sender, $currentAlias, array $args)
 {
     if (!$this->testPermission($sender)) {
         return true;
     }
     Command::broadcastCommandMessage($sender, new TranslationContainer("commands.save.start"));
     foreach ($sender->getServer()->getOnlinePlayers() as $player) {
         $player->save();
     }
     foreach ($sender->getServer()->getLevels() as $level) {
         $level->save(true);
     }
     Command::broadcastCommandMessage($sender, new TranslationContainer("commands.save.success"));
     return true;
 }
Example #11
0
 public function execute(CommandSender $sender, $currentAlias, array $args)
 {
     if (!$this->testPermission($sender)) {
         return true;
     }
     if (count($args) !== 1) {
         $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
         return false;
     }
     if (preg_match("/^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\$/", $args[0])) {
         $sender->getServer()->getIPBans()->remove($args[0]);
         Command::broadcastCommandMessage($sender, new TranslationContainer("commands.unbanip.success", [$args[0]]));
     } else {
         $sender->sendMessage(new TranslationContainer("commands.unbanip.invalid"));
     }
     return true;
 }
Example #12
0
 public function execute(CommandSender $sender, $currentAlias, array $args)
 {
     if (!$this->testPermission($sender)) {
         return true;
     }
     $cmd = '';
     $player = null;
     $amount = '-1';
     if (isset($args[0])) {
         $cmd = $args[0];
     }
     if (isset($args[1])) {
         $player = $sender->getServer()->getPlayer($args[1]);
     }
     if (isset($args[2])) {
         $amount = $args[2];
     }
     switch ($cmd) {
         case "add":
             if ($player instanceof Player) {
                 if ($amount <= 0) {
                     break;
                 } else {
                     $player->addExperience($amount);
                     Command::broadcastCommandMessage($sender, new TranslationContainer("commands.xp.given", [$amount, $player->getName()]));
                 }
                 return;
             }
             $sender->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.generic.player.notFound"));
             return;
         case "set":
             if ($player instanceof Player) {
                 if ($amount < 0) {
                     break;
                 } else {
                     $player->setExperience($amount);
                     Command::broadcastCommandMessage($sender, new TranslationContainer("commands.xp.set", [$amount, $player->getName()]));
                 }
                 return;
             }
             $sender->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.generic.player.notFound"));
             return;
     }
     $sender->sendMessage(TextFormat::RED . "Usage: " . $this->usageMessage);
     return;
 }
Example #13
0
 public function execute(CommandSender $sender, $currentAlias, array $args)
 {
     if (!$this->testPermission($sender)) {
         return true;
     }
     if (count($args) >= 2) {
         $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
         return false;
     }
     if (count($args) === 1) {
         if (!$sender->hasPermission("BukkitPE.command.kill.other")) {
             $sender->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.generic.permission"));
             return true;
         }
         $player = $sender->getServer()->getPlayer($args[0]);
         if ($player instanceof Player) {
             $sender->getServer()->getPluginManager()->callEvent($ev = new EntityDamageEvent($player, EntityDamageEvent::CAUSE_SUICIDE, 1000));
             if ($ev->isCancelled()) {
                 return true;
             }
             $player->setLastDamageCause($ev);
             $player->setHealth(0);
             Command::broadcastCommandMessage($sender, new TranslationContainer("commands.kill.successful", [$player->getName()]));
         } else {
             $sender->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.generic.player.notFound"));
         }
         return true;
     }
     if ($sender instanceof Player) {
         if (!$sender->hasPermission("BukkitPE.command.kill.self")) {
             $sender->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.generic.permission"));
             return true;
         }
         $sender->getServer()->getPluginManager()->callEvent($ev = new EntityDamageEvent($sender, EntityDamageEvent::CAUSE_SUICIDE, 1000));
         if ($ev->isCancelled()) {
             return true;
         }
         $sender->setLastDamageCause($ev);
         $sender->setHealth(0);
         $sender->sendMessage(new TranslationContainer("commands.kill.successful", [$sender->getName()]));
     } else {
         $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
         return false;
     }
     return true;
 }
Example #14
0
 public function execute(CommandSender $sender, $currentAlias, array $args)
 {
     if (!$this->testPermission($sender)) {
         return true;
     }
     $target = null;
     if (count($args) === 0) {
         if ($sender instanceof Player) {
             $target = $sender;
         } else {
             $sender->sendMessage(TextFormat::RED . "Please provide a player!");
             return true;
         }
     } else {
         $target = $sender->getServer()->getPlayer($args[0]);
         if ($target === null) {
             $sender->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.generic.player.notFound"));
             return true;
         }
     }
     $level = $target->getLevel();
     if (count($args) === 4) {
         if ($level !== null) {
             $pos = $sender instanceof Player ? $sender->getPosition() : $level->getSpawnLocation();
             $x = (int) $this->getRelativeDouble($pos->x, $sender, $args[1]);
             $y = $this->getRelativeDouble($pos->y, $sender, $args[2], 0, 128);
             $z = $this->getRelativeDouble($pos->z, $sender, $args[3]);
             $target->setSpawn(new Position($x, $y, $z, $level));
             Command::broadcastCommandMessage($sender, new TranslationContainer("commands.spawnpoint.success", [$target->getName(), round($x, 2), round($y, 2), round($z, 2)]));
             return true;
         }
     } elseif (count($args) <= 1) {
         if ($sender instanceof Player) {
             $pos = new Position((int) $sender->x, (int) $sender->y, (int) $sender->z, $sender->getLevel());
             $target->setSpawn($pos);
             Command::broadcastCommandMessage($sender, new TranslationContainer("commands.spawnpoint.success", [$target->getName(), round($pos->x, 2), round($pos->y, 2), round($pos->z, 2)]));
             return true;
         } else {
             $sender->sendMessage(TextFormat::RED . "Please provide a player!");
             return true;
         }
     }
     $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
     return true;
 }
Example #15
0
 public function execute(CommandSender $sender, $currentAlias, array $args)
 {
     if (!$this->testPermission($sender)) {
         return true;
     }
     if (count($args) === 0) {
         $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
         return false;
     }
     $name = array_shift($args);
     $reason = implode(" ", $args);
     $sender->getServer()->getNameBans()->addBan($name, $reason, null, $sender->getName());
     if (($player = $sender->getServer()->getPlayerExact($name)) instanceof Player) {
         $player->kick($reason !== "" ? "Banned by admin. Reason: " . $reason : "Banned by admin.", false);
     }
     Command::broadcastCommandMessage($sender, new TranslationContainer("%commands.ban.success", [$player !== null ? $player->getName() : $name]));
     return true;
 }
Example #16
0
 public function execute(CommandSender $sender, $currentAlias, array $args)
 {
     if (!$this->testPermission($sender)) {
         return true;
     }
     if (count($args) === 0) {
         $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
         return false;
     }
     $name = array_shift($args);
     $player = $sender->getServer()->getOfflinePlayer($name);
     $player->setOp(false);
     if ($player instanceof Player) {
         $player->sendMessage(TextFormat::RED . "You no longer have administrator privileges!");
     }
     Command::broadcastCommandMessage($sender, new TranslationContainer("commands.deop.success", [$player->getName()]));
     return true;
 }
Example #17
0
 public function execute(CommandSender $sender, $currentAlias, array $args)
 {
     if (!$this->testPermission($sender)) {
         return true;
     }
     if (count($args) < 2) {
         $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
         return true;
     }
     $player = $sender->getServer()->getPlayer($args[0]);
     $item = Item::fromString($args[1]);
     if (!isset($args[2])) {
         $item->setCount($item->getMaxStackSize());
     } else {
         $item->setCount((int) $args[2]);
     }
     if (isset($args[3])) {
         $tags = $exception = null;
         $data = implode(" ", array_slice($args, 3));
         try {
             $tags = NBT::parseJSON($data);
         } catch (\Exception $ex) {
             $exception = $ex;
         }
         if (!$tags instanceof Compound or $exception !== null) {
             $sender->sendMessage(new TranslationContainer("commands.give.tagError", [$exception !== null ? $exception->getMessage() : "Invalid tag conversion"]));
             return true;
         }
         $item->setNamedTag($tags);
     }
     if ($player instanceof Player) {
         if ($item->getId() === 0) {
             $sender->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.give.item.notFound", [$args[1]]));
             return true;
         }
         //TODO: overflow
         $player->getInventory()->addItem(clone $item);
     } else {
         $sender->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.generic.player.notFound"));
         return true;
     }
     Command::broadcastCommandMessage($sender, new TranslationContainer("%commands.give.success", [$item->getName() . " (" . $item->getId() . ":" . $item->getDamage() . ")", (string) $item->getCount(), $player->getName()]));
     return true;
 }
 public function execute(CommandSender $sender, $currentAlias, array $args)
 {
     if (!$this->testPermission($sender)) {
         return true;
     }
     if (count($args) === 0) {
         $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
         return false;
     }
     $gameMode = Server::getGamemodeFromString($args[0]);
     if ($gameMode === -1) {
         $sender->sendMessage("Unknown game mode");
         return true;
     }
     $target = $sender;
     if (isset($args[1])) {
         $target = $sender->getServer()->getPlayer($args[1]);
         if ($target === null) {
             $sender->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.generic.player.notFound"));
             return true;
         }
     } elseif (!$sender instanceof Player) {
         $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
         return true;
     }
     $target->setGamemode($gameMode);
     if ($gameMode !== $target->getGamemode()) {
         $sender->sendMessage("Game mode change for " . $target->getName() . " failed!");
     } else {
         if ($target === $sender) {
             Command::broadcastCommandMessage($sender, new TranslationContainer("commands.gamemode.success.self", [Server::getGamemodeString($gameMode)]));
         } else {
             $target->sendMessage(new TranslationContainer("gameMode.changed"));
             Command::broadcastCommandMessage($sender, new TranslationContainer("commands.gamemode.success.other", [$target->getName(), Server::getGamemodeString($gameMode)]));
         }
     }
     return true;
 }
Example #19
0
 public function execute(CommandSender $sender, $currentAlias, array $args)
 {
     if (!$this->testPermission($sender)) {
         return true;
     }
     if (count($args) === 0) {
         $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
         return false;
     }
     $name = array_shift($args);
     $reason = trim(implode(" ", $args));
     if (($player = $sender->getServer()->getPlayer($name)) instanceof Player) {
         $player->kick($reason);
         if (strlen($reason) >= 1) {
             Command::broadcastCommandMessage($sender, new TranslationContainer("commands.kick.success.reason", [$player->getName(), $reason]));
         } else {
             Command::broadcastCommandMessage($sender, new TranslationContainer("commands.kick.success", [$player->getName()]));
         }
     } else {
         $sender->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.generic.player.notFound"));
     }
     return true;
 }
 public function execute(CommandSender $sender, $currentAlias, array $args)
 {
     if (!$this->testPermission($sender)) {
         return true;
     }
     if (count($args) === 0) {
         if ($sender instanceof Player) {
             $level = $sender->getLevel();
             $pos = (new Vector3($sender->x, $sender->y, $sender->z))->round();
         } else {
             $sender->sendMessage(TextFormat::RED . "You can only perform this command as a player");
             return true;
         }
     } elseif (count($args) === 3) {
         $level = $sender->getServer()->getDefaultLevel();
         $pos = new Vector3($this->getInteger($sender, $args[0]), $this->getInteger($sender, $args[1]), $this->getInteger($sender, $args[2]));
     } else {
         $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
         return true;
     }
     $level->setSpawnLocation($pos);
     Command::broadcastCommandMessage($sender, new TranslationContainer("commands.setworldspawn.success", [round($pos->x, 2), round($pos->y, 2), round($pos->z, 2)]));
     return true;
 }
Example #21
0
 public function execute(CommandSender $sender, $currentAlias, array $args)
 {
     if (count($args) < 1) {
         $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
         return false;
     }
     if ($args[0] === "start") {
         if (!$sender->hasPermission("BukkitPE.command.time.start")) {
             $sender->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.generic.permission"));
             return true;
         }
         foreach ($sender->getServer()->getLevels() as $level) {
             $level->checkTime();
             $level->startTime();
             $level->checkTime();
         }
         Command::broadcastCommandMessage($sender, "Restarted the time");
         return true;
     } elseif ($args[0] === "stop") {
         if (!$sender->hasPermission("BukkitPE.command.time.stop")) {
             $sender->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.generic.permission"));
             return true;
         }
         foreach ($sender->getServer()->getLevels() as $level) {
             $level->checkTime();
             $level->stopTime();
             $level->checkTime();
         }
         Command::broadcastCommandMessage($sender, "Stopped the time");
         return true;
     } elseif ($args[0] === "query") {
         if (!$sender->hasPermission("BukkitPE.command.time.query")) {
             $sender->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.generic.permission"));
             return true;
         }
         if ($sender instanceof Player) {
             $level = $sender->getLevel();
         } else {
             $level = $sender->getServer()->getDefaultLevel();
         }
         $sender->sendMessage(new TranslationContainer("commands.time.query", [$level->getTime()]));
         return true;
     }
     if (count($args) < 2) {
         $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
         return false;
     }
     if ($args[0] === "set") {
         if (!$sender->hasPermission("BukkitPE.command.time.set")) {
             $sender->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.generic.permission"));
             return true;
         }
         if ($args[1] === "day") {
             $value = 0;
         } elseif ($args[1] === "night") {
             $value = Level::TIME_NIGHT;
         } elseif ($args[1] === "sunrise") {
             $value = Level::TIME_SUNRISE;
         } elseif ($args[1] === "sunset") {
             $value = Level::TIME_SUNSET;
         } else {
             $value = $this->getInteger($sender, $args[1], 0);
         }
         foreach ($sender->getServer()->getLevels() as $level) {
             $level->checkTime();
             $level->setTime($value);
             $level->checkTime();
         }
         Command::broadcastCommandMessage($sender, new TranslationContainer("commands.time.set", [$value]));
     } elseif ($args[0] === "add") {
         if (!$sender->hasPermission("BukkitPE.command.time.add")) {
             $sender->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.generic.permission"));
             return true;
         }
         $value = $this->getInteger($sender, $args[1], 0);
         foreach ($sender->getServer()->getLevels() as $level) {
             $level->checkTime();
             $level->setTime($level->getTime() + $value);
             $level->checkTime();
         }
         Command::broadcastCommandMessage($sender, new TranslationContainer("commands.time.added", [$value]));
     } else {
         $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
     }
     return true;
 }
 /**
  * @param string   $alias
  * @param string[] $formatStrings
  */
 public function __construct($alias, array $formatStrings)
 {
     parent::__construct($alias);
     $this->formatStrings = $formatStrings;
 }
Example #23
0
 private function registerAlias(Command $command, $isAlias, $fallbackPrefix, $label)
 {
     $this->knownCommands[$fallbackPrefix . ":" . $label] = $command;
     if (($command instanceof VanillaCommand or $isAlias) and isset($this->knownCommands[$label])) {
         return false;
     }
     if (isset($this->knownCommands[$label]) and $this->knownCommands[$label]->getLabel() !== null and $this->knownCommands[$label]->getLabel() === $label) {
         return false;
     }
     if (!$isAlias) {
         $command->setLabel($label);
     }
     $this->knownCommands[$label] = $command;
     return true;
 }
Example #24
0
 public function execute(CommandSender $sender, $currentAlias, array $args)
 {
     if (!$this->testPermission($sender)) {
         return true;
     }
     if (count($args) < 1 or count($args) > 6) {
         $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
         return true;
     }
     $target = null;
     $origin = $sender;
     if (count($args) === 1 or count($args) === 3) {
         if ($sender instanceof Player) {
             $target = $sender;
         } else {
             $sender->sendMessage(TextFormat::RED . "Please provide a player!");
             return true;
         }
         if (count($args) === 1) {
             $target = $sender->getServer()->getPlayer($args[0]);
             if ($target === null) {
                 $sender->sendMessage(TextFormat::RED . "Can't find player " . $args[0]);
                 return true;
             }
         }
     } else {
         $target = $sender->getServer()->getPlayer($args[0]);
         if ($target === null) {
             $sender->sendMessage(TextFormat::RED . "Can't find player " . $args[0]);
             return true;
         }
         if (count($args) === 2) {
             $origin = $target;
             $target = $sender->getServer()->getPlayer($args[1]);
             if ($target === null) {
                 $sender->sendMessage(TextFormat::RED . "Can't find player " . $args[1]);
                 return true;
             }
         }
     }
     if (count($args) < 3) {
         $origin->teleport($target);
         Command::broadcastCommandMessage($sender, new TranslationContainer("commands.tp.success", [$origin->getName(), $target->getName()]));
         return true;
     } elseif ($target->getLevel() !== null) {
         if (count($args) === 4 or count($args) === 6) {
             $pos = 1;
         } else {
             $pos = 0;
         }
         $x = $this->getRelativeDouble($target->x, $sender, $args[$pos++]);
         $y = $this->getRelativeDouble($target->y, $sender, $args[$pos++], 0, 128);
         $z = $this->getRelativeDouble($target->z, $sender, $args[$pos++]);
         $yaw = $target->getYaw();
         $pitch = $target->getPitch();
         if (count($args) === 6 or count($args) === 5 and $pos === 3) {
             $yaw = $args[$pos++];
             $pitch = $args[$pos++];
         }
         $target->teleport(new Vector3($x, $y, $z), $yaw, $pitch);
         Command::broadcastCommandMessage($sender, new TranslationContainer("commands.tp.success.coordinates", [$target->getName(), round($x, 2), round($y, 2), round($z, 2)]));
         return true;
     }
     $sender->sendMessage(new TranslationContainer("commands.generic.usage", [$this->usageMessage]));
     return true;
 }
Example #25
0
 public function __construct($name, $description = "", $usageMessage = null, array $aliases = [])
 {
     parent::__construct($name, $description, $usageMessage, $aliases);
 }