Advertisement
Lisenochek

Untitled

Nov 3rd, 2016
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 42.09 KB | None | 0 0
  1. package ru.jampire.bukkit.uralclans2;
  2.  
  3. import java.io.IOException;
  4. import java.util.Collections;
  5. import java.util.Comparator;
  6. import java.util.HashMap;
  7. import java.util.Iterator;
  8. import java.util.LinkedList;
  9. import java.util.Map.Entry;
  10.  
  11. import org.bukkit.Bukkit;
  12. import org.bukkit.ChatColor;
  13. import org.bukkit.command.Command;
  14. import org.bukkit.command.CommandExecutor;
  15. import org.bukkit.command.CommandSender;
  16. import org.bukkit.entity.Player;
  17.  
  18. import me.xDark.TabTags.scheduler.PrefixSetup;
  19.  
  20. public class ClanCommand implements CommandExecutor {
  21.  
  22. public boolean onCommand(CommandSender s, Command cmd, String str, String[] args) {
  23.  
  24. Player p = (Player) s;
  25. Clan sClan = Clan.getClanByName(s.getName());
  26.  
  27. if (s.equals(Bukkit.getConsoleSender())) {
  28. return false;
  29. }
  30.  
  31. if (!s.hasPermission("Clans.clan")) {
  32. s.sendMessage(C.c("&cУ вас недостаточно прав"));
  33. return false;
  34. }
  35.  
  36. if (args.length == 0) {
  37. if (sClan == null) {
  38. s.sendMessage(C.c("&c&mВы не состоите в клане."));
  39. s.sendMessage(C.c("&7======================================="));
  40.  
  41. if (sClan == null && s.hasPermission("Clans.create")) {
  42. String cost;
  43. if (Main.config.getInt("settings.create_cost") != 0 && !s.hasPermission("Clans.free.create")) {
  44. cost = C.c("&aСтоимость &e" + Main.config.getInt("settings.create_cost") + " &aмонет.");
  45. } else {
  46. cost = C.c("&eБесплатное &aсоздание.");
  47. }
  48.  
  49. s.sendMessage(C.c("&3&l/clan create [название клана] &a- создать клан. "));
  50. s.sendMessage(cost);
  51. s.sendMessage(" ");
  52. }
  53.  
  54. if (s.hasPermission("Clans.reload")) {
  55. s.sendMessage(C.c("&c/clan reload &a- перезапустить плагин."));
  56. }
  57.  
  58. s.sendMessage(C.c("&7======================================="));
  59. } else {
  60. s.sendMessage(C.c("&6Помощь по созданию и управлению кланом. &d(Страница 1/4)"));
  61. s.sendMessage(C.c("&7======================================="));
  62. if (sClan.hasLeader(s.getName())) {
  63. if (s.hasPermission("Clans.leader")) {
  64. s.sendMessage(C.c("&c/clan leader [игрок] &a- передать лидерство клана другому игроку."));
  65. }
  66.  
  67. if (s.hasPermission("Clans.addmoder")) {
  68. s.sendMessage(C.c("&c/clan addmoder [игрок] &a- повысить члена клана до модератора."));
  69. }
  70.  
  71. if (s.hasPermission("Clans.delmoder")) {
  72. s.sendMessage(C.c("&c/clan delmoder [игрок] &a- понизить члена клана до соклановца."));
  73. }
  74.  
  75. if (s.hasPermission("Clans.take")) {
  76. s.sendMessage(C.c("&c/clan take [кол-во] &a- взять монет из клановой казны."));
  77. }
  78.  
  79. if (s.hasPermission("Clans.sethome")) {
  80. s.sendMessage(C.c("&c/clan sethome &a- установить клановый дом."));
  81. }
  82.  
  83. if (s.hasPermission("Clans.removehome")) {
  84. s.sendMessage(C.c("&c/clan removehome &a- удалить клановый дом."));
  85. }
  86. }
  87. s.sendMessage(C.c("&7======================================="));
  88. }
  89. }
  90.  
  91. if (args.length > 0 && args[0].equalsIgnoreCase("page")) {
  92. if (args.length == 1) {
  93. s.sendMessage(C.c("&cВы не указали страницу помощи!"));
  94. return false;
  95. } else {
  96. switch (args.length) {
  97. case 2:
  98. if (!isInt(args[1])) {
  99. s.sendMessage(C.c("&cУкажите число!"));
  100. return false;
  101. }
  102. int page = Integer.valueOf(args[1]);
  103. switch (page) {
  104. case 1:
  105. if (sClan == null) {
  106. s.sendMessage(C.c("&c&mВы не состоите в клане."));
  107. s.sendMessage(C.c("&7======================================="));
  108.  
  109. if (sClan == null && s.hasPermission("Clans.create")) {
  110. String cost;
  111. if (Main.config.getInt("settings.create_cost") != 0
  112. && !s.hasPermission("Clans.free.create")) {
  113. cost = C.c("&aСтоимость &e" + Main.config.getInt("settings.create_cost")
  114. + " &aмонет.");
  115. } else {
  116. cost = C.c("&eБесплатное &aсоздание.");
  117. }
  118.  
  119. s.sendMessage(C.c("&3&l/clan create [название клана] &a- создать клан. "));
  120. s.sendMessage(cost);
  121. s.sendMessage(" ");
  122. }
  123.  
  124. if (s.hasPermission("Clans.reload")) {
  125. s.sendMessage(C.c("&c/clan reload &a- перезапустить плагин."));
  126. }
  127.  
  128. s.sendMessage(C.c("&7======================================="));
  129. } else {
  130. s.sendMessage(C.c("&6Помощь по созданию и управлению кланом. &d(Страница 1/4)"));
  131. s.sendMessage(C.c("&7======================================="));
  132. if (sClan.hasLeader(s.getName())) {
  133. if (s.hasPermission("Clans.leader")) {
  134. s.sendMessage(
  135. C.c("&c/clan leader [игрок] &a- передать лидерство клана другому игроку."));
  136. }
  137.  
  138. if (s.hasPermission("Clans.addmoder")) {
  139. s.sendMessage(
  140. C.c("&c/clan addmoder [игрок] &a- повысить члена клана до модератора."));
  141. }
  142.  
  143. if (s.hasPermission("Clans.delmoder")) {
  144. s.sendMessage(
  145. C.c("&c/clan delmoder [игрок] &a- понизить члена клана до соклановца."));
  146. }
  147.  
  148. if (s.hasPermission("Clans.take")) {
  149. s.sendMessage(C.c("&c/clan take [кол-во] &a- взять монет из клановой казны."));
  150. }
  151.  
  152. if (s.hasPermission("Clans.sethome")) {
  153. s.sendMessage(C.c("&c/clan sethome &a- установить клановый дом."));
  154. }
  155.  
  156. if (s.hasPermission("Clans.removehome")) {
  157. s.sendMessage(C.c("&c/clan removehome &a- удалить клановый дом."));
  158. }
  159. }
  160. s.sendMessage(C.c("&7======================================="));
  161. }
  162. break;
  163. case 2:
  164. if (sClan != null) {
  165. s.sendMessage(C.c(C.c("&6Помощь по созданию и управлению кланом. &d(Страница 2/4)")));
  166. s.sendMessage(C.c(C.c("&7=======================================")));
  167.  
  168. if (s.hasPermission("Clans.msg")
  169. && (sClan.hasLeader(s.getName()) || sClan.isModer(s.getName()))) {
  170. s.sendMessage(C.c("&c/clan msg &a- сделать объявление в клане."));
  171. }
  172.  
  173. if (s.hasPermission("Clans.invite")
  174. && (sClan.hasLeader(s.getName()) || sClan.isModer(s.getName()))) {
  175. s.sendMessage(C.c("&c/clan invite [игрок] &a- пригласить игрока в клан."));
  176. }
  177.  
  178. if (s.hasPermission("UralClans2.home")) {
  179. s.sendMessage(C.c("&c/clan home &a- переместиться в клановый дом."));
  180. }
  181.  
  182. if (s.hasPermission("Clans.kick")
  183. && (sClan.hasLeader(s.getName()) || sClan.isModer(s.getName()))) {
  184. s.sendMessage(C.c("&c/clan kick [игрок] &a- выгнать игрока из клана."));
  185. }
  186.  
  187. if (s.hasPermission("Clans.pvp")
  188. && (sClan.hasLeader(s.getName()) || sClan.isModer(s.getName()))) {
  189. s.sendMessage(C.c("&c/clan pvp &a- отключить или включить PvP между соклановцами."));
  190. }
  191.  
  192. if (s.hasPermission("Clans.deposit")) {
  193. s.sendMessage(C.c("&c/clan deposit [Кол-во] &a- вложить монет в казну клана."));
  194. }
  195.  
  196. s.sendMessage(C.c("&7======================================="));
  197. } else {
  198. s.sendMessage(C.c("&c&mВы не состоите в клане."));
  199. s.sendMessage(C.c("&7======================================="));
  200.  
  201. if (s.hasPermission("Clans.create")) {
  202. String cost;
  203. if (Main.config.getInt("settings.create_cost") != 0
  204. && !s.hasPermission("Clans.free.create")) {
  205. cost = C.c("&aСтоимость &e" + Main.config.getInt("settings.create_cost")
  206. + " &aмонет.");
  207. } else {
  208. cost = C.c("&eБесплатное &aсоздание.");
  209. }
  210.  
  211. s.sendMessage(C.c("&3&l/clan create [название клана] &a- создать клан. "));
  212. s.sendMessage(cost);
  213. s.sendMessage(" ");
  214. }
  215.  
  216. if (s.hasPermission("Clans.reload")) {
  217. s.sendMessage(C.c("&c/clan reload &a- перезапустить плагин."));
  218. }
  219.  
  220. s.sendMessage(C.c("&7======================================="));
  221. }
  222. break;
  223. case 3:
  224. if (sClan != null) {
  225. s.sendMessage(C.c("&6Помощь по созданию и управлению кланом. &d(Страница 3/4)"));
  226. s.sendMessage(C.c("&7======================================="));
  227.  
  228. if (s.hasPermission("Clans.info")) {
  229. s.sendMessage(C.c("&c/clan info &a- информация о клане."));
  230. }
  231.  
  232. if (s.hasPermission("Clans.disband") && sClan.hasLeader(s.getName())) {
  233. s.sendMessage(C.c("&c/clan disband &a- расформировать клан."));
  234. }
  235.  
  236. if (s.hasPermission("Clans.online")) {
  237. s.sendMessage(C.c("&c/clan online &a- узнать онлайн соклановцев."));
  238. }
  239.  
  240. if (s.hasPermission("Clans.list")) {
  241. s.sendMessage(C.c("&c/clan list &a- список других кланов."));
  242. }
  243.  
  244. if (s.hasPermission("Clans.top")) {
  245. s.sendMessage(C.c("&c/clan top &a- 10 самых лучших кланов на сервере."));
  246. }
  247.  
  248. if (s.hasPermission("UralClans2.leave") && !sClan.hasLeader(s.getName())) {
  249. if (sClan.isModer(s.getName())) {
  250. s.sendMessage(C.c("&c/clan leave &a- покинуть пост модератора клана."));
  251. } else {
  252. s.sendMessage(C.c("&c/clan leave &a- покинуть клан."));
  253. }
  254. }
  255.  
  256. s.sendMessage(C.c("&7======================================="));
  257. } else {
  258. s.sendMessage(C.c("&c&mВы не состоите в клане."));
  259. s.sendMessage(C.c("&7======================================="));
  260.  
  261. if (s.hasPermission("Clans.create")) {
  262. String cost;
  263. if (Main.config.getInt("settings.create_cost") != 0
  264. && !s.hasPermission("Clans.free.create")) {
  265. cost = C.c("&aСтоимость &e" + Main.config.getInt("settings.create_cost")
  266. + " &aмонет.");
  267. } else {
  268. cost = C.c("&eБесплатное &aсоздание.");
  269. }
  270.  
  271. s.sendMessage(C.c("&3&l/clan create [название клана] &a- создать клан. "));
  272. s.sendMessage(cost);
  273. s.sendMessage(" ");
  274. }
  275.  
  276. if (s.hasPermission("Clans.reload")) {
  277. s.sendMessage(C.c("&c/clan reload &a- перезапустить плагин."));
  278. }
  279.  
  280. s.sendMessage(C.c("&7======================================="));
  281. }
  282. break;
  283. case 4:
  284. if (sClan != null) {
  285. s.sendMessage(C.c("&6Помощь по созданию и управлению кланом. &d(Страница 4/4)"));
  286. s.sendMessage(C.c("&7======================================="));
  287.  
  288. if (s.hasPermission("Clans.upgrade")
  289. && (sClan.hasLeader(s.getName()) || sClan.isModer(s.getName()))) {
  290. String cost;
  291. if (Main.config.getInt("settings.upgrade_cost") != 0) {
  292. cost = C.c("&aСтоимость &e" + Main.config.getInt("settings.upgrade_cost"));
  293. } else {
  294. cost = C.c("&eБесплатное &aулучшение.");
  295. }
  296. s.sendMessage(C.c("&c/clan upgrade &a- увеличить слоты в клане до 1."));
  297. s.sendMessage(cost);
  298. s.sendMessage(" ");
  299. }
  300.  
  301. if (s.hasPermission("UralClans2.reload")) {
  302. s.sendMessage(C.c("&c/clan reload &a- перезапустить плагин."));
  303. }
  304.  
  305. s.sendMessage(C.c("&7======================================="));
  306. } else {
  307. s.sendMessage(C.c("&c&mВы не состоите в клане."));
  308. s.sendMessage(C.c("&7======================================="));
  309.  
  310. if (s.hasPermission("Clans.create")) {
  311. String cost;
  312. if (Main.config.getInt("settings.create_cost") != 0
  313. && !s.hasPermission("Clans.free.create")) {
  314. cost = C.c("&aСтоимость &e" + Main.config.getInt("settings.create_cost")
  315. + " &aмонет.");
  316. } else {
  317. cost = C.c("&eБесплатное &aсоздание.");
  318. }
  319.  
  320. s.sendMessage(C.c("&3&l/clan create [название клана] &a- создать клан. "));
  321. s.sendMessage(cost);
  322. s.sendMessage(" ");
  323. }
  324.  
  325. if (s.hasPermission("Clans.reload")) {
  326. s.sendMessage(C.c("&c/clan reload &a- перезапустить плагин."));
  327. }
  328.  
  329. s.sendMessage(C.c("&7======================================="));
  330. }
  331. break;
  332. default:
  333. s.sendMessage(C.c("&cУкажите страницу от 1 до 4!"));
  334. break;
  335. }
  336. break;
  337. }
  338. }
  339. }
  340. if (args.length != 0) {
  341. if (args[0].equalsIgnoreCase("create")) {
  342. if (!s.hasPermission("Clans.create")) {
  343. s.sendMessage(C.c("&cУ вас нет прав на управление кланом."));
  344. return false;
  345. } else {
  346. if (args.length == 1) {
  347. s.sendMessage(C.c("&cУкажите название клана."));
  348. return false;
  349. }
  350. }
  351. String rname = args[1].replaceAll("&.", "");
  352. if (Clan.getClan(args[1]) != null) {
  353. s.sendMessage(C.c("&cКлан с таким названием уже существует."));
  354. return false;
  355. }
  356. if (rname.length() > Main.config.getInt("settings.max_symbols")) {
  357. s.sendMessage(
  358. C.c("&cМаксимальное количество символов: " + Main.config.getInt("settings.max_symbols")));
  359. return false;
  360. }
  361. if (rname.length() < Main.config.getInt("settings.min_symbols")) {
  362. s.sendMessage(
  363. C.c("&cМинимальное количество символов: " + Main.config.getInt("settings.min_symbols")));
  364. return false;
  365. }
  366. if (!ChatColor.stripColor(args[1]).replaceAll("&.", "")
  367. .matches(Main.config.getString("settings.clan_regex"))) {
  368. s.sendMessage(C.c("&cВ названии клана обнаружены запрещенные символы."));
  369. return false;
  370. }
  371. if (Main.config.getInt("settings.create_cost") != 0) {
  372. if (!s.hasPermission("Clans.free.create")) {
  373. try {
  374. if (!Main.getEconomy().has(s.getName(),
  375. (double) Main.config.getInt("settings.create_cost"))) {
  376. s.sendMessage(C.c("&cУ вас недостаточно монет для создания клана."));
  377. return false;
  378. }
  379. } catch (Exception e) {
  380. return false;
  381. }
  382. try {
  383. Main.getEconomy().withdrawPlayer(s.getName(),
  384. (double) Main.config.getInt("settings.create_cost"));
  385. } catch (Exception e) {
  386. return false;
  387. }
  388. }
  389.  
  390. }
  391. sClan = Clan.create(args[1], s.getName());
  392. s.sendMessage(
  393. C.c("&aКлан " + sClan.getClanByName(s.getName()).getName() + " &cуспешно зарегистрирован."));
  394. try {
  395. PrefixSetup.firstTimer((Player) s);
  396. } catch (IOException e1) {
  397. e1.printStackTrace();
  398. }
  399.  
  400. try {
  401. PrefixSetup.secondTimer((Player) s);
  402. } catch (IOException e1) {
  403. e1.printStackTrace();
  404. }
  405.  
  406. try {
  407. PrefixSetup.ThirdTimer((Player) s);
  408. } catch (IOException e1) {
  409. e1.printStackTrace();
  410. }
  411. }
  412. }
  413. if (args.length != 0) {
  414. switch (args[0].toLowerCase()) {
  415. case "reload":
  416. if (s.hasPermission("Clans.reload")) {
  417. ConfigHandler.configInit();
  418. s.sendMessage(C.c("&aКонфиг и файлы были перезапущены."));
  419. } else {
  420. s.sendMessage(C.c("&cУ вас недостаточно прав."));
  421. }
  422. break;
  423. case "disband":
  424. if (!s.hasPermission("Clans.disband")) {
  425. s.sendMessage(C.c("&cУ вас недостаточно прав."));
  426. return false;
  427. }
  428. if (sClan == null) {
  429. s.sendMessage(C.c("&cВы не состоите в клане."));
  430. return false;
  431. }
  432. if (!sClan.hasLeader(s.getName())) {
  433. s.sendMessage(C.c("&cРасформировать клан может только лидер клана."));
  434. return false;
  435. }
  436. sClan.broadcast(C.getPrefix()
  437. + C.c("&cКлан &7" + sClan.getClanByName(s.getName()).getName() + " &cбыл расформирован."));
  438. sClan.disband();
  439.  
  440. Iterator var = sClan.getMembers().iterator();
  441.  
  442. for (Player ps : Bukkit.getOnlinePlayers()) {
  443. RefreshTab.getTab(ps);
  444. }
  445. break;
  446. case "msg":
  447. if (!s.hasPermission("Clans.msg")) {
  448. s.sendMessage(C.c("&cУ вас нет прав на управление кланом."));
  449. return false;
  450. }
  451. if (sClan == null) {
  452. s.sendMessage(C.c("&cВы не состоите в клане."));
  453. return false;
  454. }
  455. if (!sClan.isModer(s.getName()) && !sClan.hasLeader(s.getName())) {
  456. s.sendMessage(C.c("&cСделать объявление может только лидер или модератор клана."));
  457. return false;
  458. }
  459. StringBuilder message = new StringBuilder();
  460. for (int i = 1; i < args.length; i++)
  461. message.append(args[i]).append(" ");
  462. if (message.toString().length() <= 3) {
  463. s.sendMessage(C.c("&cСообщение должно содержать не менее 3 символов."));
  464. return false;
  465. }
  466. String var33 = C.c(" &9&l➠ &7&l&o");
  467. if (sClan.isModer(s.getName())) {
  468. var33 = C.c(" &9&l➠ &a&l&o");
  469. }
  470.  
  471. if (sClan.hasLeader(s.getName())) {
  472. var33 = C.c(" &9&l➠ &6&l&o");
  473. }
  474.  
  475. Iterator<Member> iterator = sClan.getMembers().iterator();
  476. while (iterator.hasNext()) {
  477. Member m = (Member) iterator.next();
  478. if (!Bukkit.getOfflinePlayer(m.getName()).isOnline())
  479. continue;
  480. Bukkit.getPlayer(m.getName()).sendMessage(C.c(C.getPrefix() + "&9&l| "
  481. + "&d[&b&lОбъявление&d] &9&l|&7&l " + s.getName() + var33 + message.toString()));
  482. }
  483. break;
  484. case "online":
  485. if (!s.hasPermission("Clans.online")) {
  486. s.sendMessage(C.c("&cУ вас недостаточно прав."));
  487. return false;
  488. }
  489. if (sClan == null) {
  490. s.sendMessage(C.c("&cВы не состоите в клане."));
  491. return false;
  492. }
  493. s.sendMessage(C.c("&7======================================="));
  494. s.sendMessage(C.c("&6Список соклановцев, которые сейчас на сервере:"));
  495. s.sendMessage(" ");
  496. Iterator iterator2 = sClan.getMembers().iterator();
  497. while (iterator2.hasNext()) {
  498. Member m2 = (Member) iterator2.next();
  499. if (!Bukkit.getOfflinePlayer(m2.getName()).isOnline())
  500. continue;
  501. if (s.getName().equalsIgnoreCase(m2.getName())) {
  502. s.sendMessage(C.c("&e > &a" + m2.getName()));
  503. } else {
  504. s.sendMessage(C.c("&e - &a" + m2.getName()));
  505. }
  506. }
  507. s.sendMessage(C.c("&7======================================="));
  508. break;
  509. case "info":
  510. if (!s.hasPermission("Clans.info")) {
  511. s.sendMessage(C.c("&cУ вас недостаточно прав"));
  512. return false;
  513. }
  514. if (sClan == null) {
  515. s.sendMessage(C.c("&cВы не состоите в клане."));
  516. return false;
  517. }
  518. s.sendMessage(C.c("&7======================================="));
  519. s.sendMessage(C.c("&eИнформация о вашем клане:"));
  520. s.sendMessage(" ");
  521. s.sendMessage(C.c("&eНазвание клана: &a" + sClan.getName() + "&e."));
  522. s.sendMessage(C.c(
  523. "&eМеста в клане: &7" + sClan.getMembers().size() + " &e/ &7" + sClan.getMaxPlayers() + "&e."));
  524. s.sendMessage(C.c("&eЛидер клана: &a" + Bukkit.getOfflinePlayer(sClan.getLeader()).getName() + "&6."));
  525. s.sendMessage(C.c("&eКазна клана: &a" + sClan.getBalance() + " &eмонет(а, ы)."));
  526. s.sendMessage(" ");
  527. Iterator iterator3;
  528. StringBuilder builder2 = new StringBuilder();
  529. String var34;
  530. Member members;
  531. for (iterator3 = sClan.getMembers().iterator(); iterator3.hasNext(); builder2
  532. .append(var34 + Bukkit.getOfflinePlayer(members.getName()).getName() + C.c("&e, "))) {
  533. members = (Member) iterator3.next();
  534. var34 = C.c("&7");
  535. if (members.isModer()) {
  536. var34 = C.c("&a");
  537. }
  538. }
  539. s.sendMessage(C.c(
  540. "&eУчастники: " + builder2.toString().substring(0, builder2.toString().length() - 2) + "&e."));
  541. s.sendMessage(C.c("&7======================================="));
  542. break;
  543. case "addmoder":
  544. if (!s.hasPermission("Clans.addmoder")) {
  545. s.sendMessage(C.c("&cУ вас недостаточно прав"));
  546. return false;
  547. }
  548. if (sClan == null) {
  549. s.sendMessage(C.c("&cВы не состоите в клане."));
  550. return false;
  551. }
  552. if (args.length == 1) {
  553. s.sendMessage(C.c("&cУкажите ник игрока."));
  554. return false;
  555. }
  556. if (!sClan.hasLeader(s.getName())) {
  557. s.sendMessage(C.c("&cНазначать модераторов может только лидер клана."));
  558. return false;
  559. }
  560. if (!sClan.hasClanMember(args[1])) {
  561. s.sendMessage(C.c("&cИгрок не состоит в вашем клане."));
  562. return false;
  563. }
  564. if (sClan.hasLeader(args[1])) {
  565. s.sendMessage(C.c("&cИгрок является лидером клана."));
  566. return false;
  567. }
  568. if (sClan.isModer(args[1])) {
  569. s.sendMessage(C.c("&cИгрок является модератором клана."));
  570. return false;
  571. }
  572. sClan.setModer(args[1], true);
  573. sClan.broadcast(
  574. C.c("&aВ клане был назначен новый модератор: &c") + Bukkit.getOfflinePlayer(args[1]).getName());
  575. break;
  576. case "delmoder":
  577. if (!s.hasPermission("Clans.delmoder")) {
  578. s.sendMessage("&cУ вас нет прав на управление кланом.");
  579. return false;
  580. }
  581. if (sClan == null) {
  582. s.sendMessage(C.c("&cВы не состоите в клане."));
  583. return false;
  584. }
  585. if (args.length == 1) {
  586. s.sendMessage(C.c("&cУкажите ник игрока."));
  587. return false;
  588. }
  589. if (!sClan.hasLeader(s.getName())) {
  590. s.sendMessage(C.c("&cУдалять модераторов может только лидер клана."));
  591. return false;
  592. }
  593. if (!sClan.hasClanMember(args[1])) {
  594. s.sendMessage(C.c("&cИгрок не состоит в вашем клане."));
  595. return false;
  596. }
  597. if (!sClan.isModer(args[1])) {
  598. s.sendMessage(C.c("&cИгрок не является модератором."));
  599. return false;
  600. }
  601. sClan.setModer(args[1], false);
  602. sClan.broadcast(C.c("&aВ клане был убран модератор: &c") + Bukkit.getOfflinePlayer(args[1]).getName());
  603. break;
  604. case "invite":
  605. if (!s.hasPermission("Clans.invite")) {
  606. s.sendMessage(C.c("&cУ вас нет прав на управление кланом."));
  607. return false;
  608. }
  609. if (args.length == 1) {
  610. s.sendMessage(C.c("&cУкажите ник игрока."));
  611. return false;
  612. }
  613. if (sClan == null) {
  614. s.sendMessage(C.c("&cВы не состоите в клане."));
  615. return false;
  616. }
  617. if (!sClan.hasLeader(s.getName()) && !sClan.isModer(s.getName())) {
  618. s.sendMessage(C.c("&cПриглашать в клан может только лидер или модератор клана."));
  619. return false;
  620. }
  621. if (!Bukkit.getOfflinePlayer(args[1]).isOnline()) {
  622. s.sendMessage(C.c("&cИгрок не в сети."));
  623. return false;
  624. }
  625. if (sClan.hasClanMember(args[1])) {
  626. s.sendMessage(C.c("&cВы уже состоите в клане."));
  627. return false;
  628. }
  629. if (sClan.getMaxPlayers() <= sClan.getMembers().size()) {
  630. s.sendMessage("&cНедостаточно мест в клане.");
  631. s.sendMessage(
  632. "&cМеста в клане: &6" + sClan.getMembers().size() + " &c/ &6" + sClan.getMaxPlayers());
  633. return false;
  634. }
  635. if (Request.get(Bukkit.getPlayer(args[1])) != null) {
  636. s.sendMessage(C.c("&cИгроку уже отправлено приглашение о вступлении в клан."));
  637. return false;
  638. }
  639. Request.send(sClan, Bukkit.getPlayer(args[1]), s.getName());
  640. s.sendMessage(C.c("&c" + s.getName() + " &aпригласил в клан игрока&c ") + args[1]);
  641.  
  642. Bukkit.getPlayer(args[1])
  643. .sendMessage(C.c(C.getPrefix() + "&6Вы были приглашены в клан &7" + sClan.getName()));
  644. Bukkit.getPlayer(args[1]).sendMessage(" ");
  645. Bukkit.getPlayer(args[1])
  646. .sendMessage(C.c(C.getPrefix() + "&6Для принятия предложения напишите &7/clan accept"));
  647. Bukkit.getPlayer(args[1])
  648. .sendMessage(C.c(C.getPrefix() + "&6Для отклонения предложения напишите &7/clan deny"));
  649. break;
  650. case "kick":
  651. if (!s.hasPermission("Clans.kick")) {
  652. s.sendMessage(C.c("&cУ вас нет прав на управление кланом."));
  653. return false;
  654. }
  655. if (args.length == 1) {
  656. return false;
  657. }
  658. if (sClan == null) {
  659. s.sendMessage(C.c("&cы не состоите в клане."));
  660. return false;
  661. }
  662. if (!sClan.hasLeader(s.getName()) && !sClan.isModer(s.getName())) {
  663. s.sendMessage(C.c("&cИсключать из клана может только лидер или модератор клана."));
  664. return false;
  665. }
  666. if (!sClan.hasClanMember(args[1])) {
  667. s.sendMessage(C.c("&cИгрок не состоит в вашем клане."));
  668. return false;
  669. }
  670. if (args[1].equalsIgnoreCase(sClan.getLeader())) {
  671. s.sendMessage(C.c("&cВы не можете исключить лидера."));
  672. return false;
  673. }
  674. sClan.kick(args[1]);
  675. sClan.broadcast(C.c(C.getPrefix() + "&aИгрок &c" + Bukkit.getPlayer(args[1]).getName()
  676. + " &aбыл исключен из клана."));
  677. Bukkit.getPlayer(args[1])
  678. .sendMessage(C.c(C.getPrefix() + "&cВы были исключены из клана &7" + sClan.getName()));
  679. RefreshTab.getTab(Bukkit.getPlayer(args[1]));
  680. break;
  681. case "list":
  682. int var23;
  683. int var28;
  684. if (!s.hasPermission("Clans.list")) {
  685. s.sendMessage(C.getPrefix() + C.c("&cУ вас недостаточно прав."));
  686. return false;
  687. }
  688. if (Clan.clans.size() == 0) {
  689. s.sendMessage(C.getPrefix() + C.c("&cНа сервере еще нет кланов."));
  690. return false;
  691. }
  692. var23 = 0;
  693. if (args.length > 1) {
  694. try {
  695. if (Integer.parseInt(args[1]) < 1) {
  696. return false;
  697. }
  698.  
  699. var23 = Integer.parseInt(args[1]);
  700. } catch (Exception var19) {
  701. s.sendMessage(C.getPrefix() + C.c("&cНомер страницы должен быть положительным числом."));
  702. return false;
  703. }
  704. var23 = (var23 - 1) * 10;
  705. if (Clan.clans.size() - var23 < 0) {
  706. s.sendMessage(C.getPrefix() + C.c("&cУказанная страница пуста."));
  707. return false;
  708. }
  709. }
  710. int var25 = 0;
  711. s.sendMessage(C.c("&7======================================="));
  712. s.sendMessage(C.c("&aСписок всех кланов на сервере."));
  713. s.sendMessage(" ");
  714.  
  715. for (var28 = var23; var28 < Clan.clans.size() && var25 != 10; ++var28) {
  716. ++var25;
  717. Clan var31 = (Clan) Clan.clans.values().toArray()[var28];
  718. s.sendMessage(C.c("&e - &7" + var31.getName() + "&e [" + var31.getMembers().size()
  719. + "] &9&l| &7лидер - &6" + Bukkit.getOfflinePlayer(var31.getLeader()).getName()));
  720. }
  721. s.sendMessage(C.c("&7======================================="));
  722. break;
  723. case "leave":
  724. if (!s.hasPermission("Clan.leave")) {
  725. s.sendMessage(C.getPrefix() + C.c("&cУ вас недостаточно прав."));
  726. return false;
  727. }
  728. if (sClan == null) {
  729. s.sendMessage(C.getPrefix() + C.c("&cВы не состоите в клане."));
  730. return false;
  731. }
  732. if (sClan.hasLeader(s.getName())) {
  733. s.sendMessage(C.getPrefix() + C.c("&cВладелец клана не может покинуть его.s"));
  734. return false;
  735. }
  736. if (sClan.isModer(s.getName())) {
  737. sClan.setModer(s.getName(), false);
  738. sClan.broadcast(C.getPrefix() + C.c("&cИгрок &a" + s.getName() + " &cпокинул пост модератора."));
  739. } else {
  740. sClan.broadcast(C.getPrefix() + C.c("&cИгрок &a" + s.getName() + " &cпокинул клан."));
  741. sClan.kick(s.getName());
  742. RefreshTab.getTab((Player) s);
  743. }
  744. break;
  745. case "home":
  746. if (!s.hasPermission("Clans.home")) {
  747. s.sendMessage(C.getPrefix() + C.c("&cУ вас недостаточно прав."));
  748. return false;
  749. }
  750. if (sClan == null) {
  751. s.sendMessage(C.getPrefix() + C.c("&cВы не состоите в клане."));
  752. return false;
  753. }
  754. if (!sClan.hasHome()) {
  755. s.sendMessage(C.getPrefix() + C.c("&cКлан не имеет дома."));
  756. return false;
  757. }
  758. Warm.addPlayer(p, sClan);
  759. break;
  760. case "removehome":
  761. if (!s.hasPermission("Clans.removehome")) {
  762. s.sendMessage(C.getPrefix() + C.c("&cУ вас нет прав на управление кланом."));
  763. return false;
  764. }
  765. if (sClan == null) {
  766. s.sendMessage(C.getPrefix() + C.c("&cВы не состоите в клане."));
  767. return false;
  768. }
  769. if (!sClan.hasLeader(s.getName())) {
  770. s.sendMessage(C.getPrefix() + C.c("&cУдалить клановый дом может только лидер клана."));
  771. return false;
  772. }
  773. if (!sClan.hasHome()) {
  774. s.sendMessage(C.getPrefix() + C.c("&cКлан не имеет дома."));
  775. return false;
  776. }
  777. sClan.setHome(null, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F);
  778. sClan.broadcast(C.getPrefix() + C.c("&cЛидер удалил точку кланового дома."));
  779. break;
  780. case "sethome":
  781. if (!s.hasPermission("Clan.sethome")) {
  782. s.sendMessage(C.getPrefix() + C.c("&cУ вас недостаточно прав."));
  783. return false;
  784. }
  785. if (sClan == null) {
  786. s.sendMessage(C.getPrefix() + C.c("&cВы не состоите в клане."));
  787. return false;
  788. }
  789. if (!sClan.hasLeader(s.getName())) {
  790. s.sendMessage(C.getPrefix() + C.c("&cИзменить клановый дом может только лидер клана."));
  791. return false;
  792. }
  793. if (!Main.getWG().canBuild(p, p.getLocation())) {
  794. s.sendMessage(C.getPrefix() + C.c("&cВы не можете установить клановый дом на этой территории."));
  795. return false;
  796. }
  797. if (sClan.getMembers().size() < Main.config.getInt("settings.home-min")) {
  798. s.sendMessage(C.getPrefix() + C.c("&cДля кланового дома, в клане должно быть не меньше &a")
  799. + Main.config.getInt("settings.home_min" + " &cигроков."));
  800. return false;
  801. }
  802. sClan.setHome(p.getWorld().getName(), p.getLocation().getX(), p.getLocation().getY(),
  803. p.getLocation().getZ(), p.getLocation().getYaw(), p.getLocation().getPitch());
  804. sClan.broadcast(C.getPrefix() + C.c("&aЛидер установил точку кланового дома."));
  805. break;
  806. case "leader":
  807. if (!s.hasPermission("Clan.leader")) {
  808. s.sendMessage(C.getPrefix() + C.c("&cУ вас нет прав на управление кланом."));
  809. }
  810. if (sClan == null) {
  811. s.sendMessage(C.getPrefix() + C.c("&cВы не состоите в клане."));
  812. return false;
  813. }
  814. if (!sClan.hasLeader(s.getName())) {
  815. s.sendMessage(C.getPrefix() + C.c("&cПередать лидерство может только лидер клана."));
  816. return false;
  817. }
  818. if (args.length == 1) {
  819. s.sendMessage(C.getPrefix() + C.c("&cУкажите ник игрока."));
  820. return false;
  821. }
  822. if (!Bukkit.getOfflinePlayer(args[1]).hasPlayedBefore()) {
  823. s.sendMessage(C.getPrefix() + C.c("&cУказанного игрока не существует."));
  824. return false;
  825. }
  826. if (Clan.getClanByName(args[1]) == null) {
  827. s.sendMessage(C.getPrefix() + C.c("&cИгрок не состоит в вашем клане."));
  828. return false;
  829. }
  830. if (!Clan.getClanByName(args[1]).getName().equalsIgnoreCase(sClan.getName())) {
  831. s.sendMessage(C.getPrefix() + C.c("&cИгрок состоит не в вашем клане."));
  832. return false;
  833. }
  834. if (args[1].equalsIgnoreCase(s.getName())) {
  835. s.sendMessage(C.getPrefix() + C.c("&cНельзя передать лидерство себе."));
  836. return false;
  837. }
  838. if (sClan.isModer(args[1])) {
  839. sClan.setModer(args[1], false);
  840. }
  841.  
  842. sClan.setLeader(args[1]);
  843. sClan.broadcast(C.getPrefix() + C.c("&aЛидер &c" + s.getName() + " &aпередал лидерство клана игроку &c"
  844. + Bukkit.getPlayer(args[1]).getName()));
  845. break;
  846. case "take":
  847. int var233 = 0;
  848. boolean b;
  849. try {
  850. Main.getEconomy();
  851. } catch (Exception var14) {
  852. return false;
  853. }
  854. if (!s.hasPermission("Clan.take")) {
  855. s.sendMessage(C.getPrefix() + C.c("&cУ вас нет прав на управление кланом."));
  856. return false;
  857. }
  858. if (sClan == null) {
  859. s.sendMessage(C.getPrefix() + C.c("&cВы не состоите в клане."));
  860. return false;
  861. }
  862. if (!sClan.hasLeader(s.getName())) {
  863. s.sendMessage(C.getPrefix() + C.c("&cЗабирать монеты из казны может только лидер клана."));
  864. return false;
  865. }
  866. if (args.length == 1) {
  867. s.sendMessage(C.getPrefix() + C.c("&cУкажите сумму, которую вы хотите забрать из казны клана."));
  868. return false;
  869. }
  870. b = false;
  871. try {
  872. var233 = Integer.parseInt(args[1]);
  873. if (var233 < 0) {
  874. return false;
  875. }
  876. } catch (Exception var20) {
  877. s.sendMessage(
  878. C.getPrefix() + C.c("&cСумма должна быть целым положительным числом, например &a10&c."));
  879. return false;
  880. }
  881. if (sClan.getBalance() < var233) {
  882. s.sendMessage(C.getPrefix() + C.c("&cТакой суммы нет в клановой казне."));
  883. s.sendMessage(C.getPrefix() + C.c("&cВ казне есть &a" + sClan.getBalance() + " &cмонет(а, ы)."));
  884. return false;
  885. }
  886.  
  887. try {
  888. Main.getEconomy().depositPlayer(s.getName(), (double) var233);
  889. } catch (Exception var13) {
  890. }
  891.  
  892. sClan.setBalance(sClan.getBalance() - var233);
  893. s.sendMessage(C.getPrefix() + C.c("&aИз клановой казны вы забрали&c " + var233 + " &aмонет(а, ы)."));
  894. break;
  895. case "deposit":
  896. try {
  897. Main.getEconomy();
  898. } catch (Exception var18) {
  899. return false;
  900. }
  901. if (!s.hasPermission("Clan.deposit")) {
  902. s.sendMessage(C.getPrefix() + C.c("&cУ вас недостаточно прав."));
  903. return false;
  904. }
  905. if (sClan == null) {
  906. s.sendMessage(C.getPrefix() + C.c("&cВы не состоите в клане."));
  907. return false;
  908. }
  909. if (args.length == 1) {
  910. s.sendMessage(C.getPrefix() + C.c("&cУкажите сумму пополнения."));
  911. return false;
  912. }
  913. b = false;
  914. try {
  915. var23 = Integer.parseInt(args[1]);
  916. if (var23 < 0) {
  917. throw new Exception();
  918. }
  919. } catch (Exception var21) {
  920. s.sendMessage(
  921. C.getPrefix() + C.c("&cСумма должна быть целым положительным числом, например &a10&c."));
  922. return false;
  923. }
  924.  
  925. try {
  926. if (!Main.getEconomy().has(s.getName(), (double) var23)) {
  927. s.sendMessage(C.getPrefix() + C.c("&cУ вас нет такой суммы."));
  928. return false;
  929. }
  930. } catch (Exception var17) {
  931. }
  932.  
  933. try {
  934. Main.getEconomy().withdrawPlayer(s.getName(), (double) var23);
  935. sClan.setBalance(sClan.getBalance() + var23);
  936. } catch (Exception var16) {
  937. var16.printStackTrace();
  938. s.sendMessage(C.getPrefix() + C.c("&cПроизошла ошибка!"));
  939. s.sendMessage(C.getPrefix() + C.c("&cДоложите об этом администратору!"));
  940. return false;
  941. }
  942.  
  943. s.sendMessage(C.getPrefix() + C.c("&aВы пополнили казну клана на &c" + var23 + " &aмонет(ы, у)"));
  944. break;
  945. case "upgrade":
  946. if (!s.hasPermission("UralClans2.upgrade")) {
  947. s.sendMessage(C.getPrefix() + C.c("&cУ вас недостаточно прав."));
  948. return false;
  949. }
  950. if (sClan == null) {
  951. s.sendMessage(C.getPrefix() + C.c("&cВы не состоите в клане."));
  952. return false;
  953. }
  954. if (!sClan.hasLeader(s.getName()) && !sClan.isModer(s.getName())) {
  955. s.sendMessage(C.getPrefix() + C.c("&cУлучшить клан может только модератор или лидер клана."));
  956. return false;
  957. }
  958. if (Main.config.getInt("settings.max-upgrade") == sClan.getMaxPlayers()) {
  959. s.sendMessage(C.getPrefix() + C.c("&cКлан улучшен до максимума."));
  960. return false;
  961. }
  962. if (Main.config.getInt("settings.upgrade_cost") != 0) {
  963. try {
  964. if (sClan.getBalance() < (int) Main.config.getInt("settings.upgrade_cost")) {
  965. s.sendMessage(C.getPrefix() + C.c("&cВ клановой казне недостаточно монет."));
  966. return false;
  967. }
  968. } catch (Exception e) {
  969. }
  970.  
  971. sClan.setBalance(sClan.getBalance() - Main.config.getInt("settings.upgrade_cost"));
  972. }
  973. sClan.upgrade(1);
  974. sClan.broadcast(C.getPrefix() + C.c("&aКлан улучшен на +1 место, игроком &c" + s.getName() + "&a."));
  975. break;
  976. case "pvp":
  977. if (!s.hasPermission("Clan.pvp")) {
  978. s.sendMessage(C.getPrefix() + C.c("&cУ вас нет прав на управление кланом."));
  979. return false;
  980. }
  981. if (sClan == null) {
  982. s.sendMessage(C.getPrefix() + C.c("&cВы не состоите в клане."));
  983. return false;
  984. }
  985. if (!sClan.hasLeader(s.getName()) && !sClan.isModer(s.getName())) {
  986. s.sendMessage(C.getPrefix() + C.c(
  987. "&cВключать или выключать PvP между соклановцами может только лидер или модератор клана."));
  988. return false;
  989. }
  990. sClan.setPvP(!sClan.isPvP());
  991. sClan.broadcast(sClan.isPvP()
  992. ? C.getPrefix() + C.c("&aPvP было &6выключено&a, игроком &c" + s.getName() + "&a.")
  993. : C.getPrefix() + C.c("&aPvP было &cвключено&a, игроком &c" + s.getName() + "&a."));
  994. break;
  995. case "accept":
  996. if (!s.hasPermission("UralClans2.accept")) {
  997. s.sendMessage(C.getPrefix() + C.c("&cУ вас недостаточно прав."));
  998. return false;
  999. }
  1000.  
  1001. if (Request.get((Player) s) == null) {
  1002. s.sendMessage(C.getPrefix() + C.c("&cВам не прислано приглашений."));
  1003. return false;
  1004. }
  1005. Request.accept(Request.get((Player) s));
  1006. s.sendMessage(C.getPrefix() + C.c("&aВы приняли предложение вступить в клан."));
  1007. break;
  1008. case "deny":
  1009. if (!s.hasPermission("UralClans2.deny")) {
  1010. s.sendMessage(C.getPrefix() + C.c("&cУ вас недостаточно прав."));
  1011. return false;
  1012. }
  1013. if (Request.get((Player) s) == null) {
  1014. s.sendMessage(C.getPrefix() + C.c("&cВам не прислано приглашений."));
  1015. return false;
  1016. }
  1017.  
  1018. Request.deny(Request.get((Player) s));
  1019. s.sendMessage(C.getPrefix() + C.c("&aВы отклонили предложение вступить в клан."));
  1020. break;
  1021. case "top":
  1022. if (!s.hasPermission("Clan.top")) {
  1023. s.sendMessage(C.getPrefix() + C.c("&cУ вас недостаточно прав."));
  1024. return false;
  1025. }
  1026. if (Clan.clans.size() == 0) {
  1027. s.sendMessage(C.getPrefix() + C.c("&cНа сервере еще нет кланов."));
  1028. return false;
  1029. }
  1030. HashMap sorted = new HashMap();
  1031. Iterator i = Clan.clans.values().iterator();
  1032.  
  1033. while (i.hasNext()) {
  1034. Clan entries = (Clan) i.next();
  1035. sorted.put(entries, Integer.valueOf(entries.getMembers().size()));
  1036. }
  1037.  
  1038. LinkedList var24 = new LinkedList(sorted.entrySet());
  1039. Collections.sort(var24, new Comparator<Entry>() {
  1040.  
  1041. public int compare(Entry o1, Entry o2) {
  1042. return ((Integer) o2.getValue()).compareTo((Integer) o1.getValue());
  1043. }
  1044. });
  1045. var28 = 1;
  1046.  
  1047. for (Iterator var11 = var24.iterator(); var11.hasNext(); ++var28) {
  1048. Entry entry = (Entry) var11.next();
  1049. Clan c = (Clan) entry.getKey();
  1050.  
  1051. s.sendMessage(C.c("&7======================================="));
  1052. s.sendMessage(C.c("&eТоп 10 самых лучших кланов на сервере."));
  1053. s.sendMessage(" ");
  1054. s.sendMessage(C.c("&e&l" + var28 + ". &9&l| &3&lНазвание: &7" + c.getName() + " &9&l| &3&lЛидер: &7"
  1055. + c.getLeader() + " &9&l| &3&lУчастники: &7" + entry.getValue()));
  1056. s.sendMessage(C.c("&7======================================="));
  1057. if (var28 == 10) {
  1058. break;
  1059. }
  1060. }
  1061. default:
  1062. break;
  1063. }
  1064. }
  1065. return true;
  1066.  
  1067. }
  1068.  
  1069. private boolean isInt(String s) {
  1070. try {
  1071. Integer.parseInt(s);
  1072. return true;
  1073. } catch (NumberFormatException e) {
  1074. return false;
  1075. }
  1076. }
  1077. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement