mirror of
https://github.com/Matthww/PlayerInfo.git
synced 2025-06-11 03:25:14 +00:00
Update 2.1.0
- Automatic updates of the models - Small improvements in the code
This commit is contained in:
parent
cef87f99de
commit
9093219a29
@ -14,7 +14,7 @@ We also have a shorter command:\
|
|||||||
|
|
||||||
Name: Steve\
|
Name: Steve\
|
||||||
IP: 127.0.0.1\
|
IP: 127.0.0.1\
|
||||||
Ping: 46\
|
Ping: 46ms\
|
||||||
OS: iOS\
|
OS: iOS\
|
||||||
Model: iPhone\
|
Model: iPhone\
|
||||||
UI: Classic UI\
|
UI: Classic UI\
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
name: PlayerInfo
|
name: PlayerInfo
|
||||||
version: 2.0.3
|
version: 2.1.0
|
||||||
author: Matthww
|
author: Matthww
|
||||||
api: [3.0.0]
|
api: [3.0.0]
|
||||||
description: Shows info about a certain player!
|
description: Shows info about a certain player!
|
||||||
|
@ -2,6 +2,9 @@
|
|||||||
|
|
||||||
namespace Matthww\PlayerInfo;
|
namespace Matthww\PlayerInfo;
|
||||||
|
|
||||||
|
use Matthww\PlayerInfo\Tasks\FetchModelsTask;
|
||||||
|
use Matthww\PlayerInfo\Tasks\LoadTask;
|
||||||
|
use Matthww\PlayerInfo\Tasks\SaveTask;
|
||||||
use pocketmine\command\Command;
|
use pocketmine\command\Command;
|
||||||
use pocketmine\command\CommandSender;
|
use pocketmine\command\CommandSender;
|
||||||
use pocketmine\command\ConsoleCommandSender;
|
use pocketmine\command\ConsoleCommandSender;
|
||||||
@ -34,13 +37,17 @@ class PlayerInfo extends PluginBase implements Listener {
|
|||||||
$this->saveDefaultConfig();
|
$this->saveDefaultConfig();
|
||||||
}
|
}
|
||||||
if(!file_exists($this->getDataFolder() . "models.yml")) {
|
if(!file_exists($this->getDataFolder() . "models.yml")) {
|
||||||
$this->saveResource("models.yml", false);
|
$this->getLogger()->notice("downloading new models file...");
|
||||||
|
$this->getServer()->getAsyncPool()->submitTask(new FetchModelsTask($this->getDataFolder()));
|
||||||
|
//$this->saveResource("models.yml", false);
|
||||||
|
} else {
|
||||||
|
$this->getServer()->getAsyncPool()->submitTask(new FetchModelsTask($this->getDataFolder()));
|
||||||
|
$this->getLogger()->notice("updating models file...");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function onPacketReceived(DataPacketReceiveEvent $receiveEvent) {
|
public function onPacketReceived(DataPacketReceiveEvent $receiveEvent) {
|
||||||
$pk = $receiveEvent->getPacket();
|
$pk = $receiveEvent->getPacket();
|
||||||
|
|
||||||
if($pk instanceof LoginPacket) {
|
if($pk instanceof LoginPacket) {
|
||||||
$this->PlayerData[$pk->username] = $pk->clientData;
|
$this->PlayerData[$pk->username] = $pk->clientData;
|
||||||
}
|
}
|
||||||
@ -55,7 +62,7 @@ class PlayerInfo extends PluginBase implements Listener {
|
|||||||
$Controls = ["Unknown", "Mouse", "Touch", "Controller"];
|
$Controls = ["Unknown", "Mouse", "Touch", "Controller"];
|
||||||
$GUI = [-2 => "Minimum", -1 => "Medium", 0 => "Maximum"];
|
$GUI = [-2 => "Minimum", -1 => "Medium", 0 => "Maximum"];
|
||||||
|
|
||||||
$this->getScheduler()->scheduleTask(new Tasks\SaveTask(
|
$this->getScheduler()->scheduleTask(new SaveTask(
|
||||||
$this,
|
$this,
|
||||||
$player->getName(),
|
$player->getName(),
|
||||||
$this->DeviceModel($cdata["DeviceModel"]),
|
$this->DeviceModel($cdata["DeviceModel"]),
|
||||||
@ -73,9 +80,8 @@ class PlayerInfo extends PluginBase implements Listener {
|
|||||||
|
|
||||||
if(isset($models[$model])) {
|
if(isset($models[$model])) {
|
||||||
return $models[$model];
|
return $models[$model];
|
||||||
} else {
|
|
||||||
return $model;
|
|
||||||
}
|
}
|
||||||
|
return $model;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function onCommand(CommandSender $sender, Command $command, string $label, array $args): bool {
|
public function onCommand(CommandSender $sender, Command $command, string $label, array $args): bool {
|
||||||
@ -86,35 +92,25 @@ class PlayerInfo extends PluginBase implements Listener {
|
|||||||
$Controls = ["Unknown", "Mouse", "Touch", "Controller"];
|
$Controls = ["Unknown", "Mouse", "Touch", "Controller"];
|
||||||
$GUI = [-2 => "Minimum", -1 => "Medium", 0 => "Maximum"];
|
$GUI = [-2 => "Minimum", -1 => "Medium", 0 => "Maximum"];
|
||||||
|
|
||||||
if($sender->hasPermission("playerinfo.use")) {
|
if(!$sender->hasPermission("playerinfo.use")) {
|
||||||
if($sender instanceof ConsoleCommandSender) {
|
|
||||||
if(isset($args[0])) {
|
|
||||||
$target = $this->getServer()->getPlayer($args[0]);
|
|
||||||
} else {
|
|
||||||
$sender->sendMessage(TF::RED . "[PlayerInfo] Please specify a player");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if($sender instanceof Player and !isset($args[0])) {
|
|
||||||
$target = $sender->getPlayer();
|
|
||||||
} else {
|
|
||||||
if($target = $this->getServer()->getPlayer($args[0])) {
|
|
||||||
//Nothing
|
|
||||||
} else {
|
|
||||||
if($this->getConfig()->get("Save") == true) {
|
|
||||||
$this->getScheduler()->scheduleTask(new Tasks\LoadTask($this, $sender, $args[0]));
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
$sender->sendMessage(TF::RED . "[PlayerInfo] Player is not online");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$sender->sendMessage(TF::RED . "[PlayerInfo] No permission");
|
$sender->sendMessage(TF::RED . "[PlayerInfo] No permission");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
if(!isset($args[0])) {
|
||||||
|
$sender->sendMessage(TF::RED . "[PlayerInfo] Please specify a player");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
$target = $this->getServer()->getPlayer($args[0]);
|
||||||
|
|
||||||
|
if(!$target instanceof Player) {
|
||||||
|
if($this->getConfig()->get("Save") == true) {
|
||||||
|
$this->getScheduler()->scheduleTask(new LoadTask($this, $sender, $args[0]));
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
$sender->sendMessage(TF::RED . "[PlayerInfo] Player is not online");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
if($target instanceof Player) {
|
if($target instanceof Player) {
|
||||||
$cdata = $this->PlayerData[$target->getName()];
|
$cdata = $this->PlayerData[$target->getName()];
|
||||||
$sender->sendMessage(TF::GREEN . TF::BOLD . "===" . TF::GREEN . "PlayerInfo" . TF::GREEN . TF::BOLD . "===");
|
$sender->sendMessage(TF::GREEN . TF::BOLD . "===" . TF::GREEN . "PlayerInfo" . TF::GREEN . TF::BOLD . "===");
|
||||||
@ -149,10 +145,6 @@ class PlayerInfo extends PluginBase implements Listener {
|
|||||||
$sender->sendMessage(TF::AQUA . "Position: " . TF::RED . "X: " . $target->getFloorX() . ", Y: " . $target->getFloorY() . ", Z: " . $target->getFloorZ());
|
$sender->sendMessage(TF::AQUA . "Position: " . TF::RED . "X: " . $target->getFloorX() . ", Y: " . $target->getFloorY() . ", Z: " . $target->getFloorZ());
|
||||||
}
|
}
|
||||||
$sender->sendMessage(TF::GREEN . TF::BOLD . "================");
|
$sender->sendMessage(TF::GREEN . TF::BOLD . "================");
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
$sender->sendMessage(TF::RED . "[PlayerInfo] Player is not online");
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
33
src/Matthww/PlayerInfo/Tasks/FetchModelsTask.php
Normal file
33
src/Matthww/PlayerInfo/Tasks/FetchModelsTask.php
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
namespace Matthww\PlayerInfo\Tasks;
|
||||||
|
|
||||||
|
use pocketmine\scheduler\AsyncTask;
|
||||||
|
use pocketmine\Server;
|
||||||
|
use pocketmine\utils\Internet;
|
||||||
|
|
||||||
|
class FetchModelsTask extends AsyncTask {
|
||||||
|
|
||||||
|
private $path;
|
||||||
|
|
||||||
|
public function __construct(string $path) {
|
||||||
|
$this->path = $path;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function onRun() {
|
||||||
|
$result = Internet::getURL("https://playerinfo.hillcraft.net/models.yml");
|
||||||
|
if(!is_string($result)) {
|
||||||
|
$this->setResult(false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
file_put_contents($this->path . "models.yml", $result);
|
||||||
|
$this->setResult(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function onCompletion(Server $server) {
|
||||||
|
if($this->getResult() === true) {
|
||||||
|
$server->getLogger()->notice("[PlayerInfo] Updated models to the latest version!");
|
||||||
|
} else { // upon failure
|
||||||
|
$server->getLogger()->notice("[PlayerInfo] Failed to update models to the latest version!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user