From 110c5251f618b8737c86a71d759b741ebbcdf012 Mon Sep 17 00:00:00 2001 From: jasonwynn10 Date: Mon, 27 May 2019 15:19:29 -0400 Subject: [PATCH 1/5] Create TargetArgument.php --- src/CortexPE/Commando/args/TargetArgument.php | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 src/CortexPE/Commando/args/TargetArgument.php diff --git a/src/CortexPE/Commando/args/TargetArgument.php b/src/CortexPE/Commando/args/TargetArgument.php new file mode 100644 index 0000000..530d42f --- /dev/null +++ b/src/CortexPE/Commando/args/TargetArgument.php @@ -0,0 +1,56 @@ +. + * + * Written by @CortexPE + * + */ +declare(strict_types=1); + +namespace CortexPE\Commando\args; + + +use pocketmine\command\CommandSender; +use pocketmine\network\mcpe\protocol\AvailableCommandsPacket; +use pocketmine\Server; + +class TargetArgument extends BaseArgument { + public function getNetworkType() : int { + return AvailableCommandsPacket::ARG_TYPE_TARGET; + } + + public function getTypeName() : string { + return "target"; + } + + public function canParse(string $testString, CommandSender $sender) : bool { + // TODO: Implement canParse() method. + return true; + } + + public function parse(string $argument, CommandSender $sender) { + // TODO: handle @a @e @p etc... + $player = Server::getInstance()->getPlayer($argument) ?? Server::getInstance()->getOfflinePlayer($argument); + return $player->getName(); + } +} From ae6d15874708beae74099a17224ac17900b0cba3 Mon Sep 17 00:00:00 2001 From: jasonwynn10 Date: Sun, 2 Jun 2019 13:55:21 -0400 Subject: [PATCH 2/5] List all unhandled available arguments --- src/CortexPE/Commando/args/TargetArgument.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/CortexPE/Commando/args/TargetArgument.php b/src/CortexPE/Commando/args/TargetArgument.php index 530d42f..b133a42 100644 --- a/src/CortexPE/Commando/args/TargetArgument.php +++ b/src/CortexPE/Commando/args/TargetArgument.php @@ -49,7 +49,7 @@ public function canParse(string $testString, CommandSender $sender) : bool { } public function parse(string $argument, CommandSender $sender) { - // TODO: handle @a @e @p etc... + // TODO: handle @a @e @p @r @s @c @v $player = Server::getInstance()->getPlayer($argument) ?? Server::getInstance()->getOfflinePlayer($argument); return $player->getName(); } From 24a854a8073738be19dbc842de3771eab924b1db Mon Sep 17 00:00:00 2001 From: jasonwynn10 Date: Sun, 2 Jun 2019 14:07:18 -0400 Subject: [PATCH 3/5] Verify parsability by name validity --- src/CortexPE/Commando/args/TargetArgument.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/CortexPE/Commando/args/TargetArgument.php b/src/CortexPE/Commando/args/TargetArgument.php index b133a42..f4ffee2 100644 --- a/src/CortexPE/Commando/args/TargetArgument.php +++ b/src/CortexPE/Commando/args/TargetArgument.php @@ -32,6 +32,7 @@ use pocketmine\command\CommandSender; use pocketmine\network\mcpe\protocol\AvailableCommandsPacket; +use pocketmine\Player; use pocketmine\Server; class TargetArgument extends BaseArgument { @@ -44,8 +45,7 @@ public function getTypeName() : string { } public function canParse(string $testString, CommandSender $sender) : bool { - // TODO: Implement canParse() method. - return true; + return Player::isValidUserName($testString); } public function parse(string $argument, CommandSender $sender) { From 5aa513a53887419a9541c6be5f18e377d0daf55f Mon Sep 17 00:00:00 2001 From: jasonwynn10 Date: Mon, 3 Jun 2019 00:32:00 -0400 Subject: [PATCH 4/5] micro-optimization --- src/CortexPE/Commando/args/TargetArgument.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/CortexPE/Commando/args/TargetArgument.php b/src/CortexPE/Commando/args/TargetArgument.php index f4ffee2..6fd9ea4 100644 --- a/src/CortexPE/Commando/args/TargetArgument.php +++ b/src/CortexPE/Commando/args/TargetArgument.php @@ -50,7 +50,8 @@ public function canParse(string $testString, CommandSender $sender) : bool { public function parse(string $argument, CommandSender $sender) { // TODO: handle @a @e @p @r @s @c @v - $player = Server::getInstance()->getPlayer($argument) ?? Server::getInstance()->getOfflinePlayer($argument); + $server = Server::getInstance(); + $player = $server->getPlayer($argument) ?? $server->getOfflinePlayer($argument); return $player->getName(); } } From 963304ee89c9e6171100090e0e11a4027869d72c Mon Sep 17 00:00:00 2001 From: marshall Date: Mon, 3 Jun 2019 19:38:02 -0700 Subject: [PATCH 5/5] this is what I meant lol --- src/CortexPE/Commando/args/TargetArgument.php | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/CortexPE/Commando/args/TargetArgument.php b/src/CortexPE/Commando/args/TargetArgument.php index 6fd9ea4..53e8f9a 100644 --- a/src/CortexPE/Commando/args/TargetArgument.php +++ b/src/CortexPE/Commando/args/TargetArgument.php @@ -36,6 +36,14 @@ use pocketmine\Server; class TargetArgument extends BaseArgument { + /** @var Server */ + private $server; + + public function __construct(string $name, bool $optional) { + parent::__construct($name, $optional); + $this->server = Server::getInstance(); + } + public function getNetworkType() : int { return AvailableCommandsPacket::ARG_TYPE_TARGET; } @@ -50,8 +58,7 @@ public function canParse(string $testString, CommandSender $sender) : bool { public function parse(string $argument, CommandSender $sender) { // TODO: handle @a @e @p @r @s @c @v - $server = Server::getInstance(); - $player = $server->getPlayer($argument) ?? $server->getOfflinePlayer($argument); + $player = $this->server->getPlayer($argument) ?? $this->server->getOfflinePlayer($argument); return $player->getName(); } }