Advertisement
Guest User

Untitled

a guest
Oct 19th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 61.89 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement