Advertisement
Lisenochek

Untitled

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