60 if(count($args) === 0){
63 $testPermissionCtx = $commandLabel .
" " . $args[0];
64 if(count($args) === 1){
65 switch(strtolower($args[0])){
67 if($this->
testPermission($testPermissionCtx, $sender, DefaultPermissionNames::COMMAND_WHITELIST_RELOAD)){
68 $server = $sender->getServer();
69 $server->getWhitelisted()->reload();
70 if($server->hasWhitelist()){
71 $this->kickNonWhitelistedPlayers($server);
73 Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_whitelist_reloaded());
78 if($this->
testPermission($testPermissionCtx, $sender, DefaultPermissionNames::COMMAND_WHITELIST_ENABLE)){
79 $server = $sender->getServer();
80 $server->getConfigGroup()->setConfigBool(ServerProperties::WHITELIST,
true);
81 $this->kickNonWhitelistedPlayers($server);
82 Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_whitelist_enabled());
87 if($this->
testPermission($testPermissionCtx, $sender, DefaultPermissionNames::COMMAND_WHITELIST_DISABLE)){
88 $sender->getServer()->getConfigGroup()->setConfigBool(ServerProperties::WHITELIST,
false);
89 Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_whitelist_disabled());
94 if($this->
testPermission($testPermissionCtx, $sender, DefaultPermissionNames::COMMAND_WHITELIST_LIST)){
95 $entries = $sender->getServer()->getWhitelisted()->getAll(
true);
96 sort($entries, SORT_STRING);
97 $result = implode(
", ", $entries);
98 $count = (string) count($entries);
100 $sender->sendMessage(KnownTranslationFactory::commands_whitelist_list($count, $count));
101 $sender->sendMessage($result);
107 $sender->sendMessage(KnownTranslationFactory::commands_generic_usage(KnownTranslationFactory::commands_whitelist_add_usage()));
111 $sender->sendMessage(KnownTranslationFactory::commands_generic_usage(KnownTranslationFactory::commands_whitelist_remove_usage()));
114 }elseif(count($args) === 2){
115 if(!Player::isValidUserName($args[1])){
118 switch(strtolower($args[0])){
120 if($this->
testPermission($testPermissionCtx, $sender, DefaultPermissionNames::COMMAND_WHITELIST_ADD)){
121 $sender->getServer()->addWhitelist($args[1]);
122 Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_whitelist_add_success($args[1]));
127 if($this->
testPermission($testPermissionCtx, $sender, DefaultPermissionNames::COMMAND_WHITELIST_REMOVE)){
128 $server = $sender->getServer();
129 $server->removeWhitelist($args[1]);
130 if(!$server->isWhitelisted($args[1])){
131 $server->getPlayerExact($args[1])?->kick(KnownTranslationFactory::pocketmine_disconnect_kick(KnownTranslationFactory::pocketmine_disconnect_whitelisted()));
133 Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_whitelist_remove_success($args[1]));