More typehints for Command stuff

This commit is contained in:
Dylan K. Taylor 2017-07-05 18:54:36 +01:00
parent 46a2e6cbf8
commit 8bb0c53797
47 changed files with 93 additions and 86 deletions

View File

@ -74,7 +74,7 @@ abstract class Command{
* @param string $usageMessage
* @param string[] $aliases
*/
public function __construct($name, $description = "", $usageMessage = null, array $aliases = []){
public function __construct(string $name, string $description = "", string $usageMessage = null, array $aliases = []){
$this->commandData = self::generateDefaultData();
$this->name = $name;
$this->setLabel($name);
@ -118,7 +118,7 @@ abstract class Command{
/**
* @return array
*/
public function getOverloads(): array{
public function getOverloads() : array{
return $this->commandData["overloads"];
}
@ -129,12 +129,12 @@ abstract class Command{
*
* @return mixed
*/
abstract public function execute(CommandSender $sender, $commandLabel, array $args);
abstract public function execute(CommandSender $sender, string $commandLabel, array $args);
/**
* @return string
*/
public function getName(){
public function getName() : string{
return $this->name;
}
@ -149,7 +149,7 @@ abstract class Command{
/**
* @param string|null $permission
*/
public function setPermission($permission){
public function setPermission(string $permission = null){
if($permission !== null){
$this->commandData["pocketminePermission"] = $permission;
}else{
@ -162,7 +162,7 @@ abstract class Command{
*
* @return bool
*/
public function testPermission(CommandSender $target){
public function testPermission(CommandSender $target) : bool{
if($this->testPermissionSilent($target)){
return true;
}
@ -181,7 +181,7 @@ abstract class Command{
*
* @return bool
*/
public function testPermissionSilent(CommandSender $target){
public function testPermissionSilent(CommandSender $target) : bool{
if(($perm = $this->getPermission()) === null or $perm === ""){
return true;
}
@ -198,11 +198,11 @@ abstract class Command{
/**
* @return string
*/
public function getLabel(){
public function getLabel() : string{
return $this->label;
}
public function setLabel($name){
public function setLabel(string $name){
$this->nextLabel = $name;
if(!$this->isRegistered()){
if($this->timings instanceof TimingsHandler){
@ -224,7 +224,7 @@ abstract class Command{
*
* @return bool
*/
public function register(CommandMap $commandMap){
public function register(CommandMap $commandMap) : bool{
if($this->allowChangesFrom($commandMap)){
$this->commandMap = $commandMap;
@ -239,7 +239,7 @@ abstract class Command{
*
* @return bool
*/
public function unregister(CommandMap $commandMap){
public function unregister(CommandMap $commandMap) : bool{
if($this->allowChangesFrom($commandMap)){
$this->commandMap = null;
$this->activeAliases = $this->commandData["aliases"];
@ -256,42 +256,42 @@ abstract class Command{
*
* @return bool
*/
private function allowChangesFrom(CommandMap $commandMap){
private function allowChangesFrom(CommandMap $commandMap) : bool{
return $this->commandMap === null or $this->commandMap === $commandMap;
}
/**
* @return bool
*/
public function isRegistered(){
public function isRegistered() : bool{
return $this->commandMap !== null;
}
/**
* @return string[]
*/
public function getAliases(){
public function getAliases() : array{
return $this->activeAliases;
}
/**
* @return string
*/
public function getPermissionMessage(){
public function getPermissionMessage() : string{
return $this->permissionMessage;
}
/**
* @return string
*/
public function getDescription(){
public function getDescription() : string{
return $this->commandData["description"];
}
/**
* @return string
*/
public function getUsage(){
public function getUsage() : string{
return $this->usageMessage;
}
@ -308,21 +308,21 @@ abstract class Command{
/**
* @param string $description
*/
public function setDescription($description){
public function setDescription(string $description){
$this->commandData["description"] = $description;
}
/**
* @param string $permissionMessage
*/
public function setPermissionMessage($permissionMessage){
public function setPermissionMessage(string $permissionMessage){
$this->permissionMessage = $permissionMessage;
}
/**
* @param string $usage
*/
public function setUsage($usage){
public function setUsage(string $usage){
$this->usageMessage = $usage;
}
@ -337,11 +337,11 @@ abstract class Command{
}
/**
* @param CommandSender $source
* @param string $message
* @param bool $sendToSource
* @param CommandSender $source
* @param TextContainer|string $message
* @param bool $sendToSource
*/
public static function broadcastCommandMessage(CommandSender $source, $message, $sendToSource = true){
public static function broadcastCommandMessage(CommandSender $source, $message, bool $sendToSource = true){
if($message instanceof TextContainer){
$m = clone $message;
$result = "[" . $source->getName() . ": " . ($source->getServer()->getLanguage()->get($m->getText()) !== $m->getText() ? "%" : "") . $m->getText() . "]";
@ -377,7 +377,7 @@ abstract class Command{
/**
* @return string
*/
public function __toString(){
public function __toString() : string{
return $this->name;
}
}

View File

@ -27,17 +27,19 @@ namespace pocketmine\command;
interface CommandMap{
/**
* @param string $fallbackPrefix
* @param string $fallbackPrefix
* @param Command[] $commands
*/
public function registerAll($fallbackPrefix, array $commands);
public function registerAll(string $fallbackPrefix, array $commands);
/**
* @param string $fallbackPrefix
* @param Command $command
* @param string $label
* @param string $fallbackPrefix
* @param Command $command
* @param string|null $label
*
* @return
*/
public function register($fallbackPrefix, Command $command, $label = null);
public function register(string $fallbackPrefix, Command $command, string $label = null);
/**
* @param CommandSender $sender
@ -55,9 +57,9 @@ interface CommandMap{
/**
* @param string $name
*
* @return Command
* @return Command|null
*/
public function getCommand($name);
public function getCommand(string $name);
}

View File

@ -34,12 +34,12 @@ class FormattedCommandAlias extends Command{
* @param string $alias
* @param string[] $formatStrings
*/
public function __construct($alias, array $formatStrings){
public function __construct(string $alias, array $formatStrings){
parent::__construct($alias);
$this->formatStrings = $formatStrings;
}
public function execute(CommandSender $sender, $commandLabel, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
$commands = [];
$result = false;
@ -71,9 +71,8 @@ class FormattedCommandAlias extends Command{
* @param array $args
*
* @return string
* @throws \InvalidArgumentException
*/
private function buildCommand($formatString, array $args){
private function buildCommand(string $formatString, array $args) : string{
$index = strpos($formatString, '$');
while($index !== false){
$start = $index;
@ -153,7 +152,7 @@ class FormattedCommandAlias extends Command{
*
* @return bool
*/
private static function inRange($i, $j, $k){
private static function inRange(int $i, int $j, int $k) : bool{
return $i >= $j and $i <= $k;
}

View File

@ -45,7 +45,7 @@ class PluginCommand extends Command implements PluginIdentifiableCommand{
$this->usageMessage = "";
}
public function execute(CommandSender $sender, $commandLabel, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->owningPlugin->isEnabled()){
return false;
@ -64,7 +64,7 @@ class PluginCommand extends Command implements PluginIdentifiableCommand{
return $success;
}
public function getExecutor(){
public function getExecutor() : CommandExecutor{
return $this->executor;
}
@ -78,7 +78,7 @@ class PluginCommand extends Command implements PluginIdentifiableCommand{
/**
* @return Plugin
*/
public function getPlugin(){
public function getPlugin() : Plugin{
return $this->owningPlugin;
}
}

View File

@ -30,5 +30,5 @@ interface PluginIdentifiableCommand{
/**
* @return Plugin
*/
public function getPlugin();
public function getPlugin() : Plugin;
}

View File

@ -131,13 +131,13 @@ class SimpleCommandMap implements CommandMap{
}
public function registerAll($fallbackPrefix, array $commands){
public function registerAll(string $fallbackPrefix, array $commands){
foreach($commands as $command){
$this->register($fallbackPrefix, $command);
}
}
public function register($fallbackPrefix, Command $command, $label = null){
public function register(string $fallbackPrefix, Command $command, string $label = null){
if($label === null){
$label = $command->getName();
}
@ -241,7 +241,7 @@ class SimpleCommandMap implements CommandMap{
$this->setDefaultCommands();
}
public function getCommand($name){
public function getCommand(string $name){
return $this->knownCommands[$name] ?? null;
}

View File

@ -40,7 +40,7 @@ class BanCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.ban.player");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->testPermission($sender)){
return true;
}

View File

@ -40,7 +40,7 @@ class BanIpCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.ban.ip");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->testPermission($sender)){
return true;
}

View File

@ -39,7 +39,7 @@ class BanListCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.ban.list");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->testPermission($sender)){
return true;
}

View File

@ -39,7 +39,7 @@ class DefaultGamemodeCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.defaultgamemode");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->testPermission($sender)){
return true;
}

View File

@ -41,7 +41,7 @@ class DeopCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.op.take");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->testPermission($sender)){
return true;
}

View File

@ -41,7 +41,7 @@ class DifficultyCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.difficulty");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->testPermission($sender)){
return true;
}

View File

@ -38,7 +38,7 @@ class DumpMemoryCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.dumpmemory");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->testPermission($sender)){
return true;
}

View File

@ -40,7 +40,7 @@ class EffectCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.effect");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->testPermission($sender)){
return true;
}

View File

@ -40,7 +40,7 @@ class EnchantCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.enchant");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->testPermission($sender)){
return true;
}

View File

@ -42,7 +42,7 @@ class GamemodeCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.gamemode");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->testPermission($sender)){
return true;
}

View File

@ -37,7 +37,7 @@ class GarbageCollectorCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.gc");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->testPermission($sender)){
return true;
}

View File

@ -44,7 +44,7 @@ class GiveCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.give");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->testPermission($sender)){
return true;
}

View File

@ -41,7 +41,7 @@ class HelpCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.help");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->testPermission($sender)){
return true;
}

View File

@ -41,7 +41,7 @@ class KickCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.kick");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->testPermission($sender)){
return true;
}

View File

@ -43,7 +43,7 @@ class KillCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.kill.self;pocketmine.command.kill.other");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->testPermission($sender)){
return true;
}

View File

@ -38,7 +38,7 @@ class ListCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.list");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->testPermission($sender)){
return true;
}

View File

@ -40,7 +40,7 @@ class MeCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.me");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->testPermission($sender)){
return true;
}

View File

@ -41,7 +41,7 @@ class OpCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.op.give");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->testPermission($sender)){
return true;
}

View File

@ -39,7 +39,7 @@ class PardonCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.unban.player");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->testPermission($sender)){
return true;
}

View File

@ -39,7 +39,7 @@ class PardonIpCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.unban.ip");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->testPermission($sender)){
return true;
}

View File

@ -72,7 +72,7 @@ class ParticleCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.particle");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->testPermission($sender)){
return true;
}

View File

@ -39,7 +39,7 @@ class PluginsCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.plugins");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->testPermission($sender)){
return true;
}

View File

@ -39,7 +39,7 @@ class ReloadCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.reload");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->testPermission($sender)){
return true;
}

View File

@ -38,7 +38,7 @@ class SaveCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.save.perform");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->testPermission($sender)){
return true;
}

View File

@ -38,7 +38,7 @@ class SaveOffCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.save.disable");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->testPermission($sender)){
return true;
}

View File

@ -38,7 +38,7 @@ class SaveOnCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.save.enable");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->testPermission($sender)){
return true;
}

View File

@ -41,7 +41,7 @@ class SayCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.say");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->testPermission($sender)){
return true;
}

View File

@ -38,7 +38,7 @@ class SeedCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.seed");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->testPermission($sender)){
return true;
}

View File

@ -42,7 +42,7 @@ class SetWorldSpawnCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.setworldspawn");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->testPermission($sender)){
return true;
}

View File

@ -43,7 +43,7 @@ class SpawnpointCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.spawnpoint");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->testPermission($sender)){
return true;
}

View File

@ -38,7 +38,7 @@ class StatusCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.status");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->testPermission($sender)){
return true;
}

View File

@ -38,7 +38,7 @@ class StopCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.stop");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->testPermission($sender)){
return true;
}

View File

@ -42,7 +42,7 @@ class TeleportCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.teleport");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->testPermission($sender)){
return true;
}

View File

@ -41,7 +41,7 @@ class TellCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.tell");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->testPermission($sender)){
return true;
}

View File

@ -42,7 +42,7 @@ class TimeCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.time.add;pocketmine.command.time.set;pocketmine.command.time.start;pocketmine.command.time.stop");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(count($args) < 1){
throw new InvalidCommandSyntaxException();
}

View File

@ -44,7 +44,7 @@ class TimingsCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.timings");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->testPermission($sender)){
return true;
}

View File

@ -38,7 +38,7 @@ class TitleCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.title");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->testPermission($sender)){
return true;
}

View File

@ -40,7 +40,7 @@ class TransferServerCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.transferserver");
}
public function execute(CommandSender $sender, $commandLabel, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(count($args) < 1){
throw new InvalidCommandSyntaxException();
}elseif(!($sender instanceof Player)){

View File

@ -41,7 +41,7 @@ class VersionCommand extends VanillaCommand{
$this->setPermission("pocketmine.command.version");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->testPermission($sender)){
return true;
}

View File

@ -40,7 +40,7 @@ class WhitelistCommand extends VanillaCommand{
$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");
}
public function execute(CommandSender $sender, $currentAlias, array $args){
public function execute(CommandSender $sender, string $commandLabel, array $args){
if(!$this->testPermission($sender)){
return true;
}

View File

@ -626,7 +626,13 @@ class PluginManager{
}
if(isset($data["permission"])){
$newCmd->setPermission($data["permission"]);
if(is_bool($data["permission"])){
$newCmd->setPermission($data["permission"] ? "true" : "false");
}elseif(is_string($data["permission"])){
$newCmd->setPermission($data["permission"]);
}else{
throw new \InvalidArgumentException("Permission must be a string or boolean, " . gettype($data["permission"] . " given"));
}
}
if(isset($data["permission-message"])){