Advertisement
Lisenochek

Untitled

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