setPermission("pocketmine.command.whitelist.reload;pocketmine.command.whitelist.enable;pocketmine.command.whitelist.disable;pocketmine.command.whitelist.list;pocketmine.command.whitelist.add;pocketmine.command.whitelist.remove"); } public function execute(CommandSender $sender, string $commandLabel, array $args){ if(!$this->testPermission($sender)){ return true; } if(count($args) === 0 or count($args) > 2){ throw new InvalidCommandSyntaxException(); } 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": $entries = $sender->getServer()->getWhitelisted()->getAll(true); $result = implode($entries, ", "); $count = count($entries); $sender->sendMessage(new TranslationContainer("commands.whitelist.list", [$count, $count])); $sender->sendMessage($result); 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; } private function badPerm(CommandSender $sender, string $perm) : bool{ if(!$sender->hasPermission("pocketmine.command.whitelist.$perm")){ $sender->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.generic.permission")); return true; } return false; } }