[LiteCore] PlayerInfo (самопис)

зачем я не юзаю лайт кор уже пол года)

А можно придраться к коду

До тебя уже придерались, так что валяй

Ниже будут комменты

<?php

namespace fignya;

use pocketmine\command\Command;
use pocketmine\plugin\PluginBase;
use pocketmine\command\CommandSender;
use pocketmine\event\Listener;
use pocketmine\Player;

class Main extends PluginBase implements Listener {
	
	public function onEnable(){
		$this->getServer()->getPluginManager()->registerEvents($this, $this);
		$this->clan = $this->getServer()->getPluginManager()->getPlugin('FactionsPro');
		$this->eco = $this->getServer()->getPluginManager()->getPlugin("EconomyAPI");
		$this->kill = $this->getServer()->getPluginManager()->getPlugin('KillChat');
		$this->pp = $this->getServer()->getPluginManager()->getPlugin('PurePerms');
	}
	
	public function onCommand(CommandSender $sender, Command $command, $label, array $args){
		$cmd = $command->getName();
		if($cmd == "pinfo"){
			if(isset($args[0])){
				$arg = $args[0];
				$pl = $this->getServer()->getPlayer($arg);
				$name = $pl->getName();
				
				if($this->pp){
					$group = $this->pp->getUserDataMgr()->getData($pl)['group'] ;
				}else{
					$group = "§l§cНужен плагин";
				}
				
				if($this->clan){
					$cl = $this->clan->getPlayerFaction($name);
				}else{
					$cl = "Нужен плагин";
				}
				
				if ($this->eco){
					$cash = $this->eco->myMoney($name);
				}else{
					$cash = "§l§cНет плагина";
				}
				
				if ($this->kill){
					$kill = $this->kill->getKills($name);
					$dth = $this->kill->getDeaths($name);
				}else{
					$kill = "§l§cНет плагина";
					$dth = $kill;
				}
					
				$ping = $pl->getPing();
				$device = $pl->getDeviceModel();
				$ip = $pl->getAddress();
				$x = $pl->getFloorX();
				$y = $pl->getFloorY();
				$z = $pl->getFloorZ();
				$gm = $pl->getGamemode();
				
				if($gm == "0"){
					$qgm = "§l§cВыживание";
				}
				
				if($gm == "1"){
					$qgm = "§l§aТворческий";
				}
				
				if($gm == "2"){
					$qgm = "§l§8Приключение";
				}
				
				if($gm == "3"){
					$qgm = "§l§fНаблюдатель";
				}
				
				$sender->sendMessage("§a§l»§f Информация об игроке {$name}\n§l§f==§eИгровые данные\n§l§f=§dБаланс: §a{$cash}\n§l§f=§dПривилегия: §a{$group}\n§l§f=§dКлан: §a{$cl}\n§l§f=§dУбийств: §c{$kill}§d | Смертей: §c{$dth}\n§l§f=§dПоследние координаты: §a{$x} {$y} {$z}\n§l§f=§dПинг: §a{$ping}\n§l§f=§dИгровой режим: {$qgm}\n§l§f==§bЛичные данные\n§l§f=§dIP адрес: §a{$ip}\n§l§f=§dМодель устройства: §a{$device}");
				return true;
			}else{
				$sender->sendMessage("§l§c»§f Используйте так, §a/pinfo [§eник, чей информацию вы хотите узнать§a]");
			}
		}
	}
}

Зачем?

Зачем? onCommand работает без листенера.

Зачем бессмысленная переменная которая используется один раз в коде

Тоже самое

Клише, получить ник игрока из онлайна, бес проверки онлайн ли он, и вывести в отдельную переменную его ник. Нет игрока в онлайне = краш

Эти пункты можно было просто скрыть если нет плагина

Это можно сократить

Клише. Вернуть истину в конце кода.

Я использую его всегда, даже если он не нужен, это привычка

Для подстраховки, да и для того, чтобы мне легче было

Соррян, не заметил, потом пофиксью (+ как я помню краша не будет)

Не понял

Для меня так легче…

Тебе шарящий чел замечания делает. Лучше бы исправлялся, а не отмазывался

1 лайк
    if(!$this->kill||!$this->clan||!$this->eco||!$this->pp)
{
    $this->getServer()->getLogger()->warning("Нет Плагинов для корректной работы!");
    return false;
}

Краша не будет, но вылезет исключение

вызов неопределенной функции getName() на null это краш

Будет исключение. По крайней мере на генезисе и лайткоре так

Хотя ядра это не касается. Но я точно помню, что будет исключение, а не краш

Не важно

необработанное исключение останавливает сервер

А нет я даун

Крч наставник, я понял как пофиксить ошибку и сделать так чтобы вместо краша вылезало “Игрока нет на сервере”, но это я потом пофиксью, щя мне кушать пора

Я здаюсь… :white_flag:

Я препробовал столько версий для кода, что жо*ой жуй

Фот финальный код, который закончился фигнёй
Main.php (999 ТБ)

<?php

namespace fignya;

use pocketmine\command\Command;
use pocketmine\plugin\PluginBase;
use pocketmine\command\CommandSender;
use pocketmine\event\Listener;
use pocketmine\Player;

class Main extends PluginBase implements Listener {
	
	public function onEnable(){
		$this->getServer()->getPluginManager()->registerEvents($this, $this);
		$this->clan = $this->getServer()->getPluginManager()->getPlugin('FactionsPro');
		$this->eco = $this->getServer()->getPluginManager()->getPlugin("EconomyAPI");
		$this->kill = $this->getServer()->getPluginManager()->getPlugin('KillChat');
		$this->pp = $this->getServer()->getPluginManager()->getPlugin('PurePerms');
	}
	
	public function onCommand(CommandSender $sender, Command $command, $label, array $args){
		$cmd = $command->getName();
		if($cmd == "pinfo"){
			if(isset($args[0])){
				$arg = $args[0];
				$pl = $this->getServer()->getPlayer($arg);
				if(!$pl instanceof Player){
				    $sender->sendMessage("Игрок не в сети");
				    return false;
				}
				$name = $pl->getName();
				
				if($this->pp){
					$group = $this->pp->getUserDataMgr()->getData($pl)['group'] ;
				}else{
					$group = "§l§cНужен плагин";
				}
				
				if($this->clan){
					$cl = $this->clan->getPlayerFaction($name);
				}else{
					$cl = "Нужен плагин";
				}
				
				if ($this->eco){
					$cash = $this->eco->myMoney($name);
				}else{
					$cash = "§l§cНет плагина";
				}
				
				if ($this->kill){
					$kill = $this->kill->getKills($name);
					$dth = $this->kill->getDeaths($name);
				}else{
					$kill = "§l§cНет плагина";
					$dth = $kill;
				}
					
				$ping = $pl->getPing();
				$device = $pl->getDeviceModel();
				$ip = $pl->getAddress();
				$x = $pl->getFloorX();
				$y = $pl->getFloorY();
				$z = $pl->getFloorZ();
				$gm = $pl->getGamemode();
				
				if($gm == "0"){
					$qgm = "§l§cВыживание";
				}
				
				if($gm == "1"){
					$qgm = "§l§aТворческий";
				}
				
				if($gm == "2"){
					$qgm = "§l§8Приключение";
				}
				
				if($gm == "3"){
					$qgm = "§l§fНаблюдатель";
				}
				
				$sender->sendMessage("§a§l»§f Информация об игроке {$name}\n§l§f==§eИгровые данные\n§l§f=§dБаланс: §a{$cash}\n§l§f=§dПривилегия: §a{$group}\n§l§f=§dКлан: §a{$cl}\n§l§f=§dУбийств: §c{$kill}§d | Смертей: §c{$dth}\n§l§f=§dПоследние координаты: §a{$x} {$y} {$z}\n§l§f=§dПинг: §a{$ping}\n§l§f=§dИгровой режим: {$qgm}\n§l§f==§bЛичные данные\n§l§f=§dIP адрес: §a{$ip}\n§l§f=§dМодель устройства: §a{$device}");
				return true;
			}else{
				$sender->sendMessage("§l§c»§f Используйте так, §a/pinfo [§eник, чей информацию вы хотите узнать§a]");
			}
		}
	}
}

$sender->sendMessage(“Сам такой :slight_smile: )”;

М-да… Помогаешь им, а они так с тобой. Понятно