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