From aa1ad27ad8a81ab28a21273940fb99a2e8e9fcff Mon Sep 17 00:00:00 2001 From: Hugo_ <55756021+Dhaiven@users.noreply.github.com> Date: Thu, 20 Feb 2025 10:49:01 +0100 Subject: [PATCH 01/14] Remove string for permission --- src/command/ClosureCommand.php | 3 +- src/command/Command.php | 32 +++++++++---------- src/command/defaults/BanCommand.php | 3 +- src/command/defaults/BanIpCommand.php | 3 +- src/command/defaults/BanListCommand.php | 3 +- src/command/defaults/ClearCommand.php | 8 +++-- .../defaults/DefaultGamemodeCommand.php | 3 +- src/command/defaults/DeopCommand.php | 3 +- src/command/defaults/DifficultyCommand.php | 3 +- src/command/defaults/DumpMemoryCommand.php | 3 +- src/command/defaults/EffectCommand.php | 7 ++-- src/command/defaults/EnchantCommand.php | 7 ++-- src/command/defaults/GamemodeCommand.php | 7 ++-- .../defaults/GarbageCollectorCommand.php | 3 +- src/command/defaults/GiveCommand.php | 7 ++-- src/command/defaults/HelpCommand.php | 3 +- src/command/defaults/KickCommand.php | 3 +- src/command/defaults/KillCommand.php | 8 +++-- src/command/defaults/ListCommand.php | 3 +- src/command/defaults/MeCommand.php | 3 +- src/command/defaults/OpCommand.php | 3 +- src/command/defaults/PardonCommand.php | 3 +- src/command/defaults/PardonIpCommand.php | 3 +- src/command/defaults/ParticleCommand.php | 3 +- src/command/defaults/PluginsCommand.php | 3 +- src/command/defaults/SaveCommand.php | 3 +- src/command/defaults/SaveOffCommand.php | 3 +- src/command/defaults/SaveOnCommand.php | 3 +- src/command/defaults/SayCommand.php | 3 +- src/command/defaults/SeedCommand.php | 3 +- src/command/defaults/SetWorldSpawnCommand.php | 3 +- src/command/defaults/SpawnpointCommand.php | 7 ++-- src/command/defaults/StatusCommand.php | 3 +- src/command/defaults/StopCommand.php | 3 +- src/command/defaults/TeleportCommand.php | 7 ++-- src/command/defaults/TellCommand.php | 3 +- src/command/defaults/TimeCommand.php | 21 ++++++------ src/command/defaults/TimingsCommand.php | 3 +- src/command/defaults/TitleCommand.php | 7 ++-- .../defaults/TransferServerCommand.php | 3 +- src/command/defaults/VanillaCommand.php | 3 +- src/command/defaults/VersionCommand.php | 3 +- src/command/defaults/WhitelistCommand.php | 25 ++++++++------- src/command/defaults/XpCommand.php | 7 ++-- src/network/mcpe/NetworkSession.php | 5 +-- src/permission/Permissible.php | 8 ++--- src/permission/PermissibleDelegateTrait.php | 16 +++++----- src/permission/PermissibleInternal.php | 25 ++++++--------- src/player/Player.php | 6 ++-- 49 files changed, 174 insertions(+), 129 deletions(-) diff --git a/src/command/ClosureCommand.php b/src/command/ClosureCommand.php index 289c82853ec..38c7e291171 100644 --- a/src/command/ClosureCommand.php +++ b/src/command/ClosureCommand.php @@ -24,6 +24,7 @@ namespace pocketmine\command; use pocketmine\lang\Translatable; +use pocketmine\permission\Permission; use pocketmine\utils\Utils; /** @@ -34,7 +35,7 @@ final class ClosureCommand extends Command{ private \Closure $execute; /** - * @param string[] $permissions + * @param Permission[] $permissions * @phpstan-param Execute $execute */ public function __construct( diff --git a/src/command/Command.php b/src/command/Command.php index 99b0451c053..f80e019dc89 100644 --- a/src/command/Command.php +++ b/src/command/Command.php @@ -29,12 +29,12 @@ use pocketmine\command\utils\CommandException; use pocketmine\lang\KnownTranslationFactory; use pocketmine\lang\Translatable; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\Permission; use pocketmine\Server; use pocketmine\utils\BroadcastLoggerForwarder; use pocketmine\utils\TextFormat; +use pocketmine\utils\Utils; use function array_values; -use function explode; use function implode; use function str_replace; @@ -63,7 +63,7 @@ abstract class Command{ protected Translatable|string $usageMessage; - /** @var string[] */ + /** @var Permission[] */ private array $permission = []; private Translatable|string|null $permissionMessage = null; @@ -93,30 +93,30 @@ public function getName() : string{ } /** - * @return string[] + * @return Permission[] */ public function getPermissions() : array{ return $this->permission; } /** - * @param string[] $permissions + * @param Permission[] $permissions */ public function setPermissions(array $permissions) : void{ - $permissionManager = PermissionManager::getInstance(); - foreach($permissions as $perm){ - if($permissionManager->getPermission($perm) === null){ - throw new \InvalidArgumentException("Cannot use non-existing permission \"$perm\""); - } - } + Utils::validateArrayValueType($permissions, function (Permission $permission): void{}); $this->permission = $permissions; } - public function setPermission(?string $permission) : void{ - $this->setPermissions($permission === null ? [] : explode(";", $permission)); + public function setPermission(?Permission $permission) : void{ + $permissions = []; + if ($permission !== null){ + $permissions = $this->permission; + $permissions[] = $permission; + } + $this->setPermissions($permissions); } - public function testPermission(CommandSender $target, ?string $permission = null) : bool{ + public function testPermission(CommandSender $target, ?Permission $permission = null) : bool{ if($this->testPermissionSilent($target, $permission)){ return true; } @@ -125,13 +125,13 @@ public function testPermission(CommandSender $target, ?string $permission = null if($message instanceof Translatable){ $target->sendMessage($message->prefix(TextFormat::RED)); }elseif($message !== ""){ - $target->sendMessage(str_replace("", $permission ?? implode(";", $this->permission), $message)); + $target->sendMessage(str_replace("", $permission?->getName() ?? implode(";", $this->permission), $message)); } return false; } - public function testPermissionSilent(CommandSender $target, ?string $permission = null) : bool{ + public function testPermissionSilent(CommandSender $target, ?Permission $permission = null) : bool{ $list = $permission !== null ? [$permission] : $this->permission; foreach($list as $p){ if($target->hasPermission($p)){ diff --git a/src/command/defaults/BanCommand.php b/src/command/defaults/BanCommand.php index adbdb6d3adc..d29e21d5ecb 100644 --- a/src/command/defaults/BanCommand.php +++ b/src/command/defaults/BanCommand.php @@ -28,6 +28,7 @@ use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\KnownTranslationFactory; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; use pocketmine\player\Player; use function array_shift; use function count; @@ -41,7 +42,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_ban_player_description(), KnownTranslationFactory::commands_ban_usage() ); - $this->setPermission(DefaultPermissionNames::COMMAND_BAN_PLAYER); + $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_BAN_PLAYER)); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/BanIpCommand.php b/src/command/defaults/BanIpCommand.php index a23477e0d77..0205b05911a 100644 --- a/src/command/defaults/BanIpCommand.php +++ b/src/command/defaults/BanIpCommand.php @@ -28,6 +28,7 @@ use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\KnownTranslationFactory; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; use pocketmine\player\Player; use function array_shift; use function count; @@ -42,7 +43,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_ban_ip_description(), KnownTranslationFactory::commands_banip_usage() ); - $this->setPermission(DefaultPermissionNames::COMMAND_BAN_IP); + $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_BAN_IP)); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/BanListCommand.php b/src/command/defaults/BanListCommand.php index 95c21496962..789bcba6331 100644 --- a/src/command/defaults/BanListCommand.php +++ b/src/command/defaults/BanListCommand.php @@ -28,6 +28,7 @@ use pocketmine\lang\KnownTranslationFactory; use pocketmine\permission\BanEntry; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; use function array_map; use function count; use function implode; @@ -43,7 +44,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_banlist_description(), KnownTranslationFactory::commands_banlist_usage() ); - $this->setPermission(DefaultPermissionNames::COMMAND_BAN_LIST); + $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_BAN_LIST)); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/ClearCommand.php b/src/command/defaults/ClearCommand.php index f6f491fbfad..daa2f465f8c 100644 --- a/src/command/defaults/ClearCommand.php +++ b/src/command/defaults/ClearCommand.php @@ -33,6 +33,7 @@ use pocketmine\item\StringToItemParser; use pocketmine\lang\KnownTranslationFactory; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; use pocketmine\utils\TextFormat; use function count; use function min; @@ -45,7 +46,10 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_clear_description(), KnownTranslationFactory::pocketmine_command_clear_usage() ); - $this->setPermissions([DefaultPermissionNames::COMMAND_CLEAR_SELF, DefaultPermissionNames::COMMAND_CLEAR_OTHER]); + $this->setPermissions([ + PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_CLEAR_SELF), + PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_CLEAR_OTHER) + ]); } public function execute(CommandSender $sender, string $commandLabel, array $args){ @@ -53,7 +57,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args throw new InvalidCommandSyntaxException(); } - $target = $this->fetchPermittedPlayerTarget($sender, $args[0] ?? null, DefaultPermissionNames::COMMAND_CLEAR_SELF, DefaultPermissionNames::COMMAND_CLEAR_OTHER); + $target = $this->fetchPermittedPlayerTarget($sender, $args[0] ?? null, PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_CLEAR_SELF), PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_CLEAR_OTHER)); if($target === null){ return true; } diff --git a/src/command/defaults/DefaultGamemodeCommand.php b/src/command/defaults/DefaultGamemodeCommand.php index d3030eb27b3..f00cda8a237 100644 --- a/src/command/defaults/DefaultGamemodeCommand.php +++ b/src/command/defaults/DefaultGamemodeCommand.php @@ -27,6 +27,7 @@ use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\KnownTranslationFactory; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; use pocketmine\player\GameMode; use pocketmine\ServerProperties; use function count; @@ -39,7 +40,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_defaultgamemode_description(), KnownTranslationFactory::commands_defaultgamemode_usage() ); - $this->setPermission(DefaultPermissionNames::COMMAND_DEFAULTGAMEMODE); + $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_DEFAULTGAMEMODE)); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/DeopCommand.php b/src/command/defaults/DeopCommand.php index 4167012f765..d8fe1f7c87d 100644 --- a/src/command/defaults/DeopCommand.php +++ b/src/command/defaults/DeopCommand.php @@ -28,6 +28,7 @@ use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\KnownTranslationFactory; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; use pocketmine\player\Player; use pocketmine\utils\TextFormat; use function array_shift; @@ -41,7 +42,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_deop_description(), KnownTranslationFactory::commands_deop_usage() ); - $this->setPermission(DefaultPermissionNames::COMMAND_OP_TAKE); + $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_OP_TAKE)); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/DifficultyCommand.php b/src/command/defaults/DifficultyCommand.php index dee75e025e8..2bd0e52b366 100644 --- a/src/command/defaults/DifficultyCommand.php +++ b/src/command/defaults/DifficultyCommand.php @@ -28,6 +28,7 @@ use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\KnownTranslationFactory; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; use pocketmine\ServerProperties; use pocketmine\world\World; use function count; @@ -40,7 +41,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_difficulty_description(), KnownTranslationFactory::commands_difficulty_usage() ); - $this->setPermission(DefaultPermissionNames::COMMAND_DIFFICULTY); + $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_DIFFICULTY)); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/DumpMemoryCommand.php b/src/command/defaults/DumpMemoryCommand.php index 08dc0debae8..3ff0651a1a0 100644 --- a/src/command/defaults/DumpMemoryCommand.php +++ b/src/command/defaults/DumpMemoryCommand.php @@ -26,6 +26,7 @@ use pocketmine\command\CommandSender; use pocketmine\lang\KnownTranslationFactory; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; use Symfony\Component\Filesystem\Path; use function date; @@ -37,7 +38,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_dumpmemory_description(), "/dumpmemory [path]" ); - $this->setPermission(DefaultPermissionNames::COMMAND_DUMPMEMORY); + $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_DUMPMEMORY)); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/EffectCommand.php b/src/command/defaults/EffectCommand.php index 93832322290..b229805808f 100644 --- a/src/command/defaults/EffectCommand.php +++ b/src/command/defaults/EffectCommand.php @@ -29,6 +29,7 @@ use pocketmine\entity\effect\StringToEffectParser; use pocketmine\lang\KnownTranslationFactory; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; use pocketmine\utils\Limits; use pocketmine\utils\TextFormat; use function count; @@ -43,8 +44,8 @@ public function __construct(){ KnownTranslationFactory::commands_effect_usage() ); $this->setPermissions([ - DefaultPermissionNames::COMMAND_EFFECT_SELF, - DefaultPermissionNames::COMMAND_EFFECT_OTHER + PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_EFFECT_SELF), + PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_EFFECT_OTHER) ]); } @@ -53,7 +54,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args throw new InvalidCommandSyntaxException(); } - $player = $this->fetchPermittedPlayerTarget($sender, $args[0], DefaultPermissionNames::COMMAND_EFFECT_SELF, DefaultPermissionNames::COMMAND_EFFECT_OTHER); + $player = $this->fetchPermittedPlayerTarget($sender, $args[0], PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_EFFECT_SELF), PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_EFFECT_OTHER)); if($player === null){ return true; } diff --git a/src/command/defaults/EnchantCommand.php b/src/command/defaults/EnchantCommand.php index 191a146b036..eb40e02f189 100644 --- a/src/command/defaults/EnchantCommand.php +++ b/src/command/defaults/EnchantCommand.php @@ -30,6 +30,7 @@ use pocketmine\item\enchantment\StringToEnchantmentParser; use pocketmine\lang\KnownTranslationFactory; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; use function count; class EnchantCommand extends VanillaCommand{ @@ -41,8 +42,8 @@ public function __construct(){ KnownTranslationFactory::commands_enchant_usage() ); $this->setPermissions([ - DefaultPermissionNames::COMMAND_ENCHANT_SELF, - DefaultPermissionNames::COMMAND_ENCHANT_OTHER + PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_ENCHANT_SELF), + PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_ENCHANT_OTHER) ]); } @@ -51,7 +52,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args throw new InvalidCommandSyntaxException(); } - $player = $this->fetchPermittedPlayerTarget($sender, $args[0], DefaultPermissionNames::COMMAND_ENCHANT_SELF, DefaultPermissionNames::COMMAND_ENCHANT_OTHER); + $player = $this->fetchPermittedPlayerTarget($sender, $args[0], PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_ENCHANT_SELF), PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_ENCHANT_OTHER)); if($player === null){ return true; } diff --git a/src/command/defaults/GamemodeCommand.php b/src/command/defaults/GamemodeCommand.php index 666626a692d..4f2a7a7663f 100644 --- a/src/command/defaults/GamemodeCommand.php +++ b/src/command/defaults/GamemodeCommand.php @@ -28,6 +28,7 @@ use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\KnownTranslationFactory; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; use pocketmine\player\GameMode; use function count; @@ -40,8 +41,8 @@ public function __construct(){ KnownTranslationFactory::commands_gamemode_usage() ); $this->setPermissions([ - DefaultPermissionNames::COMMAND_GAMEMODE_SELF, - DefaultPermissionNames::COMMAND_GAMEMODE_OTHER + PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_GAMEMODE_SELF), + PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_GAMEMODE_OTHER) ]); } @@ -56,7 +57,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args return true; } - $target = $this->fetchPermittedPlayerTarget($sender, $args[1] ?? null, DefaultPermissionNames::COMMAND_GAMEMODE_SELF, DefaultPermissionNames::COMMAND_GAMEMODE_OTHER); + $target = $this->fetchPermittedPlayerTarget($sender, $args[1] ?? null, PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_GAMEMODE_SELF), PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_GAMEMODE_OTHER)); if($target === null){ return true; } diff --git a/src/command/defaults/GarbageCollectorCommand.php b/src/command/defaults/GarbageCollectorCommand.php index 7bd64666f1d..f0d17347ac7 100644 --- a/src/command/defaults/GarbageCollectorCommand.php +++ b/src/command/defaults/GarbageCollectorCommand.php @@ -26,6 +26,7 @@ use pocketmine\command\CommandSender; use pocketmine\lang\KnownTranslationFactory; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; use pocketmine\utils\TextFormat; use function count; use function memory_get_usage; @@ -39,7 +40,7 @@ public function __construct(){ "gc", KnownTranslationFactory::pocketmine_command_gc_description() ); - $this->setPermission(DefaultPermissionNames::COMMAND_GC); + $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_GC)); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/GiveCommand.php b/src/command/defaults/GiveCommand.php index 72d33688b0e..b7bab94929f 100644 --- a/src/command/defaults/GiveCommand.php +++ b/src/command/defaults/GiveCommand.php @@ -34,6 +34,7 @@ use pocketmine\nbt\NbtDataException; use pocketmine\nbt\NbtException; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; use pocketmine\utils\TextFormat; use function array_slice; use function count; @@ -48,8 +49,8 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_give_usage() ); $this->setPermissions([ - DefaultPermissionNames::COMMAND_GIVE_SELF, - DefaultPermissionNames::COMMAND_GIVE_OTHER + PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_GIVE_SELF), + PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_GIVE_OTHER) ]); } @@ -58,7 +59,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args throw new InvalidCommandSyntaxException(); } - $player = $this->fetchPermittedPlayerTarget($sender, $args[0], DefaultPermissionNames::COMMAND_GIVE_SELF, DefaultPermissionNames::COMMAND_GIVE_OTHER); + $player = $this->fetchPermittedPlayerTarget($sender, $args[0], PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_GIVE_SELF), PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_GIVE_OTHER)); if($player === null){ return true; } diff --git a/src/command/defaults/HelpCommand.php b/src/command/defaults/HelpCommand.php index 487c915f288..06e502d872f 100644 --- a/src/command/defaults/HelpCommand.php +++ b/src/command/defaults/HelpCommand.php @@ -28,6 +28,7 @@ use pocketmine\lang\KnownTranslationFactory; use pocketmine\lang\Translatable; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; use pocketmine\utils\TextFormat; use function array_chunk; use function array_pop; @@ -51,7 +52,7 @@ public function __construct(){ KnownTranslationFactory::commands_help_usage(), ["?"] ); - $this->setPermission(DefaultPermissionNames::COMMAND_HELP); + $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_HELP)); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/KickCommand.php b/src/command/defaults/KickCommand.php index 3d63e8bb33d..180b13d896b 100644 --- a/src/command/defaults/KickCommand.php +++ b/src/command/defaults/KickCommand.php @@ -28,6 +28,7 @@ use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\KnownTranslationFactory; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; use pocketmine\player\Player; use pocketmine\utils\TextFormat; use function array_shift; @@ -43,7 +44,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_kick_description(), KnownTranslationFactory::commands_kick_usage() ); - $this->setPermission(DefaultPermissionNames::COMMAND_KICK); + $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_KICK)); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/KillCommand.php b/src/command/defaults/KillCommand.php index fbc7436902d..47be077b2fe 100644 --- a/src/command/defaults/KillCommand.php +++ b/src/command/defaults/KillCommand.php @@ -29,6 +29,7 @@ use pocketmine\event\entity\EntityDamageEvent; use pocketmine\lang\KnownTranslationFactory; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; use function count; class KillCommand extends VanillaCommand{ @@ -40,7 +41,10 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_kill_usage(), ["suicide"] ); - $this->setPermissions([DefaultPermissionNames::COMMAND_KILL_SELF, DefaultPermissionNames::COMMAND_KILL_OTHER]); + $this->setPermissions([ + PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_KILL_SELF), + PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_KILL_OTHER) + ]); } public function execute(CommandSender $sender, string $commandLabel, array $args){ @@ -48,7 +52,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args throw new InvalidCommandSyntaxException(); } - $player = $this->fetchPermittedPlayerTarget($sender, $args[0] ?? null, DefaultPermissionNames::COMMAND_KILL_SELF, DefaultPermissionNames::COMMAND_KILL_OTHER); + $player = $this->fetchPermittedPlayerTarget($sender, $args[0] ?? null, PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_KILL_SELF), PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_KILL_OTHER)); if($player === null){ return true; } diff --git a/src/command/defaults/ListCommand.php b/src/command/defaults/ListCommand.php index 0264a2ef4fe..a4542e0bac8 100644 --- a/src/command/defaults/ListCommand.php +++ b/src/command/defaults/ListCommand.php @@ -26,6 +26,7 @@ use pocketmine\command\CommandSender; use pocketmine\lang\KnownTranslationFactory; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; use pocketmine\player\Player; use function array_filter; use function array_map; @@ -41,7 +42,7 @@ public function __construct(){ "list", KnownTranslationFactory::pocketmine_command_list_description() ); - $this->setPermission(DefaultPermissionNames::COMMAND_LIST); + $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_LIST)); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/MeCommand.php b/src/command/defaults/MeCommand.php index a6708840c3d..fbc7a5a5939 100644 --- a/src/command/defaults/MeCommand.php +++ b/src/command/defaults/MeCommand.php @@ -27,6 +27,7 @@ use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\KnownTranslationFactory; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; use pocketmine\player\Player; use pocketmine\utils\TextFormat; use function count; @@ -40,7 +41,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_me_description(), KnownTranslationFactory::commands_me_usage() ); - $this->setPermission(DefaultPermissionNames::COMMAND_ME); + $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_ME)); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/OpCommand.php b/src/command/defaults/OpCommand.php index bcd11935117..e535a8e8640 100644 --- a/src/command/defaults/OpCommand.php +++ b/src/command/defaults/OpCommand.php @@ -28,6 +28,7 @@ use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\KnownTranslationFactory; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; use pocketmine\player\Player; use pocketmine\utils\TextFormat; use function array_shift; @@ -41,7 +42,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_op_description(), KnownTranslationFactory::commands_op_usage() ); - $this->setPermission(DefaultPermissionNames::COMMAND_OP_GIVE); + $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_OP_GIVE)); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/PardonCommand.php b/src/command/defaults/PardonCommand.php index 425b9e69f1d..ba0f01c6c5f 100644 --- a/src/command/defaults/PardonCommand.php +++ b/src/command/defaults/PardonCommand.php @@ -28,6 +28,7 @@ use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\KnownTranslationFactory; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; use function count; class PardonCommand extends VanillaCommand{ @@ -39,7 +40,7 @@ public function __construct(){ KnownTranslationFactory::commands_unban_usage(), ["unban"] ); - $this->setPermission(DefaultPermissionNames::COMMAND_UNBAN_PLAYER); + $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_UNBAN_PLAYER)); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/PardonIpCommand.php b/src/command/defaults/PardonIpCommand.php index 65bed221b06..69852c125b5 100644 --- a/src/command/defaults/PardonIpCommand.php +++ b/src/command/defaults/PardonIpCommand.php @@ -28,6 +28,7 @@ use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\KnownTranslationFactory; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; use function count; use function inet_pton; @@ -40,7 +41,7 @@ public function __construct(){ KnownTranslationFactory::commands_unbanip_usage(), ["unban-ip"] ); - $this->setPermission(DefaultPermissionNames::COMMAND_UNBAN_IP); + $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_UNBAN_IP)); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/ParticleCommand.php b/src/command/defaults/ParticleCommand.php index f20d47ccc3e..2d298e858c1 100644 --- a/src/command/defaults/ParticleCommand.php +++ b/src/command/defaults/ParticleCommand.php @@ -32,6 +32,7 @@ use pocketmine\lang\KnownTranslationFactory; use pocketmine\math\Vector3; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; use pocketmine\player\Player; use pocketmine\utils\Random; use pocketmine\utils\TextFormat; @@ -80,7 +81,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_particle_description(), KnownTranslationFactory::pocketmine_command_particle_usage() ); - $this->setPermission(DefaultPermissionNames::COMMAND_PARTICLE); + $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_PARTICLE)); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/PluginsCommand.php b/src/command/defaults/PluginsCommand.php index d68fcbb01aa..b9ea3d592d2 100644 --- a/src/command/defaults/PluginsCommand.php +++ b/src/command/defaults/PluginsCommand.php @@ -26,6 +26,7 @@ use pocketmine\command\CommandSender; use pocketmine\lang\KnownTranslationFactory; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; use pocketmine\plugin\Plugin; use pocketmine\utils\TextFormat; use function array_map; @@ -43,7 +44,7 @@ public function __construct(){ null, ["pl"] ); - $this->setPermission(DefaultPermissionNames::COMMAND_PLUGINS); + $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_PLUGINS)); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/SaveCommand.php b/src/command/defaults/SaveCommand.php index 4e406e6a3ce..5303d4152df 100644 --- a/src/command/defaults/SaveCommand.php +++ b/src/command/defaults/SaveCommand.php @@ -27,6 +27,7 @@ use pocketmine\command\CommandSender; use pocketmine\lang\KnownTranslationFactory; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; use function microtime; use function round; @@ -37,7 +38,7 @@ public function __construct(){ "save-all", KnownTranslationFactory::pocketmine_command_save_description() ); - $this->setPermission(DefaultPermissionNames::COMMAND_SAVE_PERFORM); + $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_SAVE_PERFORM)); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/SaveOffCommand.php b/src/command/defaults/SaveOffCommand.php index 73b8ca1517d..714e18e9b43 100644 --- a/src/command/defaults/SaveOffCommand.php +++ b/src/command/defaults/SaveOffCommand.php @@ -27,6 +27,7 @@ use pocketmine\command\CommandSender; use pocketmine\lang\KnownTranslationFactory; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; class SaveOffCommand extends VanillaCommand{ @@ -35,7 +36,7 @@ public function __construct(){ "save-off", KnownTranslationFactory::pocketmine_command_saveoff_description() ); - $this->setPermission(DefaultPermissionNames::COMMAND_SAVE_DISABLE); + $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_SAVE_DISABLE)); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/SaveOnCommand.php b/src/command/defaults/SaveOnCommand.php index f0a324aebe0..7e45e845a50 100644 --- a/src/command/defaults/SaveOnCommand.php +++ b/src/command/defaults/SaveOnCommand.php @@ -27,6 +27,7 @@ use pocketmine\command\CommandSender; use pocketmine\lang\KnownTranslationFactory; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; class SaveOnCommand extends VanillaCommand{ @@ -35,7 +36,7 @@ public function __construct(){ "save-on", KnownTranslationFactory::pocketmine_command_saveon_description() ); - $this->setPermission(DefaultPermissionNames::COMMAND_SAVE_ENABLE); + $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_SAVE_ENABLE)); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/SayCommand.php b/src/command/defaults/SayCommand.php index 5c3203b5f07..a71566a7032 100644 --- a/src/command/defaults/SayCommand.php +++ b/src/command/defaults/SayCommand.php @@ -28,6 +28,7 @@ use pocketmine\console\ConsoleCommandSender; use pocketmine\lang\KnownTranslationFactory; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; use pocketmine\player\Player; use pocketmine\utils\TextFormat; use function count; @@ -41,7 +42,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_say_description(), KnownTranslationFactory::commands_say_usage() ); - $this->setPermission(DefaultPermissionNames::COMMAND_SAY); + $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_SAY)); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/SeedCommand.php b/src/command/defaults/SeedCommand.php index 6b426bd45ed..49ad3e06abe 100644 --- a/src/command/defaults/SeedCommand.php +++ b/src/command/defaults/SeedCommand.php @@ -26,6 +26,7 @@ use pocketmine\command\CommandSender; use pocketmine\lang\KnownTranslationFactory; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; use pocketmine\player\Player; class SeedCommand extends VanillaCommand{ @@ -35,7 +36,7 @@ public function __construct(){ "seed", KnownTranslationFactory::pocketmine_command_seed_description() ); - $this->setPermission(DefaultPermissionNames::COMMAND_SEED); + $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_SEED)); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/SetWorldSpawnCommand.php b/src/command/defaults/SetWorldSpawnCommand.php index f251ab8a445..83a5f35984a 100644 --- a/src/command/defaults/SetWorldSpawnCommand.php +++ b/src/command/defaults/SetWorldSpawnCommand.php @@ -29,6 +29,7 @@ use pocketmine\lang\KnownTranslationFactory; use pocketmine\math\Vector3; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; use pocketmine\player\Player; use pocketmine\utils\TextFormat; use pocketmine\world\World; @@ -42,7 +43,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_setworldspawn_description(), KnownTranslationFactory::commands_setworldspawn_usage() ); - $this->setPermission(DefaultPermissionNames::COMMAND_SETWORLDSPAWN); + $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_SETWORLDSPAWN)); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/SpawnpointCommand.php b/src/command/defaults/SpawnpointCommand.php index 614a749d534..f85b12eccf7 100644 --- a/src/command/defaults/SpawnpointCommand.php +++ b/src/command/defaults/SpawnpointCommand.php @@ -28,6 +28,7 @@ use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\KnownTranslationFactory; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; use pocketmine\player\Player; use pocketmine\world\Position; use pocketmine\world\World; @@ -43,13 +44,13 @@ public function __construct(){ KnownTranslationFactory::commands_spawnpoint_usage() ); $this->setPermissions([ - DefaultPermissionNames::COMMAND_SPAWNPOINT_SELF, - DefaultPermissionNames::COMMAND_SPAWNPOINT_OTHER + PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_SPAWNPOINT_SELF), + PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_SPAWNPOINT_OTHER) ]); } public function execute(CommandSender $sender, string $commandLabel, array $args){ - $target = $this->fetchPermittedPlayerTarget($sender, $args[0] ?? null, DefaultPermissionNames::COMMAND_SPAWNPOINT_SELF, DefaultPermissionNames::COMMAND_SPAWNPOINT_OTHER); + $target = $this->fetchPermittedPlayerTarget($sender, $args[0] ?? null, PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_SPAWNPOINT_SELF), PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_SPAWNPOINT_OTHER)); if($target === null){ return true; } diff --git a/src/command/defaults/StatusCommand.php b/src/command/defaults/StatusCommand.php index 033a2f2607a..b09c5618e1b 100644 --- a/src/command/defaults/StatusCommand.php +++ b/src/command/defaults/StatusCommand.php @@ -26,6 +26,7 @@ use pocketmine\command\CommandSender; use pocketmine\lang\KnownTranslationFactory; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; use pocketmine\utils\Process; use pocketmine\utils\TextFormat; use function count; @@ -41,7 +42,7 @@ public function __construct(){ "status", KnownTranslationFactory::pocketmine_command_status_description() ); - $this->setPermission(DefaultPermissionNames::COMMAND_STATUS); + $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_STATUS)); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/StopCommand.php b/src/command/defaults/StopCommand.php index bc4eef91cb6..6c248c3e434 100644 --- a/src/command/defaults/StopCommand.php +++ b/src/command/defaults/StopCommand.php @@ -27,6 +27,7 @@ use pocketmine\command\CommandSender; use pocketmine\lang\KnownTranslationFactory; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; class StopCommand extends VanillaCommand{ @@ -35,7 +36,7 @@ public function __construct(){ "stop", KnownTranslationFactory::pocketmine_command_stop_description() ); - $this->setPermission(DefaultPermissionNames::COMMAND_STOP); + $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_STOP)); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/TeleportCommand.php b/src/command/defaults/TeleportCommand.php index b506364bf5a..8adea5fa0d3 100644 --- a/src/command/defaults/TeleportCommand.php +++ b/src/command/defaults/TeleportCommand.php @@ -29,6 +29,7 @@ use pocketmine\entity\Location; use pocketmine\lang\KnownTranslationFactory; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; use pocketmine\player\Player; use pocketmine\utils\AssumptionFailedError; use pocketmine\utils\TextFormat; @@ -47,8 +48,8 @@ public function __construct(){ ["teleport"] ); $this->setPermissions([ - DefaultPermissionNames::COMMAND_TELEPORT_SELF, - DefaultPermissionNames::COMMAND_TELEPORT_OTHER + PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TELEPORT_SELF), + PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TELEPORT_OTHER) ]); } @@ -77,7 +78,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args throw new InvalidCommandSyntaxException(); } - $subject = $this->fetchPermittedPlayerTarget($sender, $subjectName, DefaultPermissionNames::COMMAND_TELEPORT_SELF, DefaultPermissionNames::COMMAND_TELEPORT_OTHER); + $subject = $this->fetchPermittedPlayerTarget($sender, $subjectName, PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TELEPORT_SELF), PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TELEPORT_OTHER)); if($subject === null){ return true; } diff --git a/src/command/defaults/TellCommand.php b/src/command/defaults/TellCommand.php index 713023382b3..c85adb8af00 100644 --- a/src/command/defaults/TellCommand.php +++ b/src/command/defaults/TellCommand.php @@ -28,6 +28,7 @@ use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\KnownTranslationFactory; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; use pocketmine\player\Player; use pocketmine\utils\TextFormat; use function array_shift; @@ -43,7 +44,7 @@ public function __construct(){ KnownTranslationFactory::commands_message_usage(), ["w", "msg"] ); - $this->setPermission(DefaultPermissionNames::COMMAND_TELL); + $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TELL)); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/TimeCommand.php b/src/command/defaults/TimeCommand.php index 8e937b21bef..bc85f137814 100644 --- a/src/command/defaults/TimeCommand.php +++ b/src/command/defaults/TimeCommand.php @@ -28,6 +28,7 @@ use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\KnownTranslationFactory; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; use pocketmine\player\Player; use pocketmine\world\World; use function count; @@ -41,11 +42,11 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_time_usage() ); $this->setPermissions([ - DefaultPermissionNames::COMMAND_TIME_ADD, - DefaultPermissionNames::COMMAND_TIME_SET, - DefaultPermissionNames::COMMAND_TIME_START, - DefaultPermissionNames::COMMAND_TIME_STOP, - DefaultPermissionNames::COMMAND_TIME_QUERY + PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TIME_ADD), + PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TIME_SET), + PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TIME_START), + PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TIME_STOP), + PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TIME_QUERY) ]); } @@ -55,7 +56,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args } if($args[0] === "start"){ - if(!$this->testPermission($sender, DefaultPermissionNames::COMMAND_TIME_START)){ + if(!$this->testPermission($sender, PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TIME_START))){ return true; } foreach($sender->getServer()->getWorldManager()->getWorlds() as $world){ @@ -64,7 +65,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args Command::broadcastCommandMessage($sender, "Restarted the time"); return true; }elseif($args[0] === "stop"){ - if(!$this->testPermission($sender, DefaultPermissionNames::COMMAND_TIME_STOP)){ + if(!$this->testPermission($sender, PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TIME_STOP))){ return true; } foreach($sender->getServer()->getWorldManager()->getWorlds() as $world){ @@ -73,7 +74,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args Command::broadcastCommandMessage($sender, "Stopped the time"); return true; }elseif($args[0] === "query"){ - if(!$this->testPermission($sender, DefaultPermissionNames::COMMAND_TIME_QUERY)){ + if(!$this->testPermission($sender, PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TIME_QUERY))){ return true; } if($sender instanceof Player){ @@ -90,7 +91,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args } if($args[0] === "set"){ - if(!$this->testPermission($sender, DefaultPermissionNames::COMMAND_TIME_SET)){ + if(!$this->testPermission($sender, PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TIME_SET))){ return true; } @@ -123,7 +124,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args } Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_time_set((string) $value)); }elseif($args[0] === "add"){ - if(!$this->testPermission($sender, DefaultPermissionNames::COMMAND_TIME_ADD)){ + if(!$this->testPermission($sender, PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TIME_ADD))){ return true; } diff --git a/src/command/defaults/TimingsCommand.php b/src/command/defaults/TimingsCommand.php index 08a8b82aa06..85d34112318 100644 --- a/src/command/defaults/TimingsCommand.php +++ b/src/command/defaults/TimingsCommand.php @@ -29,6 +29,7 @@ use pocketmine\errorhandler\ErrorToExceptionHandler; use pocketmine\lang\KnownTranslationFactory; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; use pocketmine\player\Player; use pocketmine\scheduler\BulkCurlTask; use pocketmine\scheduler\BulkCurlTaskOperation; @@ -66,7 +67,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_timings_description(), KnownTranslationFactory::pocketmine_command_timings_usage() ); - $this->setPermission(DefaultPermissionNames::COMMAND_TIMINGS); + $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TIMINGS)); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/TitleCommand.php b/src/command/defaults/TitleCommand.php index ecc4c569cf2..ce30a5888d8 100644 --- a/src/command/defaults/TitleCommand.php +++ b/src/command/defaults/TitleCommand.php @@ -27,6 +27,7 @@ use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\KnownTranslationFactory; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; use function array_slice; use function count; use function implode; @@ -40,8 +41,8 @@ public function __construct(){ KnownTranslationFactory::commands_title_usage() ); $this->setPermissions([ - DefaultPermissionNames::COMMAND_TITLE_SELF, - DefaultPermissionNames::COMMAND_TITLE_OTHER + PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TITLE_SELF), + PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TITLE_OTHER) ]); } @@ -50,7 +51,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args throw new InvalidCommandSyntaxException(); } - $player = $this->fetchPermittedPlayerTarget($sender, $args[0], DefaultPermissionNames::COMMAND_TITLE_SELF, DefaultPermissionNames::COMMAND_TITLE_OTHER); + $player = $this->fetchPermittedPlayerTarget($sender, $args[0], PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TITLE_SELF), PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TITLE_OTHER)); if($player === null){ return true; } diff --git a/src/command/defaults/TransferServerCommand.php b/src/command/defaults/TransferServerCommand.php index d0cbd316a92..f114e0ab0be 100644 --- a/src/command/defaults/TransferServerCommand.php +++ b/src/command/defaults/TransferServerCommand.php @@ -27,6 +27,7 @@ use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\KnownTranslationFactory; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; use pocketmine\player\Player; use function count; @@ -38,7 +39,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_transferserver_description(), KnownTranslationFactory::pocketmine_command_transferserver_usage() ); - $this->setPermission(DefaultPermissionNames::COMMAND_TRANSFERSERVER); + $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TRANSFERSERVER)); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/VanillaCommand.php b/src/command/defaults/VanillaCommand.php index 9bdd63739b0..3f2cd2840bb 100644 --- a/src/command/defaults/VanillaCommand.php +++ b/src/command/defaults/VanillaCommand.php @@ -27,6 +27,7 @@ use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\KnownTranslationFactory; +use pocketmine\permission\Permission; use pocketmine\player\Player; use pocketmine\utils\TextFormat; use function is_numeric; @@ -36,7 +37,7 @@ abstract class VanillaCommand extends Command{ public const MAX_COORD = 30000000; public const MIN_COORD = -30000000; - protected function fetchPermittedPlayerTarget(CommandSender $sender, ?string $target, string $selfPermission, string $otherPermission) : ?Player{ + protected function fetchPermittedPlayerTarget(CommandSender $sender, ?string $target, Permission $selfPermission, Permission $otherPermission) : ?Player{ if($target !== null){ $player = $sender->getServer()->getPlayerByPrefix($target); }elseif($sender instanceof Player){ diff --git a/src/command/defaults/VersionCommand.php b/src/command/defaults/VersionCommand.php index bafb129d1a7..82bf40bae13 100644 --- a/src/command/defaults/VersionCommand.php +++ b/src/command/defaults/VersionCommand.php @@ -27,6 +27,7 @@ use pocketmine\lang\KnownTranslationFactory; use pocketmine\network\mcpe\protocol\ProtocolInfo; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; use pocketmine\plugin\Plugin; use pocketmine\utils\TextFormat; use pocketmine\utils\Utils; @@ -47,7 +48,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_version_usage(), ["ver", "about"] ); - $this->setPermission(DefaultPermissionNames::COMMAND_VERSION); + $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_VERSION)); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/WhitelistCommand.php b/src/command/defaults/WhitelistCommand.php index fdf01ff5623..1099948491e 100644 --- a/src/command/defaults/WhitelistCommand.php +++ b/src/command/defaults/WhitelistCommand.php @@ -28,6 +28,7 @@ use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\KnownTranslationFactory; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; use pocketmine\player\Player; use pocketmine\Server; use pocketmine\ServerProperties; @@ -46,12 +47,12 @@ public function __construct(){ KnownTranslationFactory::commands_whitelist_usage() ); $this->setPermissions([ - DefaultPermissionNames::COMMAND_WHITELIST_RELOAD, - DefaultPermissionNames::COMMAND_WHITELIST_ENABLE, - DefaultPermissionNames::COMMAND_WHITELIST_DISABLE, - DefaultPermissionNames::COMMAND_WHITELIST_LIST, - DefaultPermissionNames::COMMAND_WHITELIST_ADD, - DefaultPermissionNames::COMMAND_WHITELIST_REMOVE + PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_WHITELIST_RELOAD), + PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_WHITELIST_ENABLE), + PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_WHITELIST_DISABLE), + PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_WHITELIST_LIST), + PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_WHITELIST_ADD), + PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_WHITELIST_REMOVE) ]); } @@ -59,7 +60,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args if(count($args) === 1){ switch(strtolower($args[0])){ case "reload": - if($this->testPermission($sender, DefaultPermissionNames::COMMAND_WHITELIST_RELOAD)){ + if($this->testPermission($sender, PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_WHITELIST_RELOAD))){ $server = $sender->getServer(); $server->getWhitelisted()->reload(); if($server->hasWhitelist()){ @@ -70,7 +71,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args return true; case "on": - if($this->testPermission($sender, DefaultPermissionNames::COMMAND_WHITELIST_ENABLE)){ + if($this->testPermission($sender, PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_WHITELIST_ENABLE))){ $server = $sender->getServer(); $server->getConfigGroup()->setConfigBool(ServerProperties::WHITELIST, true); $this->kickNonWhitelistedPlayers($server); @@ -79,14 +80,14 @@ public function execute(CommandSender $sender, string $commandLabel, array $args return true; case "off": - if($this->testPermission($sender, DefaultPermissionNames::COMMAND_WHITELIST_DISABLE)){ + if($this->testPermission($sender, PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_WHITELIST_DISABLE))){ $sender->getServer()->getConfigGroup()->setConfigBool(ServerProperties::WHITELIST, false); Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_whitelist_disabled()); } return true; case "list": - if($this->testPermission($sender, DefaultPermissionNames::COMMAND_WHITELIST_LIST)){ + if($this->testPermission($sender, PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_WHITELIST_LIST))){ $entries = $sender->getServer()->getWhitelisted()->getAll(true); sort($entries, SORT_STRING); $result = implode(", ", $entries); @@ -112,14 +113,14 @@ public function execute(CommandSender $sender, string $commandLabel, array $args } switch(strtolower($args[0])){ case "add": - if($this->testPermission($sender, DefaultPermissionNames::COMMAND_WHITELIST_ADD)){ + if($this->testPermission($sender, PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_WHITELIST_ADD))){ $sender->getServer()->addWhitelist($args[1]); Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_whitelist_add_success($args[1])); } return true; case "remove": - if($this->testPermission($sender, DefaultPermissionNames::COMMAND_WHITELIST_REMOVE)){ + if($this->testPermission($sender, PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_WHITELIST_REMOVE))){ $server = $sender->getServer(); $server->removeWhitelist($args[1]); if(!$server->isWhitelisted($args[1])){ diff --git a/src/command/defaults/XpCommand.php b/src/command/defaults/XpCommand.php index cb035236574..ba19d3bce8e 100644 --- a/src/command/defaults/XpCommand.php +++ b/src/command/defaults/XpCommand.php @@ -28,6 +28,7 @@ use pocketmine\entity\Attribute; use pocketmine\lang\KnownTranslationFactory; use pocketmine\permission\DefaultPermissionNames; +use pocketmine\permission\PermissionManager; use pocketmine\utils\AssumptionFailedError; use pocketmine\utils\Limits; use pocketmine\utils\TextFormat; @@ -45,8 +46,8 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_xp_usage() ); $this->setPermissions([ - DefaultPermissionNames::COMMAND_XP_SELF, - DefaultPermissionNames::COMMAND_XP_OTHER + PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_XP_SELF), + PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_XP_OTHER) ]); } @@ -55,7 +56,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args throw new InvalidCommandSyntaxException(); } - $player = $this->fetchPermittedPlayerTarget($sender, $args[1] ?? null, DefaultPermissionNames::COMMAND_XP_SELF, DefaultPermissionNames::COMMAND_XP_OTHER); + $player = $this->fetchPermittedPlayerTarget($sender, $args[1] ?? null, PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_XP_SELF), PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_XP_OTHER)); if($player === null){ return true; } diff --git a/src/network/mcpe/NetworkSession.php b/src/network/mcpe/NetworkSession.php index 8c457ed4054..ee5c446998c 100644 --- a/src/network/mcpe/NetworkSession.php +++ b/src/network/mcpe/NetworkSession.php @@ -99,6 +99,7 @@ use pocketmine\network\PacketHandlingException; use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissions; +use pocketmine\permission\PermissionManager; use pocketmine\player\GameMode; use pocketmine\player\Player; use pocketmine\player\PlayerInfo; @@ -1034,7 +1035,7 @@ public function syncGameMode(GameMode $mode, bool $isRollback = false) : void{ } public function syncAbilities(Player $for) : void{ - $isOp = $for->hasPermission(DefaultPermissions::ROOT_OPERATOR); + $isOp = $for->hasPermission(PermissionManager::getInstance()->getPermission(DefaultPermissions::ROOT_OPERATOR)); //ALL of these need to be set for the base layer, otherwise the client will cry $boolAbilities = [ @@ -1042,7 +1043,7 @@ public function syncAbilities(Player $for) : void{ AbilitiesLayer::ABILITY_FLYING => $for->isFlying(), AbilitiesLayer::ABILITY_NO_CLIP => !$for->hasBlockCollision(), AbilitiesLayer::ABILITY_OPERATOR => $isOp, - AbilitiesLayer::ABILITY_TELEPORT => $for->hasPermission(DefaultPermissionNames::COMMAND_TELEPORT_SELF), + AbilitiesLayer::ABILITY_TELEPORT => $for->hasPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TELEPORT_SELF)), AbilitiesLayer::ABILITY_INVULNERABLE => $for->isCreative(), AbilitiesLayer::ABILITY_MUTED => false, AbilitiesLayer::ABILITY_WORLD_BUILDER => false, diff --git a/src/permission/Permissible.php b/src/permission/Permissible.php index b3527e1c40d..9e357b25796 100644 --- a/src/permission/Permissible.php +++ b/src/permission/Permissible.php @@ -36,7 +36,7 @@ interface Permissible{ * @internal * @see Permissible::addAttachment() for normal permission assignments */ - public function setBasePermission(Permission|string $name, bool $grant) : void; + public function setBasePermission(Permission $permission, bool $grant) : void; /** * Unsets a baseline permission previously set. If it wasn't already set, this will have no effect. @@ -44,17 +44,17 @@ public function setBasePermission(Permission|string $name, bool $grant) : void; * * @internal */ - public function unsetBasePermission(Permission|string $name) : void; + public function unsetBasePermission(Permission $permission) : void; /** * Checks if this instance has a permission overridden */ - public function isPermissionSet(Permission|string $name) : bool; + public function isPermissionSet(Permission $permission) : bool; /** * Returns the permission value if overridden, or the default value if not */ - public function hasPermission(Permission|string $name) : bool; + public function hasPermission(Permission $permission) : bool; public function addAttachment(Plugin $plugin, ?string $name = null, ?bool $value = null) : PermissionAttachment; diff --git a/src/permission/PermissibleDelegateTrait.php b/src/permission/PermissibleDelegateTrait.php index 22f6508484d..04ac2a2d580 100644 --- a/src/permission/PermissibleDelegateTrait.php +++ b/src/permission/PermissibleDelegateTrait.php @@ -31,20 +31,20 @@ trait PermissibleDelegateTrait{ /** @var Permissible */ private $perm; - public function setBasePermission(Permission|string $name, bool $grant) : void{ - $this->perm->setBasePermission($name, $grant); + public function setBasePermission(Permission $permission, bool $grant) : void{ + $this->perm->setBasePermission($permission, $grant); } - public function unsetBasePermission(Permission|string $name) : void{ - $this->perm->unsetBasePermission($name); + public function unsetBasePermission(Permission $permission) : void{ + $this->perm->unsetBasePermission($permission); } - public function isPermissionSet(Permission|string $name) : bool{ - return $this->perm->isPermissionSet($name); + public function isPermissionSet(Permission $permission) : bool{ + return $this->perm->isPermissionSet($permission); } - public function hasPermission(Permission|string $name) : bool{ - return $this->perm->hasPermission($name); + public function hasPermission(Permission $permission) : bool{ + return $this->perm->hasPermission($permission); } public function addAttachment(Plugin $plugin, ?string $name = null, ?bool $value = null) : PermissionAttachment{ diff --git a/src/permission/PermissibleInternal.php b/src/permission/PermissibleInternal.php index 49c34b49a47..da5cef9f2b4 100644 --- a/src/permission/PermissibleInternal.php +++ b/src/permission/PermissibleInternal.php @@ -69,30 +69,23 @@ public function __construct(array $basePermissions){ $this->recalculatePermissions(); } - public function setBasePermission(Permission|string $name, bool $grant) : void{ - if($name instanceof Permission){ - $name = $name->getName(); - } - $this->rootPermissions[$name] = $grant; + public function setBasePermission(Permission $permission, bool $grant) : void{ + $this->rootPermissions[$permission->getName()] = $grant; $this->recalculatePermissions(); } - public function unsetBasePermission(Permission|string $name) : void{ - unset($this->rootPermissions[$name instanceof Permission ? $name->getName() : $name]); + public function unsetBasePermission(Permission $permission) : void{ + unset($this->rootPermissions[$permission->getName()]); $this->recalculatePermissions(); } - public function isPermissionSet(Permission|string $name) : bool{ - return isset($this->permissions[$name instanceof Permission ? $name->getName() : $name]); + public function isPermissionSet(Permission $permission) : bool{ + return isset($this->permissions[$permission->getName()]); } - public function hasPermission(Permission|string $name) : bool{ - if($name instanceof Permission){ - $name = $name->getName(); - } - - if($this->isPermissionSet($name)){ - return $this->permissions[$name]->getValue(); + public function hasPermission(Permission $permission) : bool{ + if($this->isPermissionSet($permission)){ + return $this->permissions[$permission->getName()]->getValue(); } return false; diff --git a/src/player/Player.php b/src/player/Player.php index b36d110ae16..7a9c4bb2320 100644 --- a/src/player/Player.php +++ b/src/player/Player.php @@ -120,6 +120,7 @@ use pocketmine\permission\DefaultPermissions; use pocketmine\permission\PermissibleBase; use pocketmine\permission\PermissibleDelegateTrait; +use pocketmine\permission\PermissionManager; use pocketmine\player\chat\StandardChatFormatter; use pocketmine\Server; use pocketmine\ServerProperties; @@ -922,8 +923,9 @@ private function recheckBroadcastPermissions() : void{ foreach([ DefaultPermissionNames::BROADCAST_ADMIN => Server::BROADCAST_CHANNEL_ADMINISTRATIVE, DefaultPermissionNames::BROADCAST_USER => Server::BROADCAST_CHANNEL_USERS - ] as $permission => $channel){ - if($this->hasPermission($permission)){ + ] as $permissionName => $channel){ + $permission = PermissionManager::getInstance()->getPermission($permissionName); + if($permission !== null && $this->hasPermission($permission)){ $this->server->subscribeToBroadcastChannel($channel, $this); }else{ $this->server->unsubscribeFromBroadcastChannel($channel, $this); From fcdc33c9322c0451bb132efa03124bddf2705d8f Mon Sep 17 00:00:00 2001 From: Hugo_ <55756021+Dhaiven@users.noreply.github.com> Date: Thu, 20 Feb 2025 15:04:11 +0100 Subject: [PATCH 02/14] Fix bug + CS --- src/command/Command.php | 2 +- src/command/defaults/VanillaCommand.php | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/command/Command.php b/src/command/Command.php index f80e019dc89..084246dd189 100644 --- a/src/command/Command.php +++ b/src/command/Command.php @@ -103,7 +103,7 @@ public function getPermissions() : array{ * @param Permission[] $permissions */ public function setPermissions(array $permissions) : void{ - Utils::validateArrayValueType($permissions, function (Permission $permission): void{}); + Utils::validateArrayValueType($permissions, function (Permission $permission) : void{}); $this->permission = $permissions; } diff --git a/src/command/defaults/VanillaCommand.php b/src/command/defaults/VanillaCommand.php index 3f2cd2840bb..66c53945f1d 100644 --- a/src/command/defaults/VanillaCommand.php +++ b/src/command/defaults/VanillaCommand.php @@ -37,7 +37,7 @@ abstract class VanillaCommand extends Command{ public const MAX_COORD = 30000000; public const MIN_COORD = -30000000; - protected function fetchPermittedPlayerTarget(CommandSender $sender, ?string $target, Permission $selfPermission, Permission $otherPermission) : ?Player{ + protected function fetchPermittedPlayerTarget(CommandSender $sender, ?string $target, ?Permission $selfPermission, ?Permission $otherPermission) : ?Player{ if($target !== null){ $player = $sender->getServer()->getPlayerByPrefix($target); }elseif($sender instanceof Player){ @@ -51,8 +51,8 @@ protected function fetchPermittedPlayerTarget(CommandSender $sender, ?string $ta return null; } if( - ($player === $sender && $this->testPermission($sender, $selfPermission)) || - ($player !== $sender && $this->testPermission($sender, $otherPermission)) + ($player === $sender && ($selfPermission === null || $this->testPermission($sender, $selfPermission))) || + ($player !== $sender && ($otherPermission === null || $this->testPermission($sender, $otherPermission))) ){ return $player; } From 13c12f3eb6d96717a84935f1f7aac75c449e3010 Mon Sep 17 00:00:00 2001 From: Hugo_ <55756021+Dhaiven@users.noreply.github.com> Date: Thu, 20 Feb 2025 16:06:42 +0100 Subject: [PATCH 03/14] DefaultPermissions now use RegistryTrait --- src/Server.php | 6 +- src/command/defaults/BanCommand.php | 5 +- src/command/defaults/BanIpCommand.php | 5 +- src/command/defaults/BanListCommand.php | 5 +- src/command/defaults/ClearCommand.php | 9 +- .../defaults/DefaultGamemodeCommand.php | 5 +- src/command/defaults/DeopCommand.php | 5 +- src/command/defaults/DifficultyCommand.php | 5 +- src/command/defaults/DumpMemoryCommand.php | 5 +- src/command/defaults/EffectCommand.php | 9 +- src/command/defaults/EnchantCommand.php | 9 +- src/command/defaults/GamemodeCommand.php | 9 +- .../defaults/GarbageCollectorCommand.php | 5 +- src/command/defaults/GiveCommand.php | 9 +- src/command/defaults/HelpCommand.php | 5 +- src/command/defaults/KickCommand.php | 5 +- src/command/defaults/KillCommand.php | 9 +- src/command/defaults/ListCommand.php | 5 +- src/command/defaults/MeCommand.php | 5 +- src/command/defaults/OpCommand.php | 5 +- src/command/defaults/PardonCommand.php | 5 +- src/command/defaults/PardonIpCommand.php | 5 +- src/command/defaults/ParticleCommand.php | 5 +- src/command/defaults/PluginsCommand.php | 5 +- src/command/defaults/SaveCommand.php | 5 +- src/command/defaults/SaveOffCommand.php | 5 +- src/command/defaults/SaveOnCommand.php | 5 +- src/command/defaults/SayCommand.php | 5 +- src/command/defaults/SeedCommand.php | 5 +- src/command/defaults/SetWorldSpawnCommand.php | 5 +- src/command/defaults/SpawnpointCommand.php | 9 +- src/command/defaults/StatusCommand.php | 5 +- src/command/defaults/StopCommand.php | 5 +- src/command/defaults/TeleportCommand.php | 9 +- src/command/defaults/TellCommand.php | 5 +- src/command/defaults/TimeCommand.php | 23 +- src/command/defaults/TimingsCommand.php | 5 +- src/command/defaults/TitleCommand.php | 9 +- .../defaults/TransferServerCommand.php | 5 +- src/command/defaults/VersionCommand.php | 5 +- src/command/defaults/WhitelistCommand.php | 27 ++- src/command/defaults/XpCommand.php | 9 +- src/network/mcpe/NetworkSession.php | 6 +- src/permission/DefaultPermissionNames.php | 92 -------- src/permission/DefaultPermissions.php | 216 ++++++++++++------ src/player/Player.php | 11 +- src/plugin/PluginManager.php | 4 +- 47 files changed, 277 insertions(+), 343 deletions(-) delete mode 100644 src/permission/DefaultPermissionNames.php diff --git a/src/Server.php b/src/Server.php index 0d58bd57909..7311372288a 100644 --- a/src/Server.php +++ b/src/Server.php @@ -697,7 +697,7 @@ public function addOp(string $name) : void{ $this->operators->set(strtolower($name), true); if(($player = $this->getPlayerExact($name)) !== null){ - $player->setBasePermission(DefaultPermissions::ROOT_OPERATOR, true); + $player->setBasePermission(DefaultPermissions::POCKETMINE_GROUP_OPERATOR(), true); } $this->operators->save(); } @@ -712,7 +712,7 @@ public function removeOp(string $name) : void{ } if(($player = $this->getPlayerExact($name)) !== null){ - $player->unsetBasePermission(DefaultPermissions::ROOT_OPERATOR); + $player->unsetBasePermission(DefaultPermissions::POCKETMINE_GROUP_OPERATOR()); } $this->operators->save(); } @@ -1007,8 +1007,6 @@ public function __construct( ))); $this->logger->info($this->language->translate(KnownTranslationFactory::pocketmine_server_license($this->getName()))); - DefaultPermissions::registerCorePermissions(); - $this->commandMap = new SimpleCommandMap($this); $this->craftingManager = CraftingManagerFromDataHelper::make(BedrockDataFiles::RECIPES); diff --git a/src/command/defaults/BanCommand.php b/src/command/defaults/BanCommand.php index d29e21d5ecb..6f1200551c1 100644 --- a/src/command/defaults/BanCommand.php +++ b/src/command/defaults/BanCommand.php @@ -27,8 +27,7 @@ use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\KnownTranslationFactory; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; use pocketmine\player\Player; use function array_shift; use function count; @@ -42,7 +41,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_ban_player_description(), KnownTranslationFactory::commands_ban_usage() ); - $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_BAN_PLAYER)); + $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_BAN_PLAYER()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/BanIpCommand.php b/src/command/defaults/BanIpCommand.php index 0205b05911a..f810b7834db 100644 --- a/src/command/defaults/BanIpCommand.php +++ b/src/command/defaults/BanIpCommand.php @@ -27,8 +27,7 @@ use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\KnownTranslationFactory; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; use pocketmine\player\Player; use function array_shift; use function count; @@ -43,7 +42,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_ban_ip_description(), KnownTranslationFactory::commands_banip_usage() ); - $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_BAN_IP)); + $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_BAN_IP()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/BanListCommand.php b/src/command/defaults/BanListCommand.php index 789bcba6331..23c05ecfac0 100644 --- a/src/command/defaults/BanListCommand.php +++ b/src/command/defaults/BanListCommand.php @@ -27,8 +27,7 @@ use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\KnownTranslationFactory; use pocketmine\permission\BanEntry; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; use function array_map; use function count; use function implode; @@ -44,7 +43,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_banlist_description(), KnownTranslationFactory::commands_banlist_usage() ); - $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_BAN_LIST)); + $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_BAN_LIST()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/ClearCommand.php b/src/command/defaults/ClearCommand.php index daa2f465f8c..98fabb3eec0 100644 --- a/src/command/defaults/ClearCommand.php +++ b/src/command/defaults/ClearCommand.php @@ -32,8 +32,7 @@ use pocketmine\item\LegacyStringToItemParserException; use pocketmine\item\StringToItemParser; use pocketmine\lang\KnownTranslationFactory; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; use pocketmine\utils\TextFormat; use function count; use function min; @@ -47,8 +46,8 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_clear_usage() ); $this->setPermissions([ - PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_CLEAR_SELF), - PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_CLEAR_OTHER) + DefaultPermissions::POCKETMINE_COMMAND_CLEAR_SELF(), + DefaultPermissions::POCKETMINE_COMMAND_CLEAR_OTHER() ]); } @@ -57,7 +56,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args throw new InvalidCommandSyntaxException(); } - $target = $this->fetchPermittedPlayerTarget($sender, $args[0] ?? null, PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_CLEAR_SELF), PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_CLEAR_OTHER)); + $target = $this->fetchPermittedPlayerTarget($sender, $args[0] ?? null, DefaultPermissions::POCKETMINE_COMMAND_CLEAR_SELF(), DefaultPermissions::POCKETMINE_COMMAND_CLEAR_OTHER()); if($target === null){ return true; } diff --git a/src/command/defaults/DefaultGamemodeCommand.php b/src/command/defaults/DefaultGamemodeCommand.php index f00cda8a237..e1d2ead1641 100644 --- a/src/command/defaults/DefaultGamemodeCommand.php +++ b/src/command/defaults/DefaultGamemodeCommand.php @@ -26,8 +26,7 @@ use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\KnownTranslationFactory; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; use pocketmine\player\GameMode; use pocketmine\ServerProperties; use function count; @@ -40,7 +39,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_defaultgamemode_description(), KnownTranslationFactory::commands_defaultgamemode_usage() ); - $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_DEFAULTGAMEMODE)); + $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_DEFAULTGAMEMODE()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/DeopCommand.php b/src/command/defaults/DeopCommand.php index d8fe1f7c87d..9982c1aa9c0 100644 --- a/src/command/defaults/DeopCommand.php +++ b/src/command/defaults/DeopCommand.php @@ -27,8 +27,7 @@ use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\KnownTranslationFactory; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; use pocketmine\player\Player; use pocketmine\utils\TextFormat; use function array_shift; @@ -42,7 +41,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_deop_description(), KnownTranslationFactory::commands_deop_usage() ); - $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_OP_TAKE)); + $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_OP_TAKE()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/DifficultyCommand.php b/src/command/defaults/DifficultyCommand.php index 2bd0e52b366..200c23c3d5c 100644 --- a/src/command/defaults/DifficultyCommand.php +++ b/src/command/defaults/DifficultyCommand.php @@ -27,8 +27,7 @@ use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\KnownTranslationFactory; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; use pocketmine\ServerProperties; use pocketmine\world\World; use function count; @@ -41,7 +40,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_difficulty_description(), KnownTranslationFactory::commands_difficulty_usage() ); - $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_DIFFICULTY)); + $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_DIFFICULTY()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/DumpMemoryCommand.php b/src/command/defaults/DumpMemoryCommand.php index 3ff0651a1a0..e56eeb6bf4d 100644 --- a/src/command/defaults/DumpMemoryCommand.php +++ b/src/command/defaults/DumpMemoryCommand.php @@ -25,8 +25,7 @@ use pocketmine\command\CommandSender; use pocketmine\lang\KnownTranslationFactory; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; use Symfony\Component\Filesystem\Path; use function date; @@ -38,7 +37,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_dumpmemory_description(), "/dumpmemory [path]" ); - $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_DUMPMEMORY)); + $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_DUMPMEMORY()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/EffectCommand.php b/src/command/defaults/EffectCommand.php index b229805808f..3370d543129 100644 --- a/src/command/defaults/EffectCommand.php +++ b/src/command/defaults/EffectCommand.php @@ -28,8 +28,7 @@ use pocketmine\entity\effect\EffectInstance; use pocketmine\entity\effect\StringToEffectParser; use pocketmine\lang\KnownTranslationFactory; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; use pocketmine\utils\Limits; use pocketmine\utils\TextFormat; use function count; @@ -44,8 +43,8 @@ public function __construct(){ KnownTranslationFactory::commands_effect_usage() ); $this->setPermissions([ - PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_EFFECT_SELF), - PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_EFFECT_OTHER) + DefaultPermissions::POCKETMINE_COMMAND_EFFECT_SELF(), + DefaultPermissions::POCKETMINE_COMMAND_EFFECT_OTHER() ]); } @@ -54,7 +53,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args throw new InvalidCommandSyntaxException(); } - $player = $this->fetchPermittedPlayerTarget($sender, $args[0], PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_EFFECT_SELF), PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_EFFECT_OTHER)); + $player = $this->fetchPermittedPlayerTarget($sender, $args[0], DefaultPermissions::POCKETMINE_COMMAND_EFFECT_SELF(), DefaultPermissions::POCKETMINE_COMMAND_EFFECT_OTHER()); if($player === null){ return true; } diff --git a/src/command/defaults/EnchantCommand.php b/src/command/defaults/EnchantCommand.php index eb40e02f189..44101a1ff6f 100644 --- a/src/command/defaults/EnchantCommand.php +++ b/src/command/defaults/EnchantCommand.php @@ -29,8 +29,7 @@ use pocketmine\item\enchantment\EnchantmentInstance; use pocketmine\item\enchantment\StringToEnchantmentParser; use pocketmine\lang\KnownTranslationFactory; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; use function count; class EnchantCommand extends VanillaCommand{ @@ -42,8 +41,8 @@ public function __construct(){ KnownTranslationFactory::commands_enchant_usage() ); $this->setPermissions([ - PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_ENCHANT_SELF), - PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_ENCHANT_OTHER) + DefaultPermissions::POCKETMINE_COMMAND_ENCHANT_SELF(), + DefaultPermissions::POCKETMINE_COMMAND_ENCHANT_OTHER() ]); } @@ -52,7 +51,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args throw new InvalidCommandSyntaxException(); } - $player = $this->fetchPermittedPlayerTarget($sender, $args[0], PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_ENCHANT_SELF), PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_ENCHANT_OTHER)); + $player = $this->fetchPermittedPlayerTarget($sender, $args[0], DefaultPermissions::POCKETMINE_COMMAND_ENCHANT_SELF(), DefaultPermissions::POCKETMINE_COMMAND_ENCHANT_OTHER()); if($player === null){ return true; } diff --git a/src/command/defaults/GamemodeCommand.php b/src/command/defaults/GamemodeCommand.php index 4f2a7a7663f..b90f6cd831b 100644 --- a/src/command/defaults/GamemodeCommand.php +++ b/src/command/defaults/GamemodeCommand.php @@ -27,8 +27,7 @@ use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\KnownTranslationFactory; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; use pocketmine\player\GameMode; use function count; @@ -41,8 +40,8 @@ public function __construct(){ KnownTranslationFactory::commands_gamemode_usage() ); $this->setPermissions([ - PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_GAMEMODE_SELF), - PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_GAMEMODE_OTHER) + DefaultPermissions::POCKETMINE_COMMAND_GAMEMODE_SELF(), + DefaultPermissions::POCKETMINE_COMMAND_GAMEMODE_OTHER() ]); } @@ -57,7 +56,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args return true; } - $target = $this->fetchPermittedPlayerTarget($sender, $args[1] ?? null, PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_GAMEMODE_SELF), PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_GAMEMODE_OTHER)); + $target = $this->fetchPermittedPlayerTarget($sender, $args[1] ?? null, DefaultPermissions::POCKETMINE_COMMAND_GAMEMODE_SELF(), DefaultPermissions::POCKETMINE_COMMAND_GAMEMODE_OTHER()); if($target === null){ return true; } diff --git a/src/command/defaults/GarbageCollectorCommand.php b/src/command/defaults/GarbageCollectorCommand.php index f0d17347ac7..574af54845d 100644 --- a/src/command/defaults/GarbageCollectorCommand.php +++ b/src/command/defaults/GarbageCollectorCommand.php @@ -25,8 +25,7 @@ use pocketmine\command\CommandSender; use pocketmine\lang\KnownTranslationFactory; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; use pocketmine\utils\TextFormat; use function count; use function memory_get_usage; @@ -40,7 +39,7 @@ public function __construct(){ "gc", KnownTranslationFactory::pocketmine_command_gc_description() ); - $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_GC)); + $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_GC()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/GiveCommand.php b/src/command/defaults/GiveCommand.php index b7bab94929f..2f5efb69dcf 100644 --- a/src/command/defaults/GiveCommand.php +++ b/src/command/defaults/GiveCommand.php @@ -33,8 +33,7 @@ use pocketmine\nbt\JsonNbtParser; use pocketmine\nbt\NbtDataException; use pocketmine\nbt\NbtException; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; use pocketmine\utils\TextFormat; use function array_slice; use function count; @@ -49,8 +48,8 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_give_usage() ); $this->setPermissions([ - PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_GIVE_SELF), - PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_GIVE_OTHER) + DefaultPermissions::POCKETMINE_COMMAND_GIVE_SELF(), + DefaultPermissions::POCKETMINE_COMMAND_GIVE_OTHER() ]); } @@ -59,7 +58,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args throw new InvalidCommandSyntaxException(); } - $player = $this->fetchPermittedPlayerTarget($sender, $args[0], PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_GIVE_SELF), PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_GIVE_OTHER)); + $player = $this->fetchPermittedPlayerTarget($sender, $args[0], DefaultPermissions::POCKETMINE_COMMAND_GIVE_SELF(), DefaultPermissions::POCKETMINE_COMMAND_GIVE_OTHER()); if($player === null){ return true; } diff --git a/src/command/defaults/HelpCommand.php b/src/command/defaults/HelpCommand.php index 06e502d872f..02da831ccef 100644 --- a/src/command/defaults/HelpCommand.php +++ b/src/command/defaults/HelpCommand.php @@ -27,8 +27,7 @@ use pocketmine\command\CommandSender; use pocketmine\lang\KnownTranslationFactory; use pocketmine\lang\Translatable; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; use pocketmine\utils\TextFormat; use function array_chunk; use function array_pop; @@ -52,7 +51,7 @@ public function __construct(){ KnownTranslationFactory::commands_help_usage(), ["?"] ); - $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_HELP)); + $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_HELP()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/KickCommand.php b/src/command/defaults/KickCommand.php index 180b13d896b..fee5e5a2140 100644 --- a/src/command/defaults/KickCommand.php +++ b/src/command/defaults/KickCommand.php @@ -27,8 +27,7 @@ use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\KnownTranslationFactory; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; use pocketmine\player\Player; use pocketmine\utils\TextFormat; use function array_shift; @@ -44,7 +43,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_kick_description(), KnownTranslationFactory::commands_kick_usage() ); - $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_KICK)); + $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_KICK()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/KillCommand.php b/src/command/defaults/KillCommand.php index 47be077b2fe..d7a3f09bc90 100644 --- a/src/command/defaults/KillCommand.php +++ b/src/command/defaults/KillCommand.php @@ -28,8 +28,7 @@ use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\event\entity\EntityDamageEvent; use pocketmine\lang\KnownTranslationFactory; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; use function count; class KillCommand extends VanillaCommand{ @@ -42,8 +41,8 @@ public function __construct(){ ["suicide"] ); $this->setPermissions([ - PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_KILL_SELF), - PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_KILL_OTHER) + DefaultPermissions::POCKETMINE_COMMAND_KILL_SELF(), + DefaultPermissions::POCKETMINE_COMMAND_KILL_OTHER() ]); } @@ -52,7 +51,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args throw new InvalidCommandSyntaxException(); } - $player = $this->fetchPermittedPlayerTarget($sender, $args[0] ?? null, PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_KILL_SELF), PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_KILL_OTHER)); + $player = $this->fetchPermittedPlayerTarget($sender, $args[0] ?? null, DefaultPermissions::POCKETMINE_COMMAND_KILL_SELF(), DefaultPermissions::POCKETMINE_COMMAND_KILL_OTHER()); if($player === null){ return true; } diff --git a/src/command/defaults/ListCommand.php b/src/command/defaults/ListCommand.php index a4542e0bac8..47d82ee285d 100644 --- a/src/command/defaults/ListCommand.php +++ b/src/command/defaults/ListCommand.php @@ -25,8 +25,7 @@ use pocketmine\command\CommandSender; use pocketmine\lang\KnownTranslationFactory; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; use pocketmine\player\Player; use function array_filter; use function array_map; @@ -42,7 +41,7 @@ public function __construct(){ "list", KnownTranslationFactory::pocketmine_command_list_description() ); - $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_LIST)); + $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_LIST()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/MeCommand.php b/src/command/defaults/MeCommand.php index fbc7a5a5939..fc5a338511d 100644 --- a/src/command/defaults/MeCommand.php +++ b/src/command/defaults/MeCommand.php @@ -26,8 +26,7 @@ use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\KnownTranslationFactory; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; use pocketmine\player\Player; use pocketmine\utils\TextFormat; use function count; @@ -41,7 +40,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_me_description(), KnownTranslationFactory::commands_me_usage() ); - $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_ME)); + $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_ME()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/OpCommand.php b/src/command/defaults/OpCommand.php index e535a8e8640..7a33f9dd4eb 100644 --- a/src/command/defaults/OpCommand.php +++ b/src/command/defaults/OpCommand.php @@ -27,8 +27,7 @@ use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\KnownTranslationFactory; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; use pocketmine\player\Player; use pocketmine\utils\TextFormat; use function array_shift; @@ -42,7 +41,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_op_description(), KnownTranslationFactory::commands_op_usage() ); - $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_OP_GIVE)); + $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_OP_GIVE()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/PardonCommand.php b/src/command/defaults/PardonCommand.php index ba0f01c6c5f..acbaf17141c 100644 --- a/src/command/defaults/PardonCommand.php +++ b/src/command/defaults/PardonCommand.php @@ -27,8 +27,7 @@ use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\KnownTranslationFactory; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; use function count; class PardonCommand extends VanillaCommand{ @@ -40,7 +39,7 @@ public function __construct(){ KnownTranslationFactory::commands_unban_usage(), ["unban"] ); - $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_UNBAN_PLAYER)); + $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_UNBAN_PLAYER()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/PardonIpCommand.php b/src/command/defaults/PardonIpCommand.php index 69852c125b5..c176826adc3 100644 --- a/src/command/defaults/PardonIpCommand.php +++ b/src/command/defaults/PardonIpCommand.php @@ -27,8 +27,7 @@ use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\KnownTranslationFactory; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; use function count; use function inet_pton; @@ -41,7 +40,7 @@ public function __construct(){ KnownTranslationFactory::commands_unbanip_usage(), ["unban-ip"] ); - $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_UNBAN_IP)); + $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_UNBAN_IP()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/ParticleCommand.php b/src/command/defaults/ParticleCommand.php index 2d298e858c1..f219793c12a 100644 --- a/src/command/defaults/ParticleCommand.php +++ b/src/command/defaults/ParticleCommand.php @@ -31,8 +31,7 @@ use pocketmine\item\VanillaItems; use pocketmine\lang\KnownTranslationFactory; use pocketmine\math\Vector3; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; use pocketmine\player\Player; use pocketmine\utils\Random; use pocketmine\utils\TextFormat; @@ -81,7 +80,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_particle_description(), KnownTranslationFactory::pocketmine_command_particle_usage() ); - $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_PARTICLE)); + $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_PARTICLE()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/PluginsCommand.php b/src/command/defaults/PluginsCommand.php index b9ea3d592d2..1a0ce7a8878 100644 --- a/src/command/defaults/PluginsCommand.php +++ b/src/command/defaults/PluginsCommand.php @@ -25,8 +25,7 @@ use pocketmine\command\CommandSender; use pocketmine\lang\KnownTranslationFactory; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; use pocketmine\plugin\Plugin; use pocketmine\utils\TextFormat; use function array_map; @@ -44,7 +43,7 @@ public function __construct(){ null, ["pl"] ); - $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_PLUGINS)); + $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_PLUGINS()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/SaveCommand.php b/src/command/defaults/SaveCommand.php index 5303d4152df..41cfcef04f8 100644 --- a/src/command/defaults/SaveCommand.php +++ b/src/command/defaults/SaveCommand.php @@ -26,8 +26,7 @@ use pocketmine\command\Command; use pocketmine\command\CommandSender; use pocketmine\lang\KnownTranslationFactory; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; use function microtime; use function round; @@ -38,7 +37,7 @@ public function __construct(){ "save-all", KnownTranslationFactory::pocketmine_command_save_description() ); - $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_SAVE_PERFORM)); + $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_SAVE_PERFORM()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/SaveOffCommand.php b/src/command/defaults/SaveOffCommand.php index 714e18e9b43..85b0e035aea 100644 --- a/src/command/defaults/SaveOffCommand.php +++ b/src/command/defaults/SaveOffCommand.php @@ -26,8 +26,7 @@ use pocketmine\command\Command; use pocketmine\command\CommandSender; use pocketmine\lang\KnownTranslationFactory; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; class SaveOffCommand extends VanillaCommand{ @@ -36,7 +35,7 @@ public function __construct(){ "save-off", KnownTranslationFactory::pocketmine_command_saveoff_description() ); - $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_SAVE_DISABLE)); + $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_SAVE_DISABLE()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/SaveOnCommand.php b/src/command/defaults/SaveOnCommand.php index 7e45e845a50..e8c4ec98f13 100644 --- a/src/command/defaults/SaveOnCommand.php +++ b/src/command/defaults/SaveOnCommand.php @@ -26,8 +26,7 @@ use pocketmine\command\Command; use pocketmine\command\CommandSender; use pocketmine\lang\KnownTranslationFactory; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; class SaveOnCommand extends VanillaCommand{ @@ -36,7 +35,7 @@ public function __construct(){ "save-on", KnownTranslationFactory::pocketmine_command_saveon_description() ); - $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_SAVE_ENABLE)); + $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_SAVE_ENABLE()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/SayCommand.php b/src/command/defaults/SayCommand.php index a71566a7032..718b388fc01 100644 --- a/src/command/defaults/SayCommand.php +++ b/src/command/defaults/SayCommand.php @@ -27,8 +27,7 @@ use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\console\ConsoleCommandSender; use pocketmine\lang\KnownTranslationFactory; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; use pocketmine\player\Player; use pocketmine\utils\TextFormat; use function count; @@ -42,7 +41,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_say_description(), KnownTranslationFactory::commands_say_usage() ); - $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_SAY)); + $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_SAY()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/SeedCommand.php b/src/command/defaults/SeedCommand.php index 49ad3e06abe..d9c94cec340 100644 --- a/src/command/defaults/SeedCommand.php +++ b/src/command/defaults/SeedCommand.php @@ -25,8 +25,7 @@ use pocketmine\command\CommandSender; use pocketmine\lang\KnownTranslationFactory; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; use pocketmine\player\Player; class SeedCommand extends VanillaCommand{ @@ -36,7 +35,7 @@ public function __construct(){ "seed", KnownTranslationFactory::pocketmine_command_seed_description() ); - $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_SEED)); + $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_SEED()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/SetWorldSpawnCommand.php b/src/command/defaults/SetWorldSpawnCommand.php index 83a5f35984a..24ce1742f7b 100644 --- a/src/command/defaults/SetWorldSpawnCommand.php +++ b/src/command/defaults/SetWorldSpawnCommand.php @@ -28,8 +28,7 @@ use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\KnownTranslationFactory; use pocketmine\math\Vector3; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; use pocketmine\player\Player; use pocketmine\utils\TextFormat; use pocketmine\world\World; @@ -43,7 +42,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_setworldspawn_description(), KnownTranslationFactory::commands_setworldspawn_usage() ); - $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_SETWORLDSPAWN)); + $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_SETWORLDSPAWN()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/SpawnpointCommand.php b/src/command/defaults/SpawnpointCommand.php index f85b12eccf7..2251da5cc3c 100644 --- a/src/command/defaults/SpawnpointCommand.php +++ b/src/command/defaults/SpawnpointCommand.php @@ -27,8 +27,7 @@ use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\KnownTranslationFactory; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; use pocketmine\player\Player; use pocketmine\world\Position; use pocketmine\world\World; @@ -44,13 +43,13 @@ public function __construct(){ KnownTranslationFactory::commands_spawnpoint_usage() ); $this->setPermissions([ - PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_SPAWNPOINT_SELF), - PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_SPAWNPOINT_OTHER) + DefaultPermissions::POCKETMINE_COMMAND_SPAWNPOINT_SELF(), + DefaultPermissions::POCKETMINE_COMMAND_SPAWNPOINT_OTHER() ]); } public function execute(CommandSender $sender, string $commandLabel, array $args){ - $target = $this->fetchPermittedPlayerTarget($sender, $args[0] ?? null, PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_SPAWNPOINT_SELF), PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_SPAWNPOINT_OTHER)); + $target = $this->fetchPermittedPlayerTarget($sender, $args[0] ?? null, DefaultPermissions::POCKETMINE_COMMAND_SPAWNPOINT_SELF(), DefaultPermissions::POCKETMINE_COMMAND_SPAWNPOINT_OTHER()); if($target === null){ return true; } diff --git a/src/command/defaults/StatusCommand.php b/src/command/defaults/StatusCommand.php index b09c5618e1b..09115fc2841 100644 --- a/src/command/defaults/StatusCommand.php +++ b/src/command/defaults/StatusCommand.php @@ -25,8 +25,7 @@ use pocketmine\command\CommandSender; use pocketmine\lang\KnownTranslationFactory; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; use pocketmine\utils\Process; use pocketmine\utils\TextFormat; use function count; @@ -42,7 +41,7 @@ public function __construct(){ "status", KnownTranslationFactory::pocketmine_command_status_description() ); - $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_STATUS)); + $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_STATUS()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/StopCommand.php b/src/command/defaults/StopCommand.php index 6c248c3e434..5e2d83f07e5 100644 --- a/src/command/defaults/StopCommand.php +++ b/src/command/defaults/StopCommand.php @@ -26,8 +26,7 @@ use pocketmine\command\Command; use pocketmine\command\CommandSender; use pocketmine\lang\KnownTranslationFactory; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; class StopCommand extends VanillaCommand{ @@ -36,7 +35,7 @@ public function __construct(){ "stop", KnownTranslationFactory::pocketmine_command_stop_description() ); - $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_STOP)); + $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_STOP()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/TeleportCommand.php b/src/command/defaults/TeleportCommand.php index 8adea5fa0d3..4c0baab7d06 100644 --- a/src/command/defaults/TeleportCommand.php +++ b/src/command/defaults/TeleportCommand.php @@ -28,8 +28,7 @@ use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\entity\Location; use pocketmine\lang\KnownTranslationFactory; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; use pocketmine\player\Player; use pocketmine\utils\AssumptionFailedError; use pocketmine\utils\TextFormat; @@ -48,8 +47,8 @@ public function __construct(){ ["teleport"] ); $this->setPermissions([ - PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TELEPORT_SELF), - PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TELEPORT_OTHER) + DefaultPermissions::POCKETMINE_COMMAND_TELEPORT_SELF(), + DefaultPermissions::POCKETMINE_COMMAND_TELEPORT_OTHER() ]); } @@ -78,7 +77,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args throw new InvalidCommandSyntaxException(); } - $subject = $this->fetchPermittedPlayerTarget($sender, $subjectName, PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TELEPORT_SELF), PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TELEPORT_OTHER)); + $subject = $this->fetchPermittedPlayerTarget($sender, $subjectName, DefaultPermissions::POCKETMINE_COMMAND_TELEPORT_SELF(), DefaultPermissions::POCKETMINE_COMMAND_TELEPORT_OTHER()); if($subject === null){ return true; } diff --git a/src/command/defaults/TellCommand.php b/src/command/defaults/TellCommand.php index c85adb8af00..22d94cea13b 100644 --- a/src/command/defaults/TellCommand.php +++ b/src/command/defaults/TellCommand.php @@ -27,8 +27,7 @@ use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\KnownTranslationFactory; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; use pocketmine\player\Player; use pocketmine\utils\TextFormat; use function array_shift; @@ -44,7 +43,7 @@ public function __construct(){ KnownTranslationFactory::commands_message_usage(), ["w", "msg"] ); - $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TELL)); + $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_TELL()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/TimeCommand.php b/src/command/defaults/TimeCommand.php index bc85f137814..f79700c970b 100644 --- a/src/command/defaults/TimeCommand.php +++ b/src/command/defaults/TimeCommand.php @@ -27,8 +27,7 @@ use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\KnownTranslationFactory; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; use pocketmine\player\Player; use pocketmine\world\World; use function count; @@ -42,11 +41,11 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_time_usage() ); $this->setPermissions([ - PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TIME_ADD), - PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TIME_SET), - PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TIME_START), - PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TIME_STOP), - PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TIME_QUERY) + DefaultPermissions::POCKETMINE_COMMAND_TIME_ADD(), + DefaultPermissions::POCKETMINE_COMMAND_TIME_SET(), + DefaultPermissions::POCKETMINE_COMMAND_TIME_START(), + DefaultPermissions::POCKETMINE_COMMAND_TIME_STOP(), + DefaultPermissions::POCKETMINE_COMMAND_TIME_QUERY() ]); } @@ -56,7 +55,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args } if($args[0] === "start"){ - if(!$this->testPermission($sender, PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TIME_START))){ + if(!$this->testPermission($sender, DefaultPermissions::POCKETMINE_COMMAND_TIME_START())){ return true; } foreach($sender->getServer()->getWorldManager()->getWorlds() as $world){ @@ -65,7 +64,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args Command::broadcastCommandMessage($sender, "Restarted the time"); return true; }elseif($args[0] === "stop"){ - if(!$this->testPermission($sender, PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TIME_STOP))){ + if(!$this->testPermission($sender, DefaultPermissions::POCKETMINE_COMMAND_TIME_STOP())){ return true; } foreach($sender->getServer()->getWorldManager()->getWorlds() as $world){ @@ -74,7 +73,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args Command::broadcastCommandMessage($sender, "Stopped the time"); return true; }elseif($args[0] === "query"){ - if(!$this->testPermission($sender, PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TIME_QUERY))){ + if(!$this->testPermission($sender, DefaultPermissions::POCKETMINE_COMMAND_TIME_QUERY())){ return true; } if($sender instanceof Player){ @@ -91,7 +90,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args } if($args[0] === "set"){ - if(!$this->testPermission($sender, PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TIME_SET))){ + if(!$this->testPermission($sender, DefaultPermissions::POCKETMINE_COMMAND_TIME_SET())){ return true; } @@ -124,7 +123,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args } Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_time_set((string) $value)); }elseif($args[0] === "add"){ - if(!$this->testPermission($sender, PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TIME_ADD))){ + if(!$this->testPermission($sender, DefaultPermissions::POCKETMINE_COMMAND_TIME_ADD())){ return true; } diff --git a/src/command/defaults/TimingsCommand.php b/src/command/defaults/TimingsCommand.php index 85d34112318..67b52c711fa 100644 --- a/src/command/defaults/TimingsCommand.php +++ b/src/command/defaults/TimingsCommand.php @@ -28,8 +28,7 @@ use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\errorhandler\ErrorToExceptionHandler; use pocketmine\lang\KnownTranslationFactory; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; use pocketmine\player\Player; use pocketmine\scheduler\BulkCurlTask; use pocketmine\scheduler\BulkCurlTaskOperation; @@ -67,7 +66,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_timings_description(), KnownTranslationFactory::pocketmine_command_timings_usage() ); - $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TIMINGS)); + $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_TIMINGS()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/TitleCommand.php b/src/command/defaults/TitleCommand.php index ce30a5888d8..bf164ed1328 100644 --- a/src/command/defaults/TitleCommand.php +++ b/src/command/defaults/TitleCommand.php @@ -26,8 +26,7 @@ use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\KnownTranslationFactory; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; use function array_slice; use function count; use function implode; @@ -41,8 +40,8 @@ public function __construct(){ KnownTranslationFactory::commands_title_usage() ); $this->setPermissions([ - PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TITLE_SELF), - PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TITLE_OTHER) + DefaultPermissions::POCKETMINE_COMMAND_TITLE_SELF(), + DefaultPermissions::POCKETMINE_COMMAND_TITLE_OTHER() ]); } @@ -51,7 +50,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args throw new InvalidCommandSyntaxException(); } - $player = $this->fetchPermittedPlayerTarget($sender, $args[0], PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TITLE_SELF), PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TITLE_OTHER)); + $player = $this->fetchPermittedPlayerTarget($sender, $args[0], DefaultPermissions::POCKETMINE_COMMAND_TITLE_SELF(), DefaultPermissions::POCKETMINE_COMMAND_TITLE_OTHER()); if($player === null){ return true; } diff --git a/src/command/defaults/TransferServerCommand.php b/src/command/defaults/TransferServerCommand.php index f114e0ab0be..b10fba5109b 100644 --- a/src/command/defaults/TransferServerCommand.php +++ b/src/command/defaults/TransferServerCommand.php @@ -26,8 +26,7 @@ use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\KnownTranslationFactory; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; use pocketmine\player\Player; use function count; @@ -39,7 +38,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_transferserver_description(), KnownTranslationFactory::pocketmine_command_transferserver_usage() ); - $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TRANSFERSERVER)); + $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_TRANSFERSERVER()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/VersionCommand.php b/src/command/defaults/VersionCommand.php index 82bf40bae13..4da76d962a3 100644 --- a/src/command/defaults/VersionCommand.php +++ b/src/command/defaults/VersionCommand.php @@ -26,8 +26,7 @@ use pocketmine\command\CommandSender; use pocketmine\lang\KnownTranslationFactory; use pocketmine\network\mcpe\protocol\ProtocolInfo; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; use pocketmine\plugin\Plugin; use pocketmine\utils\TextFormat; use pocketmine\utils\Utils; @@ -48,7 +47,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_version_usage(), ["ver", "about"] ); - $this->setPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_VERSION)); + $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_VERSION()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/WhitelistCommand.php b/src/command/defaults/WhitelistCommand.php index 1099948491e..de7988388d8 100644 --- a/src/command/defaults/WhitelistCommand.php +++ b/src/command/defaults/WhitelistCommand.php @@ -27,8 +27,7 @@ use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\KnownTranslationFactory; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; use pocketmine\player\Player; use pocketmine\Server; use pocketmine\ServerProperties; @@ -47,12 +46,12 @@ public function __construct(){ KnownTranslationFactory::commands_whitelist_usage() ); $this->setPermissions([ - PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_WHITELIST_RELOAD), - PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_WHITELIST_ENABLE), - PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_WHITELIST_DISABLE), - PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_WHITELIST_LIST), - PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_WHITELIST_ADD), - PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_WHITELIST_REMOVE) + DefaultPermissions::POCKETMINE_COMMAND_WHITELIST_RELOAD(), + DefaultPermissions::POCKETMINE_COMMAND_WHITELIST_ENABLE(), + DefaultPermissions::POCKETMINE_COMMAND_WHITELIST_DISABLE(), + DefaultPermissions::POCKETMINE_COMMAND_WHITELIST_LIST(), + DefaultPermissions::POCKETMINE_COMMAND_WHITELIST_ADD(), + DefaultPermissions::POCKETMINE_COMMAND_WHITELIST_REMOVE() ]); } @@ -60,7 +59,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args if(count($args) === 1){ switch(strtolower($args[0])){ case "reload": - if($this->testPermission($sender, PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_WHITELIST_RELOAD))){ + if($this->testPermission($sender, DefaultPermissions::POCKETMINE_COMMAND_WHITELIST_RELOAD())){ $server = $sender->getServer(); $server->getWhitelisted()->reload(); if($server->hasWhitelist()){ @@ -71,7 +70,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args return true; case "on": - if($this->testPermission($sender, PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_WHITELIST_ENABLE))){ + if($this->testPermission($sender, DefaultPermissions::POCKETMINE_COMMAND_WHITELIST_ENABLE())){ $server = $sender->getServer(); $server->getConfigGroup()->setConfigBool(ServerProperties::WHITELIST, true); $this->kickNonWhitelistedPlayers($server); @@ -80,14 +79,14 @@ public function execute(CommandSender $sender, string $commandLabel, array $args return true; case "off": - if($this->testPermission($sender, PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_WHITELIST_DISABLE))){ + if($this->testPermission($sender, DefaultPermissions::POCKETMINE_COMMAND_WHITELIST_DISABLE())){ $sender->getServer()->getConfigGroup()->setConfigBool(ServerProperties::WHITELIST, false); Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_whitelist_disabled()); } return true; case "list": - if($this->testPermission($sender, PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_WHITELIST_LIST))){ + if($this->testPermission($sender, DefaultPermissions::POCKETMINE_COMMAND_WHITELIST_LIST())){ $entries = $sender->getServer()->getWhitelisted()->getAll(true); sort($entries, SORT_STRING); $result = implode(", ", $entries); @@ -113,14 +112,14 @@ public function execute(CommandSender $sender, string $commandLabel, array $args } switch(strtolower($args[0])){ case "add": - if($this->testPermission($sender, PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_WHITELIST_ADD))){ + if($this->testPermission($sender, DefaultPermissions::POCKETMINE_COMMAND_WHITELIST_ADD())){ $sender->getServer()->addWhitelist($args[1]); Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_whitelist_add_success($args[1])); } return true; case "remove": - if($this->testPermission($sender, PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_WHITELIST_REMOVE))){ + if($this->testPermission($sender, DefaultPermissions::POCKETMINE_COMMAND_WHITELIST_REMOVE())){ $server = $sender->getServer(); $server->removeWhitelist($args[1]); if(!$server->isWhitelisted($args[1])){ diff --git a/src/command/defaults/XpCommand.php b/src/command/defaults/XpCommand.php index ba19d3bce8e..4316aa03143 100644 --- a/src/command/defaults/XpCommand.php +++ b/src/command/defaults/XpCommand.php @@ -27,8 +27,7 @@ use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\entity\Attribute; use pocketmine\lang\KnownTranslationFactory; -use pocketmine\permission\DefaultPermissionNames; -use pocketmine\permission\PermissionManager; +use pocketmine\permission\DefaultPermissions; use pocketmine\utils\AssumptionFailedError; use pocketmine\utils\Limits; use pocketmine\utils\TextFormat; @@ -46,8 +45,8 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_xp_usage() ); $this->setPermissions([ - PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_XP_SELF), - PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_XP_OTHER) + DefaultPermissions::POCKETMINE_COMMAND_XP_SELF(), + DefaultPermissions::POCKETMINE_COMMAND_XP_OTHER() ]); } @@ -56,7 +55,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args throw new InvalidCommandSyntaxException(); } - $player = $this->fetchPermittedPlayerTarget($sender, $args[1] ?? null, PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_XP_SELF), PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_XP_OTHER)); + $player = $this->fetchPermittedPlayerTarget($sender, $args[1] ?? null, DefaultPermissions::POCKETMINE_COMMAND_XP_SELF(), DefaultPermissions::POCKETMINE_COMMAND_XP_OTHER()); if($player === null){ return true; } diff --git a/src/network/mcpe/NetworkSession.php b/src/network/mcpe/NetworkSession.php index ee5c446998c..3520f668ec7 100644 --- a/src/network/mcpe/NetworkSession.php +++ b/src/network/mcpe/NetworkSession.php @@ -97,9 +97,7 @@ use pocketmine\network\mcpe\protocol\UpdateAdventureSettingsPacket; use pocketmine\network\NetworkSessionManager; use pocketmine\network\PacketHandlingException; -use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissions; -use pocketmine\permission\PermissionManager; use pocketmine\player\GameMode; use pocketmine\player\Player; use pocketmine\player\PlayerInfo; @@ -1035,7 +1033,7 @@ public function syncGameMode(GameMode $mode, bool $isRollback = false) : void{ } public function syncAbilities(Player $for) : void{ - $isOp = $for->hasPermission(PermissionManager::getInstance()->getPermission(DefaultPermissions::ROOT_OPERATOR)); + $isOp = $for->hasPermission(DefaultPermissions::POCKETMINE_GROUP_OPERATOR()); //ALL of these need to be set for the base layer, otherwise the client will cry $boolAbilities = [ @@ -1043,7 +1041,7 @@ public function syncAbilities(Player $for) : void{ AbilitiesLayer::ABILITY_FLYING => $for->isFlying(), AbilitiesLayer::ABILITY_NO_CLIP => !$for->hasBlockCollision(), AbilitiesLayer::ABILITY_OPERATOR => $isOp, - AbilitiesLayer::ABILITY_TELEPORT => $for->hasPermission(PermissionManager::getInstance()->getPermission(DefaultPermissionNames::COMMAND_TELEPORT_SELF)), + AbilitiesLayer::ABILITY_TELEPORT => $for->hasPermission(DefaultPermissions::POCKETMINE_COMMAND_TELEPORT_SELF()), AbilitiesLayer::ABILITY_INVULNERABLE => $for->isCreative(), AbilitiesLayer::ABILITY_MUTED => false, AbilitiesLayer::ABILITY_WORLD_BUILDER => false, diff --git a/src/permission/DefaultPermissionNames.php b/src/permission/DefaultPermissionNames.php deleted file mode 100644 index a916e813c05..00000000000 --- a/src/permission/DefaultPermissionNames.php +++ /dev/null @@ -1,92 +0,0 @@ -addChild($candidate->getName(), true); } @@ -43,76 +112,81 @@ public static function registerPermission(Permission $candidate, array $grantedB $permission->addChild($candidate->getName(), false); } PermissionManager::getInstance()->addPermission($candidate); + self::_registryRegister(str_replace(".", "_", $candidate->getName()), $candidate); return PermissionManager::getInstance()->getPermission($candidate->getName()); } + protected static function setup() : void{ + self::registerCorePermissions(); + } + public static function registerCorePermissions() : void{ - $consoleRoot = self::registerPermission(new Permission(self::ROOT_CONSOLE, l10n::pocketmine_permission_group_console())); - $operatorRoot = self::registerPermission(new Permission(self::ROOT_OPERATOR, l10n::pocketmine_permission_group_operator()), [$consoleRoot]); - $everyoneRoot = self::registerPermission(new Permission(self::ROOT_USER, l10n::pocketmine_permission_group_user()), [$operatorRoot]); + $consoleRoot = self::registerPermission(new Permission("pocketmine.group.console", l10n::pocketmine_permission_group_console())); + $operatorRoot = self::registerPermission(new Permission("pocketmine.group.operator", l10n::pocketmine_permission_group_operator()), [$consoleRoot]); + $everyoneRoot = self::registerPermission(new Permission("pocketmine.group.user", l10n::pocketmine_permission_group_user()), [$operatorRoot]); - self::registerPermission(new Permission(Names::BROADCAST_ADMIN, l10n::pocketmine_permission_broadcast_admin()), [$operatorRoot]); - self::registerPermission(new Permission(Names::BROADCAST_USER, l10n::pocketmine_permission_broadcast_user()), [$everyoneRoot]); - self::registerPermission(new Permission(Names::COMMAND_BAN_IP, l10n::pocketmine_permission_command_ban_ip()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_BAN_LIST, l10n::pocketmine_permission_command_ban_list()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_BAN_PLAYER, l10n::pocketmine_permission_command_ban_player()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_CLEAR_OTHER, l10n::pocketmine_permission_command_clear_other()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_CLEAR_SELF, l10n::pocketmine_permission_command_clear_self()), [$everyoneRoot]); - self::registerPermission(new Permission(Names::COMMAND_DEFAULTGAMEMODE, l10n::pocketmine_permission_command_defaultgamemode()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_DIFFICULTY, l10n::pocketmine_permission_command_difficulty()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_DUMPMEMORY, l10n::pocketmine_permission_command_dumpmemory()), [$consoleRoot]); - self::registerPermission(new Permission(Names::COMMAND_EFFECT_OTHER, l10n::pocketmine_permission_command_effect_other()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_EFFECT_SELF, l10n::pocketmine_permission_command_effect_self()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_ENCHANT_OTHER, l10n::pocketmine_permission_command_enchant_other()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_ENCHANT_SELF, l10n::pocketmine_permission_command_enchant_self()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_GAMEMODE_OTHER, l10n::pocketmine_permission_command_gamemode_other()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_GAMEMODE_SELF, l10n::pocketmine_permission_command_gamemode_self()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_GC, l10n::pocketmine_permission_command_gc()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_GIVE_OTHER, l10n::pocketmine_permission_command_give_other()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_GIVE_SELF, l10n::pocketmine_permission_command_give_self()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_HELP, l10n::pocketmine_permission_command_help()), [$everyoneRoot]); - self::registerPermission(new Permission(Names::COMMAND_KICK, l10n::pocketmine_permission_command_kick()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_KILL_OTHER, l10n::pocketmine_permission_command_kill_other()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_KILL_SELF, l10n::pocketmine_permission_command_kill_self()), [$everyoneRoot]); - self::registerPermission(new Permission(Names::COMMAND_LIST, l10n::pocketmine_permission_command_list()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_ME, l10n::pocketmine_permission_command_me()), [$everyoneRoot]); - self::registerPermission(new Permission(Names::COMMAND_OP_GIVE, l10n::pocketmine_permission_command_op_give()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_OP_TAKE, l10n::pocketmine_permission_command_op_take()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_PARTICLE, l10n::pocketmine_permission_command_particle()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_PLUGINS, l10n::pocketmine_permission_command_plugins()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_SAVE_DISABLE, l10n::pocketmine_permission_command_save_disable()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_SAVE_ENABLE, l10n::pocketmine_permission_command_save_enable()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_SAVE_PERFORM, l10n::pocketmine_permission_command_save_perform()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_SAY, l10n::pocketmine_permission_command_say()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_SEED, l10n::pocketmine_permission_command_seed()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_SETWORLDSPAWN, l10n::pocketmine_permission_command_setworldspawn()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_SPAWNPOINT_OTHER, l10n::pocketmine_permission_command_spawnpoint_other()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_SPAWNPOINT_SELF, l10n::pocketmine_permission_command_spawnpoint_self()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_STATUS, l10n::pocketmine_permission_command_status()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_STOP, l10n::pocketmine_permission_command_stop()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_TELEPORT_OTHER, l10n::pocketmine_permission_command_teleport_other()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_TELEPORT_SELF, l10n::pocketmine_permission_command_teleport_self()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_TELL, l10n::pocketmine_permission_command_tell()), [$everyoneRoot]); - self::registerPermission(new Permission(Names::COMMAND_TIME_ADD, l10n::pocketmine_permission_command_time_add()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_TIME_QUERY, l10n::pocketmine_permission_command_time_query()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_TIME_SET, l10n::pocketmine_permission_command_time_set()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_TIME_START, l10n::pocketmine_permission_command_time_start()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_TIME_STOP, l10n::pocketmine_permission_command_time_stop()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_TIMINGS, l10n::pocketmine_permission_command_timings()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_TITLE_OTHER, l10n::pocketmine_permission_command_title_other()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_TITLE_SELF, l10n::pocketmine_permission_command_title_self()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_TRANSFERSERVER, l10n::pocketmine_permission_command_transferserver()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_UNBAN_IP, l10n::pocketmine_permission_command_unban_ip()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_UNBAN_PLAYER, l10n::pocketmine_permission_command_unban_player()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_VERSION, l10n::pocketmine_permission_command_version()), [$everyoneRoot]); - self::registerPermission(new Permission(Names::COMMAND_WHITELIST_ADD, l10n::pocketmine_permission_command_whitelist_add()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_WHITELIST_DISABLE, l10n::pocketmine_permission_command_whitelist_disable()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_WHITELIST_ENABLE, l10n::pocketmine_permission_command_whitelist_enable()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_WHITELIST_LIST, l10n::pocketmine_permission_command_whitelist_list()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_WHITELIST_RELOAD, l10n::pocketmine_permission_command_whitelist_reload()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_WHITELIST_REMOVE, l10n::pocketmine_permission_command_whitelist_remove()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_XP_OTHER, l10n::pocketmine_permission_command_xp_other()), [$operatorRoot]); - self::registerPermission(new Permission(Names::COMMAND_XP_SELF, l10n::pocketmine_permission_command_xp_self()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.broadcast.admin", l10n::pocketmine_permission_broadcast_admin()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.broadcast.user", l10n::pocketmine_permission_broadcast_user()), [$everyoneRoot]); + self::registerPermission(new Permission("pocketmine.command.ban.ip", l10n::pocketmine_permission_command_ban_ip()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.ban.list", l10n::pocketmine_permission_command_ban_list()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.ban.player", l10n::pocketmine_permission_command_ban_player()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.clear.other", l10n::pocketmine_permission_command_clear_other()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.clear.self", l10n::pocketmine_permission_command_clear_self()), [$everyoneRoot]); + self::registerPermission(new Permission("pocketmine.command.defaultgamemode", l10n::pocketmine_permission_command_defaultgamemode()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.difficulty", l10n::pocketmine_permission_command_difficulty()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.dumpmemory", l10n::pocketmine_permission_command_dumpmemory()), [$consoleRoot]); + self::registerPermission(new Permission("pocketmine.command.effect.other", l10n::pocketmine_permission_command_effect_other()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.effect.self", l10n::pocketmine_permission_command_effect_self()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.enchant.other", l10n::pocketmine_permission_command_enchant_other()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.enchant.self", l10n::pocketmine_permission_command_enchant_self()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.gamemode.other", l10n::pocketmine_permission_command_gamemode_other()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.gamemode.self", l10n::pocketmine_permission_command_gamemode_self()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.gc", l10n::pocketmine_permission_command_gc()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.give.other", l10n::pocketmine_permission_command_give_other()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.give.self", l10n::pocketmine_permission_command_give_self()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.help", l10n::pocketmine_permission_command_help()), [$everyoneRoot]); + self::registerPermission(new Permission("pocketmine.command.kick", l10n::pocketmine_permission_command_kick()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.kill.other", l10n::pocketmine_permission_command_kill_other()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.kill.self", l10n::pocketmine_permission_command_kill_self()), [$everyoneRoot]); + self::registerPermission(new Permission("pocketmine.command.list", l10n::pocketmine_permission_command_list()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.me", l10n::pocketmine_permission_command_me()), [$everyoneRoot]); + self::registerPermission(new Permission("pocketmine.command.op.give", l10n::pocketmine_permission_command_op_give()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.op.take", l10n::pocketmine_permission_command_op_take()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.particle", l10n::pocketmine_permission_command_particle()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.plugins", l10n::pocketmine_permission_command_plugins()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.save.disable", l10n::pocketmine_permission_command_save_disable()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.save.enable", l10n::pocketmine_permission_command_save_enable()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.save.perform", l10n::pocketmine_permission_command_save_perform()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.say", l10n::pocketmine_permission_command_say()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.seed", l10n::pocketmine_permission_command_seed()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.setworldspawn", l10n::pocketmine_permission_command_setworldspawn()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.spawnpoint.other", l10n::pocketmine_permission_command_spawnpoint_other()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.spawnpoint.self", l10n::pocketmine_permission_command_spawnpoint_self()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.status", l10n::pocketmine_permission_command_status()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.stop", l10n::pocketmine_permission_command_stop()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.teleport.other", l10n::pocketmine_permission_command_teleport_other()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.teleport.self", l10n::pocketmine_permission_command_teleport_self()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.tell", l10n::pocketmine_permission_command_tell()), [$everyoneRoot]); + self::registerPermission(new Permission("pocketmine.command.time.add", l10n::pocketmine_permission_command_time_add()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.time.query", l10n::pocketmine_permission_command_time_query()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.time.set", l10n::pocketmine_permission_command_time_set()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.time.start", l10n::pocketmine_permission_command_time_start()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.time.stop", l10n::pocketmine_permission_command_time_stop()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.timings", l10n::pocketmine_permission_command_timings()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.title.other", l10n::pocketmine_permission_command_title_other()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.title.self", l10n::pocketmine_permission_command_title_self()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.transferserver", l10n::pocketmine_permission_command_transferserver()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.unban.ip", l10n::pocketmine_permission_command_unban_ip()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.unban.player", l10n::pocketmine_permission_command_unban_player()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.version", l10n::pocketmine_permission_command_version()), [$everyoneRoot]); + self::registerPermission(new Permission("pocketmine.command.whitelist.add", l10n::pocketmine_permission_command_whitelist_add()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.whitelist.disable", l10n::pocketmine_permission_command_whitelist_disable()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.whitelist.enable", l10n::pocketmine_permission_command_whitelist_enable()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.whitelist.list", l10n::pocketmine_permission_command_whitelist_list()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.whitelist.reload", l10n::pocketmine_permission_command_whitelist_reload()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.whitelist.remove", l10n::pocketmine_permission_command_whitelist_remove()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.xp.other", l10n::pocketmine_permission_command_xp_other()), [$operatorRoot]); + self::registerPermission(new Permission("pocketmine.command.xp.self", l10n::pocketmine_permission_command_xp_self()), [$operatorRoot]); } } diff --git a/src/player/Player.php b/src/player/Player.php index 7a9c4bb2320..248ebc25893 100644 --- a/src/player/Player.php +++ b/src/player/Player.php @@ -116,11 +116,9 @@ use pocketmine\network\mcpe\protocol\types\entity\EntityMetadataFlags; use pocketmine\network\mcpe\protocol\types\entity\EntityMetadataProperties; use pocketmine\network\mcpe\protocol\types\entity\PlayerMetadataFlags; -use pocketmine\permission\DefaultPermissionNames; use pocketmine\permission\DefaultPermissions; use pocketmine\permission\PermissibleBase; use pocketmine\permission\PermissibleDelegateTrait; -use pocketmine\permission\PermissionManager; use pocketmine\player\chat\StandardChatFormatter; use pocketmine\Server; use pocketmine\ServerProperties; @@ -921,11 +919,10 @@ static function() : void{ private function recheckBroadcastPermissions() : void{ foreach([ - DefaultPermissionNames::BROADCAST_ADMIN => Server::BROADCAST_CHANNEL_ADMINISTRATIVE, - DefaultPermissionNames::BROADCAST_USER => Server::BROADCAST_CHANNEL_USERS - ] as $permissionName => $channel){ - $permission = PermissionManager::getInstance()->getPermission($permissionName); - if($permission !== null && $this->hasPermission($permission)){ + Server::BROADCAST_CHANNEL_ADMINISTRATIVE => DefaultPermissions::POCKETMINE_BROADCAST_ADMIN(), + Server::BROADCAST_CHANNEL_USERS => DefaultPermissions::POCKETMINE_BROADCAST_USER(), + ] as $channel => $permission){ + if($this->hasPermission($permission)){ $this->server->subscribeToBroadcastChannel($channel, $this); }else{ $this->server->unsubscribeFromBroadcastChannel($channel, $this); diff --git a/src/plugin/PluginManager.php b/src/plugin/PluginManager.php index 1a74b64e75a..959fd59704d 100644 --- a/src/plugin/PluginManager.php +++ b/src/plugin/PluginManager.php @@ -188,8 +188,8 @@ private function internalLoadPlugin(string $path, PluginLoader $loader, PluginDe } } } - $opRoot = $permManager->getPermission(DefaultPermissions::ROOT_OPERATOR); - $everyoneRoot = $permManager->getPermission(DefaultPermissions::ROOT_USER); + $opRoot = DefaultPermissions::POCKETMINE_GROUP_OPERATOR(); + $everyoneRoot = DefaultPermissions::POCKETMINE_GROUP_USER(); foreach(Utils::stringifyKeys($description->getPermissions()) as $default => $perms){ foreach($perms as $perm){ $permManager->addPermission($perm); From 7ed24c1f1a22e902a674afeca6abef0bcbb28f14 Mon Sep 17 00:00:00 2001 From: Hugo_ <55756021+Dhaiven@users.noreply.github.com> Date: Thu, 20 Feb 2025 16:20:06 +0100 Subject: [PATCH 04/14] Fix bugs --- src/command/Command.php | 5 ++++- src/permission/DefaultPermissions.php | 1 + src/plugin/PluginBase.php | 3 ++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/command/Command.php b/src/command/Command.php index 084246dd189..b32c844e7e5 100644 --- a/src/command/Command.php +++ b/src/command/Command.php @@ -125,7 +125,10 @@ public function testPermission(CommandSender $target, ?Permission $permission = if($message instanceof Translatable){ $target->sendMessage($message->prefix(TextFormat::RED)); }elseif($message !== ""){ - $target->sendMessage(str_replace("", $permission?->getName() ?? implode(";", $this->permission), $message)); + $permissionsName = array_map(function (Permission $permission): string{ + return $permission->getName(); + }, $this->permission); + $target->sendMessage(str_replace("", $permission?->getName() ?? implode(";", $permissionsName), $message)); } return false; diff --git a/src/permission/DefaultPermissions.php b/src/permission/DefaultPermissions.php index 64ce8e5090c..d54f8daa36b 100644 --- a/src/permission/DefaultPermissions.php +++ b/src/permission/DefaultPermissions.php @@ -25,6 +25,7 @@ use pocketmine\lang\KnownTranslationFactory as l10n; use pocketmine\utils\RegistryTrait; +use function str_replace; /** * @method static Permission POCKETMINE_BROADCAST_ADMIN() diff --git a/src/plugin/PluginBase.php b/src/plugin/PluginBase.php index a32339e84e6..73f10db0704 100644 --- a/src/plugin/PluginBase.php +++ b/src/plugin/PluginBase.php @@ -28,6 +28,7 @@ use pocketmine\command\CommandSender; use pocketmine\command\PluginCommand; use pocketmine\lang\KnownTranslationFactory; +use pocketmine\permission\PermissionManager; use pocketmine\scheduler\TaskScheduler; use pocketmine\Server; use pocketmine\utils\Config; @@ -174,7 +175,7 @@ private function registerYamlCommands() : void{ $newCmd->setAliases($aliasList); - $newCmd->setPermission($data->getPermission()); + $newCmd->setPermission(PermissionManager::getInstance()->getPermission($data->getPermission())); if(($permissionDeniedMessage = $data->getPermissionDeniedMessage()) !== null){ $newCmd->setPermissionMessage($permissionDeniedMessage); From 3a8279aea04f884efdaf657bea540b77bda1cbda Mon Sep 17 00:00:00 2001 From: Hugo_ <55756021+Dhaiven@users.noreply.github.com> Date: Thu, 20 Feb 2025 16:23:12 +0100 Subject: [PATCH 05/14] CS --- src/command/Command.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/command/Command.php b/src/command/Command.php index b32c844e7e5..9b9c7f59bb5 100644 --- a/src/command/Command.php +++ b/src/command/Command.php @@ -34,6 +34,7 @@ use pocketmine\utils\BroadcastLoggerForwarder; use pocketmine\utils\TextFormat; use pocketmine\utils\Utils; +use function array_map; use function array_values; use function implode; use function str_replace; @@ -125,7 +126,7 @@ public function testPermission(CommandSender $target, ?Permission $permission = if($message instanceof Translatable){ $target->sendMessage($message->prefix(TextFormat::RED)); }elseif($message !== ""){ - $permissionsName = array_map(function (Permission $permission): string{ + $permissionsName = array_map(function (Permission $permission) : string{ return $permission->getName(); }, $this->permission); $target->sendMessage(str_replace("", $permission?->getName() ?? implode(";", $permissionsName), $message)); From a213617678143b176554a5d5d505f3f0885aa20d Mon Sep 17 00:00:00 2001 From: Hugo_ <55756021+Dhaiven@users.noreply.github.com> Date: Thu, 20 Feb 2025 19:27:07 +0100 Subject: [PATCH 06/14] Add forgotten functions --- src/permission/DefaultPermissions.php | 4 +-- src/permission/Permissible.php | 2 +- src/permission/PermissibleDelegateTrait.php | 4 +-- src/permission/PermissibleInternal.php | 6 ++--- src/permission/Permission.php | 19 +++++++------- src/permission/PermissionAttachment.php | 29 +++------------------ src/plugin/PluginManager.php | 9 ++++--- 7 files changed, 27 insertions(+), 46 deletions(-) diff --git a/src/permission/DefaultPermissions.php b/src/permission/DefaultPermissions.php index d54f8daa36b..63a0105d94f 100644 --- a/src/permission/DefaultPermissions.php +++ b/src/permission/DefaultPermissions.php @@ -107,10 +107,10 @@ final class DefaultPermissions{ */ private static function registerPermission(Permission $candidate, array $grantedBy = [], array $deniedBy = []) : Permission{ foreach($grantedBy as $permission){ - $permission->addChild($candidate->getName(), true); + $permission->addChild($candidate, true); } foreach($deniedBy as $permission){ - $permission->addChild($candidate->getName(), false); + $permission->addChild($candidate, false); } PermissionManager::getInstance()->addPermission($candidate); self::_registryRegister(str_replace(".", "_", $candidate->getName()), $candidate); diff --git a/src/permission/Permissible.php b/src/permission/Permissible.php index 9e357b25796..589d1116a70 100644 --- a/src/permission/Permissible.php +++ b/src/permission/Permissible.php @@ -56,7 +56,7 @@ public function isPermissionSet(Permission $permission) : bool; */ public function hasPermission(Permission $permission) : bool; - public function addAttachment(Plugin $plugin, ?string $name = null, ?bool $value = null) : PermissionAttachment; + public function addAttachment(Plugin $plugin, ?Permission $permission = null, ?bool $value = null) : PermissionAttachment; public function removeAttachment(PermissionAttachment $attachment) : void; diff --git a/src/permission/PermissibleDelegateTrait.php b/src/permission/PermissibleDelegateTrait.php index 04ac2a2d580..8ecc36a5bf4 100644 --- a/src/permission/PermissibleDelegateTrait.php +++ b/src/permission/PermissibleDelegateTrait.php @@ -47,8 +47,8 @@ public function hasPermission(Permission $permission) : bool{ return $this->perm->hasPermission($permission); } - public function addAttachment(Plugin $plugin, ?string $name = null, ?bool $value = null) : PermissionAttachment{ - return $this->perm->addAttachment($plugin, $name, $value); + public function addAttachment(Plugin $plugin, ?Permission $permission = null, ?bool $value = null) : PermissionAttachment{ + return $this->perm->addAttachment($plugin, $permission, $value); } public function removeAttachment(PermissionAttachment $attachment) : void{ diff --git a/src/permission/PermissibleInternal.php b/src/permission/PermissibleInternal.php index da5cef9f2b4..201491087d8 100644 --- a/src/permission/PermissibleInternal.php +++ b/src/permission/PermissibleInternal.php @@ -94,15 +94,15 @@ public function hasPermission(Permission $permission) : bool{ /** * //TODO: tick scheduled attachments */ - public function addAttachment(Plugin $plugin, ?string $name = null, ?bool $value = null) : PermissionAttachment{ + public function addAttachment(Plugin $plugin, ?Permission $permission = null, ?bool $value = null) : PermissionAttachment{ if(!$plugin->isEnabled()){ throw new PluginException("Plugin " . $plugin->getDescription()->getName() . " is disabled"); } $result = new PermissionAttachment($plugin); $this->attachments[spl_object_id($result)] = $result; - if($name !== null && $value !== null){ - $result->setPermission($name, $value); + if($permission !== null && $value !== null){ + $result->setPermission($permission, $value); } $result->subscribePermissible($this); diff --git a/src/permission/Permission.php b/src/permission/Permission.php index fc10e358775..22174a11884 100644 --- a/src/permission/Permission.php +++ b/src/permission/Permission.php @@ -36,15 +36,17 @@ class Permission{ private Translatable|string $description; /** - * Creates a new Permission object to be attached to Permissible objects - * - * @param bool[] $children + * @var bool[] $children * @phpstan-param array $children */ + private array $children = []; + + /** + * Creates a new Permission object to be attached to Permissible objects + */ public function __construct( private string $name, Translatable|string|null $description = null, - private array $children = [] ){ $this->description = $description ?? ""; //TODO: wtf ???? @@ -86,14 +88,13 @@ public function recalculatePermissibles() : void{ } } - public function addChild(string $name, bool $value) : void{ - $this->children[$name] = $value; + public function addChild(Permission $permission, bool $value) : void{ + $this->children[$permission->getName()] = $value; $this->recalculatePermissibles(); } - public function removeChild(string $name) : void{ - unset($this->children[$name]); + public function removeChild(Permission $permission) : void{ + unset($this->children[$permission->getName()]); $this->recalculatePermissibles(); - } } diff --git a/src/permission/PermissionAttachment.php b/src/permission/PermissionAttachment.php index 79c66ba8a16..d87e4b47db1 100644 --- a/src/permission/PermissionAttachment.php +++ b/src/permission/PermissionAttachment.php @@ -81,29 +81,8 @@ public function clearPermissions() : void{ $this->recalculatePermissibles(); } - /** - * @param bool[] $permissions - * @phpstan-param array $permissions - */ - public function setPermissions(array $permissions) : void{ - foreach(Utils::stringifyKeys($permissions) as $key => $value){ - $this->permissions[$key] = $value; - } - $this->recalculatePermissibles(); - } - - /** - * @param string[] $permissions - */ - public function unsetPermissions(array $permissions) : void{ - foreach($permissions as $node){ - unset($this->permissions[$node]); - } - $this->recalculatePermissibles(); - } - - public function setPermission(Permission|string $name, bool $value) : void{ - $name = $name instanceof Permission ? $name->getName() : $name; + public function setPermission(Permission $permission, bool $value) : void{ + $name = $permission->getName(); if(isset($this->permissions[$name])){ if($this->permissions[$name] === $value){ return; @@ -123,8 +102,8 @@ public function setPermission(Permission|string $name, bool $value) : void{ $this->recalculatePermissibles(); } - public function unsetPermission(Permission|string $name) : void{ - $name = $name instanceof Permission ? $name->getName() : $name; + public function unsetPermission(Permission $permission) : void{ + $name = $permission->getName(); if(isset($this->permissions[$name])){ unset($this->permissions[$name]); $this->recalculatePermissibles(); diff --git a/src/plugin/PluginManager.php b/src/plugin/PluginManager.php index 959fd59704d..1f4f8f6dcbd 100644 --- a/src/plugin/PluginManager.php +++ b/src/plugin/PluginManager.php @@ -34,6 +34,7 @@ use pocketmine\event\RegisteredListener; use pocketmine\lang\KnownTranslationFactory; use pocketmine\permission\DefaultPermissions; +use pocketmine\permission\Permission; use pocketmine\permission\PermissionManager; use pocketmine\permission\PermissionParser; use pocketmine\Server; @@ -195,10 +196,10 @@ private function internalLoadPlugin(string $path, PluginLoader $loader, PluginDe $permManager->addPermission($perm); switch($default){ case PermissionParser::DEFAULT_TRUE: - $everyoneRoot->addChild($perm->getName(), true); + $everyoneRoot->addChild($perm, true); break; case PermissionParser::DEFAULT_OP: - $opRoot->addChild($perm->getName(), true); + $opRoot->addChild($perm, true); break; case PermissionParser::DEFAULT_NOT_OP: //TODO: I don't think anyone uses this, and it currently relies on some magic inside PermissibleBase @@ -207,8 +208,8 @@ private function internalLoadPlugin(string $path, PluginLoader $loader, PluginDe //The following grants this permission to anyone who has the "everyone" root permission. //However, if the operator root node (which has higher priority) is present, the //permission will be denied instead. - $everyoneRoot->addChild($perm->getName(), true); - $opRoot->addChild($perm->getName(), false); + $everyoneRoot->addChild($perm, true); + $opRoot->addChild($perm, false); break; default: break; From c1e04b5e4bda3f3b8f2faeac99077127c6e0aeab Mon Sep 17 00:00:00 2001 From: Hugo_ <55756021+Dhaiven@users.noreply.github.com> Date: Thu, 20 Feb 2025 19:29:02 +0100 Subject: [PATCH 07/14] CS --- src/permission/PermissionAttachment.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/permission/PermissionAttachment.php b/src/permission/PermissionAttachment.php index d87e4b47db1..2c5afbc7f89 100644 --- a/src/permission/PermissionAttachment.php +++ b/src/permission/PermissionAttachment.php @@ -25,7 +25,6 @@ use pocketmine\plugin\Plugin; use pocketmine\plugin\PluginException; -use pocketmine\utils\Utils; use function spl_object_id; class PermissionAttachment{ From a0d947f9703a86e79661136234a597ef6be0e219 Mon Sep 17 00:00:00 2001 From: Hugo_ <55756021+Dhaiven@users.noreply.github.com> Date: Wed, 26 Feb 2025 17:39:16 +0100 Subject: [PATCH 08/14] Fix setPermission incorect work --- src/command/Command.php | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/command/Command.php b/src/command/Command.php index 9b9c7f59bb5..ea8fe8141c1 100644 --- a/src/command/Command.php +++ b/src/command/Command.php @@ -109,12 +109,7 @@ public function setPermissions(array $permissions) : void{ } public function setPermission(?Permission $permission) : void{ - $permissions = []; - if ($permission !== null){ - $permissions = $this->permission; - $permissions[] = $permission; - } - $this->setPermissions($permissions); + $this->setPermissions($permission === null ? [] : [$permission]); } public function testPermission(CommandSender $target, ?Permission $permission = null) : bool{ From cdfcf2c2b90ab6444f7d5ebecf0af1fc162634d9 Mon Sep 17 00:00:00 2001 From: Hugo_ <55756021+Dhaiven@users.noreply.github.com> Date: Wed, 26 Feb 2025 17:41:50 +0100 Subject: [PATCH 09/14] Remove useless checks --- src/command/defaults/VanillaCommand.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/command/defaults/VanillaCommand.php b/src/command/defaults/VanillaCommand.php index 66c53945f1d..a5d7657592a 100644 --- a/src/command/defaults/VanillaCommand.php +++ b/src/command/defaults/VanillaCommand.php @@ -51,8 +51,8 @@ protected function fetchPermittedPlayerTarget(CommandSender $sender, ?string $ta return null; } if( - ($player === $sender && ($selfPermission === null || $this->testPermission($sender, $selfPermission))) || - ($player !== $sender && ($otherPermission === null || $this->testPermission($sender, $otherPermission))) + ($player === $sender && $this->testPermission($sender, $selfPermission)) || + ($player !== $sender && $this->testPermission($sender, $otherPermission)) ){ return $player; } From 57eabfe7419c1ff061b04f75633acd36981e8c37 Mon Sep 17 00:00:00 2001 From: Hugo_ <55756021+Dhaiven@users.noreply.github.com> Date: Wed, 26 Feb 2025 17:50:00 +0100 Subject: [PATCH 10/14] Remove POCKETMINE prefix from DefaultPermissions --- src/Server.php | 4 +- src/command/defaults/BanCommand.php | 2 +- src/command/defaults/BanIpCommand.php | 2 +- src/command/defaults/BanListCommand.php | 2 +- src/command/defaults/ClearCommand.php | 6 +- .../defaults/DefaultGamemodeCommand.php | 2 +- src/command/defaults/DeopCommand.php | 2 +- src/command/defaults/DifficultyCommand.php | 2 +- src/command/defaults/DumpMemoryCommand.php | 2 +- src/command/defaults/EffectCommand.php | 6 +- src/command/defaults/EnchantCommand.php | 6 +- src/command/defaults/GamemodeCommand.php | 6 +- .../defaults/GarbageCollectorCommand.php | 2 +- src/command/defaults/GiveCommand.php | 6 +- src/command/defaults/HelpCommand.php | 2 +- src/command/defaults/KickCommand.php | 2 +- src/command/defaults/KillCommand.php | 6 +- src/command/defaults/ListCommand.php | 2 +- src/command/defaults/MeCommand.php | 2 +- src/command/defaults/OpCommand.php | 2 +- src/command/defaults/PardonCommand.php | 2 +- src/command/defaults/PardonIpCommand.php | 2 +- src/command/defaults/ParticleCommand.php | 2 +- src/command/defaults/PluginsCommand.php | 2 +- src/command/defaults/SaveCommand.php | 2 +- src/command/defaults/SaveOffCommand.php | 2 +- src/command/defaults/SaveOnCommand.php | 2 +- src/command/defaults/SayCommand.php | 2 +- src/command/defaults/SeedCommand.php | 2 +- src/command/defaults/SetWorldSpawnCommand.php | 2 +- src/command/defaults/SpawnpointCommand.php | 6 +- src/command/defaults/StatusCommand.php | 2 +- src/command/defaults/StopCommand.php | 2 +- src/command/defaults/TeleportCommand.php | 6 +- src/command/defaults/TellCommand.php | 2 +- src/command/defaults/TimeCommand.php | 20 +-- src/command/defaults/TimingsCommand.php | 2 +- src/command/defaults/TitleCommand.php | 6 +- .../defaults/TransferServerCommand.php | 2 +- src/command/defaults/VersionCommand.php | 2 +- src/command/defaults/WhitelistCommand.php | 24 ++-- src/command/defaults/XpCommand.php | 6 +- src/network/mcpe/NetworkSession.php | 4 +- src/permission/DefaultPermissions.php | 134 +++++++++--------- src/player/Player.php | 4 +- src/plugin/PluginManager.php | 4 +- 46 files changed, 157 insertions(+), 155 deletions(-) diff --git a/src/Server.php b/src/Server.php index 7311372288a..b5fbe9f281b 100644 --- a/src/Server.php +++ b/src/Server.php @@ -697,7 +697,7 @@ public function addOp(string $name) : void{ $this->operators->set(strtolower($name), true); if(($player = $this->getPlayerExact($name)) !== null){ - $player->setBasePermission(DefaultPermissions::POCKETMINE_GROUP_OPERATOR(), true); + $player->setBasePermission(DefaultPermissions::GROUP_OPERATOR(), true); } $this->operators->save(); } @@ -712,7 +712,7 @@ public function removeOp(string $name) : void{ } if(($player = $this->getPlayerExact($name)) !== null){ - $player->unsetBasePermission(DefaultPermissions::POCKETMINE_GROUP_OPERATOR()); + $player->unsetBasePermission(DefaultPermissions::GROUP_OPERATOR()); } $this->operators->save(); } diff --git a/src/command/defaults/BanCommand.php b/src/command/defaults/BanCommand.php index 6f1200551c1..6204dab3777 100644 --- a/src/command/defaults/BanCommand.php +++ b/src/command/defaults/BanCommand.php @@ -41,7 +41,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_ban_player_description(), KnownTranslationFactory::commands_ban_usage() ); - $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_BAN_PLAYER()); + $this->setPermission(DefaultPermissions::COMMAND_BAN_PLAYER()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/BanIpCommand.php b/src/command/defaults/BanIpCommand.php index f810b7834db..b507741b687 100644 --- a/src/command/defaults/BanIpCommand.php +++ b/src/command/defaults/BanIpCommand.php @@ -42,7 +42,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_ban_ip_description(), KnownTranslationFactory::commands_banip_usage() ); - $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_BAN_IP()); + $this->setPermission(DefaultPermissions::COMMAND_BAN_IP()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/BanListCommand.php b/src/command/defaults/BanListCommand.php index 23c05ecfac0..a852d91e75d 100644 --- a/src/command/defaults/BanListCommand.php +++ b/src/command/defaults/BanListCommand.php @@ -43,7 +43,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_banlist_description(), KnownTranslationFactory::commands_banlist_usage() ); - $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_BAN_LIST()); + $this->setPermission(DefaultPermissions::COMMAND_BAN_LIST()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/ClearCommand.php b/src/command/defaults/ClearCommand.php index 98fabb3eec0..61f0252c669 100644 --- a/src/command/defaults/ClearCommand.php +++ b/src/command/defaults/ClearCommand.php @@ -46,8 +46,8 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_clear_usage() ); $this->setPermissions([ - DefaultPermissions::POCKETMINE_COMMAND_CLEAR_SELF(), - DefaultPermissions::POCKETMINE_COMMAND_CLEAR_OTHER() + DefaultPermissions::COMMAND_CLEAR_SELF(), + DefaultPermissions::COMMAND_CLEAR_OTHER() ]); } @@ -56,7 +56,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args throw new InvalidCommandSyntaxException(); } - $target = $this->fetchPermittedPlayerTarget($sender, $args[0] ?? null, DefaultPermissions::POCKETMINE_COMMAND_CLEAR_SELF(), DefaultPermissions::POCKETMINE_COMMAND_CLEAR_OTHER()); + $target = $this->fetchPermittedPlayerTarget($sender, $args[0] ?? null, DefaultPermissions::COMMAND_CLEAR_SELF(), DefaultPermissions::COMMAND_CLEAR_OTHER()); if($target === null){ return true; } diff --git a/src/command/defaults/DefaultGamemodeCommand.php b/src/command/defaults/DefaultGamemodeCommand.php index e1d2ead1641..02f08a04cbf 100644 --- a/src/command/defaults/DefaultGamemodeCommand.php +++ b/src/command/defaults/DefaultGamemodeCommand.php @@ -39,7 +39,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_defaultgamemode_description(), KnownTranslationFactory::commands_defaultgamemode_usage() ); - $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_DEFAULTGAMEMODE()); + $this->setPermission(DefaultPermissions::COMMAND_DEFAULTGAMEMODE()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/DeopCommand.php b/src/command/defaults/DeopCommand.php index 9982c1aa9c0..588bf5be0fb 100644 --- a/src/command/defaults/DeopCommand.php +++ b/src/command/defaults/DeopCommand.php @@ -41,7 +41,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_deop_description(), KnownTranslationFactory::commands_deop_usage() ); - $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_OP_TAKE()); + $this->setPermission(DefaultPermissions::COMMAND_OP_TAKE()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/DifficultyCommand.php b/src/command/defaults/DifficultyCommand.php index 200c23c3d5c..3844f007c12 100644 --- a/src/command/defaults/DifficultyCommand.php +++ b/src/command/defaults/DifficultyCommand.php @@ -40,7 +40,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_difficulty_description(), KnownTranslationFactory::commands_difficulty_usage() ); - $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_DIFFICULTY()); + $this->setPermission(DefaultPermissions::COMMAND_DIFFICULTY()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/DumpMemoryCommand.php b/src/command/defaults/DumpMemoryCommand.php index e56eeb6bf4d..c9409cc9500 100644 --- a/src/command/defaults/DumpMemoryCommand.php +++ b/src/command/defaults/DumpMemoryCommand.php @@ -37,7 +37,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_dumpmemory_description(), "/dumpmemory [path]" ); - $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_DUMPMEMORY()); + $this->setPermission(DefaultPermissions::COMMAND_DUMPMEMORY()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/EffectCommand.php b/src/command/defaults/EffectCommand.php index 3370d543129..abc3aaa76cc 100644 --- a/src/command/defaults/EffectCommand.php +++ b/src/command/defaults/EffectCommand.php @@ -43,8 +43,8 @@ public function __construct(){ KnownTranslationFactory::commands_effect_usage() ); $this->setPermissions([ - DefaultPermissions::POCKETMINE_COMMAND_EFFECT_SELF(), - DefaultPermissions::POCKETMINE_COMMAND_EFFECT_OTHER() + DefaultPermissions::COMMAND_EFFECT_SELF(), + DefaultPermissions::COMMAND_EFFECT_OTHER() ]); } @@ -53,7 +53,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args throw new InvalidCommandSyntaxException(); } - $player = $this->fetchPermittedPlayerTarget($sender, $args[0], DefaultPermissions::POCKETMINE_COMMAND_EFFECT_SELF(), DefaultPermissions::POCKETMINE_COMMAND_EFFECT_OTHER()); + $player = $this->fetchPermittedPlayerTarget($sender, $args[0], DefaultPermissions::COMMAND_EFFECT_SELF(), DefaultPermissions::COMMAND_EFFECT_OTHER()); if($player === null){ return true; } diff --git a/src/command/defaults/EnchantCommand.php b/src/command/defaults/EnchantCommand.php index 44101a1ff6f..cb6d7e5cf75 100644 --- a/src/command/defaults/EnchantCommand.php +++ b/src/command/defaults/EnchantCommand.php @@ -41,8 +41,8 @@ public function __construct(){ KnownTranslationFactory::commands_enchant_usage() ); $this->setPermissions([ - DefaultPermissions::POCKETMINE_COMMAND_ENCHANT_SELF(), - DefaultPermissions::POCKETMINE_COMMAND_ENCHANT_OTHER() + DefaultPermissions::COMMAND_ENCHANT_SELF(), + DefaultPermissions::COMMAND_ENCHANT_OTHER() ]); } @@ -51,7 +51,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args throw new InvalidCommandSyntaxException(); } - $player = $this->fetchPermittedPlayerTarget($sender, $args[0], DefaultPermissions::POCKETMINE_COMMAND_ENCHANT_SELF(), DefaultPermissions::POCKETMINE_COMMAND_ENCHANT_OTHER()); + $player = $this->fetchPermittedPlayerTarget($sender, $args[0], DefaultPermissions::COMMAND_ENCHANT_SELF(), DefaultPermissions::COMMAND_ENCHANT_OTHER()); if($player === null){ return true; } diff --git a/src/command/defaults/GamemodeCommand.php b/src/command/defaults/GamemodeCommand.php index b90f6cd831b..703f1bb303f 100644 --- a/src/command/defaults/GamemodeCommand.php +++ b/src/command/defaults/GamemodeCommand.php @@ -40,8 +40,8 @@ public function __construct(){ KnownTranslationFactory::commands_gamemode_usage() ); $this->setPermissions([ - DefaultPermissions::POCKETMINE_COMMAND_GAMEMODE_SELF(), - DefaultPermissions::POCKETMINE_COMMAND_GAMEMODE_OTHER() + DefaultPermissions::COMMAND_GAMEMODE_SELF(), + DefaultPermissions::COMMAND_GAMEMODE_OTHER() ]); } @@ -56,7 +56,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args return true; } - $target = $this->fetchPermittedPlayerTarget($sender, $args[1] ?? null, DefaultPermissions::POCKETMINE_COMMAND_GAMEMODE_SELF(), DefaultPermissions::POCKETMINE_COMMAND_GAMEMODE_OTHER()); + $target = $this->fetchPermittedPlayerTarget($sender, $args[1] ?? null, DefaultPermissions::COMMAND_GAMEMODE_SELF(), DefaultPermissions::COMMAND_GAMEMODE_OTHER()); if($target === null){ return true; } diff --git a/src/command/defaults/GarbageCollectorCommand.php b/src/command/defaults/GarbageCollectorCommand.php index 574af54845d..b4b06c2f8d4 100644 --- a/src/command/defaults/GarbageCollectorCommand.php +++ b/src/command/defaults/GarbageCollectorCommand.php @@ -39,7 +39,7 @@ public function __construct(){ "gc", KnownTranslationFactory::pocketmine_command_gc_description() ); - $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_GC()); + $this->setPermission(DefaultPermissions::COMMAND_GC()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/GiveCommand.php b/src/command/defaults/GiveCommand.php index 2f5efb69dcf..a89a5df727d 100644 --- a/src/command/defaults/GiveCommand.php +++ b/src/command/defaults/GiveCommand.php @@ -48,8 +48,8 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_give_usage() ); $this->setPermissions([ - DefaultPermissions::POCKETMINE_COMMAND_GIVE_SELF(), - DefaultPermissions::POCKETMINE_COMMAND_GIVE_OTHER() + DefaultPermissions::COMMAND_GIVE_SELF(), + DefaultPermissions::COMMAND_GIVE_OTHER() ]); } @@ -58,7 +58,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args throw new InvalidCommandSyntaxException(); } - $player = $this->fetchPermittedPlayerTarget($sender, $args[0], DefaultPermissions::POCKETMINE_COMMAND_GIVE_SELF(), DefaultPermissions::POCKETMINE_COMMAND_GIVE_OTHER()); + $player = $this->fetchPermittedPlayerTarget($sender, $args[0], DefaultPermissions::COMMAND_GIVE_SELF(), DefaultPermissions::COMMAND_GIVE_OTHER()); if($player === null){ return true; } diff --git a/src/command/defaults/HelpCommand.php b/src/command/defaults/HelpCommand.php index 02da831ccef..7dafd831c54 100644 --- a/src/command/defaults/HelpCommand.php +++ b/src/command/defaults/HelpCommand.php @@ -51,7 +51,7 @@ public function __construct(){ KnownTranslationFactory::commands_help_usage(), ["?"] ); - $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_HELP()); + $this->setPermission(DefaultPermissions::COMMAND_HELP()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/KickCommand.php b/src/command/defaults/KickCommand.php index fee5e5a2140..612834c3ab2 100644 --- a/src/command/defaults/KickCommand.php +++ b/src/command/defaults/KickCommand.php @@ -43,7 +43,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_kick_description(), KnownTranslationFactory::commands_kick_usage() ); - $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_KICK()); + $this->setPermission(DefaultPermissions::COMMAND_KICK()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/KillCommand.php b/src/command/defaults/KillCommand.php index d7a3f09bc90..2f85b07418c 100644 --- a/src/command/defaults/KillCommand.php +++ b/src/command/defaults/KillCommand.php @@ -41,8 +41,8 @@ public function __construct(){ ["suicide"] ); $this->setPermissions([ - DefaultPermissions::POCKETMINE_COMMAND_KILL_SELF(), - DefaultPermissions::POCKETMINE_COMMAND_KILL_OTHER() + DefaultPermissions::COMMAND_KILL_SELF(), + DefaultPermissions::COMMAND_KILL_OTHER() ]); } @@ -51,7 +51,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args throw new InvalidCommandSyntaxException(); } - $player = $this->fetchPermittedPlayerTarget($sender, $args[0] ?? null, DefaultPermissions::POCKETMINE_COMMAND_KILL_SELF(), DefaultPermissions::POCKETMINE_COMMAND_KILL_OTHER()); + $player = $this->fetchPermittedPlayerTarget($sender, $args[0] ?? null, DefaultPermissions::COMMAND_KILL_SELF(), DefaultPermissions::COMMAND_KILL_OTHER()); if($player === null){ return true; } diff --git a/src/command/defaults/ListCommand.php b/src/command/defaults/ListCommand.php index 47d82ee285d..59016faa698 100644 --- a/src/command/defaults/ListCommand.php +++ b/src/command/defaults/ListCommand.php @@ -41,7 +41,7 @@ public function __construct(){ "list", KnownTranslationFactory::pocketmine_command_list_description() ); - $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_LIST()); + $this->setPermission(DefaultPermissions::COMMAND_LIST()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/MeCommand.php b/src/command/defaults/MeCommand.php index fc5a338511d..52361045b10 100644 --- a/src/command/defaults/MeCommand.php +++ b/src/command/defaults/MeCommand.php @@ -40,7 +40,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_me_description(), KnownTranslationFactory::commands_me_usage() ); - $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_ME()); + $this->setPermission(DefaultPermissions::COMMAND_ME()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/OpCommand.php b/src/command/defaults/OpCommand.php index 7a33f9dd4eb..6cbdf078039 100644 --- a/src/command/defaults/OpCommand.php +++ b/src/command/defaults/OpCommand.php @@ -41,7 +41,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_op_description(), KnownTranslationFactory::commands_op_usage() ); - $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_OP_GIVE()); + $this->setPermission(DefaultPermissions::COMMAND_OP_GIVE()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/PardonCommand.php b/src/command/defaults/PardonCommand.php index acbaf17141c..5e5152209ec 100644 --- a/src/command/defaults/PardonCommand.php +++ b/src/command/defaults/PardonCommand.php @@ -39,7 +39,7 @@ public function __construct(){ KnownTranslationFactory::commands_unban_usage(), ["unban"] ); - $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_UNBAN_PLAYER()); + $this->setPermission(DefaultPermissions::COMMAND_UNBAN_PLAYER()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/PardonIpCommand.php b/src/command/defaults/PardonIpCommand.php index c176826adc3..6a72b3d5355 100644 --- a/src/command/defaults/PardonIpCommand.php +++ b/src/command/defaults/PardonIpCommand.php @@ -40,7 +40,7 @@ public function __construct(){ KnownTranslationFactory::commands_unbanip_usage(), ["unban-ip"] ); - $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_UNBAN_IP()); + $this->setPermission(DefaultPermissions::COMMAND_UNBAN_IP()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/ParticleCommand.php b/src/command/defaults/ParticleCommand.php index f219793c12a..573a804e494 100644 --- a/src/command/defaults/ParticleCommand.php +++ b/src/command/defaults/ParticleCommand.php @@ -80,7 +80,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_particle_description(), KnownTranslationFactory::pocketmine_command_particle_usage() ); - $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_PARTICLE()); + $this->setPermission(DefaultPermissions::COMMAND_PARTICLE()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/PluginsCommand.php b/src/command/defaults/PluginsCommand.php index 1a0ce7a8878..20404de1f53 100644 --- a/src/command/defaults/PluginsCommand.php +++ b/src/command/defaults/PluginsCommand.php @@ -43,7 +43,7 @@ public function __construct(){ null, ["pl"] ); - $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_PLUGINS()); + $this->setPermission(DefaultPermissions::COMMAND_PLUGINS()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/SaveCommand.php b/src/command/defaults/SaveCommand.php index 41cfcef04f8..b765f8cd9a0 100644 --- a/src/command/defaults/SaveCommand.php +++ b/src/command/defaults/SaveCommand.php @@ -37,7 +37,7 @@ public function __construct(){ "save-all", KnownTranslationFactory::pocketmine_command_save_description() ); - $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_SAVE_PERFORM()); + $this->setPermission(DefaultPermissions::COMMAND_SAVE_PERFORM()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/SaveOffCommand.php b/src/command/defaults/SaveOffCommand.php index 85b0e035aea..8f0e0c5d169 100644 --- a/src/command/defaults/SaveOffCommand.php +++ b/src/command/defaults/SaveOffCommand.php @@ -35,7 +35,7 @@ public function __construct(){ "save-off", KnownTranslationFactory::pocketmine_command_saveoff_description() ); - $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_SAVE_DISABLE()); + $this->setPermission(DefaultPermissions::COMMAND_SAVE_DISABLE()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/SaveOnCommand.php b/src/command/defaults/SaveOnCommand.php index e8c4ec98f13..cabd7ba93f7 100644 --- a/src/command/defaults/SaveOnCommand.php +++ b/src/command/defaults/SaveOnCommand.php @@ -35,7 +35,7 @@ public function __construct(){ "save-on", KnownTranslationFactory::pocketmine_command_saveon_description() ); - $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_SAVE_ENABLE()); + $this->setPermission(DefaultPermissions::COMMAND_SAVE_ENABLE()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/SayCommand.php b/src/command/defaults/SayCommand.php index 718b388fc01..5d8e293393b 100644 --- a/src/command/defaults/SayCommand.php +++ b/src/command/defaults/SayCommand.php @@ -41,7 +41,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_say_description(), KnownTranslationFactory::commands_say_usage() ); - $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_SAY()); + $this->setPermission(DefaultPermissions::COMMAND_SAY()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/SeedCommand.php b/src/command/defaults/SeedCommand.php index d9c94cec340..b3135a1f00c 100644 --- a/src/command/defaults/SeedCommand.php +++ b/src/command/defaults/SeedCommand.php @@ -35,7 +35,7 @@ public function __construct(){ "seed", KnownTranslationFactory::pocketmine_command_seed_description() ); - $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_SEED()); + $this->setPermission(DefaultPermissions::COMMAND_SEED()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/SetWorldSpawnCommand.php b/src/command/defaults/SetWorldSpawnCommand.php index 24ce1742f7b..2ad89770fa6 100644 --- a/src/command/defaults/SetWorldSpawnCommand.php +++ b/src/command/defaults/SetWorldSpawnCommand.php @@ -42,7 +42,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_setworldspawn_description(), KnownTranslationFactory::commands_setworldspawn_usage() ); - $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_SETWORLDSPAWN()); + $this->setPermission(DefaultPermissions::COMMAND_SETWORLDSPAWN()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/SpawnpointCommand.php b/src/command/defaults/SpawnpointCommand.php index 2251da5cc3c..a5c9c29be77 100644 --- a/src/command/defaults/SpawnpointCommand.php +++ b/src/command/defaults/SpawnpointCommand.php @@ -43,13 +43,13 @@ public function __construct(){ KnownTranslationFactory::commands_spawnpoint_usage() ); $this->setPermissions([ - DefaultPermissions::POCKETMINE_COMMAND_SPAWNPOINT_SELF(), - DefaultPermissions::POCKETMINE_COMMAND_SPAWNPOINT_OTHER() + DefaultPermissions::COMMAND_SPAWNPOINT_SELF(), + DefaultPermissions::COMMAND_SPAWNPOINT_OTHER() ]); } public function execute(CommandSender $sender, string $commandLabel, array $args){ - $target = $this->fetchPermittedPlayerTarget($sender, $args[0] ?? null, DefaultPermissions::POCKETMINE_COMMAND_SPAWNPOINT_SELF(), DefaultPermissions::POCKETMINE_COMMAND_SPAWNPOINT_OTHER()); + $target = $this->fetchPermittedPlayerTarget($sender, $args[0] ?? null, DefaultPermissions::COMMAND_SPAWNPOINT_SELF(), DefaultPermissions::COMMAND_SPAWNPOINT_OTHER()); if($target === null){ return true; } diff --git a/src/command/defaults/StatusCommand.php b/src/command/defaults/StatusCommand.php index 09115fc2841..3d7ce05940c 100644 --- a/src/command/defaults/StatusCommand.php +++ b/src/command/defaults/StatusCommand.php @@ -41,7 +41,7 @@ public function __construct(){ "status", KnownTranslationFactory::pocketmine_command_status_description() ); - $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_STATUS()); + $this->setPermission(DefaultPermissions::COMMAND_STATUS()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/StopCommand.php b/src/command/defaults/StopCommand.php index 5e2d83f07e5..44cfe533d62 100644 --- a/src/command/defaults/StopCommand.php +++ b/src/command/defaults/StopCommand.php @@ -35,7 +35,7 @@ public function __construct(){ "stop", KnownTranslationFactory::pocketmine_command_stop_description() ); - $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_STOP()); + $this->setPermission(DefaultPermissions::COMMAND_STOP()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/TeleportCommand.php b/src/command/defaults/TeleportCommand.php index 4c0baab7d06..5c8d7201311 100644 --- a/src/command/defaults/TeleportCommand.php +++ b/src/command/defaults/TeleportCommand.php @@ -47,8 +47,8 @@ public function __construct(){ ["teleport"] ); $this->setPermissions([ - DefaultPermissions::POCKETMINE_COMMAND_TELEPORT_SELF(), - DefaultPermissions::POCKETMINE_COMMAND_TELEPORT_OTHER() + DefaultPermissions::COMMAND_TELEPORT_SELF(), + DefaultPermissions::COMMAND_TELEPORT_OTHER() ]); } @@ -77,7 +77,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args throw new InvalidCommandSyntaxException(); } - $subject = $this->fetchPermittedPlayerTarget($sender, $subjectName, DefaultPermissions::POCKETMINE_COMMAND_TELEPORT_SELF(), DefaultPermissions::POCKETMINE_COMMAND_TELEPORT_OTHER()); + $subject = $this->fetchPermittedPlayerTarget($sender, $subjectName, DefaultPermissions::COMMAND_TELEPORT_SELF(), DefaultPermissions::COMMAND_TELEPORT_OTHER()); if($subject === null){ return true; } diff --git a/src/command/defaults/TellCommand.php b/src/command/defaults/TellCommand.php index 22d94cea13b..61808e921bd 100644 --- a/src/command/defaults/TellCommand.php +++ b/src/command/defaults/TellCommand.php @@ -43,7 +43,7 @@ public function __construct(){ KnownTranslationFactory::commands_message_usage(), ["w", "msg"] ); - $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_TELL()); + $this->setPermission(DefaultPermissions::COMMAND_TELL()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/TimeCommand.php b/src/command/defaults/TimeCommand.php index f79700c970b..14d0da00fa6 100644 --- a/src/command/defaults/TimeCommand.php +++ b/src/command/defaults/TimeCommand.php @@ -41,11 +41,11 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_time_usage() ); $this->setPermissions([ - DefaultPermissions::POCKETMINE_COMMAND_TIME_ADD(), - DefaultPermissions::POCKETMINE_COMMAND_TIME_SET(), - DefaultPermissions::POCKETMINE_COMMAND_TIME_START(), - DefaultPermissions::POCKETMINE_COMMAND_TIME_STOP(), - DefaultPermissions::POCKETMINE_COMMAND_TIME_QUERY() + DefaultPermissions::COMMAND_TIME_ADD(), + DefaultPermissions::COMMAND_TIME_SET(), + DefaultPermissions::COMMAND_TIME_START(), + DefaultPermissions::COMMAND_TIME_STOP(), + DefaultPermissions::COMMAND_TIME_QUERY() ]); } @@ -55,7 +55,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args } if($args[0] === "start"){ - if(!$this->testPermission($sender, DefaultPermissions::POCKETMINE_COMMAND_TIME_START())){ + if(!$this->testPermission($sender, DefaultPermissions::COMMAND_TIME_START())){ return true; } foreach($sender->getServer()->getWorldManager()->getWorlds() as $world){ @@ -64,7 +64,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args Command::broadcastCommandMessage($sender, "Restarted the time"); return true; }elseif($args[0] === "stop"){ - if(!$this->testPermission($sender, DefaultPermissions::POCKETMINE_COMMAND_TIME_STOP())){ + if(!$this->testPermission($sender, DefaultPermissions::COMMAND_TIME_STOP())){ return true; } foreach($sender->getServer()->getWorldManager()->getWorlds() as $world){ @@ -73,7 +73,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args Command::broadcastCommandMessage($sender, "Stopped the time"); return true; }elseif($args[0] === "query"){ - if(!$this->testPermission($sender, DefaultPermissions::POCKETMINE_COMMAND_TIME_QUERY())){ + if(!$this->testPermission($sender, DefaultPermissions::COMMAND_TIME_QUERY())){ return true; } if($sender instanceof Player){ @@ -90,7 +90,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args } if($args[0] === "set"){ - if(!$this->testPermission($sender, DefaultPermissions::POCKETMINE_COMMAND_TIME_SET())){ + if(!$this->testPermission($sender, DefaultPermissions::COMMAND_TIME_SET())){ return true; } @@ -123,7 +123,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args } Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_time_set((string) $value)); }elseif($args[0] === "add"){ - if(!$this->testPermission($sender, DefaultPermissions::POCKETMINE_COMMAND_TIME_ADD())){ + if(!$this->testPermission($sender, DefaultPermissions::COMMAND_TIME_ADD())){ return true; } diff --git a/src/command/defaults/TimingsCommand.php b/src/command/defaults/TimingsCommand.php index 67b52c711fa..883cce358f4 100644 --- a/src/command/defaults/TimingsCommand.php +++ b/src/command/defaults/TimingsCommand.php @@ -66,7 +66,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_timings_description(), KnownTranslationFactory::pocketmine_command_timings_usage() ); - $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_TIMINGS()); + $this->setPermission(DefaultPermissions::COMMAND_TIMINGS()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/TitleCommand.php b/src/command/defaults/TitleCommand.php index bf164ed1328..5d4e66b3417 100644 --- a/src/command/defaults/TitleCommand.php +++ b/src/command/defaults/TitleCommand.php @@ -40,8 +40,8 @@ public function __construct(){ KnownTranslationFactory::commands_title_usage() ); $this->setPermissions([ - DefaultPermissions::POCKETMINE_COMMAND_TITLE_SELF(), - DefaultPermissions::POCKETMINE_COMMAND_TITLE_OTHER() + DefaultPermissions::COMMAND_TITLE_SELF(), + DefaultPermissions::COMMAND_TITLE_OTHER() ]); } @@ -50,7 +50,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args throw new InvalidCommandSyntaxException(); } - $player = $this->fetchPermittedPlayerTarget($sender, $args[0], DefaultPermissions::POCKETMINE_COMMAND_TITLE_SELF(), DefaultPermissions::POCKETMINE_COMMAND_TITLE_OTHER()); + $player = $this->fetchPermittedPlayerTarget($sender, $args[0], DefaultPermissions::COMMAND_TITLE_SELF(), DefaultPermissions::COMMAND_TITLE_OTHER()); if($player === null){ return true; } diff --git a/src/command/defaults/TransferServerCommand.php b/src/command/defaults/TransferServerCommand.php index b10fba5109b..756432c2cd0 100644 --- a/src/command/defaults/TransferServerCommand.php +++ b/src/command/defaults/TransferServerCommand.php @@ -38,7 +38,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_transferserver_description(), KnownTranslationFactory::pocketmine_command_transferserver_usage() ); - $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_TRANSFERSERVER()); + $this->setPermission(DefaultPermissions::COMMAND_TRANSFERSERVER()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/VersionCommand.php b/src/command/defaults/VersionCommand.php index 4da76d962a3..6fcfd2bc752 100644 --- a/src/command/defaults/VersionCommand.php +++ b/src/command/defaults/VersionCommand.php @@ -47,7 +47,7 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_version_usage(), ["ver", "about"] ); - $this->setPermission(DefaultPermissions::POCKETMINE_COMMAND_VERSION()); + $this->setPermission(DefaultPermissions::COMMAND_VERSION()); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/WhitelistCommand.php b/src/command/defaults/WhitelistCommand.php index de7988388d8..2f32b3794d6 100644 --- a/src/command/defaults/WhitelistCommand.php +++ b/src/command/defaults/WhitelistCommand.php @@ -46,12 +46,12 @@ public function __construct(){ KnownTranslationFactory::commands_whitelist_usage() ); $this->setPermissions([ - DefaultPermissions::POCKETMINE_COMMAND_WHITELIST_RELOAD(), - DefaultPermissions::POCKETMINE_COMMAND_WHITELIST_ENABLE(), - DefaultPermissions::POCKETMINE_COMMAND_WHITELIST_DISABLE(), - DefaultPermissions::POCKETMINE_COMMAND_WHITELIST_LIST(), - DefaultPermissions::POCKETMINE_COMMAND_WHITELIST_ADD(), - DefaultPermissions::POCKETMINE_COMMAND_WHITELIST_REMOVE() + DefaultPermissions::COMMAND_WHITELIST_RELOAD(), + DefaultPermissions::COMMAND_WHITELIST_ENABLE(), + DefaultPermissions::COMMAND_WHITELIST_DISABLE(), + DefaultPermissions::COMMAND_WHITELIST_LIST(), + DefaultPermissions::COMMAND_WHITELIST_ADD(), + DefaultPermissions::COMMAND_WHITELIST_REMOVE() ]); } @@ -59,7 +59,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args if(count($args) === 1){ switch(strtolower($args[0])){ case "reload": - if($this->testPermission($sender, DefaultPermissions::POCKETMINE_COMMAND_WHITELIST_RELOAD())){ + if($this->testPermission($sender, DefaultPermissions::COMMAND_WHITELIST_RELOAD())){ $server = $sender->getServer(); $server->getWhitelisted()->reload(); if($server->hasWhitelist()){ @@ -70,7 +70,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args return true; case "on": - if($this->testPermission($sender, DefaultPermissions::POCKETMINE_COMMAND_WHITELIST_ENABLE())){ + if($this->testPermission($sender, DefaultPermissions::COMMAND_WHITELIST_ENABLE())){ $server = $sender->getServer(); $server->getConfigGroup()->setConfigBool(ServerProperties::WHITELIST, true); $this->kickNonWhitelistedPlayers($server); @@ -79,14 +79,14 @@ public function execute(CommandSender $sender, string $commandLabel, array $args return true; case "off": - if($this->testPermission($sender, DefaultPermissions::POCKETMINE_COMMAND_WHITELIST_DISABLE())){ + if($this->testPermission($sender, DefaultPermissions::COMMAND_WHITELIST_DISABLE())){ $sender->getServer()->getConfigGroup()->setConfigBool(ServerProperties::WHITELIST, false); Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_whitelist_disabled()); } return true; case "list": - if($this->testPermission($sender, DefaultPermissions::POCKETMINE_COMMAND_WHITELIST_LIST())){ + if($this->testPermission($sender, DefaultPermissions::COMMAND_WHITELIST_LIST())){ $entries = $sender->getServer()->getWhitelisted()->getAll(true); sort($entries, SORT_STRING); $result = implode(", ", $entries); @@ -112,14 +112,14 @@ public function execute(CommandSender $sender, string $commandLabel, array $args } switch(strtolower($args[0])){ case "add": - if($this->testPermission($sender, DefaultPermissions::POCKETMINE_COMMAND_WHITELIST_ADD())){ + if($this->testPermission($sender, DefaultPermissions::COMMAND_WHITELIST_ADD())){ $sender->getServer()->addWhitelist($args[1]); Command::broadcastCommandMessage($sender, KnownTranslationFactory::commands_whitelist_add_success($args[1])); } return true; case "remove": - if($this->testPermission($sender, DefaultPermissions::POCKETMINE_COMMAND_WHITELIST_REMOVE())){ + if($this->testPermission($sender, DefaultPermissions::COMMAND_WHITELIST_REMOVE())){ $server = $sender->getServer(); $server->removeWhitelist($args[1]); if(!$server->isWhitelisted($args[1])){ diff --git a/src/command/defaults/XpCommand.php b/src/command/defaults/XpCommand.php index 4316aa03143..9e5c0005c19 100644 --- a/src/command/defaults/XpCommand.php +++ b/src/command/defaults/XpCommand.php @@ -45,8 +45,8 @@ public function __construct(){ KnownTranslationFactory::pocketmine_command_xp_usage() ); $this->setPermissions([ - DefaultPermissions::POCKETMINE_COMMAND_XP_SELF(), - DefaultPermissions::POCKETMINE_COMMAND_XP_OTHER() + DefaultPermissions::COMMAND_XP_SELF(), + DefaultPermissions::COMMAND_XP_OTHER() ]); } @@ -55,7 +55,7 @@ public function execute(CommandSender $sender, string $commandLabel, array $args throw new InvalidCommandSyntaxException(); } - $player = $this->fetchPermittedPlayerTarget($sender, $args[1] ?? null, DefaultPermissions::POCKETMINE_COMMAND_XP_SELF(), DefaultPermissions::POCKETMINE_COMMAND_XP_OTHER()); + $player = $this->fetchPermittedPlayerTarget($sender, $args[1] ?? null, DefaultPermissions::COMMAND_XP_SELF(), DefaultPermissions::COMMAND_XP_OTHER()); if($player === null){ return true; } diff --git a/src/network/mcpe/NetworkSession.php b/src/network/mcpe/NetworkSession.php index 3520f668ec7..ef6540474f7 100644 --- a/src/network/mcpe/NetworkSession.php +++ b/src/network/mcpe/NetworkSession.php @@ -1033,7 +1033,7 @@ public function syncGameMode(GameMode $mode, bool $isRollback = false) : void{ } public function syncAbilities(Player $for) : void{ - $isOp = $for->hasPermission(DefaultPermissions::POCKETMINE_GROUP_OPERATOR()); + $isOp = $for->hasPermission(DefaultPermissions::GROUP_OPERATOR()); //ALL of these need to be set for the base layer, otherwise the client will cry $boolAbilities = [ @@ -1041,7 +1041,7 @@ public function syncAbilities(Player $for) : void{ AbilitiesLayer::ABILITY_FLYING => $for->isFlying(), AbilitiesLayer::ABILITY_NO_CLIP => !$for->hasBlockCollision(), AbilitiesLayer::ABILITY_OPERATOR => $isOp, - AbilitiesLayer::ABILITY_TELEPORT => $for->hasPermission(DefaultPermissions::POCKETMINE_COMMAND_TELEPORT_SELF()), + AbilitiesLayer::ABILITY_TELEPORT => $for->hasPermission(DefaultPermissions::COMMAND_TELEPORT_SELF()), AbilitiesLayer::ABILITY_INVULNERABLE => $for->isCreative(), AbilitiesLayer::ABILITY_MUTED => false, AbilitiesLayer::ABILITY_WORLD_BUILDER => false, diff --git a/src/permission/DefaultPermissions.php b/src/permission/DefaultPermissions.php index 63a0105d94f..9f7c8ee7fbc 100644 --- a/src/permission/DefaultPermissions.php +++ b/src/permission/DefaultPermissions.php @@ -28,71 +28,71 @@ use function str_replace; /** - * @method static Permission POCKETMINE_BROADCAST_ADMIN() - * @method static Permission POCKETMINE_BROADCAST_USER() - * @method static Permission POCKETMINE_COMMAND_BAN_IP() - * @method static Permission POCKETMINE_COMMAND_BAN_LIST() - * @method static Permission POCKETMINE_COMMAND_BAN_PLAYER() - * @method static Permission POCKETMINE_COMMAND_CLEAR_OTHER() - * @method static Permission POCKETMINE_COMMAND_CLEAR_SELF() - * @method static Permission POCKETMINE_COMMAND_DEFAULTGAMEMODE() - * @method static Permission POCKETMINE_COMMAND_DIFFICULTY() - * @method static Permission POCKETMINE_COMMAND_DUMPMEMORY() - * @method static Permission POCKETMINE_COMMAND_EFFECT_OTHER() - * @method static Permission POCKETMINE_COMMAND_EFFECT_SELF() - * @method static Permission POCKETMINE_COMMAND_ENCHANT_OTHER() - * @method static Permission POCKETMINE_COMMAND_ENCHANT_SELF() - * @method static Permission POCKETMINE_COMMAND_GAMEMODE_OTHER() - * @method static Permission POCKETMINE_COMMAND_GAMEMODE_SELF() - * @method static Permission POCKETMINE_COMMAND_GC() - * @method static Permission POCKETMINE_COMMAND_GIVE_OTHER() - * @method static Permission POCKETMINE_COMMAND_GIVE_SELF() - * @method static Permission POCKETMINE_COMMAND_HELP() - * @method static Permission POCKETMINE_COMMAND_KICK() - * @method static Permission POCKETMINE_COMMAND_KILL_OTHER() - * @method static Permission POCKETMINE_COMMAND_KILL_SELF() - * @method static Permission POCKETMINE_COMMAND_LIST() - * @method static Permission POCKETMINE_COMMAND_ME() - * @method static Permission POCKETMINE_COMMAND_OP_GIVE() - * @method static Permission POCKETMINE_COMMAND_OP_TAKE() - * @method static Permission POCKETMINE_COMMAND_PARTICLE() - * @method static Permission POCKETMINE_COMMAND_PLUGINS() - * @method static Permission POCKETMINE_COMMAND_SAVE_DISABLE() - * @method static Permission POCKETMINE_COMMAND_SAVE_ENABLE() - * @method static Permission POCKETMINE_COMMAND_SAVE_PERFORM() - * @method static Permission POCKETMINE_COMMAND_SAY() - * @method static Permission POCKETMINE_COMMAND_SEED() - * @method static Permission POCKETMINE_COMMAND_SETWORLDSPAWN() - * @method static Permission POCKETMINE_COMMAND_SPAWNPOINT_OTHER() - * @method static Permission POCKETMINE_COMMAND_SPAWNPOINT_SELF() - * @method static Permission POCKETMINE_COMMAND_STATUS() - * @method static Permission POCKETMINE_COMMAND_STOP() - * @method static Permission POCKETMINE_COMMAND_TELEPORT_OTHER() - * @method static Permission POCKETMINE_COMMAND_TELEPORT_SELF() - * @method static Permission POCKETMINE_COMMAND_TELL() - * @method static Permission POCKETMINE_COMMAND_TIME_ADD() - * @method static Permission POCKETMINE_COMMAND_TIME_QUERY() - * @method static Permission POCKETMINE_COMMAND_TIME_SET() - * @method static Permission POCKETMINE_COMMAND_TIME_START() - * @method static Permission POCKETMINE_COMMAND_TIME_STOP() - * @method static Permission POCKETMINE_COMMAND_TIMINGS() - * @method static Permission POCKETMINE_COMMAND_TITLE_OTHER() - * @method static Permission POCKETMINE_COMMAND_TITLE_SELF() - * @method static Permission POCKETMINE_COMMAND_TRANSFERSERVER() - * @method static Permission POCKETMINE_COMMAND_UNBAN_IP() - * @method static Permission POCKETMINE_COMMAND_UNBAN_PLAYER() - * @method static Permission POCKETMINE_COMMAND_VERSION() - * @method static Permission POCKETMINE_COMMAND_WHITELIST_ADD() - * @method static Permission POCKETMINE_COMMAND_WHITELIST_DISABLE() - * @method static Permission POCKETMINE_COMMAND_WHITELIST_ENABLE() - * @method static Permission POCKETMINE_COMMAND_WHITELIST_LIST() - * @method static Permission POCKETMINE_COMMAND_WHITELIST_RELOAD() - * @method static Permission POCKETMINE_COMMAND_WHITELIST_REMOVE() - * @method static Permission POCKETMINE_COMMAND_XP_OTHER() - * @method static Permission POCKETMINE_COMMAND_XP_SELF() - * @method static Permission POCKETMINE_GROUP_CONSOLE() - * @method static Permission POCKETMINE_GROUP_OPERATOR() - * @method static Permission POCKETMINE_GROUP_USER() + * @method static Permission BROADCAST_ADMIN() + * @method static Permission BROADCAST_USER() + * @method static Permission COMMAND_BAN_IP() + * @method static Permission COMMAND_BAN_LIST() + * @method static Permission COMMAND_BAN_PLAYER() + * @method static Permission COMMAND_CLEAR_OTHER() + * @method static Permission COMMAND_CLEAR_SELF() + * @method static Permission COMMAND_DEFAULTGAMEMODE() + * @method static Permission COMMAND_DIFFICULTY() + * @method static Permission COMMAND_DUMPMEMORY() + * @method static Permission COMMAND_EFFECT_OTHER() + * @method static Permission COMMAND_EFFECT_SELF() + * @method static Permission COMMAND_ENCHANT_OTHER() + * @method static Permission COMMAND_ENCHANT_SELF() + * @method static Permission COMMAND_GAMEMODE_OTHER() + * @method static Permission COMMAND_GAMEMODE_SELF() + * @method static Permission COMMAND_GC() + * @method static Permission COMMAND_GIVE_OTHER() + * @method static Permission COMMAND_GIVE_SELF() + * @method static Permission COMMAND_HELP() + * @method static Permission COMMAND_KICK() + * @method static Permission COMMAND_KILL_OTHER() + * @method static Permission COMMAND_KILL_SELF() + * @method static Permission COMMAND_LIST() + * @method static Permission COMMAND_ME() + * @method static Permission COMMAND_OP_GIVE() + * @method static Permission COMMAND_OP_TAKE() + * @method static Permission COMMAND_PARTICLE() + * @method static Permission COMMAND_PLUGINS() + * @method static Permission COMMAND_SAVE_DISABLE() + * @method static Permission COMMAND_SAVE_ENABLE() + * @method static Permission COMMAND_SAVE_PERFORM() + * @method static Permission COMMAND_SAY() + * @method static Permission COMMAND_SEED() + * @method static Permission COMMAND_SETWORLDSPAWN() + * @method static Permission COMMAND_SPAWNPOINT_OTHER() + * @method static Permission COMMAND_SPAWNPOINT_SELF() + * @method static Permission COMMAND_STATUS() + * @method static Permission COMMAND_STOP() + * @method static Permission COMMAND_TELEPORT_OTHER() + * @method static Permission COMMAND_TELEPORT_SELF() + * @method static Permission COMMAND_TELL() + * @method static Permission COMMAND_TIME_ADD() + * @method static Permission COMMAND_TIME_QUERY() + * @method static Permission COMMAND_TIME_SET() + * @method static Permission COMMAND_TIME_START() + * @method static Permission COMMAND_TIME_STOP() + * @method static Permission COMMAND_TIMINGS() + * @method static Permission COMMAND_TITLE_OTHER() + * @method static Permission COMMAND_TITLE_SELF() + * @method static Permission COMMAND_TRANSFERSERVER() + * @method static Permission COMMAND_UNBAN_IP() + * @method static Permission COMMAND_UNBAN_PLAYER() + * @method static Permission COMMAND_VERSION() + * @method static Permission COMMAND_WHITELIST_ADD() + * @method static Permission COMMAND_WHITELIST_DISABLE() + * @method static Permission COMMAND_WHITELIST_ENABLE() + * @method static Permission COMMAND_WHITELIST_LIST() + * @method static Permission COMMAND_WHITELIST_RELOAD() + * @method static Permission COMMAND_WHITELIST_REMOVE() + * @method static Permission COMMAND_XP_OTHER() + * @method static Permission COMMAND_XP_SELF() + * @method static Permission GROUP_CONSOLE() + * @method static Permission GROUP_OPERATOR() + * @method static Permission GROUP_USER() */ final class DefaultPermissions{ use RegistryTrait; @@ -113,7 +113,9 @@ private static function registerPermission(Permission $candidate, array $granted $permission->addChild($candidate, false); } PermissionManager::getInstance()->addPermission($candidate); - self::_registryRegister(str_replace(".", "_", $candidate->getName()), $candidate); + + $name = str_replace("pocketmine.", "", $candidate->getName()); + self::_registryRegister(str_replace(".", "_", $name), $candidate); return PermissionManager::getInstance()->getPermission($candidate->getName()); } diff --git a/src/player/Player.php b/src/player/Player.php index 248ebc25893..0f5315d8668 100644 --- a/src/player/Player.php +++ b/src/player/Player.php @@ -919,8 +919,8 @@ static function() : void{ private function recheckBroadcastPermissions() : void{ foreach([ - Server::BROADCAST_CHANNEL_ADMINISTRATIVE => DefaultPermissions::POCKETMINE_BROADCAST_ADMIN(), - Server::BROADCAST_CHANNEL_USERS => DefaultPermissions::POCKETMINE_BROADCAST_USER(), + Server::BROADCAST_CHANNEL_ADMINISTRATIVE => DefaultPermissions::BROADCAST_ADMIN(), + Server::BROADCAST_CHANNEL_USERS => DefaultPermissions::BROADCAST_USER(), ] as $channel => $permission){ if($this->hasPermission($permission)){ $this->server->subscribeToBroadcastChannel($channel, $this); diff --git a/src/plugin/PluginManager.php b/src/plugin/PluginManager.php index 1f4f8f6dcbd..f964386db49 100644 --- a/src/plugin/PluginManager.php +++ b/src/plugin/PluginManager.php @@ -189,8 +189,8 @@ private function internalLoadPlugin(string $path, PluginLoader $loader, PluginDe } } } - $opRoot = DefaultPermissions::POCKETMINE_GROUP_OPERATOR(); - $everyoneRoot = DefaultPermissions::POCKETMINE_GROUP_USER(); + $opRoot = DefaultPermissions::GROUP_OPERATOR(); + $everyoneRoot = DefaultPermissions::GROUP_USER(); foreach(Utils::stringifyKeys($description->getPermissions()) as $default => $perms){ foreach($perms as $perm){ $permManager->addPermission($perm); From 076c96e253ad03d9e9ab1f5f843e021d5d574259 Mon Sep 17 00:00:00 2001 From: Hugo_ <55756021+Dhaiven@users.noreply.github.com> Date: Thu, 27 Feb 2025 15:05:54 +0100 Subject: [PATCH 11/14] Readd unsetPermissions function + CS --- src/permission/DefaultPermissions.php | 2 +- src/permission/PermissionAttachment.php | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/permission/DefaultPermissions.php b/src/permission/DefaultPermissions.php index 9f7c8ee7fbc..fed1ccbda6a 100644 --- a/src/permission/DefaultPermissions.php +++ b/src/permission/DefaultPermissions.php @@ -113,7 +113,7 @@ private static function registerPermission(Permission $candidate, array $granted $permission->addChild($candidate, false); } PermissionManager::getInstance()->addPermission($candidate); - + $name = str_replace("pocketmine.", "", $candidate->getName()); self::_registryRegister(str_replace(".", "_", $name), $candidate); diff --git a/src/permission/PermissionAttachment.php b/src/permission/PermissionAttachment.php index 2c5afbc7f89..af587947ce6 100644 --- a/src/permission/PermissionAttachment.php +++ b/src/permission/PermissionAttachment.php @@ -80,6 +80,16 @@ public function clearPermissions() : void{ $this->recalculatePermissibles(); } + /** + * @param string[] $permissions + */ + public function unsetPermissions(array $permissions) : void{ + foreach($permissions as $node){ + unset($this->permissions[$node]); + } + $this->recalculatePermissibles(); + } + public function setPermission(Permission $permission, bool $value) : void{ $name = $permission->getName(); if(isset($this->permissions[$name])){ From 032815239cc1fa4cb5a67ee07e95f1f246938bc6 Mon Sep 17 00:00:00 2001 From: Hugo_ <55756021+Dhaiven@users.noreply.github.com> Date: Thu, 27 Feb 2025 15:10:12 +0100 Subject: [PATCH 12/14] Check if Permission is registered before add this to command --- src/plugin/PluginBase.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/plugin/PluginBase.php b/src/plugin/PluginBase.php index 73f10db0704..4324ee20a09 100644 --- a/src/plugin/PluginBase.php +++ b/src/plugin/PluginBase.php @@ -175,7 +175,10 @@ private function registerYamlCommands() : void{ $newCmd->setAliases($aliasList); - $newCmd->setPermission(PermissionManager::getInstance()->getPermission($data->getPermission())); + $permission = PermissionManager::getInstance()->getPermission($data->getPermission()); + if ($permission !== null) { + $newCmd->setPermission($permission); + } if(($permissionDeniedMessage = $data->getPermissionDeniedMessage()) !== null){ $newCmd->setPermissionMessage($permissionDeniedMessage); From 58f46c9eea5397b4024485e0d5c1e6cb22c455ac Mon Sep 17 00:00:00 2001 From: Hugo_ <55756021+Dhaiven@users.noreply.github.com> Date: Fri, 28 Feb 2025 18:18:44 +0100 Subject: [PATCH 13/14] Remove DefaultPermissions::ROOT_* constants --- src/console/ConsoleCommandSender.php | 3 ++- src/permission/DefaultPermissions.php | 4 ---- src/permission/PermissibleBase.php | 8 ++------ src/permission/PermissibleInternal.php | 9 +-------- src/player/Player.php | 7 ++++--- src/utils/BroadcastLoggerForwarder.php | 2 +- 6 files changed, 10 insertions(+), 23 deletions(-) diff --git a/src/console/ConsoleCommandSender.php b/src/console/ConsoleCommandSender.php index aa7ea6e6992..80b1c6befdb 100644 --- a/src/console/ConsoleCommandSender.php +++ b/src/console/ConsoleCommandSender.php @@ -46,7 +46,8 @@ public function __construct( private Server $server, private Language $language ){ - $this->perm = new PermissibleBase([DefaultPermissions::ROOT_CONSOLE => true]); + $this->perm = new PermissibleBase(); + $this->perm->setBasePermission(DefaultPermissions::GROUP_CONSOLE(), true); } public function getServer() : Server{ diff --git a/src/permission/DefaultPermissions.php b/src/permission/DefaultPermissions.php index fed1ccbda6a..878b850b8dd 100644 --- a/src/permission/DefaultPermissions.php +++ b/src/permission/DefaultPermissions.php @@ -97,10 +97,6 @@ final class DefaultPermissions{ use RegistryTrait; - public const ROOT_CONSOLE = "pocketmine.group.console"; - public const ROOT_OPERATOR = "pocketmine.group.operator"; - public const ROOT_USER = "pocketmine.group.user"; - /** * @param Permission[] $grantedBy * @param Permission[] $deniedBy diff --git a/src/permission/PermissibleBase.php b/src/permission/PermissibleBase.php index 66b0688c324..c8c676bb3c9 100644 --- a/src/permission/PermissibleBase.php +++ b/src/permission/PermissibleBase.php @@ -28,12 +28,8 @@ final class PermissibleBase implements Permissible{ private PermissibleInternal $permissibleBase; - /** - * @param bool[] $basePermissions - * @phpstan-param array $basePermissions - */ - public function __construct(array $basePermissions){ - $this->permissibleBase = new PermissibleInternal($basePermissions); + public function __construct(){ + $this->permissibleBase = new PermissibleInternal(); $this->perm = $this->permissibleBase; } diff --git a/src/permission/PermissibleInternal.php b/src/permission/PermissibleInternal.php index 201491087d8..379a7325674 100644 --- a/src/permission/PermissibleInternal.php +++ b/src/permission/PermissibleInternal.php @@ -58,15 +58,8 @@ class PermissibleInternal implements Permissible{ */ private ObjectSet $permissionRecalculationCallbacks; - /** - * @param bool[] $basePermissions - * @phpstan-param array $basePermissions - */ - public function __construct(array $basePermissions){ + public function __construct(){ $this->permissionRecalculationCallbacks = new ObjectSet(); - - $this->rootPermissions = $basePermissions; - $this->recalculatePermissions(); } public function setBasePermission(Permission $permission, bool $grant) : void{ diff --git a/src/player/Player.php b/src/player/Player.php index 0f5315d8668..c738367824f 100644 --- a/src/player/Player.php +++ b/src/player/Player.php @@ -329,11 +329,12 @@ public function __construct(Server $server, NetworkSession $session, PlayerInfo $this->creativeInventory = CreativeInventory::getInstance(); - $rootPermissions = [DefaultPermissions::ROOT_USER => true]; + $this->perm = new PermissibleBase(); + $this->perm->setBasePermission(DefaultPermissions::GROUP_USER(), true); if($this->server->isOp($this->username)){ - $rootPermissions[DefaultPermissions::ROOT_OPERATOR] = true; + $this->perm->setBasePermission(DefaultPermissions::GROUP_OPERATOR(), true); } - $this->perm = new PermissibleBase($rootPermissions); + $this->chunksPerTick = $this->server->getConfigGroup()->getPropertyInt(YmlServerProperties::CHUNK_SENDING_PER_TICK, 4); $this->spawnThreshold = (int) (($this->server->getConfigGroup()->getPropertyInt(YmlServerProperties::CHUNK_SENDING_SPAWN_RADIUS, 4) ** 2) * M_PI); $this->chunkSelector = new ChunkSelector(); diff --git a/src/utils/BroadcastLoggerForwarder.php b/src/utils/BroadcastLoggerForwarder.php index 1900421fc99..44e8ed6d975 100644 --- a/src/utils/BroadcastLoggerForwarder.php +++ b/src/utils/BroadcastLoggerForwarder.php @@ -47,7 +47,7 @@ public function __construct( private Language $language ){ //this doesn't need any permissions - $this->perm = new PermissibleBase([]); + $this->perm = new PermissibleBase(); } public function getLanguage() : Language{ From 3855210388090a2c3e5976e888382ae4779ba2a0 Mon Sep 17 00:00:00 2001 From: Hugo_ <55756021+Dhaiven@users.noreply.github.com> Date: Sat, 1 Mar 2025 11:41:32 +0100 Subject: [PATCH 14/14] Generate DefaultPermissions doc --- src/permission/DefaultPermissions.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/permission/DefaultPermissions.php b/src/permission/DefaultPermissions.php index 878b850b8dd..9efad0cf5d2 100644 --- a/src/permission/DefaultPermissions.php +++ b/src/permission/DefaultPermissions.php @@ -28,6 +28,11 @@ use function str_replace; /** + * This doc-block is generated automatically, do not modify it manually. + * This must be regenerated whenever registry members are added, removed or changed. + * @see build/generate-registry-annotations.php + * @generate-registry-docblock + * * @method static Permission BROADCAST_ADMIN() * @method static Permission BROADCAST_USER() * @method static Permission COMMAND_BAN_IP() @@ -97,6 +102,17 @@ final class DefaultPermissions{ use RegistryTrait; + /** + * @return Permission[] + * @phpstan-return array + */ + public static function getAll() : array{ + //phpstan doesn't support generic traits yet :( + /** @var Permission[] $result */ + $result = self::_registryGetAll(); + return $result; + } + /** * @param Permission[] $grantedBy * @param Permission[] $deniedBy