From 51f5fc0aa2130723a4cf942fdc93b962f3a9d0b8 Mon Sep 17 00:00:00 2001 From: Matthew Date: Mon, 14 Aug 2017 16:51:02 +0200 Subject: [PATCH] Compatibility with 3.0.0-ALPHA7 Added support for 3.0.0-ALPHA7 dropped support for lower api versions. Added HP and coords --- plugin.yml | 4 +- resources/config.yml | 22 ++-- src/Matthww/PlayerInfo/PlayerInfo.php | 109 ++++++++---------- .../PlayerInfo/utils/SpoonDetector.php | 2 +- 4 files changed, 69 insertions(+), 68 deletions(-) diff --git a/plugin.yml b/plugin.yml index 75cfff4..5294b88 100644 --- a/plugin.yml +++ b/plugin.yml @@ -1,7 +1,7 @@ name: PlayerInfo -version: 1.2.3 +version: 1.3.0 author: Matthww -api: [3.0.0-ALPHA1, 3.0.0-ALPHA2, 3.0.0-ALPHA3, 3.0.0-ALPHA4, 3.0.0-ALPHA5, 3.0.0-ALPHA6] +api: [3.0.0-ALPHA7] description: Shows info about a certain player! main: Matthww\PlayerInfo\PlayerInfo diff --git a/resources/config.yml b/resources/config.yml index a16ad29..73d6645 100644 --- a/resources/config.yml +++ b/resources/config.yml @@ -1,28 +1,36 @@ --- # Configuration for PlayerInfo +# True = enabled +# False = disabled -# Show player's name +# Show players name Name: true -# Show player's IP +# Show players IP IP: true -# Show Device OS +# Show players Device OS # (Android, iOS etc.) OS: true -# Show Device Model +# Show players Device Model # (iPhone 7 etc.) Model: true -# Show player's UI settings +# Show players UI settings # (Classic UI or Pocket UI) UI: true -# Show player's GUI scale settings +# Show players GUI scale settings GUI: true -# Show player's controls +# Show players controls # (Touch, Mouse or Controller) Controls: true + +# Show players health +Health: true + +# Show players position +Position: true ... \ No newline at end of file diff --git a/src/Matthww/PlayerInfo/PlayerInfo.php b/src/Matthww/PlayerInfo/PlayerInfo.php index ed31ef3..d01eae2 100644 --- a/src/Matthww/PlayerInfo/PlayerInfo.php +++ b/src/Matthww/PlayerInfo/PlayerInfo.php @@ -5,11 +5,13 @@ namespace Matthww\PlayerInfo; use Matthww\PlayerInfo\utils\SpoonDetector; use pocketmine\command\Command; use pocketmine\command\CommandSender; +use pocketmine\command\ConsoleCommandSender; use pocketmine\event\Listener; use pocketmine\event\server\DataPacketReceiveEvent; use pocketmine\network\mcpe\protocol\LoginPacket; use pocketmine\Player; use pocketmine\plugin\PluginBase; +use pocketmine\utils\TextFormat as TF; class PlayerInfo extends PluginBase implements Listener { @@ -22,8 +24,8 @@ class PlayerInfo extends PluginBase implements Listener { public function onEnable() { $this->getServer()->getPluginManager()->registerEvents($this, $this); $this->saveDefaultConfig(); - $this->getLogger()->notice("is enabled"); SpoonDetector::printSpoon($this, 'spoon.txt'); + $this->getLogger()->notice("is enabled"); } public function onDisable() { @@ -37,77 +39,68 @@ class PlayerInfo extends PluginBase implements Listener { } } - public function onCommand(CommandSender $sender, Command $command, $label, array $args) { + public function onCommand(CommandSender $sender, Command $command, string $label, array $args): bool { if (strtolower($command->getName()) == "playerinfo" or strtolower($command->getName()) == "pinfo") { - $os = ["Unknown", "Android", "iOS", "macOS", "FireOS", "GearVR", "HoloLens", "Windows 10", "Windows", "Dedicated"]; + $os = ["Unknown", "Android", "iOS", "macOS", "FireOS", "GearVR", "HoloLens", "Windows 10", "Windows", "Dedicated", "Orbis", "NX"]; $UI = ["Classic UI", "Pocket UI"]; $Controls = ["Unknown", "Mouse", "Touch", "Controller"]; $GUI = [-2 => "Minimum", -1 => "Medium", 0 => "Maximum"]; if ($sender->hasPermission("playerinfo.use")) { - if (isset($args[0])) { - if ($this->getServer()->getPlayer($args[0])) { + if ($sender instanceof ConsoleCommandSender) { + if (isset($args[0])) { $target = $this->getServer()->getPlayer($args[0]); - $cdata = $this->PlayerData[$target->getName()]; - $sender->sendMessage("§a§l===§r§aPlayer Info§a§l==="); - if ($this->getConfig()->get("Name") == true) { - $sender->sendMessage("§bName: §c" . $target->getDisplayName()); - } - if ($this->getConfig()->get("IP") == true) { - $sender->sendMessage("§bIP: §c" . $target->getAddress()); - } - if ($this->getConfig()->get("OS") == true) { - $sender->sendMessage("§bOS: §c" . $os[$cdata["DeviceOS"]]); - } - if ($this->getConfig()->get("Model") == true) { - $sender->sendMessage("§bModel: §c" . $cdata["DeviceModel"]); - } - if ($this->getConfig()->get("UI") == true) { - $sender->sendMessage("§bUI: §c" . $UI[$cdata["UIProfile"]]); - } - if ($this->getConfig()->get("GUI") == true) { - $sender->sendMessage("§bGUI Scale: §c" . $GUI[$cdata["GuiScale"]]); - } - if ($this->getConfig()->get("Controls") == true) { - $sender->sendMessage("§bControls: §c" . $Controls[$cdata["CurrentInputMode"]]); - } - $sender->sendMessage("§a§l=============="); - return true; } else { - $sender->sendMessage("§c[Error] Player not found"); + $sender->sendMessage(TF::RED . "[Error] Please specify a player"); + return false; } } else { - if ($sender instanceof Player) { - $cdata = $this->PlayerData[$sender->getName()]; - $sender->sendMessage("§a§l===§r§aPlayer Info§a§l==="); - if ($this->getConfig()->get("Name") == true) { - $sender->sendMessage("§bName: §c" . $sender->getDisplayName()); - } - if ($this->getConfig()->get("IP") == true) { - $sender->sendMessage("§bIP: §c" . $sender->getAddress()); - } - if ($this->getConfig()->get("OS") == true) { - $sender->sendMessage("§bOS: §c" . $os[$cdata["DeviceOS"]]); - } - if ($this->getConfig()->get("Model") == true) { - $sender->sendMessage("§bModel: §c" . $cdata["DeviceModel"]); - } - if ($this->getConfig()->get("UI") == true) { - $sender->sendMessage("§bUI: §c" . $UI[$cdata["UIProfile"]]); - } - if ($this->getConfig()->get("GUI") == true) { - $sender->sendMessage("§bGUI Scale: §c" . $GUI[$cdata["GuiScale"]]); - } - if ($this->getConfig()->get("Controls") == true) { - $sender->sendMessage("§bControls: §c" . $Controls[$cdata["CurrentInputMode"]]); - } - $sender->sendMessage("§a§l=============="); - return true; + if ($sender instanceof Player and !isset($args[0])) { + $target = $sender->getPlayer(); } else { - $sender->sendMessage("§c[Error] Please specify a player"); + $target = $this->getServer()->getPlayer($args[0]); } } + } else { + $sender->sendMessage(TF::RED . "[Error] No permission"); + return false; + } + if ($target instanceof Player) { + $cdata = $this->PlayerData[$target->getName()]; + $sender->sendMessage(TF::GREEN . TF::BOLD . "===" . TF::GREEN . "Player Info" . TF::GREEN . TF::BOLD . "==="); + if ($this->getConfig()->get("Name") == true) { + $sender->sendMessage(TF::AQUA . "Name: " . TF::RED . $target->getDisplayName()); + } + if ($this->getConfig()->get("IP") == true) { + $sender->sendMessage(TF::AQUA . "IP: " . TF::RED . $target->getAddress()); + } + if ($this->getConfig()->get("OS") == true) { + $sender->sendMessage(TF::AQUA . "OS: " . TF::RED . $os[$cdata["DeviceOS"]]); + } + if ($this->getConfig()->get("Model") == true) { + $sender->sendMessage(TF::AQUA . "Model: " . TF::RED . $cdata["DeviceModel"]); + } + if ($this->getConfig()->get("UI") == true) { + $sender->sendMessage(TF::AQUA . "UI: " . TF::RED . $UI[$cdata["UIProfile"]]); + } + if ($this->getConfig()->get("GUI") == true) { + $sender->sendMessage(TF::AQUA . "GUI Scale: " . TF::RED . $GUI[$cdata["GuiScale"]]); + } + if ($this->getConfig()->get("Controls") == true) { + $sender->sendMessage(TF::AQUA . "Controls: " . TF::RED . $Controls[$cdata["CurrentInputMode"]]); + } + if ($this->getConfig()->get("Health") == true) { + $sender->sendMessage(TF::AQUA . "Health: " . TF::RED . $target->getHealth() . "HP"); + } + if ($this->getConfig()->get("Position") == true) { + $sender->sendMessage(TF::AQUA . "Position: " . TF::RED . "X: " . $target->getFloorX() . ", Y: " . $target->getFloorY() . ", Z: " . $target->getFloorZ()); + } + $sender->sendMessage(TF::GREEN . TF::BOLD . "================"); + return true; + } else { + $sender->sendMessage(TF::RED . "[Error] Player is not online"); + return false; } } return true; diff --git a/src/Matthww/PlayerInfo/utils/SpoonDetector.php b/src/Matthww/PlayerInfo/utils/SpoonDetector.php index 57fdef1..877fc4c 100644 --- a/src/Matthww/PlayerInfo/utils/SpoonDetector.php +++ b/src/Matthww/PlayerInfo/utils/SpoonDetector.php @@ -28,7 +28,7 @@ class SpoonDetector { In order to begin using this plugin you must understand that you will be offered no support. - Furthermore, the GitHub issue tracker for this project is targeted at vanilla PocketMine only. Any bugs you create which don't affect vanilla PocketMine, will be deleted. + Furthermore, the GitHub issue tracker for this project is targeted at vanilla PocketMine only. Any bugs you create which don't affect vanilla PocketMine will be deleted. Have you read and understood the above (type 'yes' after the question mark)?";