mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-04-22 00:33:59 +00:00
parent
71c6f69fd3
commit
bb79797b68
@ -30,7 +30,6 @@ use pocketmine\lang\KnownTranslationKeys;
|
||||
use pocketmine\lang\TranslationContainer;
|
||||
use pocketmine\permission\DefaultPermissionNames;
|
||||
use pocketmine\player\Player;
|
||||
use pocketmine\utils\AssumptionFailedError;
|
||||
use function count;
|
||||
use function implode;
|
||||
use function sort;
|
||||
@ -61,33 +60,38 @@ class WhitelistCommand extends VanillaCommand{
|
||||
}
|
||||
|
||||
if(count($args) === 1){
|
||||
if($this->badPerm($sender, strtolower($args[0]))){
|
||||
return false;
|
||||
}
|
||||
switch(strtolower($args[0])){
|
||||
case "reload":
|
||||
$sender->getServer()->getWhitelisted()->reload();
|
||||
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_WHITELIST_RELOADED));
|
||||
if($this->testPermission($sender, DefaultPermissionNames::COMMAND_WHITELIST_RELOAD)){
|
||||
$sender->getServer()->getWhitelisted()->reload();
|
||||
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_WHITELIST_RELOADED));
|
||||
}
|
||||
|
||||
return true;
|
||||
case "on":
|
||||
$sender->getServer()->getConfigGroup()->setConfigBool("white-list", true);
|
||||
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_WHITELIST_ENABLED));
|
||||
if($this->testPermission($sender, DefaultPermissionNames::COMMAND_WHITELIST_ENABLE)){
|
||||
$sender->getServer()->getConfigGroup()->setConfigBool("white-list", true);
|
||||
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_WHITELIST_ENABLED));
|
||||
}
|
||||
|
||||
return true;
|
||||
case "off":
|
||||
$sender->getServer()->getConfigGroup()->setConfigBool("white-list", false);
|
||||
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_WHITELIST_DISABLED));
|
||||
if($this->testPermission($sender, DefaultPermissionNames::COMMAND_WHITELIST_DISABLE)){
|
||||
$sender->getServer()->getConfigGroup()->setConfigBool("white-list", false);
|
||||
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_WHITELIST_DISABLED));
|
||||
}
|
||||
|
||||
return true;
|
||||
case "list":
|
||||
$entries = $sender->getServer()->getWhitelisted()->getAll(true);
|
||||
sort($entries, SORT_STRING);
|
||||
$result = implode(", ", $entries);
|
||||
$count = count($entries);
|
||||
if($this->testPermission($sender, DefaultPermissionNames::COMMAND_WHITELIST_LIST)){
|
||||
$entries = $sender->getServer()->getWhitelisted()->getAll(true);
|
||||
sort($entries, SORT_STRING);
|
||||
$result = implode(", ", $entries);
|
||||
$count = count($entries);
|
||||
|
||||
$sender->sendMessage(new TranslationContainer(KnownTranslationKeys::COMMANDS_WHITELIST_LIST, [$count, $count]));
|
||||
$sender->sendMessage($result);
|
||||
$sender->sendMessage(new TranslationContainer(KnownTranslationKeys::COMMANDS_WHITELIST_LIST, [$count, $count]));
|
||||
$sender->sendMessage($result);
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
@ -100,21 +104,22 @@ class WhitelistCommand extends VanillaCommand{
|
||||
return true;
|
||||
}
|
||||
}elseif(count($args) === 2){
|
||||
if($this->badPerm($sender, strtolower($args[0]))){
|
||||
return false;
|
||||
}
|
||||
if(!Player::isValidUserName($args[1])){
|
||||
throw new InvalidCommandSyntaxException();
|
||||
}
|
||||
switch(strtolower($args[0])){
|
||||
case "add":
|
||||
$sender->getServer()->addWhitelist($args[1]);
|
||||
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_WHITELIST_ADD_SUCCESS, [$args[1]]));
|
||||
if($this->testPermission($sender, DefaultPermissionNames::COMMAND_WHITELIST_ADD)){
|
||||
$sender->getServer()->addWhitelist($args[1]);
|
||||
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_WHITELIST_ADD_SUCCESS, [$args[1]]));
|
||||
}
|
||||
|
||||
return true;
|
||||
case "remove":
|
||||
$sender->getServer()->removeWhitelist($args[1]);
|
||||
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_WHITELIST_REMOVE_SUCCESS, [$args[1]]));
|
||||
if($this->testPermission($sender, DefaultPermissionNames::COMMAND_WHITELIST_REMOVE)){
|
||||
$sender->getServer()->removeWhitelist($args[1]);
|
||||
Command::broadcastCommandMessage($sender, new TranslationContainer(KnownTranslationKeys::COMMANDS_WHITELIST_REMOVE_SUCCESS, [$args[1]]));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -122,19 +127,4 @@ class WhitelistCommand extends VanillaCommand{
|
||||
|
||||
throw new InvalidCommandSyntaxException();
|
||||
}
|
||||
|
||||
private function badPerm(CommandSender $sender, string $subcommand) : bool{
|
||||
$permission = [
|
||||
"reload" => DefaultPermissionNames::COMMAND_WHITELIST_RELOAD,
|
||||
"on" => DefaultPermissionNames::COMMAND_WHITELIST_ENABLE,
|
||||
"off" => DefaultPermissionNames::COMMAND_WHITELIST_DISABLE,
|
||||
"list" => DefaultPermissionNames::COMMAND_WHITELIST_LIST,
|
||||
"add" => DefaultPermissionNames::COMMAND_WHITELIST_ADD,
|
||||
"remove" => DefaultPermissionNames::COMMAND_WHITELIST_REMOVE
|
||||
][$subcommand] ?? null;
|
||||
if($permission === null){
|
||||
throw new AssumptionFailedError("Unknown subcommand $subcommand");
|
||||
}
|
||||
return !$this->testPermission($sender, $permission);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user