Advertisement
Guest User

Untitled

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