зачем я не юзаю лайт кор уже пол года)
А можно придраться к коду
До тебя уже придерались, так что валяй
Ниже будут комменты
<?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 работает без листенера.
Зачем бессмысленная переменная которая используется один раз в коде
Тоже самое
Клише, получить ник игрока из онлайна, бес проверки онлайн ли он, и вывести в отдельную переменную его ник. Нет игрока в онлайне = краш
Эти пункты можно было просто скрыть если нет плагина
Это можно сократить
Клише. Вернуть истину в конце кода.
Я использую его всегда, даже если он не нужен, это привычка
Для подстраховки, да и для того, чтобы мне легче было
Соррян, не заметил, потом пофиксью (+ как я помню краша не будет)
Не понял
Для меня так легче…
Тебе шарящий чел замечания делает. Лучше бы исправлялся, а не отмазывался
if(!$this->kill||!$this->clan||!$this->eco||!$this->pp)
{
$this->getServer()->getLogger()->warning("Нет Плагинов для корректной работы!");
return false;
}
Краша не будет, но вылезет исключение
вызов неопределенной функции getName() на null это краш
Будет исключение. По крайней мере на генезисе и лайткоре так
Хотя ядра это не касается. Но я точно помню, что будет исключение, а не краш
Не важно
необработанное исключение останавливает сервер
А нет я даун
Крч наставник, я понял как пофиксить ошибку и сделать так чтобы вместо краша вылезало “Игрока нет на сервере”, но это я потом пофиксью, щя мне кушать пора
Я здаюсь…
Я препробовал столько версий для кода, что жо*ой жуй
Фот финальный код, который закончился фигнёй
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(“Сам такой )”;
М-да… Помогаешь им, а они так с тобой. Понятно