diff --git a/src/command/defaults/BanCommand.php b/src/command/defaults/BanCommand.php index 6823ba19c..98616f9ea 100644 --- a/src/command/defaults/BanCommand.php +++ b/src/command/defaults/BanCommand.php @@ -27,6 +27,7 @@ use pocketmine\command\Command; use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\TranslationContainer; +use pocketmine\permission\DefaultPermissionNames; use pocketmine\player\Player; use function array_shift; use function count; @@ -40,7 +41,7 @@ class BanCommand extends VanillaCommand{ "%pocketmine.command.ban.player.description", "%commands.ban.usage" ); - $this->setPermission("pocketmine.command.ban.player"); + $this->setPermission(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 4737ac6b7..f263d4745 100644 --- a/src/command/defaults/BanIpCommand.php +++ b/src/command/defaults/BanIpCommand.php @@ -27,6 +27,7 @@ use pocketmine\command\Command; use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\TranslationContainer; +use pocketmine\permission\DefaultPermissionNames; use pocketmine\player\Player; use function array_shift; use function count; @@ -41,7 +42,7 @@ class BanIpCommand extends VanillaCommand{ "%pocketmine.command.ban.ip.description", "%commands.banip.usage" ); - $this->setPermission("pocketmine.command.ban.ip"); + $this->setPermission(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 95c02f9a5..ab33bf8ae 100644 --- a/src/command/defaults/BanListCommand.php +++ b/src/command/defaults/BanListCommand.php @@ -27,6 +27,7 @@ use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\TranslationContainer; use pocketmine\permission\BanEntry; +use pocketmine\permission\DefaultPermissionNames; use function array_map; use function count; use function implode; @@ -42,7 +43,7 @@ class BanListCommand extends VanillaCommand{ "%pocketmine.command.banlist.description", "%commands.banlist.usage" ); - $this->setPermission("pocketmine.command.ban.list"); + $this->setPermission(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 c0342ab92..03c53c4e6 100644 --- a/src/command/defaults/ClearCommand.php +++ b/src/command/defaults/ClearCommand.php @@ -29,10 +29,12 @@ use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\item\LegacyStringToItemParser; use pocketmine\lang\TranslationContainer; +use pocketmine\permission\DefaultPermissionNames; use pocketmine\player\Player; use pocketmine\utils\TextFormat; use function array_merge; use function count; +use function implode; class ClearCommand extends VanillaCommand{ @@ -42,7 +44,7 @@ class ClearCommand extends VanillaCommand{ "%pocketmine.command.clear.description", "%pocketmine.command.clear.usage" ); - $this->setPermission("pocketmine.command.clear.self;pocketmine.command.clear.other"); + $this->setPermission(implode(";", [DefaultPermissionNames::COMMAND_CLEAR_SELF, DefaultPermissionNames::COMMAND_CLEAR_OTHER])); } public function execute(CommandSender $sender, string $commandLabel, array $args){ @@ -61,12 +63,12 @@ class ClearCommand extends VanillaCommand{ $sender->sendMessage(new TranslationContainer(TextFormat::RED . "%commands.generic.player.notFound")); return true; } - if($target !== $sender && !$sender->hasPermission("pocketmine.command.clear.other")){ + if($target !== $sender && !$sender->hasPermission(DefaultPermissionNames::COMMAND_CLEAR_OTHER)){ $sender->sendMessage($sender->getLanguage()->translateString(TextFormat::RED . "%commands.generic.permission")); return true; } }elseif($sender instanceof Player){ - if(!$sender->hasPermission("pocketmine.command.clear.self")){ + if(!$sender->hasPermission(DefaultPermissionNames::COMMAND_CLEAR_SELF)){ $sender->sendMessage($sender->getLanguage()->translateString(TextFormat::RED . "%commands.generic.permission")); return true; } diff --git a/src/command/defaults/DefaultGamemodeCommand.php b/src/command/defaults/DefaultGamemodeCommand.php index 33f5b1686..308353aee 100644 --- a/src/command/defaults/DefaultGamemodeCommand.php +++ b/src/command/defaults/DefaultGamemodeCommand.php @@ -26,6 +26,7 @@ namespace pocketmine\command\defaults; use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\TranslationContainer; +use pocketmine\permission\DefaultPermissionNames; use pocketmine\player\GameMode; use function count; @@ -37,7 +38,7 @@ class DefaultGamemodeCommand extends VanillaCommand{ "%pocketmine.command.defaultgamemode.description", "%commands.defaultgamemode.usage" ); - $this->setPermission("pocketmine.command.defaultgamemode"); + $this->setPermission(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 8448f27ac..5a4a488cf 100644 --- a/src/command/defaults/DeopCommand.php +++ b/src/command/defaults/DeopCommand.php @@ -27,6 +27,7 @@ use pocketmine\command\Command; use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\TranslationContainer; +use pocketmine\permission\DefaultPermissionNames; use pocketmine\player\Player; use pocketmine\utils\TextFormat; use function array_shift; @@ -40,7 +41,7 @@ class DeopCommand extends VanillaCommand{ "%pocketmine.command.deop.description", "%commands.deop.usage" ); - $this->setPermission("pocketmine.command.op.take"); + $this->setPermission(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 1f05070a3..56951b02e 100644 --- a/src/command/defaults/DifficultyCommand.php +++ b/src/command/defaults/DifficultyCommand.php @@ -27,6 +27,7 @@ use pocketmine\command\Command; use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\TranslationContainer; +use pocketmine\permission\DefaultPermissionNames; use pocketmine\world\World; use function count; @@ -38,7 +39,7 @@ class DifficultyCommand extends VanillaCommand{ "%pocketmine.command.difficulty.description", "%commands.difficulty.usage" ); - $this->setPermission("pocketmine.command.difficulty"); + $this->setPermission(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 f7a48f4de..34c1da9e6 100644 --- a/src/command/defaults/DumpMemoryCommand.php +++ b/src/command/defaults/DumpMemoryCommand.php @@ -24,6 +24,7 @@ declare(strict_types=1); namespace pocketmine\command\defaults; use pocketmine\command\CommandSender; +use pocketmine\permission\DefaultPermissionNames; use function date; class DumpMemoryCommand extends VanillaCommand{ @@ -34,7 +35,7 @@ class DumpMemoryCommand extends VanillaCommand{ "Dumps the memory", "/$name [path]" ); - $this->setPermission("pocketmine.command.dumpmemory"); + $this->setPermission(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 df704ba72..d035aba7d 100644 --- a/src/command/defaults/EffectCommand.php +++ b/src/command/defaults/EffectCommand.php @@ -28,6 +28,7 @@ use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\entity\effect\EffectInstance; use pocketmine\entity\effect\VanillaEffects; use pocketmine\lang\TranslationContainer; +use pocketmine\permission\DefaultPermissionNames; use pocketmine\utils\Limits; use pocketmine\utils\TextFormat; use function count; @@ -41,7 +42,7 @@ class EffectCommand extends VanillaCommand{ "%pocketmine.command.effect.description", "%commands.effect.usage" ); - $this->setPermission("pocketmine.command.effect"); + $this->setPermission(DefaultPermissionNames::COMMAND_EFFECT); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/EnchantCommand.php b/src/command/defaults/EnchantCommand.php index 4c4416567..226c7729b 100644 --- a/src/command/defaults/EnchantCommand.php +++ b/src/command/defaults/EnchantCommand.php @@ -28,6 +28,7 @@ use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\item\enchantment\EnchantmentInstance; use pocketmine\item\enchantment\VanillaEnchantments; use pocketmine\lang\TranslationContainer; +use pocketmine\permission\DefaultPermissionNames; use pocketmine\utils\TextFormat; use function count; @@ -39,7 +40,7 @@ class EnchantCommand extends VanillaCommand{ "%pocketmine.command.enchant.description", "%commands.enchant.usage" ); - $this->setPermission("pocketmine.command.enchant"); + $this->setPermission(DefaultPermissionNames::COMMAND_ENCHANT); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/GamemodeCommand.php b/src/command/defaults/GamemodeCommand.php index c6cc02204..0633b914e 100644 --- a/src/command/defaults/GamemodeCommand.php +++ b/src/command/defaults/GamemodeCommand.php @@ -27,6 +27,7 @@ use pocketmine\command\Command; use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\TranslationContainer; +use pocketmine\permission\DefaultPermissionNames; use pocketmine\player\GameMode; use pocketmine\player\Player; use pocketmine\utils\TextFormat; @@ -40,7 +41,7 @@ class GamemodeCommand extends VanillaCommand{ "%pocketmine.command.gamemode.description", "%commands.gamemode.usage" ); - $this->setPermission("pocketmine.command.gamemode"); + $this->setPermission(DefaultPermissionNames::COMMAND_GAMEMODE); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/GarbageCollectorCommand.php b/src/command/defaults/GarbageCollectorCommand.php index 1fc6b7f73..1614e9e90 100644 --- a/src/command/defaults/GarbageCollectorCommand.php +++ b/src/command/defaults/GarbageCollectorCommand.php @@ -24,6 +24,7 @@ declare(strict_types=1); namespace pocketmine\command\defaults; use pocketmine\command\CommandSender; +use pocketmine\permission\DefaultPermissionNames; use pocketmine\utils\TextFormat; use function count; use function memory_get_usage; @@ -38,7 +39,7 @@ class GarbageCollectorCommand extends VanillaCommand{ "%pocketmine.command.gc.description", "%pocketmine.command.gc.usage" ); - $this->setPermission("pocketmine.command.gc"); + $this->setPermission(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 1812e6c0c..3fd2085bd 100644 --- a/src/command/defaults/GiveCommand.php +++ b/src/command/defaults/GiveCommand.php @@ -30,6 +30,7 @@ use pocketmine\item\LegacyStringToItemParser; use pocketmine\lang\TranslationContainer; use pocketmine\nbt\JsonNbtParser; use pocketmine\nbt\NbtDataException; +use pocketmine\permission\DefaultPermissionNames; use pocketmine\utils\TextFormat; use function array_slice; use function count; @@ -43,7 +44,7 @@ class GiveCommand extends VanillaCommand{ "%pocketmine.command.give.description", "%pocketmine.command.give.usage" ); - $this->setPermission("pocketmine.command.give"); + $this->setPermission(DefaultPermissionNames::COMMAND_GIVE); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/HelpCommand.php b/src/command/defaults/HelpCommand.php index 5e761d180..ba7dda68e 100644 --- a/src/command/defaults/HelpCommand.php +++ b/src/command/defaults/HelpCommand.php @@ -26,6 +26,7 @@ namespace pocketmine\command\defaults; use pocketmine\command\Command; use pocketmine\command\CommandSender; use pocketmine\lang\TranslationContainer; +use pocketmine\permission\DefaultPermissionNames; use pocketmine\utils\TextFormat; use function array_chunk; use function array_pop; @@ -48,7 +49,7 @@ class HelpCommand extends VanillaCommand{ "%commands.help.usage", ["?"] ); - $this->setPermission("pocketmine.command.help"); + $this->setPermission(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 f90592e4e..67bbcf9d1 100644 --- a/src/command/defaults/KickCommand.php +++ b/src/command/defaults/KickCommand.php @@ -27,6 +27,7 @@ use pocketmine\command\Command; use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\TranslationContainer; +use pocketmine\permission\DefaultPermissionNames; use pocketmine\player\Player; use pocketmine\utils\TextFormat; use function array_shift; @@ -42,7 +43,7 @@ class KickCommand extends VanillaCommand{ "%pocketmine.command.kick.description", "%commands.kick.usage" ); - $this->setPermission("pocketmine.command.kick"); + $this->setPermission(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 f71771916..b399f0591 100644 --- a/src/command/defaults/KillCommand.php +++ b/src/command/defaults/KillCommand.php @@ -28,9 +28,11 @@ use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\event\entity\EntityDamageEvent; use pocketmine\lang\TranslationContainer; +use pocketmine\permission\DefaultPermissionNames; use pocketmine\player\Player; use pocketmine\utils\TextFormat; use function count; +use function implode; class KillCommand extends VanillaCommand{ @@ -41,7 +43,7 @@ class KillCommand extends VanillaCommand{ "%pocketmine.command.kill.usage", ["suicide"] ); - $this->setPermission("pocketmine.command.kill.self;pocketmine.command.kill.other"); + $this->setPermission(implode(";", [DefaultPermissionNames::COMMAND_KILL_SELF, DefaultPermissionNames::COMMAND_KILL_OTHER])); } public function execute(CommandSender $sender, string $commandLabel, array $args){ @@ -54,7 +56,7 @@ class KillCommand extends VanillaCommand{ } if(count($args) === 1){ - if(!$sender->hasPermission("pocketmine.command.kill.other")){ + if(!$sender->hasPermission(DefaultPermissionNames::COMMAND_KILL_OTHER)){ $sender->sendMessage($sender->getLanguage()->translateString(TextFormat::RED . "%commands.generic.permission")); return true; @@ -73,7 +75,7 @@ class KillCommand extends VanillaCommand{ } if($sender instanceof Player){ - if(!$sender->hasPermission("pocketmine.command.kill.self")){ + if(!$sender->hasPermission(DefaultPermissionNames::COMMAND_KILL_SELF)){ $sender->sendMessage($sender->getLanguage()->translateString(TextFormat::RED . "%commands.generic.permission")); return true; diff --git a/src/command/defaults/ListCommand.php b/src/command/defaults/ListCommand.php index 3e703566a..70cbd9073 100644 --- a/src/command/defaults/ListCommand.php +++ b/src/command/defaults/ListCommand.php @@ -25,6 +25,7 @@ namespace pocketmine\command\defaults; use pocketmine\command\CommandSender; use pocketmine\lang\TranslationContainer; +use pocketmine\permission\DefaultPermissionNames; use pocketmine\player\Player; use function array_filter; use function array_map; @@ -41,7 +42,7 @@ class ListCommand extends VanillaCommand{ "%pocketmine.command.list.description", "%command.players.usage" ); - $this->setPermission("pocketmine.command.list"); + $this->setPermission(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 8b6d9a7fb..1f643ac21 100644 --- a/src/command/defaults/MeCommand.php +++ b/src/command/defaults/MeCommand.php @@ -26,6 +26,7 @@ namespace pocketmine\command\defaults; use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\TranslationContainer; +use pocketmine\permission\DefaultPermissionNames; use pocketmine\player\Player; use pocketmine\utils\TextFormat; use function count; @@ -39,7 +40,7 @@ class MeCommand extends VanillaCommand{ "%pocketmine.command.me.description", "%commands.me.usage" ); - $this->setPermission("pocketmine.command.me"); + $this->setPermission(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 0b4537d2c..a2aef219b 100644 --- a/src/command/defaults/OpCommand.php +++ b/src/command/defaults/OpCommand.php @@ -27,6 +27,7 @@ use pocketmine\command\Command; use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\TranslationContainer; +use pocketmine\permission\DefaultPermissionNames; use pocketmine\player\Player; use pocketmine\utils\TextFormat; use function array_shift; @@ -40,7 +41,7 @@ class OpCommand extends VanillaCommand{ "%pocketmine.command.op.description", "%commands.op.usage" ); - $this->setPermission("pocketmine.command.op.give"); + $this->setPermission(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 f46c0b485..c9b04e796 100644 --- a/src/command/defaults/PardonCommand.php +++ b/src/command/defaults/PardonCommand.php @@ -27,6 +27,7 @@ use pocketmine\command\Command; use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\TranslationContainer; +use pocketmine\permission\DefaultPermissionNames; use function count; class PardonCommand extends VanillaCommand{ @@ -38,7 +39,7 @@ class PardonCommand extends VanillaCommand{ "%commands.unban.usage", ["unban"] ); - $this->setPermission("pocketmine.command.unban.player"); + $this->setPermission(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 0133f046d..df515d5ce 100644 --- a/src/command/defaults/PardonIpCommand.php +++ b/src/command/defaults/PardonIpCommand.php @@ -27,6 +27,7 @@ use pocketmine\command\Command; use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\TranslationContainer; +use pocketmine\permission\DefaultPermissionNames; use function count; use function preg_match; @@ -39,7 +40,7 @@ class PardonIpCommand extends VanillaCommand{ "%commands.unbanip.usage", ["unban-ip"] ); - $this->setPermission("pocketmine.command.unban.ip"); + $this->setPermission(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 1420f5d3c..560b3e426 100644 --- a/src/command/defaults/ParticleCommand.php +++ b/src/command/defaults/ParticleCommand.php @@ -31,6 +31,7 @@ use pocketmine\item\ItemFactory; use pocketmine\item\VanillaItems; use pocketmine\lang\TranslationContainer; use pocketmine\math\Vector3; +use pocketmine\permission\DefaultPermissionNames; use pocketmine\player\Player; use pocketmine\utils\Random; use pocketmine\utils\TextFormat; @@ -80,7 +81,7 @@ class ParticleCommand extends VanillaCommand{ "%pocketmine.command.particle.description", "%pocketmine.command.particle.usage" ); - $this->setPermission("pocketmine.command.particle"); + $this->setPermission(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 993ea0bbe..ac3c9cd8a 100644 --- a/src/command/defaults/PluginsCommand.php +++ b/src/command/defaults/PluginsCommand.php @@ -25,6 +25,7 @@ namespace pocketmine\command\defaults; use pocketmine\command\CommandSender; use pocketmine\lang\TranslationContainer; +use pocketmine\permission\DefaultPermissionNames; use pocketmine\plugin\Plugin; use pocketmine\utils\TextFormat; use function array_map; @@ -42,7 +43,7 @@ class PluginsCommand extends VanillaCommand{ "%pocketmine.command.plugins.usage", ["pl"] ); - $this->setPermission("pocketmine.command.plugins"); + $this->setPermission(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 1949baa30..e701d3801 100644 --- a/src/command/defaults/SaveCommand.php +++ b/src/command/defaults/SaveCommand.php @@ -26,6 +26,7 @@ namespace pocketmine\command\defaults; use pocketmine\command\Command; use pocketmine\command\CommandSender; use pocketmine\lang\TranslationContainer; +use pocketmine\permission\DefaultPermissionNames; use function microtime; use function round; @@ -37,7 +38,7 @@ class SaveCommand extends VanillaCommand{ "%pocketmine.command.save.description", "%commands.save.usage" ); - $this->setPermission("pocketmine.command.save.perform"); + $this->setPermission(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 82687867a..9c08e2460 100644 --- a/src/command/defaults/SaveOffCommand.php +++ b/src/command/defaults/SaveOffCommand.php @@ -26,6 +26,7 @@ namespace pocketmine\command\defaults; use pocketmine\command\Command; use pocketmine\command\CommandSender; use pocketmine\lang\TranslationContainer; +use pocketmine\permission\DefaultPermissionNames; class SaveOffCommand extends VanillaCommand{ @@ -35,7 +36,7 @@ class SaveOffCommand extends VanillaCommand{ "%pocketmine.command.saveoff.description", "%commands.save-off.usage" ); - $this->setPermission("pocketmine.command.save.disable"); + $this->setPermission(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 3df4808bd..08a342de8 100644 --- a/src/command/defaults/SaveOnCommand.php +++ b/src/command/defaults/SaveOnCommand.php @@ -26,6 +26,7 @@ namespace pocketmine\command\defaults; use pocketmine\command\Command; use pocketmine\command\CommandSender; use pocketmine\lang\TranslationContainer; +use pocketmine\permission\DefaultPermissionNames; class SaveOnCommand extends VanillaCommand{ @@ -35,7 +36,7 @@ class SaveOnCommand extends VanillaCommand{ "%pocketmine.command.saveon.description", "%commands.save-on.usage" ); - $this->setPermission("pocketmine.command.save.enable"); + $this->setPermission(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 709d68fac..64adf3d90 100644 --- a/src/command/defaults/SayCommand.php +++ b/src/command/defaults/SayCommand.php @@ -27,6 +27,7 @@ use pocketmine\command\CommandSender; use pocketmine\command\ConsoleCommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\TranslationContainer; +use pocketmine\permission\DefaultPermissionNames; use pocketmine\player\Player; use pocketmine\utils\TextFormat; use function count; @@ -40,7 +41,7 @@ class SayCommand extends VanillaCommand{ "%pocketmine.command.say.description", "%commands.say.usage" ); - $this->setPermission("pocketmine.command.say"); + $this->setPermission(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 29017edb5..d3015436a 100644 --- a/src/command/defaults/SeedCommand.php +++ b/src/command/defaults/SeedCommand.php @@ -25,6 +25,7 @@ namespace pocketmine\command\defaults; use pocketmine\command\CommandSender; use pocketmine\lang\TranslationContainer; +use pocketmine\permission\DefaultPermissionNames; use pocketmine\player\Player; class SeedCommand extends VanillaCommand{ @@ -35,7 +36,7 @@ class SeedCommand extends VanillaCommand{ "%pocketmine.command.seed.description", "%commands.seed.usage" ); - $this->setPermission("pocketmine.command.seed"); + $this->setPermission(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 45534184a..6ff10470d 100644 --- a/src/command/defaults/SetWorldSpawnCommand.php +++ b/src/command/defaults/SetWorldSpawnCommand.php @@ -28,6 +28,7 @@ use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\TranslationContainer; use pocketmine\math\Vector3; +use pocketmine\permission\DefaultPermissionNames; use pocketmine\player\Player; use pocketmine\utils\TextFormat; use function count; @@ -41,7 +42,7 @@ class SetWorldSpawnCommand extends VanillaCommand{ "%pocketmine.command.setworldspawn.description", "%commands.setworldspawn.usage" ); - $this->setPermission("pocketmine.command.setworldspawn"); + $this->setPermission(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 3c5cf4f0c..fcf86869d 100644 --- a/src/command/defaults/SpawnpointCommand.php +++ b/src/command/defaults/SpawnpointCommand.php @@ -27,6 +27,7 @@ use pocketmine\command\Command; use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\TranslationContainer; +use pocketmine\permission\DefaultPermissionNames; use pocketmine\player\Player; use pocketmine\utils\TextFormat; use pocketmine\world\Position; @@ -42,7 +43,7 @@ class SpawnpointCommand extends VanillaCommand{ "%pocketmine.command.spawnpoint.description", "%commands.spawnpoint.usage" ); - $this->setPermission("pocketmine.command.spawnpoint"); + $this->setPermission(DefaultPermissionNames::COMMAND_SPAWNPOINT); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/StatusCommand.php b/src/command/defaults/StatusCommand.php index cbf53c0ee..a64dc6dc9 100644 --- a/src/command/defaults/StatusCommand.php +++ b/src/command/defaults/StatusCommand.php @@ -24,6 +24,7 @@ declare(strict_types=1); namespace pocketmine\command\defaults; use pocketmine\command\CommandSender; +use pocketmine\permission\DefaultPermissionNames; use pocketmine\utils\Process; use pocketmine\utils\TextFormat; use function count; @@ -40,7 +41,7 @@ class StatusCommand extends VanillaCommand{ "%pocketmine.command.status.description", "%pocketmine.command.status.usage" ); - $this->setPermission("pocketmine.command.status"); + $this->setPermission(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 cc5e2f1bf..1b943d0d7 100644 --- a/src/command/defaults/StopCommand.php +++ b/src/command/defaults/StopCommand.php @@ -26,6 +26,7 @@ namespace pocketmine\command\defaults; use pocketmine\command\Command; use pocketmine\command\CommandSender; use pocketmine\lang\TranslationContainer; +use pocketmine\permission\DefaultPermissionNames; class StopCommand extends VanillaCommand{ @@ -35,7 +36,7 @@ class StopCommand extends VanillaCommand{ "%pocketmine.command.stop.description", "%commands.stop.usage" ); - $this->setPermission("pocketmine.command.stop"); + $this->setPermission(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 5dd3d9b14..77a664271 100644 --- a/src/command/defaults/TeleportCommand.php +++ b/src/command/defaults/TeleportCommand.php @@ -28,6 +28,7 @@ use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\entity\Location; use pocketmine\lang\TranslationContainer; +use pocketmine\permission\DefaultPermissionNames; use pocketmine\player\Player; use pocketmine\utils\AssumptionFailedError; use pocketmine\utils\TextFormat; @@ -44,7 +45,7 @@ class TeleportCommand extends VanillaCommand{ "%commands.tp.usage", ["teleport"] ); - $this->setPermission("pocketmine.command.teleport"); + $this->setPermission(DefaultPermissionNames::COMMAND_TELEPORT); } private function findPlayer(CommandSender $sender, string $playerName) : ?Player{ diff --git a/src/command/defaults/TellCommand.php b/src/command/defaults/TellCommand.php index 27f9d811c..f4e9c90f0 100644 --- a/src/command/defaults/TellCommand.php +++ b/src/command/defaults/TellCommand.php @@ -27,6 +27,7 @@ use pocketmine\command\Command; use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\TranslationContainer; +use pocketmine\permission\DefaultPermissionNames; use pocketmine\player\Player; use pocketmine\utils\TextFormat; use function array_shift; @@ -42,7 +43,7 @@ class TellCommand extends VanillaCommand{ "%commands.message.usage", ["w", "msg"] ); - $this->setPermission("pocketmine.command.tell"); + $this->setPermission(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 f98fdee5e..23e1e1556 100644 --- a/src/command/defaults/TimeCommand.php +++ b/src/command/defaults/TimeCommand.php @@ -27,10 +27,12 @@ use pocketmine\command\Command; use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\TranslationContainer; +use pocketmine\permission\DefaultPermissionNames; use pocketmine\player\Player; use pocketmine\utils\TextFormat; use pocketmine\world\World; use function count; +use function implode; class TimeCommand extends VanillaCommand{ @@ -40,16 +42,25 @@ class TimeCommand extends VanillaCommand{ "%pocketmine.command.time.description", "%pocketmine.command.time.usage" ); - $this->setPermission("pocketmine.command.time.add;pocketmine.command.time.set;pocketmine.command.time.start;pocketmine.command.time.stop"); + $this->setPermission(implode(";", [ + DefaultPermissionNames::COMMAND_TIME_ADD, + DefaultPermissionNames::COMMAND_TIME_SET, + DefaultPermissionNames::COMMAND_TIME_START, + DefaultPermissionNames::COMMAND_TIME_STOP, + DefaultPermissionNames::COMMAND_TIME_QUERY + ])); } public function execute(CommandSender $sender, string $commandLabel, array $args){ + if(!$this->testPermission($sender)){ + return true; + } if(count($args) < 1){ throw new InvalidCommandSyntaxException(); } if($args[0] === "start"){ - if(!$sender->hasPermission("pocketmine.command.time.start")){ + if(!$sender->hasPermission(DefaultPermissionNames::COMMAND_TIME_START)){ $sender->sendMessage($sender->getLanguage()->translateString(TextFormat::RED . "%commands.generic.permission")); return true; @@ -60,7 +71,7 @@ class TimeCommand extends VanillaCommand{ Command::broadcastCommandMessage($sender, "Restarted the time"); return true; }elseif($args[0] === "stop"){ - if(!$sender->hasPermission("pocketmine.command.time.stop")){ + if(!$sender->hasPermission(DefaultPermissionNames::COMMAND_TIME_STOP)){ $sender->sendMessage($sender->getLanguage()->translateString(TextFormat::RED . "%commands.generic.permission")); return true; @@ -71,7 +82,7 @@ class TimeCommand extends VanillaCommand{ Command::broadcastCommandMessage($sender, "Stopped the time"); return true; }elseif($args[0] === "query"){ - if(!$sender->hasPermission("pocketmine.command.time.query")){ + if(!$sender->hasPermission(DefaultPermissionNames::COMMAND_TIME_QUERY)){ $sender->sendMessage($sender->getLanguage()->translateString(TextFormat::RED . "%commands.generic.permission")); return true; @@ -90,7 +101,7 @@ class TimeCommand extends VanillaCommand{ } if($args[0] === "set"){ - if(!$sender->hasPermission("pocketmine.command.time.set")){ + if(!$sender->hasPermission(DefaultPermissionNames::COMMAND_TIME_SET)){ $sender->sendMessage($sender->getLanguage()->translateString(TextFormat::RED . "%commands.generic.permission")); return true; @@ -125,7 +136,7 @@ class TimeCommand extends VanillaCommand{ } Command::broadcastCommandMessage($sender, new TranslationContainer("commands.time.set", [$value])); }elseif($args[0] === "add"){ - if(!$sender->hasPermission("pocketmine.command.time.add")){ + if(!$sender->hasPermission(DefaultPermissionNames::COMMAND_TIME_ADD)){ $sender->sendMessage($sender->getLanguage()->translateString(TextFormat::RED . "%commands.generic.permission")); return true; diff --git a/src/command/defaults/TimingsCommand.php b/src/command/defaults/TimingsCommand.php index bcdd3ea10..e4dbc72a0 100644 --- a/src/command/defaults/TimingsCommand.php +++ b/src/command/defaults/TimingsCommand.php @@ -27,6 +27,7 @@ use pocketmine\command\Command; use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\TranslationContainer; +use pocketmine\permission\DefaultPermissionNames; use pocketmine\player\Player; use pocketmine\scheduler\BulkCurlTask; use pocketmine\scheduler\BulkCurlTaskOperation; @@ -60,7 +61,7 @@ class TimingsCommand extends VanillaCommand{ "%pocketmine.command.timings.description", "%pocketmine.command.timings.usage" ); - $this->setPermission("pocketmine.command.timings"); + $this->setPermission(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 f03123fdb..ec846763b 100644 --- a/src/command/defaults/TitleCommand.php +++ b/src/command/defaults/TitleCommand.php @@ -26,6 +26,7 @@ namespace pocketmine\command\defaults; use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\TranslationContainer; +use pocketmine\permission\DefaultPermissionNames; use function array_slice; use function count; use function implode; @@ -38,7 +39,7 @@ class TitleCommand extends VanillaCommand{ "%pocketmine.command.title.description", "%commands.title.usage" ); - $this->setPermission("pocketmine.command.title"); + $this->setPermission(DefaultPermissionNames::COMMAND_TITLE); } public function execute(CommandSender $sender, string $commandLabel, array $args){ diff --git a/src/command/defaults/TransferServerCommand.php b/src/command/defaults/TransferServerCommand.php index 295ce3f45..1e783f9f9 100644 --- a/src/command/defaults/TransferServerCommand.php +++ b/src/command/defaults/TransferServerCommand.php @@ -25,6 +25,7 @@ namespace pocketmine\command\defaults; use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; +use pocketmine\permission\DefaultPermissionNames; use pocketmine\player\Player; use function count; @@ -36,7 +37,7 @@ class TransferServerCommand extends VanillaCommand{ "%pocketmine.command.transferserver.description", "%pocketmine.command.transferserver.usage" ); - $this->setPermission("pocketmine.command.transferserver"); + $this->setPermission(DefaultPermissionNames::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 e132671bd..884e4c77f 100644 --- a/src/command/defaults/VersionCommand.php +++ b/src/command/defaults/VersionCommand.php @@ -26,6 +26,7 @@ namespace pocketmine\command\defaults; use pocketmine\command\CommandSender; use pocketmine\lang\TranslationContainer; use pocketmine\network\mcpe\protocol\ProtocolInfo; +use pocketmine\permission\DefaultPermissionNames; use pocketmine\plugin\Plugin; use pocketmine\utils\TextFormat; use function count; @@ -42,7 +43,7 @@ class VersionCommand extends VanillaCommand{ "%pocketmine.command.version.usage", ["ver", "about"] ); - $this->setPermission("pocketmine.command.version"); + $this->setPermission(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 1a9547c37..e0fd3ae10 100644 --- a/src/command/defaults/WhitelistCommand.php +++ b/src/command/defaults/WhitelistCommand.php @@ -27,7 +27,9 @@ use pocketmine\command\Command; use pocketmine\command\CommandSender; use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\lang\TranslationContainer; +use pocketmine\permission\DefaultPermissionNames; use pocketmine\player\Player; +use pocketmine\utils\AssumptionFailedError; use pocketmine\utils\TextFormat; use function count; use function implode; @@ -43,7 +45,14 @@ class WhitelistCommand extends VanillaCommand{ "%pocketmine.command.whitelist.description", "%commands.whitelist.usage" ); - $this->setPermission("pocketmine.command.whitelist.reload;pocketmine.command.whitelist.enable;pocketmine.command.whitelist.disable;pocketmine.command.whitelist.list;pocketmine.command.whitelist.add;pocketmine.command.whitelist.remove"); + $this->setPermission(implode(";", [ + DefaultPermissionNames::COMMAND_WHITELIST_RELOAD, + DefaultPermissionNames::COMMAND_WHITELIST_ENABLE, + DefaultPermissionNames::COMMAND_WHITELIST_DISABLE, + DefaultPermissionNames::COMMAND_WHITELIST_LIST, + DefaultPermissionNames::COMMAND_WHITELIST_ADD, + DefaultPermissionNames::COMMAND_WHITELIST_REMOVE + ])); } public function execute(CommandSender $sender, string $commandLabel, array $args){ @@ -115,11 +124,18 @@ class WhitelistCommand extends VanillaCommand{ } private function badPerm(CommandSender $sender, string $subcommand) : bool{ - static $map = [ - "on" => "enable", - "off" => "disable" - ]; - if(!$sender->hasPermission("pocketmine.command.whitelist." . ($map[$subcommand] ?? $subcommand))){ + $permission = [ + "reload" => DefaultPermissionNames::COMMAND_WHITELIST_RELOAD, + "on" => DefaultPermissionNames::COMMAND_WHITELIST_ENABLE, + "off" => DefaultPermissionNames::COMMAND_WHITELIST_DISABLE, + "list" => DefaultPermissionNames::COMMAND_WHITELIST_LIST, + "add" => DefaultPermissionNames::COMMAND_WHITELIST_ADD, + "remove" => DefaultPermissionNames::COMMAND_WHITELIST_REMOVE + ][$subcommand] ?? null; + if($permission === null){ + throw new AssumptionFailedError("Unknown subcommand $subcommand"); + } + if(!$sender->hasPermission($permission)){ $sender->sendMessage($sender->getLanguage()->translateString(TextFormat::RED . "%commands.generic.permission")); return true; diff --git a/src/permission/DefaultPermissionNames.php b/src/permission/DefaultPermissionNames.php new file mode 100644 index 000000000..d90b72f54 --- /dev/null +++ b/src/permission/DefaultPermissionNames.php @@ -0,0 +1,83 @@ +hasPermission($channel)){ + foreach([ + DefaultPermissionNames::BROADCAST_ADMIN => Server::BROADCAST_CHANNEL_ADMINISTRATIVE, + DefaultPermissionNames::BROADCAST_USER => Server::BROADCAST_CHANNEL_USERS + ] as $permission => $channel){ + if($this->hasPermission($permission)){ $this->server->subscribeToBroadcastChannel($channel, $this); }else{ $this->server->unsubscribeFromBroadcastChannel($channel, $this); @@ -807,7 +811,7 @@ class Player extends Human implements CommandSender, ChunkListener, IPlayer{ $this->spawnToAll(); - if($this->server->getUpdater()->hasUpdate() and $this->hasPermission(Server::BROADCAST_CHANNEL_ADMINISTRATIVE) and $this->server->getConfigGroup()->getPropertyBool("auto-updater.on-update.warn-ops", true)){ + if($this->server->getUpdater()->hasUpdate() and $this->hasPermission(DefaultPermissionNames::BROADCAST_ADMIN) and $this->server->getConfigGroup()->getPropertyBool("auto-updater.on-update.warn-ops", true)){ $this->server->getUpdater()->showPlayerUpdate($this); }