private function badPerm(CommandSender $sender, $perm)
 {
     if (!$sender->hasPermission("BukkitPE.command.whitelist.{$perm}")) {
         $sender->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.generic.permission"));
         return true;
     }
     return false;
 }
Beispiel #2
0
 /**
  * @param CommandSender $target
  *
  * @return bool
  */
 public function testPermissionSilent(CommandSender $target)
 {
     if ($this->permission === null or $this->permission === "") {
         return true;
     }
     foreach (explode(";", $this->permission) as $permission) {
         if ($target->hasPermission($permission)) {
             return true;
         }
     }
     return false;
 }
Beispiel #3
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;
 }