mirror of
https://github.com/Matthww/PlayerInfo.git
synced 2025-04-19 14:05:26 +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\
|
||||
IP: 127.0.0.1\
|
||||
Ping: 46\
|
||||
Ping: 46ms\
|
||||
OS: iOS\
|
||||
Model: iPhone\
|
||||
UI: Classic UI\
|
||||
|
@ -1,5 +1,5 @@
|
||||
name: PlayerInfo
|
||||
version: 2.0.3
|
||||
version: 2.1.0
|
||||
author: Matthww
|
||||
api: [3.0.0]
|
||||
description: Shows info about a certain player!
|
||||
|
@ -2,6 +2,9 @@
|
||||
|
||||
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\CommandSender;
|
||||
use pocketmine\command\ConsoleCommandSender;
|
||||
@ -34,13 +37,17 @@ class PlayerInfo extends PluginBase implements Listener {
|
||||
$this->saveDefaultConfig();
|
||||
}
|
||||
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) {
|
||||
$pk = $receiveEvent->getPacket();
|
||||
|
||||
if($pk instanceof LoginPacket) {
|
||||
$this->PlayerData[$pk->username] = $pk->clientData;
|
||||
}
|
||||
@ -55,7 +62,7 @@ class PlayerInfo extends PluginBase implements Listener {
|
||||
$Controls = ["Unknown", "Mouse", "Touch", "Controller"];
|
||||
$GUI = [-2 => "Minimum", -1 => "Medium", 0 => "Maximum"];
|
||||
|
||||
$this->getScheduler()->scheduleTask(new Tasks\SaveTask(
|
||||
$this->getScheduler()->scheduleTask(new SaveTask(
|
||||
$this,
|
||||
$player->getName(),
|
||||
$this->DeviceModel($cdata["DeviceModel"]),
|
||||
@ -73,9 +80,8 @@ class PlayerInfo extends PluginBase implements Listener {
|
||||
|
||||
if(isset($models[$model])) {
|
||||
return $models[$model];
|
||||
} else {
|
||||
return $model;
|
||||
}
|
||||
return $model;
|
||||
}
|
||||
|
||||
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"];
|
||||
$GUI = [-2 => "Minimum", -1 => "Medium", 0 => "Maximum"];
|
||||
|
||||
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 {
|
||||
if(!$sender->hasPermission("playerinfo.use")) {
|
||||
$sender->sendMessage(TF::RED . "[PlayerInfo] No permission");
|
||||
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) {
|
||||
$cdata = $this->PlayerData[$target->getName()];
|
||||
$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::GREEN . TF::BOLD . "================");
|
||||
return true;
|
||||
} else {
|
||||
$sender->sendMessage(TF::RED . "[PlayerInfo] Player is not online");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
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