SHARE
TWEET

Untitled

a guest Oct 19th, 2019 78 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2.  
  3. namespace CApi;
  4.  
  5. use pocketmine\block\ItemFrame;
  6. use pocketmine\event\level\ChunkLoadEvent;
  7. use pocketmine\level\Position;
  8. use pocketmine\plugin\PluginBase;
  9. use pocketmine\event\Listener;
  10. use pocketmine\command\Command;
  11. use pocketmine\command\CommandSender;
  12. use pocketmine\command\ConsoleCommandSender;
  13. use pocketmine\event\player\PlayerInteractEvent;
  14. use pocketmine\event\player\PlayerQuitEvent;
  15. use pocketmine\event\player\PlayerDeathEvent;
  16. use pocketmine\event\player\PlayerItemConsumeEvent;
  17. use pocketmine\event\block\ItemFrameDropItemEvent;
  18. use pocketmine\event\player\PlayerRespawnEvent;
  19. use pocketmine\event\entity\EntityDamageEvent;
  20. use pocketmine\event\entity\EntityDamageByEntityEvent;
  21. use pocketmine\event\entity\EntityExplodeEvent;
  22. use pocketmine\event\player\PlayerJoinEvent;
  23. use pocketmine\item\enchantment\Enchantment;
  24. use pocketmine\Player;
  25. use pocketmine\Server;
  26. use pocketmine\math\Vector3;
  27. use pocketmine\item\Item;
  28. use pocketmine\utils\Config;
  29. use pocketmine\utils\TextFormat as F;
  30.  
  31. /**
  32.  * Class Main
  33.  * @package CApi
  34.  */
  35. class Main extends PluginBase implements Listener
  36. {
  37.     public $god;
  38.     public $back;
  39.     public $drops;
  40.     public $vanish;
  41.     public $hack;
  42.     public $perms;
  43.     public $Economy;
  44.     /** @var Config $config */
  45.     public $config;
  46.     /** @var Config $banConfig */
  47.     public $banConfig;
  48.  
  49.     public static $instance;
  50.  
  51.     public function onEnable()
  52.     {
  53.         $this->Economy = $this->getServer()->getPluginManager()->getPlugin("Economy");
  54.         $this->perms = $this->getServer()->getPluginManager()->getPlugin("Perms");
  55.         $this->getServer()->dispatchCommand(new ConsoleCommandSender(), "timings on");
  56.  
  57.         $this->getServer()->getScheduler()->scheduleRepeatingTask(new MainTask(), 20 * 60);
  58.         $this->getServer()->getPluginManager()->registerEvents($this, $this);
  59.  
  60.         self::$instance = $this;
  61.         if (!is_dir($this->getDataFolder())) @mkdir($this->getDataFolder());
  62.         $this->config = new Config($this->getDataFolder() . "homes.json", Config::JSON);
  63.  
  64.         $this->banConfig = new Config($this->getServer()->getDataPath() . "banned.yml", Config::YAML);
  65.     }
  66.  
  67.     public function onDisable()
  68.     {
  69.         $this->getServer()->dispatchCommand(new ConsoleCommandSender(), "save-all");
  70.         $this->Economy->config->save();
  71.         $this->config->save();
  72.     }
  73.  
  74.     public function perm(Player $player)
  75.     {
  76.         $this->permsg($player);
  77.     }
  78.  
  79.     public function permsg(Player $player)
  80.     {
  81.         $player->sendMessage("§fУ вас недостаточно прав!");
  82.         $player->sendMessage("§l§cקr§f Приобрести §d§lпривилегии§r §fможно на сайте: §b§lshop.nexland.ru");
  83.     }
  84.  
  85.     public function onDrop(ItemFrameDropItemEvent $event)
  86.     {
  87.         $event->setCancelled();
  88.     }
  89.  
  90.     public static function getInstance(): Main
  91.     {
  92.         return self::$instance;
  93.     }
  94.  
  95.     public function callChunkLoadEvent(ChunkLoadEvent $event)
  96.     {
  97.         for ($x = 0; $x < 16; $x++)
  98.             for ($z = 0; $z < 16; $z++)
  99.                 $event->getChunk()->setBiomeId($x, $z, (8));
  100.     }
  101.  
  102.     public function onInteract(PlayerInteractEvent $event)
  103.     {
  104.         if ($event->getBlock() instanceof ItemFrame) {
  105.             $event->setCancelled(true);
  106.         }
  107.     }
  108.  
  109.     public function onExplode(EntityExplodeEvent $event)
  110.     {
  111.         $event->setCancelled();
  112.     }
  113.  
  114.  
  115.     public function onQuit(PlayerQuitEvent $event)
  116.     {
  117.         $event->setQuitMessage(null);
  118.         $n = strtolower($event->getPlayer()->getName());
  119.         unset($this->vanish[$n]);
  120.         unset($this->god[$n]);
  121.     }
  122.  
  123.     public function onCommand(CommandSender $player, Command $cmd, $label, array $args)
  124.     {
  125.         $level = $this->getServer()->getDefaultLevel();
  126.         $x = $this->getServer()->getDefaultLevel()->getSafeSpawn()->getX();
  127.         $y = $this->getServer()->getDefaultLevel()->getSafeSpawn()->getY();
  128.         $z = $this->getServer()->getDefaultLevel()->getSafeSpawn()->getZ();
  129.  
  130.         if (!$player instanceof Player) return true;
  131.         switch ($cmd->getName()) {
  132.             case "hack":
  133.                 if (isset($this->hack[$player->getName()]))
  134.                     return $player->sendMessage("§l§cВзлом §c× §r§fВы уже пробовали взломать админку, попробуйте позже.");
  135.  
  136.                 $this->hack[$player->getName()] = true;
  137.                 $prize = mt_rand(0, 999);
  138.                 $player->sendMessage("§l§cВзлом §c× §r§fВзлом админки...подождите чутка!");
  139.                 $player->sendMessage("§l§cВзлом §c× §r§fУвы! В этот раз вам не удалось взломать админку!");
  140.                 $player->sendMessage("§l§cВзлом §c× §r§fВыпало число:§b " . $prize . ", §fдля победы необходимо§a 1000.");
  141.                 break;
  142.             case "id":
  143.                     $id = $player->getItemInHand()->getId();
  144.                     $player->sendMessage("§l§aПредметы §a× §r§fАйди предмета:§e $id");
  145.                     break;
  146.             case "sleep":
  147.                 $player->sleepOn(new Vector3($player->getX(), $player->getY() + 1, $player->getZ()));
  148.                 $player->sendMessage("§l§aОтдых §e× §r§fВы успешно легли на грязный пол.");
  149.                 break;
  150.  
  151.             case "maxhp";
  152.                 if ($player->hasPermission("maxhp")) {
  153.                     $player->setMaxHealth(40);
  154.                     $player->setHealth(40);
  155.                     $player->sendMessage("§l§4Здоровье §4× §r§fВам успешно была добавлена вторая строка жизней!");
  156.                     return true;
  157.                 } else {
  158.                     $player->sendMessage("§l§4Здоровье §4× §r§fУ вас нет прав для выполнения этой команды. §eПриобретите §eУльтру §fи выше что бы использовать её!");
  159.                 }
  160.                 break;
  161.  
  162.             case "rename";
  163.                 if ($player->hasPermission("worldset")) {
  164.                     $item = $player->getInventory()->getItemInHand();
  165.                     if ($item->getId() != 0) {
  166.                         if ($args[0] == "") {
  167.                             $player->sendMessage("§l§bНазвание §b× §r§fУкажите какое название вы хотите установить!");
  168.                             return true;
  169.                         } else {
  170.                             $args[0] = preg_replace('/[^a-zA-Zа-яА-Я0-9_ - ) ( : ; < > ! @ № # $ & % * ? , . ♥ ❤ ё Ё =]/ui', '', $args[0]);
  171.                             $args[0] = str_replace("_", " ", $args[0]);
  172.  
  173.                             if (strlen($args[0]) < 2) {
  174.                                 $player->sendMessage("§l§bНазвание §b× §r§fУкажите какое название вы хотите установить!");
  175.                                 return false;
  176.                             }
  177.                             $item->setCustomName($args[0]);
  178.                             $player->getInventory()->setItemInHand($item);
  179.  
  180.                             $player->sendMessage("§l§bНазвание §b× §r§fВы успешно изменили название предмета на §e" . $args[0] . "§f, иногда требуется перезайти что бы предмет получил своё название!");
  181.                             return true;
  182.                         }
  183.                     } else {
  184.                         $player->sendMessage("§l§bНазвание §b× §r§fВозьмите предмет в руку!");
  185.                         return true;
  186.                     }
  187.                 } else {
  188.                     $player->sendMessage("§l§bНазвание §b× §r§fИспользовать данную команду можно от §eУльтра§f и выше!");
  189.                 }
  190.                 break;
  191.             case "wild":
  192.                 if (!$player->hasPermission("capi.cmd.rtp")) {
  193.                     $this->permsg($player);
  194.                     break;
  195.                 }
  196.                 $vector = new Vector3(rand(-1000, 1000), 60, rand(-1000, 1000));
  197.  
  198.                 while ($player->getLevel()->getBlock($vector)->getId() != 0) {
  199.                     $vector = $vector->add(0, 1, 0);
  200.                 }
  201.  
  202.                 $player->getLevel()->loadChunk($vector->getX(), $vector->getZ());
  203.                 $player->teleport($vector);
  204.                 return $player->sendMessage("§8(§bТелепорт§8)§e × §fВы телепортировались в рандомное место §d({$vector->getX()}, {$vector->getY()}, {$vector->getZ()})");
  205.                 break;
  206.  
  207.             case "gm":
  208.             case "gamemode":
  209.                 if ($player->hasPermission("capi.cmd.gm")) {
  210.                     switch ($args[0]) {
  211.                         case "1":
  212.                             $player->setGamemode(1);
  213.                             $player->sendMessage("§l§bРежимы §b× §r§fВы включили режим §eкреатива");
  214.                             break;
  215.                         case "2":
  216.                             $player->setGamemode(2);
  217.                             $player->sendMessage("§l§bРежимы §b× §r§fВы включили режим §eприключения");
  218.                             break;
  219.                         case "3":
  220.                             $player->setGamemode(3);
  221.                             $player->sendMessage("§l§bРежимы §b× §r§fВы включили режим §eнаблюдателя");
  222.                             break;
  223.                         case "0":
  224.                             $player->setGamemode(0);
  225.                             $player->getInventory()->clearAll();
  226.                             $player->sendMessage("§l§bРежимы §b× §r§fВы включили режим §eвыживания");
  227.                             break;
  228.                         default:
  229.                             $player->sendMessage("§7× §fДля смены §e§lигрового режима §r§fиспользуй: \n"
  230.                                 . "§b/gm 1 §8 - §fвключить режим §eкреатива\n"
  231.                                 . "§b/gm 2 §8 - §fвключить режим §eприключения\n"
  232.                                 . "§b/gm 3 §8 - §fвключить режим §eнаблюдателя\n"
  233.                                 . "§b/gm 0 §8 - §fвключить режим §eвыживания");
  234.                     }
  235.                 } else {
  236.                     $this->permsg($player);
  237.                 }
  238.                 break;
  239.             case "sethome":
  240.                 if (!isset($args[0])) return $player->sendMessage("§l§bТелепорт §b× §r§fИспользуйте:§b /sethome <название>");
  241.                 if (strlen($args[0]) < 5) return $player->sendMessage("§l§bТелепорт §b× §r§fПридумайте название не больше§c 5 §fсимволов!");
  242.  
  243.  
  244.                 $name = strtolower($player->getName());
  245.                 $home = strtolower($args[0]);
  246.                 $config = $this->config;
  247.  
  248.                 if ($config->exists($name)) {
  249.                     $get = $config->get($name);
  250.                     $get = explode(";", $get);
  251.                     $count = count($get);
  252.                     $homes = "";
  253.                     foreach ($get as $gets) {
  254.                         $eventxpget = explode(",", $gets);
  255.                         if ($eventxpget[0] == $home) {
  256.                             return $player->sendMessage("§l§bТелепорт §b× §r§fУ вас уже есть точка дома с названием§e $home!");
  257.                         }
  258.                         $homes .= "§e\n- " . $eventxpget[0];
  259.                     }
  260.                     if ($count > 4)
  261.                         return $player->sendMessage("§l§bТелепорт §b× §r§fВы не можете установить больше чем §e$count §fточек дома, удалите ненужную точку! \n §l× §fВаши точки дома:§e" . $homes);
  262.                     $config->set($name, implode(";", $get) . ";$home,{$player->getFloorX()},{$player->getFloorY()},{$player->getFloorZ()}");
  263.                     //$config->save();
  264.                 } else {
  265.                     $config->set($name, $home . ",{$player->getFloorX()},{$player->getFloorY()},{$player->getFloorZ()}");
  266.                     //$config->save();
  267.                 }
  268.  
  269.                 $player->sendTitle("§l§fДОМ", "§e§lУСТАНОВЛЕН");
  270.                 $player->sendMessage("§l§bТелепорт §b× §r§fТочка дома §b$home §fустановлена");
  271.  
  272.                 break;
  273.  
  274.             case "delhome":
  275.                 if (!isset($args[0])) return $player->sendMessage("§l§bТелепорт §b× §r§fИспользуйте:§b /delhome <название>");
  276.  
  277.                 $name = strtolower($player->getName());
  278.                 $home = strtolower($args[0]);
  279.                 $config = $this->config;
  280.  
  281.                 if ($config->exists($name)) {
  282.                     $get = $config->get($name);
  283.                     $get = explode(";", $get);
  284.                     $homes = "";
  285.                     $i = 0;
  286.                     foreach ($get as $gets) {
  287.                         $eventxpget = explode(",", $gets);
  288.                         $i++;
  289.                         $homes .= "§e\n- " . $eventxpget[0];
  290.                         if ($eventxpget[0] == $home) {
  291.                             unset($get[$i - 1]);
  292.                             $config->set($name, implode(";", $get));
  293.                             //$config->save();
  294.                             $player->sendTitle("§l§fДОМ", "§l§eУДАЛЕН");
  295.                             $player->sendMessage("§l§bТелепорт × §r§fТочка дома§b $home §fудалена!");
  296.                             if ($config->get($name) == "") {
  297.                                 $config->remove($name); /*$config->save();*/
  298.                             }
  299.                             return true;
  300.                         }
  301.                     }
  302.                     $player->sendMessage("§l§bТелепорт §b× §r§fУ вас нет точки дома с названием§e $home!");
  303.                     $player->sendMessage("§l§bТелепорт §b× §r§fВаши точки дома:§e" . $homes);
  304.                     return true;
  305.                 } else {
  306.                     $player->sendMessage("§l§bТелепорт §b× §r§fУ вас нет точек дома! Установите их при помощи§b /sethome <название>");
  307.                 }
  308.                 break;
  309.  
  310.             case "home":
  311.                 $name = strtolower($player->getName());
  312.                 if (isset($args[0])) $home = strtolower($args[0]);
  313.                 $config = $this->config;
  314.  
  315.                 if (!$config->exists($name))
  316.                     return $player->sendMessage("§l§bТелепорт §b× §r§fВы ещё не устанавливали точку дома!\n§8(§bТелепорт§8)§e × §fИспользуйте:§b /sethome <название>");
  317.  
  318.                 $get = $config->get($name);
  319.                 $get = explode(";", $get);
  320.                 $count = count($get);
  321.                 $homes = "";
  322.  
  323.                 if (!isset($args[0])) {
  324.                     foreach ($get as $gets) {
  325.                         $eventxpget = explode(",", $gets);
  326.                         $homes .= "§b\n- " . $eventxpget[0];
  327.                     }
  328.                     $player->sendMessage("§l§bТелепорт §b× §r§fИспользуйте:§e /home <название> \n §e§l × §fВаши точки дома: §e" . $homes);
  329.                 } else {
  330.                     foreach ($get as $gets) {
  331.                         $eventxpget = explode(",", $gets);
  332.                         if ($eventxpget[0] == $home) {
  333.                             $player->teleport(new Vector3($eventxpget[1], $eventxpget[2], $eventxpget[3]));
  334.                             return $player->sendMessage("§l§bТелепорт §b× §r§fТелепортация в точку дома §b$home");
  335.                         }
  336.                     }
  337.                     return $player->sendMessage("§l§bТелепорт §b× §r§fУ вас нет точки дома с названием §b$home!");
  338.                 }
  339.                 break;
  340.  
  341.             case "rules":
  342.             case "r":
  343.                 if (count($args) == 0) {
  344.                     $player->sendMessage("§l§c-----------------§c ПРАВИЛА ДЛЯ ВСЕХ §c-----------------");
  345.                     $player->sendMessage("§cЗАПРЕЩЕНО: ");
  346.                     $player->sendMessage("§c1.1. §fВводить в заблуждение игроков/донатеров.");
  347.                     $player->sendMessage("§c1.2.§f Любые махинации с игровой валютой.");
  348.                     $player->sendMessage("§c1.3. §fНаглеж, угрозы, неадекватность.");
  349.                     $player->sendMessage("§c1.4. §fПопытка получить донат путем каких-либо махинаций.");
  350.                     $player->sendMessage("§c1.5. §fАморальное поведение.");
  351.                     $player->sendMessage("§c1.6. §fСпам/флуд.");
  352.                     $player->sendMessage("§c1.7. §fОскорбления.");
  353.                     $player->sendMessage("§c1.8. §fИздевательство над другими.");
  354.                     $player->sendMessage("§c1.9. §fЗапрещено выдавать себя за донатера/администратора.");
  355.                     $player->sendMessage("§c2.0. §fВведение в заблуждение администрацию сервера.");
  356.                     $player->sendMessage("§c2.1. §fРегистрация под никами, содержащие мат, а также маскирующимися под никами донатеров.");
  357.                     $player->sendMessage("§c2.2. §fРегистрация под никами, состоящими из рандомного набора букв и чисел.");
  358.                     $player->sendMessage("§c2.3. §fИспользование читов, багов, а также посторонних программ в свою пользу.");
  359.                     $player->sendMessage("§c2.4. §fВызывать на сервере специально лаги/попытка обрушить сервер/наносить серьёзный ущерб.");
  360.                     $player->sendMessage("§c2.5. §fПопытка/взлом администрации/донатера/игрока.");
  361.                     $player->sendMessage("§c2.6. §fПродажа аккаунта кому-либо.");
  362.                     $player->sendMessage("§c2.7. §fПиар чего-либо.");
  363.                     /*title*/
  364.                     /* Нижняя часть*/
  365.                     $player->sendMessage("§c§l-----------------------------------------------");
  366.                 }
  367.                 break;
  368.  
  369.             case "near":
  370.                     if (!$player->getPlayer()->hasPermission("capi.cmd.near")) {
  371.                         $this->permsg($player);
  372.                         break;
  373.                     }
  374.  
  375.                     $msg = "§l§eРасстояние §e× §fБлижайшие игроки (§lc§r§7)):";
  376.                     $count = 0;
  377.                     foreach ($this->getServer()->getOnlinePlayers() as $p2) {
  378.                         if ($player->distance($p2) <= 20 && $player->getName() != $p2->getName()) {
  379.                             $msg .= PHP_EOL . "§8§l• §r§7" . $p2->getName() . " §8§l> §r§fPасстояние: §7§l" . floor($player->distance($p2)) . " §r§fблоков";
  380.                             $count++;
  381.                         }
  382.                     }
  383.                     if ($count > 0) $player->sendMessage(str_replace("(c)", $count, $msg));
  384.                     else $player->sendMessage("§l§eРасстояние §e× §r§fРядом игроков §cне обнаружено.");
  385.                 break;
  386.             case "jump":
  387.                     if (!$player->hasPermission("capi.cmd.jump")) {
  388.                         $this->permsg($player);
  389.                         break;
  390.                     }
  391.                     $player->setMotion($player->getDirectionVector()->multiply(2));
  392.                     $player->sendMessage("§l§eПрыжок §e× §к§fВы §eподпрыгнули §fтуда, куда смотрели");
  393.                 break;
  394.  
  395.             case "fly":
  396.                 if ($player instanceof Player) {
  397.                     if (!$player->hasPermission("capi.cmd.fly")) {
  398.                         $this->permsg($player);
  399.                         break;
  400.                     }
  401.  
  402.                     if ($player->getGamemode() != 0)
  403.                         $player->sendMessage("§l§bРежимы §b× §r§fИспользовать можно только в режиме §cвыживания.");
  404.  
  405.                     if ($player->getAllowFlight() == false) {
  406.                         $player->setAllowFlight(true);
  407.                         $player->sendMessage("§l§bРежимы §b× §r§fВы §aвключили §fрежим полёта.");
  408.                     } else {
  409.                         $player->setAllowFlight(false);
  410.                         $player->sendMessage("§l§bРежимы §b× §r§fВы §cвыключили §fрежим полёта.");
  411.                     }
  412.                 }
  413.                 break;
  414.             case "food":
  415.                 if ($player->hasPermission("capi.cmd.food")) {
  416.                     $player->setHealth(20);
  417.                     $player->sendMessage("§l§cГолос §c× §r§fВы утолили свой §eголод");
  418.                 } else {
  419.                     $this->permsg($player);
  420.                 }
  421.                 break;
  422.  
  423.             case "heal":
  424.                 if ($player->hasPermission("capi.cmd.heal")) {
  425.                     $player->setHealth($player->getMaxHealth());
  426.                     $player->sendMessage("§l§cХалява §c× §r§fВы пополнили свои §cжизни");
  427.                 } else {
  428.                     $this->permsg($player);
  429.                 }
  430.                 break;
  431.  
  432.             case "ench":
  433.                 if ($player->hasPermission("cmd.ench")) {
  434.                     $i = $player->getInventory()->getItemInHand();
  435.                     $ids = [0, 1, 2, 3, 4, 5, 6, 7, 34, 16, 17, 18, 19, 21, 34, 32, 33, 35, 48, 49, 50, 51];
  436.                     $i->addEnchantment((Enchantment::getEnchantment($ids[array_rand($ids)]))->setLevel(mt_rand(1, 20)));
  437.                     $player->getInventory()->setItemInHand($i);
  438.                     $player->sendMessage("§l§6Зачарование §6× §r§fВы зачаровали предмет в руке");
  439.                 } else {
  440.                     $this->permsg($player);
  441.                 }
  442.                 break;
  443.  
  444.             case "buyrepair":
  445.                 if ($this->Economy->myMoney($player->getName()) >= 500) {
  446.                     $i = $player->getInventory()->getItemInHand();
  447.                     $i->setDamage(0);
  448.                     $player->getInventory()->setItemInHand($i);
  449.                     $player->sendMessage("§l§6Починка §6× §r§fВы починили предмет в руке");
  450.                     $this->Economy->remMoney($player->getName(), 500);
  451.                 } else {
  452.                     $player->sendMessage("§l§6Починка §6× §r§fВам не хватает денег, проверить бананс: §b/money");
  453.                 }
  454.                 break;
  455.  
  456.             case "1000lvl":
  457.                 if ($this->Economy->myMoney($player->getName()) >= 5000) {
  458.                     $i = $player->getInventory()->getItemInHand();
  459.                     $ids = [0, 1, 2, 3, 4, 5, 6, 7, 34, 16, 17, 18, 19, 21, 34, 32, 33, 35, 48, 49, 50, 51];
  460.                     foreach ($ids as $id) {
  461.                         $i->addEnchantment((Enchantment::getEnchantment($id)->setLevel(1000)));
  462.                     }
  463.                     $player->getInventory()->setItemInHand($i);
  464.                     $player->sendMessage("§l§aЗачарование §a× §r§fВы зачаровали предмет в руке на уровеь §eбога");
  465.                     $this->Economy->remMoney($player->getName(), 5000);
  466.                 } else {
  467.                     $player->sendMessage("§l§aЗачарование §a× §r§fВам не хватает денег §7(5000$)§f, проверить бананс: §b/money");
  468.                 }
  469.                 break;
  470.  
  471.             case "buyench":
  472.                 if ($this->Economy->myMoney($player->getName()) >= 1000) {
  473.                     $i = $player->getInventory()->getItemInHand();
  474.                     $ids = [0, 1, 2, 3, 4, 5, 6, 7, 34, 16, 17, 18, 19, 21, 34, 32, 33, 35, 48, 49, 50, 51];
  475.                     $i->addEnchantment((Enchantment::getEnchantment($ids[array_rand($ids)]))->setLevel(mt_rand(1, 20)));
  476.                     $player->getInventory()->setItemInHand($i);
  477.                     $player->sendMessage("§l§6Зачарование §6× §r§fВы зачаровали предмет в руке");
  478.                     $this->Economy->remMoney($player->getName(), 1000);
  479.                 } else {
  480.                     $player->sendMessage("§l§6Зачарование §6× §r§fВам не хватает денег, проверить бананс: §6/money");
  481.                 }
  482.                 break;
  483.  
  484.             case "repair":
  485.                 if ($player->hasPermission("cmd.repair")) {
  486.                     $i = $player->getInventory()->getItemInHand();
  487.                     $i->setDamage(0);
  488.                     $player->getInventory()->setItemInHand($i);
  489.                     $player->sendMessage("§l§6Починка §6× §r§fВы починили предмет в руке");
  490.                 } else {
  491.                     $this->permsg($player);
  492.                 }
  493.                 break;
  494.  
  495.             case "tpa":
  496.             case "call":
  497.                 if (!isset($args[0])) return $player->sendMessage("§l§bТелепорт §b× §r§fИспользуйте:§e /tpa <ник_игрока>");
  498.                 $tpplayer = $this->getServer()->getPlayer($args[0]);
  499.                 if ($tpplayer === null)
  500.                     return $player->sendMessage("§l§bТелепорт §b× §r§fИгрока с ником §b$args[0] §fнет онлайн.");
  501.  
  502.                 $tpplayer->sendMessage("§l§bТелепорт §b× §r§fИгрок §a" . $player->getName() . " §fотправил вам запрос на телепортацию!");
  503.                 $tpplayer->sendMessage("§l§bТелепорт §b× §r§fВведите §e/tpc §8- §fпринять, §e/tpd §8- §fотменить запрос.");
  504.                 $player->sendMessage("§l§bТелепорт §b× §r§fВы отправили игроку §b" . $tpplayer->getName() . " §fзапрос на телепортацию");
  505.  
  506.                 $this->request[strtolower($tpplayer->getName())] = strtolower($player->getName());
  507.                 break;
  508.  
  509.             case "tpc":
  510.             case "tpaccept":
  511.                 if (!isset($this->request[strtolower($player->getName())])) return $player->sendMessage("§cВам не поступали запросы на телепортацию");
  512.                 $names = "";
  513.                     if (($tpplayer = $this->getServer()->getPlayer($this->request[strtolower($player->getName())]))) {
  514.                         $tpplayer->teleport(new Vector3($player->getFloorX() + 0.5, $player->getFloorY() + 1, $player->getFloorZ() + 0.5));
  515.                         $names .= $player->getName() . "§7,§6 ";
  516.                         $tpplayer->sendMessage("§l§bТелепорт §b× §r§fВаш запрос на телепортацию был принят игроком, §b" . $player->getName());
  517.                         unset($this->request[strtolower($player->getName())]);
  518.                     }
  519.                 $player->sendMessage("§l§bТелепорт §b× §r§fИгроки, которые§b отправили §fзапрос на телепортацию, перемещены к вам.");
  520.                 $player->sendMessage("§l§bТелепорт §b× §r§fОтправляли запрос: §b" . $this->request[strtolower($player->getName())]);
  521.                 break;
  522.  
  523.             case "tpd":
  524.                 if (!isset($this->request[strtolower($player->getName())])) return $player->sendMessage("§cВам не поступали запросы на телепортацию");
  525.                 $player->sendMessage("§l§bТелепорт §b× §r§fВы §cотменили§f запросы от игроков: " . $this->request[strtolower($player->getName())]);
  526.                 unset($this->request[strtolower($player->getName())]);
  527.                 break;
  528.  
  529.  
  530.             case "sw":
  531.                 $ip = "nexland.ru";
  532.                 $port = "19130";
  533.                 $player->transfer($ip, $port);
  534.                 break;
  535.  
  536.             case "hub":
  537.                 $ip = "nexland.ru";
  538.                 $port = "19132";
  539.                 $player->transfer($ip, $port);
  540.                 break;
  541.  
  542.  
  543.             case "size":
  544.                 if ($player->hasPermission("cmd.size")) {
  545.                     switch ($args[0]) {
  546.                         case "min":
  547.                             $player->setDataProperty(Player::DATA_SCALE, Player::DATA_TYPE_FLOAT, 0.7);
  548.                             $player->sendMessage("§l§cРост §c× §r§fВы стали §eмаленьким");
  549.                             break;
  550.                         case "nor":
  551.                             $player->setDataProperty(Player::DATA_SCALE, Player::DATA_TYPE_FLOAT, 1);
  552.                             $player->sendMessage("§l§cРост §c× §r§fВы стали §eнормальным");
  553.                             break;
  554.                         case "big":
  555.                             $player->setDataProperty(Player::DATA_SCALE, Player::DATA_TYPE_FLOAT, 1.5);
  556.                             $player->sendMessage("§l§cРост §c× §r§fВы стали §eбольшим");
  557.                             break;
  558.                         default:
  559.                             $player->sendMessage("§7× §fДля смены §e§lразмера §r§fиспользуй: \n"
  560.                                 . "§b/size min §8- §fстать §eмаленьким\n"
  561.                                 . "§b/size nor §8- §fстать §eобычным\n"
  562.                                 . "§b/size big §8- §fстать §eбольшим");
  563.                             break;
  564.                     }
  565.                 } else {
  566.                     $this->permsg($player);
  567.                 }
  568.                 break;
  569.  
  570.             case "s":
  571.             case "tp":
  572.                 if (!$player->getPlayer()->hasPermission("capi.cmd.tp")) {
  573.                     $this->permsg($player);
  574.                     break;
  575.                 }
  576.                 if (isset($args[0])) {
  577.                     $name = $args[0];
  578.                 } else {
  579.                     return $player->sendMessage("§l§bТелепорт §b× §r§fИспользуйте:§b /s <ник_игрока>");
  580.                 }
  581.                 if (!($player1 = $this->getServer()->getPlayer($name))) return $player->sendMessage("§l§bТелепорт §b× §r§fИгрок с ником §e{$name} §cне онлайн");
  582.                 $player->teleport(((new Vector3($player1->getFloorX(), $player1->getFloorY(), $player1->getFloorZ()))->add(0.5, 0.5, 0.5)));
  583.                 $player->sendMessage("§l§bТелепорт §b× §r§fВы успешно телепортировались к игроку §b{$player1->getName()}");
  584.                 $player1->sendMessage("§lТелепорт§b × §r§fК вам телепоптировался игрок §b" . $player->getName() . " §fбудьте аккуратнее");
  585.                 break;
  586.  
  587.             case "rtp":
  588.                 if (!$player->getPlayer()->hasPermission("capi.cmd.rtp")) {
  589.                     $this->permsg($player);
  590.                     break;
  591.                 }
  592.                 $vector = $player->getLevel()->getSafeSpawn(new Vector3(rand(-1000, 1000), 60, rand(-1000, 1000)));
  593.  
  594.                 while ($player->getLevel()->getBlock($vector)->getId() != 0) {
  595.                     $vector = $vector->add(0, 1, 0);
  596.                 }
  597.  
  598.                 $player->getLevel()->loadChunk($vector->getX(), $vector->getZ());
  599.                 $player->teleport($vector);
  600.                 return $player->sendMessage("§l§bТелепорт §b× §r§fВы телепортировались в рандомное место §d({$vector->getX()}, {$vector->getY()}, {$vector->getZ()}");
  601.                 break;
  602.             case "fuck":
  603.                 if (!$player->getPlayer()->hasPermission("capi.cmd.fuck")) {
  604.                     $this->permsg($player);
  605.                     break;
  606.                 }
  607.                 $x = $player->getX();
  608.                 $y = $player->getY();
  609.                 $z = $player->getZ();
  610.                 if (count($args) < 1)
  611.                     return $player->sendMessage("§l§eПоджог §e× §r§fИспользуйте: §b/fuck <игрок>");
  612.                 if (($player1 = $this->getServer()->getPlayer($args[0])) != null) {
  613.                     $player1->setOnFire(9);
  614.                     $player1->getLevel()->spawnLightning(new Vector3($x, $y, $z));
  615.  
  616.                     $player->sendMessage("§l§eПоджог §e× §r§fВы успешно ударили игрока §b{$player1->getName()} §fмолнией и подожгли.");
  617.                     $player1->setMotion(new Vector3(1.5, 0.5, 1.5));
  618.                 } else {
  619.                     $player->sendMessage("§l§eПоджог §e× §r§fИгрока с ником §b{$args[0]} §fнет на сервере!");
  620.                 }
  621.                 break;
  622.             case "kill":
  623.                 if (!$player->getPlayer()->hasPermission("capi.cmd.kill")) {
  624.                     $this->permsg($player);
  625.                     break;
  626.                 }
  627.  
  628.                 if (count($args) < 1)
  629.                     return $player->sendMessage("§l§eУбийства §e× §r§fИспользуйте: §b/kill (игрок). \n §l§8× §fНа такие действие, всегда должна быть причина.");
  630.  
  631.                 if (($player1 = $this->getServer()->getPlayer($args[0])) != null) {
  632.                     $player1->setHealth(0);
  633.                     $player1->sendMessage("§l§eУбийства §e× §r§fВас убил игрок §e" . $player->getName());
  634.                     $player->sendMessage("§l§eУбийства §e× §r§fВы убили §fигрока §e" . $player1->getName());
  635.                     $this->getServer()->broadcastMessage("§l§eУбийства §e× §r§fИгрок §b" . $player->getName() . "§f убил игрока §b" . $player1->getName());
  636.                 } else {
  637.                     $player->sendMessage("§l§eУбийства §e× §r§fИгрок с ником §c{$args[0]} §fне онлайн! Проверьте введенный ник.");
  638.                 }
  639.                 break;
  640.  
  641.             /**
  642.              * Очистка инвентаря
  643.              **/
  644.             case "ci":
  645.             case "clear":
  646.                     if (!$player->getPlayer()->hasPermission("capi.cmd.clear")) {
  647.                         $this->permsg($player);
  648.                         break;
  649.                     }
  650.  
  651.                     $player->getInventory()->clearAll();
  652.                     $player->sendMessage("§l§3Очистка §3× §r§fВы §bочистили §fсвой инвентарь.");
  653.                 break;
  654.  
  655.             /**
  656.              * Режим бессмертия
  657.              **/
  658.             case "god":
  659.                 if ($player instanceof Player) {
  660.                     if (!$player->getPlayer()->hasPermission("capi.cmd.god")) {
  661.                         $this->permsg($player);
  662.                         break;
  663.                     }
  664.  
  665.                     if (isset($this->god[strtolower($player->getName())])) {
  666.                         unset($this->god[strtolower($player->getName())]);
  667.                         $player->sendMessage("§l§eБессмертие §e× §r§fРежим Бессмертия §cвыключен.");
  668.                     } else {
  669.                         $this->god[strtolower($player->getName())] = true;
  670.                         $player->sendMessage("§l§eБессмертие §e× §r§fРежим Бессмертия §aвключен.");
  671.                     }
  672.                 }
  673.                 break;
  674.  
  675.             case "say":
  676.                 if (!$player->hasPermission("capi.cmd.say")) {
  677.                     $this->permsg($player);
  678.                     break;
  679.                 }
  680.  
  681.                 if (!isset($args[0]))
  682.                     return $player->sendMessage("§l§eСообщение в чат §e× §r§fИспользуйте: §b/say (сообщение).");
  683.  
  684.                 $this->getServer()->broadcastMessage("§l§cВНИМАНИЕ §r§b" . $player->getName() . "§8: §f" . implode(" ", $args));
  685.                 break;
  686.  
  687.             case "spawn":
  688.             case "sp":
  689.                     $player->teleport(new Position($x, $y, $z, $level));
  690.                     $player->sendMessage("§l§eСпавн §e× §r§fTелепортация§7...");
  691.                 break;
  692.  
  693.             case "tpall":
  694.                 if (!$player->hasPermission("capi.cmd.tpall")) {
  695.                     $player->sendMessage("§l§eПривилегии §e× §r§fКоманда доступна только§b Анти Гриферу");
  696.                     break;
  697.                 }
  698.                 foreach ($this->getServer()->getOnlinePlayers() as $players) {
  699.                     $players->teleport(new Vector3($player->getX(), $player->getY() + 1, $player->getZ()));
  700.                     $players->sendMessage("§l§bТелепортация §b× §r§b " . F::AQUA . $player->getName() . F::WHITE . " §fтелепортировал всех в одну точку!");
  701.                 }
  702.                 break;
  703.  
  704.             case "dupe":
  705.                 if ($player->getGamemode() != 0) {
  706.                     $player->sendMessage("§l§eДюп §e× §r§fВы§a не можете §fдюпать в режиме:§e Креатив!");
  707.                 } else {
  708.                     $inv = $player->getInventory();
  709.                     $i = $inv->getItemInHand();
  710.                     $invid = $i->getId();
  711.                     $arr = [57, 56, 264, 41, 14, 264, 322, 262, 368, 444, 354, 397, 266, 265, 15, 42, 0, 373, 175, 397, 384, 247];
  712.                     if (in_array($invid, $arr)) {
  713.                         $player->sendMessage("§l§eДюп §e× §r§fВы§c не можете §fдюпнуть данный §bпредмет!");
  714.                     } else {
  715.                         $player->sendMessage("§l§eДюп §e× §rВы§b успешно§f дюпнули предмет в руке");
  716.                         $i->setCount(8);
  717.                         $inv->addItem($i);
  718.                     }
  719.                 }
  720.                 break;
  721.             case "donate":
  722.                 $player->sendMessage("§l§eДонат§e קr§f Помощь по донату:");
  723.                 $player->sendMessage("§8* §eФлай §7- §f10руб.§8(§fПодробнее: §bshop.nexland.ru§8)");
  724.                 $player->sendMessage("§8* §eВип §7- §f20руб.§8(§fПодробнее: §bshop.nexland.ru§8)");
  725.                 $player->sendMessage("§8* §eВип+ §7- §f30руб.§8(§fПодробнее: §bshop.nexland.ru§8)");
  726.                 $player->sendMessage("§8* §eПремиум §7- §f40руб.§8(§fПодробнее: §bshop.nexland.ru§8)");
  727.                 $player->sendMessage("§8* §eКреатив §7- §f45руб.§8(§fПодробнее: §bshop.nexland.ru§8)");
  728.                 $player->sendMessage("§8* §eМодератор §7- §f150руб.§8(§fПодробнее: §bshop.nexland.ru§8)");
  729.                 $player->sendMessage("§8* §eЮтубер §7- §f150руб.§8(§fПодробнее: §bshop.nexland.ru§8)");
  730.                 $player->sendMessage("§8* §eАдминистратор §7- §f200руб.§8(§fПодробнее: §bshop.nexland.ru§8)");
  731.                 $player->sendMessage("§8* §eХелпер§7- §f300руб.§8(§fПодробнее: §bshop.nexland.ru§8)");
  732.                 $player->sendMessage("§8* §eГл. Администратор §7- §f500руб.§8(§fПодробнее: §bshop.nexland.ru§8)");
  733.                 $player->sendMessage("§8* §eУльтра §7- §f750руб.§8(§fПодробнее: §bshop.nexland.ru§8)");
  734.                 $player->sendMessage("§8* §eВластелин§7- §f1000руб.§8(§fПодробнее: §bshop.nexland.ru§8)");
  735.                 $player->sendMessage("§8* §eСпонсор §7- §f2000руб.§8(§fПодробнее: §bshop.nexland.ru§8)");
  736.                 $player->sendMessage("§8* §eЭлита §7- §f5000руб.§8(§fПодробнее: §bshop.nexland.ru§8)");
  737.                 break;
  738.             case "back":
  739.                 if ($player->hasPermission("cmd.back")) {
  740.                     if (isset($this->back[$player->getName()])) {
  741.                         $player->teleport($this->back[$player->getName()]);
  742.                         $player->sendMessage("§l§bТелепорт §b× §r§fТелепортация на место смерти...");
  743.                     } else {
  744.                         $player->sendMessage("§l§bТелепорт §b× §r§fВы ещё не умирали");
  745.                     }
  746.                 } else {
  747.                     $this->permsg($player);
  748.                 }
  749.                 break;
  750.  
  751.             case "pvp":
  752.                 $player->teleport(new Vector3(231, 73, 120));
  753.                 $player->sendMessage("§l§eПВП-АРЕНА§e× §r§fTелепортация§7...");
  754.                 break;
  755.             case "time":
  756.                 if (!$player->hasPermission("capi.cmd.time")) {
  757.                     $this->permsg($player);
  758.                     break;
  759.                 }
  760.  
  761.                 if (!isset($args[0]))
  762.                     return $player->sendMessage("§l§dВремя §d× §r§fИспользуйте: §b/time (day/night).");
  763.  
  764.                 $player->getServer()->getDefaultLevel()->checkTime();
  765.                 if (strtolower($args[0]) == "day") {
  766.                     $player->getServer()->getDefaultLevel()->setTime(0);
  767.                     $player->sendMessage("§l§dВремя §d× §r§fВы включили §eдень.");
  768.                 } else if (strtolower($args[0]) == "night") {
  769.                     $player->getServer()->getDefaultLevel()->setTime(14000);
  770.                     $player->sendMessage("§l§dВремя §d× §r§fВы включили §cночь.");
  771.                 } else {
  772.                     $player->sendMessage("§l§dВремя §d× §r§fИспользуйте: §b/time (day/night).");
  773.                 }
  774.                 break;
  775.  
  776.             case "getpos":
  777.                 if (!$player->getPlayer()->hasPermission("capi.cmd.getpos")) {
  778.                     $this->permsg($player);
  779.                     break;
  780.                 }
  781.                 $player->sendMessage("§l§eКоординаты§e × §r§fВаша позиция§8: §cX: {$player->getFloorX()} §8, §6Y: {$player->getFloorY()}§8, §eZ: {$player->getFloorZ()}§8.");
  782.                 break;
  783.             case "clearchat":
  784.                 if (!$player->getPlayer()->hasPermission("capi.cmd.cc")) {
  785.                     $this->permsg($player);
  786.                     break;
  787.                 } else {
  788.                     $n = "\n";
  789.                     for ($x = 0; $x < 50; $x++) {
  790.                         $n .= "\n§e";
  791.                     }
  792.                     $this->getServer()->broadcastMessage("{$n}§l§eЧат §e× §fИгрок §b{$player->getName()} §fочистил чат.");
  793.                 }
  794.                 break;
  795.  
  796.             case "give":
  797.                 if (!$player->hasPermission("capi.cmd.give")) {
  798.                     $this->permsg($player);
  799.                     break;
  800.                 }
  801.  
  802.                 if (count($args) < 3)
  803.                     return $player->sendMessage("§l§eПредметы §e × §r§fИспользуйте: §b/give (ник) (предмет) (кол-во).");
  804.  
  805.                 if (($player1 = $player->getServer()->getPlayer($args[0])) != null) {
  806.                     $item = explode(":", $args[1]);
  807.                     if (!isset($item[1])) $item[1] = 0;
  808.                     $item = Item::get(intval($item[0]), intval($item[1]), intval($args[2]));
  809.                     $player1->getInventory()->addItem($item);
  810.                     $player->sendMessage("§l§eПредметы§e × §r§fВы выдали игроку §b{$player1->getName()} §a{$item->getName()} §f{$args[2]}шт.");
  811.                     $player1->sendMessage("§l§eПредметы§e × §r§fВы получили от игрока §b{$player->getName()} §a{$item->getName()} §f{$args[2]}шт.");
  812.                 } else {
  813.                     $player->sendMessage("§l§eПредметы§e × §r§fИгрок с ником §c{$args[0]} §fне онлайн");
  814.                 }
  815.                 break;
  816.             case "suicide":
  817.                 if (!$player->hasPermission("capi.cmd.suicide")) {
  818.                     $this->permsg($player);
  819.                     break;
  820.                 }
  821.                 $player->setHealth(0);
  822.                 $player->sendMessage("§l§cСуицид §c× §r§fВы совершили суицид.");
  823.                 break;
  824.  
  825.             case "crlist":
  826.                     foreach ($this->getServer()->getOnlinePlayers() as $pl) {
  827.                         if ($pl->getGamemode() == 1) {
  828.                             $player->sendMessage("§8× §b" . $pl->getName() . "§f - КРЕАТИВ");
  829.                         } elseif ($pl->getGamemode() == 0) {
  830.                             $player->sendMessage("§8× §fИгроков с привилегией §e§lКреатив §r§fв сети нету!");
  831.                         }
  832.                 }
  833.                 break;
  834.             case "tell":
  835.                 if (count($args) < 2)
  836.                     return $player->sendMessage("§l§eЛС §e× §r§fИспользуйте: §b/tell (ник) (смс).");
  837.  
  838.                 $name[1] = strtolower($args[0]);
  839.                 unset($args[0]);
  840.                 $message = implode(" ", $args);
  841.  
  842.                 if (($player1 = $this->getServer()->getPlayer($name[1])) != null) {
  843.                     $name[1] = $player1->getName();
  844.                     $name[2] = $player->getName();
  845.  
  846.                     foreach (Server::getInstance()->getOnlinePlayers() as $players) {
  847.                         if ($players->hasPermission("api.tell.admin") or $players->isOp())
  848.                             $players->sendMessage("§8(§b{$name[2]} §f-> §3{$name[1]}§8)§7: §f{$message}");
  849.                     }
  850.  
  851.                     $player1->sendMessage("§8(§b{$name[2]} §f→ §3Вам§8)§7: §f{$message}");
  852.                     $player->sendMessage("§8(§3Вы §f→ §b{$name[1]}§8)§7: §f{$message}");
  853.                 } else {
  854.                     $player->sendMessage("§l§eЛС §e× §r§fИгрок с ником §c{$name[1]} §fне онлайн.");
  855.                 }
  856.                 break;
  857.         }
  858.         if (strtolower($cmd->getName()) == "help") {
  859.             switch (count($args)) {
  860.                 case 0:
  861.                     $player->sendMessage("§l§eПомощь §e× §r§fСтраница §a1§8/§c3");
  862.                     $player->sendMessage("§7* §b/tell §8- §fЛичное сообщение.");
  863.                     $player->sendMessage("§7* §b/spawn §8- §fТелепортация на спавн.");
  864.                     $player->sendMessage("§7* §b/report §8- §fТех.Поддержка.");
  865.                     $player->sendMessage("§7* §b/sleep §8- §fСпать на полу.");
  866.                     $player->sendMessage("§7* §b/hack §8- §fВзлом админки.");
  867.                     $player->sendMessage("§7* §b/sethome <название> §8- §fУстановить точку дома.");
  868.                     $player->sendMessage("§7* §b/home <название> §8- §fТелепортироваться домой.");
  869.                     $player->sendMessage("§7* §b/rtp §8- §fРандомно телепортироваться.");
  870.                     $player->sendMessage("§7* §b/chp §8- §fСменить пароль.");
  871.                     $player->sendMessage("§7* §b/hub §8- §fTелепортация обратно в лобби.");
  872.                     break;
  873.  
  874.                 case 1:
  875.                     $name = strtolower($player->getName());
  876.                     switch (strtolower($args[0])) {
  877.  
  878.                         case "2":
  879.                             $player->sendMessage("§l§eПомощь §e× §r§fСтраница §a2§8/§c4");
  880.                             $player->sendMessage("§7* §b/delhome <название> §8- §fУдалить дом.");
  881.                             $player->sendMessage("§7* §b/tpa <ник_игрока> §8- §fОтправить запрос на телепортацию.");
  882.                             $player->sendMessage("§7* §b/tpd <ник_игрока> §8- §fОтклонить запрос на телепортацию.");
  883.                             $player->sendMessage("§7* §b/money §8- §fУзнать свой баланс.");
  884.                             $player->sendMessage("§7* §b/pay <ник_игрока> §8- §fОтправить игроку денег из своего счета.");
  885.                             $player->sendMessage("§7* §b/clan §8- §fКланы.");
  886.                             $player->sendMessage("§7* §b/topmoney §8- §fТоп богачей сервера.");
  887.                             $player->sendMessage("§7* §b/dupe §8- §fДюпнуть предмет в руке.");
  888.                             break;
  889.  
  890.                         case "3":
  891.                             $player->sendMessage("§l§eПомощь §e× §r§fСтраница §a3§8/§c4");
  892.                             $player->sendMessage("§7* §b/ban §8- §fЗабанить игрока.");
  893.                             $player->sendMessage("§7* §b/pardon §8- §fРазбанить игрока.");
  894.                             $player->sendMessage("§7* §b/say §8- §fСообщить всем.");
  895.                             $player->sendMessage("§7* §b/god §8- §fРежим бога.");
  896.                             $player->sendMessage("§7* §b/heal §8- §fПополнить голод и жизни.");
  897.                             $player->sendMessage("§7* §b/banlist §8- §fСписок забаненых.");
  898.                             $player->sendMessage("§7* §b/suicide §8- §fПокончить с жизнью.");
  899.                             $player->sendMessage("§7* §b/kill §8- §fУбить игрока.");
  900.                             $player->sendMessage("§7* §b/give §8- §fДать ресурсы.");
  901.                             $player->sendMessage("§7* §b/cc §8- §fОчистить чат.");
  902.                             break;
  903.  
  904.                         case "4":
  905.                             $player->sendMessage("§l§eПомощь §e× §r§fСтраница §a4§8/§c4");
  906.                             $player->sendMessage("§7* §b/time §8- §fСменить день.");
  907.                             $player->sendMessage("§7* §b/getposs §8- §fУзнать свои координаты.");
  908.                             $player->sendMessage("§7* §b/back §8- §fТелепортация на место смерти.");
  909.                             $player->sendMessage("§7* §b/tpall §8- §fТелепортировать всех игроков к себе.");
  910.                             $player->sendMessage("§7* §b/top §8- §fТелепортация на самый вверх.");
  911.                             $player->sendMessage("§7* §b/clear §8- §fОчистить инвентарь.");
  912.                             $player->sendMessage("§7* §b/kick §8- §fВыгнать с сервера.");
  913.                             $player->sendMessage("§7* §b/gm §8- §fРежим игры.");
  914.                             $player->sendMessage("§7* §b/fly §8- §fРежим полета.");
  915.                             $player->sendMessage("§7* §b/tp <ник_игрока> §8- §fТелепортация к игроку.");
  916.                             break;
  917.                     }
  918.             }
  919.         }
  920.     }
  921.  
  922.     public function dEnterCast(PlayerInteractEvent $event)
  923.     {
  924.         $player = $event->getPlayer();
  925.         $block = $event->getBlock();
  926.         $inv = $event->getItem()->getId();
  927.  
  928.         $x = $block->getX();
  929.         $y = $block->getY();
  930.         $z = $block->getZ();
  931.  
  932.         if ($inv == 378) {
  933.             if (!$player->hasPermission("api.click")) {
  934.                 return;
  935.             }
  936.             $player->sendPopup("§c* §eКоординаты: §fx:§b $x, §fy:§b $y, §fz:§b $z §c*");
  937.         }
  938.         $protect = [8, 9, 10, 11, 51, 325, 326, 327];
  939.         if (in_array($inv, $protect)) {
  940.             $event->setCancelled(true);
  941.             $player->sendMessage("§c * §fЗапрещено использовать! §c*");
  942.         }
  943.     }
  944.  
  945.     public function replace_date($date)
  946.     {
  947.         $date = str_replace("Monday", "Понедельник", $date);
  948.         $date = str_replace("Tuesday", "Вторник", $date);
  949.         $date = str_replace("Wednesday", "Среда", $date);
  950.         $date = str_replace("Thursday", "Четверг", $date);
  951.         $date = str_replace("Friday", "Пятница", $date);
  952.         $date = str_replace("Saturday", "Суббота", $date);
  953.         $date = str_replace("Sunday", "Воскресенье", $date);
  954.         return $date;
  955.     }
  956.  
  957.     public function bJoin(PlayerJoinEvent $event)
  958.     {
  959.         $player = $event->getPlayer();
  960.         $event->setJoinMessage(null);
  961.         $data = date("H:i");
  962.         $money = $this->Economy->myMoney($player->getName());
  963.         $heal = $player->getHealth();
  964.         $heals = $player->getMaxHealth();
  965.         $onl = count($this->getServer()->getOnlinePlayers());
  966.         $onlm = $this->getServer()->getMaxPlayers();
  967.         $player->sendMessage("§l§cSHOP.NEXLAND.RU × §r§fДорогой друг, добро пожаловать на лучший игровой проект §c§lNexLAND§f, каждую неделю на наших серверах выходят по несколько обновлений.§r\n§8§l× §r§fКраткая информация по серверу - §e/help\n§8§l× §r§fПомочь по донат-услугам - §e/donate\n\n");
  968.         $player->sendMessage("§l§8»§7--------§f*+*§7--------§8«§r");
  969.         $player->sendMessage("§e | §fЗдравствуй,§l§b " . $event->getPlayer()->getName() . "§r");
  970.         $player->sendMessage("§e | §fОнлайн:§l§a " . $onl . "" . F::DARK_GRAY . "/§c" . $onlm . "§r");
  971.         $player->sendMessage("§e | §fВаше здоровье:§l" . F::GREEN . " " . $heal . "" . F::DARK_GRAY . "/" . F::RED . "" . $heals . "§r");
  972.         $player->sendMessage("§e | §fВаш баланс:§l§e $money $ §r");
  973.         $player->sendMessage("§e | §fЧасы:§l§a $data §r");
  974.         $player->sendMessage("§e | §fДень недели:§l§a " . $this->replace_date(date("l")) . "§r");
  975.         $player->sendMessage("§l§8»§7--------§f*+*§7--------§8«§r\n\n");
  976.         $player->setGamemode(0);
  977.     }
  978.  
  979.     public function EntityDamageEvent(EntityDamageEvent $event)
  980.     {
  981.         $player = $event->getEntity();
  982.         $v = new Vector3(
  983.             $player->getLevel()->getSpawnLocation()->getX(),
  984.             $player->getPosition()->getY(),
  985.             $player->getLevel()->getSpawnLocation()->getZ()
  986.         );
  987.         $r = $this->getServer()->getSpawnRadius();
  988.         if ($player instanceof Player) {
  989.             if ($event instanceof EntityDamageByEntityEvent) {
  990.                 $d = $event->getDamager();
  991.                 $damager = $d;
  992.                 if ($d instanceof Player) {
  993.                     if (isset($this->god[strtolower($player->getName())])) {
  994.                         $event->setCancelled();
  995.                         $damager->sendPopup("§c* §fУ противника включено бессмертие. §c*");
  996.                     }
  997.                     if (($player->getPosition()->distance($v) <= $r)) {
  998.                         $event->setCancelled();
  999.                         $d->sendMessage("§l§cБезопасность §с× §r§fЗапрещено §cдраться §fна спавне!!!");
  1000.                         $d->sendPopup("§l§fУх ты, какой нос, но увы, запрещено §cдраться §fна спавне!!!");
  1001.                         return;
  1002.                     }
  1003.  
  1004.                     if (($d->getGamemode() == 1) && ($player->getGamemode() == 0)) {
  1005.                         $event->setCancelled();
  1006.                         $d->sendMessage("§l§cБезопасность §с× §r§fЗапрещено §cдраться §fв режиме §eкреатив!");
  1007.                         $d->sendPopup("§c* §l§fУх ты, какой нос, но увы, запрещено §cдраться §fв режиме §eкреатив! §c*");
  1008.                         return;
  1009.                     }
  1010.  
  1011.                     if ($d->getAllowFlight()) {
  1012.                         $event->setCancelled();
  1013.                         $d->sendMessage("§l§cБезопасность §с× §r§fЗапрещено §cдраться §fв режиме §eполета!");
  1014.                         $d->sendPopup("§c* §l§fУх ты, какой нос, но увы, запрещено §cдраться §fв режиме §eполета! §c*");
  1015.                         return;
  1016.                     }
  1017.  
  1018.                     if (isset($this->vanish[strtolower($d->getName())])) {
  1019.                         $event->setCancelled();
  1020.                         $d->sendMessage("§l§cБезопасность §с× §r§fЗапрещено §cдраться §fв §eневидимом §fрежиме!");
  1021.                         $d->sendPopup("§c* §l§fУх ты, какой нос, но увы, запрещено §cдраться §fв §eневидимом §fрежиме! §c*");
  1022.                         return;
  1023.                     }
  1024.  
  1025.                     if ($player->getAllowFlight()) {
  1026.                         $event->setCancelled();
  1027.                         $d->sendMessage("§l§cБезопасность §с× §r§fУ противника включен режим §eполета!");
  1028.                         $d->sendPopup("§c* §l§fУх ты, какой нос, но увы, у противника включен режим §eполета! §c*");
  1029.                         return;
  1030.                     }
  1031.                 }
  1032.             }
  1033.         }
  1034.     }
  1035.  
  1036.     public function bonus()
  1037.     {
  1038.         foreach ($this->getServer()->getOnlinePlayers() as $player) {
  1039.             $rand = mt_rand(50, 100);
  1040.             $this->Economy->addMoney($player->getName(), $rand);
  1041.             $player->sendMessage("§l§eБонус §e× §r§fВы получили§e $rand$ §fза игру на сервере!§r");
  1042.         }
  1043.     }
  1044.  
  1045.  
  1046.     public function onPlayerItemConsumeEvent(PlayerItemConsumeEvent $event)
  1047.     {
  1048.         $player = $event->getPlayer();
  1049.         $item = $player->getInventory()->getItemInHand()->getId();
  1050.         if ($item == 466) {
  1051.             if (!$player->hasPermission("capi.apple")) {
  1052.                 $player->sendMessage("§l§cБезопасность §с× §r§fПредмет заблокирован");
  1053.                 $event->setCancelled(true);
  1054.             }
  1055.         }
  1056.     }
  1057.  
  1058.     public function onDeath(PlayerDeathEvent $event)
  1059.     {
  1060.         $event->setDeathMessage("");
  1061.         $player = $event->getPlayer();
  1062.         $cause = $player->getLastDamageCause();
  1063.         if ($player->hasPermission("cmd.back")) {
  1064.             $this->back[$player->getName()] = new Vector3($player->getX(), $player->getY(), $player->getZ());
  1065.         }
  1066.         if (!$cause instanceof EntityDamageByEntityEvent) {
  1067.             $this->getServer()->broadcastPopup("§c{$player->getName()} §fумер(ла)");
  1068.             return true;
  1069.         }
  1070.         $damager = $cause->getDamager();
  1071.         if ($damager instanceof Player) {
  1072.             $this->getServer()->broadcastPopup("§c* §b{$player->getName()} §fбыл убит игроком §b{$damager->getName()} §c*");
  1073.             $item = Item::get(397, 3, 1);
  1074.             $item->setCustomName("§l§eГолова игрока§e " . $player->getName());
  1075.             $player->getLevel()->dropItem(new Vector3($player->getX(), $player->getY(), $player->getZ()), $item);
  1076.         }
  1077.     }
  1078.  
  1079.  
  1080.     public function gc()
  1081.     {
  1082.         $this->getServer()->dispatchCommand(new ConsoleCommandSender(), "gc");
  1083.     }
  1084.  
  1085.     public function onRespawn(PlayerRespawnEvent $event)
  1086.     {
  1087.         $player = $event->getPlayer();
  1088.         $player->setMaxHealth(20);
  1089.         $player->setHealth(20);
  1090.     }
  1091. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top