Advertisement
Lisenochek

Untitled

Jan 5th, 2017
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.46 KB | None | 0 0
  1. package ru.lisenochek.ftclans.API;
  2.  
  3. import org.bukkit.Bukkit;
  4. import org.bukkit.command.Command;
  5. import org.bukkit.command.CommandExecutor;
  6. import org.bukkit.command.CommandSender;
  7. import org.bukkit.entity.Player;
  8. import ru.lisenochek.ftclans.clan.Clan;
  9. import ru.lisenochek.ftclans.clan.Member;
  10. import ru.lisenochek.ftclans.utils.C;
  11.  
  12. import java.util.Iterator;
  13.  
  14. public class CommandsAPI implements CommandExecutor {
  15.  
  16. public static Integer getPrice = API.config.getInt("settings.create_cost");
  17. public static Integer getUpgradePrice = API.config.getInt("settings.upgrade_cost");
  18. public static Integer getMinSimbols = API.config.getInt("settings.min_symbols");
  19. public static Integer getMaxSimbols = API.config.getInt("settings.max_symbols");
  20.  
  21. @Override
  22. public boolean onCommand(CommandSender s, Command cmd, String str, String[] args) {
  23.  
  24. if (!(s instanceof Player)) {
  25. s.sendMessage(C.c("&cКоманду используют только игроки!"));
  26. return true;
  27. }
  28.  
  29. Player p = (Player) s;
  30. Clan clan = Clan.getClanByName(p.getName());
  31.  
  32. if (!p.hasPermission("ftclans.user")) return true;
  33.  
  34. if (args.length == 0) {
  35.  
  36. if (clan == null) {
  37. p.sendMessage(C.c("&c&nВы не состоите в клане."));
  38. p.sendMessage(C.c("&7======================================="));
  39. p.sendMessage(C.c("&3/clan create &c(&eназвание клана&c) &a- основать клан."));
  40. p.sendMessage(C.c("&aЦена создание клана: &e" + getPrice + " &aмонет."));
  41. p.sendMessage(C.c("&7======================================="));
  42. } else {
  43. if (!clan.hasLeader(p.getName()) && !clan.isModer(p.getName())) {
  44. p.sendMessage(C.c("&6Помощь в клане. &d(Страница 1/2)"));
  45. p.sendMessage(C.c("&6Используйте &3/clan page &c(&eстраница&c)&6, для листания команд."));
  46. p.sendMessage(C.c("&7======================================="));
  47. p.sendMessage(C.c("&eКлановый чат: перед сообщением поставьте &c% &e."));
  48. p.sendMessage(C.c("&3/clan home &a- переместиться в клановый дом."));
  49. p.sendMessage(C.c("&3/clan deposit &c(&eкол-во&c] &a- вложить монет в казну клана."));
  50. p.sendMessage(C.c("&3/clan info &a- информация о клане."));
  51. p.sendMessage(C.c("&3/clan online &a- узнать онлайн соклановцев."));
  52. p.sendMessage(C.c("&3/clan list &a- список других кланов."));
  53. p.sendMessage(C.c("&7======================================="));
  54. } else {
  55. p.sendMessage(C.c("&6Помощь по созданию и управлению кланом. &d(Страница 1/4)"));
  56. p.sendMessage(C.c("&6Используйте &3/clan page &c(&eстраница&c)&6, для листания команд."));
  57. p.sendMessage(C.c("&7======================================="));
  58. p.sendMessage(C.c("&eКлановый чат: перед сообщением поставьте &c% &e."));
  59. p.sendMessage(C.c("&eЛидерский чат: перед сообщением поставьте &c* &e."));
  60. p.sendMessage(C.c("&3/clan addmoder &c(&eигрок&c) &a- повысить члена клана до модератора."));
  61. p.sendMessage(C.c("&3/clan delmoder &c(&eигрок&c) &a- понизить члена клана до соклановца."));
  62. p.sendMessage(C.c("&3/clan take &c(&eкол-во&c) &a- взять монет из клановой казны."));
  63. p.sendMessage(C.c("&3/clan sethome &a- установить клановый дом."));
  64. p.sendMessage(C.c("&7======================================="));
  65. }
  66. }
  67. return true;
  68. }
  69.  
  70. switch (args[0].toLowerCase()) {
  71.  
  72. case "page":
  73. if (clan == null) {
  74. p.sendMessage(C.getPrefix() + C.c("&cВы не состоите в клане!"));
  75. return true;
  76. }
  77.  
  78. if (args.length == 1) {
  79. p.sendMessage(C.getPrefix() + C.c("&cВы не указали страницу помощи!"));
  80. return true;
  81. }
  82.  
  83. switch (Integer.valueOf(args[1])) {
  84.  
  85. case 1:
  86. if (!clan.hasLeader(p.getName()) && !clan.isModer(p.getName())) {
  87. p.sendMessage(C.c("&6Помощь в клане. &d(Страница 1/2)"));
  88. p.sendMessage(C.c("&6Используйте &3/clan page &c(&eстраница&c)&6, для листания команд."));
  89. p.sendMessage(C.c("&7======================================="));
  90. p.sendMessage(C.c("&eКлановый чат: перед сообщением поставьте &c% &e."));
  91. p.sendMessage(C.c("&3/clan home &a- переместиться в клановый дом."));
  92. p.sendMessage(C.c("&3/clan deposit &c(&eкол-во&c] &a- вложить монет в казну клана."));
  93. p.sendMessage(C.c("&3/clan info &a- информация о клане."));
  94. p.sendMessage(C.c("&3/clan online &a- узнать онлайн соклановцев."));
  95. p.sendMessage(C.c("&3/clan list &a- список других кланов."));
  96. p.sendMessage(C.c("&7======================================="));
  97. } else {
  98. p.sendMessage(C.c("&6Помощь по созданию и управлению кланом. &d(Страница 1/4)"));
  99. p.sendMessage(C.c("&6Используйте &3/clan page &c(&eстраница&c)&6, для листания команд."));
  100. p.sendMessage(C.c("&7======================================="));
  101. p.sendMessage(C.c("&eКлановый чат: перед сообщением поставьте &c% &e."));
  102. p.sendMessage(C.c("&eЛидерский чат: перед сообщением поставьте &c* &e."));
  103. p.sendMessage(C.c("&3/clan addmoder &c(&eигрок&c) &a- повысить члена клана до модератора."));
  104. p.sendMessage(C.c("&3/clan delmoder &c(&eигрок&c) &a- понизить члена клана до соклановца."));
  105. p.sendMessage(C.c("&3/clan take &c(&eкол-во&c) &a- взять монет из клановой казны."));
  106. p.sendMessage(C.c("&3/clan sethome &a- установить клановый дом."));
  107. p.sendMessage(C.c("&7======================================="));
  108. }
  109. return true;
  110. case 2:
  111. if (!clan.hasLeader(p.getName()) && !clan.isModer(p.getName())) {
  112. p.sendMessage(C.c("&6Помощь в клане. &d(Страница 2/2)"));
  113. p.sendMessage(C.c("&6Используйте &3/clan page &c(&eстраница&c)&6, для листания команд."));
  114. p.sendMessage(C.c("&7======================================="));
  115. p.sendMessage(C.c("&3/clan top &a- топ &c10&a самых лучших кланов на сервере."));
  116. p.sendMessage(C.c("&3/clan leave &a- покинуть клан."));
  117. p.sendMessage(C.c("&7======================================="));
  118. } else {
  119. p.sendMessage(C.c(C.c("&6Помощь по созданию и управлению кланом. &d(Страница 2/4)")));
  120. p.sendMessage(C.c("&6Используйте &3/clan page &c(&eстраница&c)&6, для листания команд."));
  121. p.sendMessage(C.c(C.c("&7=======================================")));
  122. p.sendMessage(C.c("&3/clan removehome &a- удалить клановый дом."));
  123. p.sendMessage(C.c("&3/clan msg &a- сделать объявление в клане."));
  124. p.sendMessage(C.c("&3/clan invite &c(&eигрок&c) &a- пригласить игрока в клан."));
  125. p.sendMessage(C.c("&3/clan home &a- переместиться в клановый дом."));
  126. p.sendMessage(C.c("&3/clan kick &c(&eигрок&c) &a- выгнать игрока из клана."));
  127. p.sendMessage(C.c("&3/clan pvp &a- отключить или включить PvP между соклановцами."));
  128. p.sendMessage(C.c("&7======================================="));
  129. }
  130. return true;
  131. case 3:
  132. if (!clan.hasLeader(p.getName()) && !clan.isModer(p.getName())) {
  133. p.sendMessage(C.getPrefix() + C.c("&cУкажите страницу от 1 до 2!"));
  134. return true;
  135. } else {
  136. p.sendMessage(C.c("&6Помощь по созданию и управлению кланом. &d(Страница 3/4)"));
  137. p.sendMessage(C.c("&6Используйте &3/clan page &c(&eстраница&c)&6, для листания команд."));
  138. p.sendMessage(C.c("&7======================================="));
  139. p.sendMessage(C.c("&3/clan deposit &c(&ecкол-во&c) &a- вложить монет в казну клана."));
  140. p.sendMessage(C.c("&3/clan info &a- информация о клане."));
  141. p.sendMessage(C.c("&3/clan disband &a- расформировать клан."));
  142. p.sendMessage(C.c("&3/clan online &a- узнать онлайн соклановцев."));
  143. p.sendMessage(C.c("&3/clan list &a- список других кланов."));
  144. p.sendMessage(C.c("&3/clan top &a- 10 самых лучших кланов на сервере."));
  145. p.sendMessage(C.c("&7======================================="));
  146. }
  147. return true;
  148. case 4:
  149. if (!clan.hasLeader(p.getName()) && !clan.isModer(p.getName())) {
  150. p.sendMessage(C.getPrefix() + C.c("&cУкажите страницу от 1 до 2!"));
  151. return true;
  152. } else {
  153. p.sendMessage(C.c("&6Помощь по созданию и управлению кланом. &d(Страница 4/4)"));
  154. p.sendMessage(C.c("&6Используйте &3/clan page &c(&eстраница&c)&6, для листания команд."));
  155. p.sendMessage(C.c("&7======================================="));
  156. p.sendMessage(C.c("&3/clan upgrade &a- улучшить клан &c(&e+1 место в клане&c)&a."));
  157. p.sendMessage(C.c("&aЦена улучшения клана: &e" + getUpgradePrice + " &aмонет."));
  158.  
  159. if (!clan.hasLeader(p.getName()) && clan.isModer(s.getName())) {
  160. p.sendMessage(C.c("&3/clan leave &a- покинуть пост модератора клана."));
  161. } else {
  162. p.sendMessage(C.c("&3/clan leave &a- покинуть клан."));
  163. }
  164.  
  165. p.sendMessage(C.c("&3/clan leader &c(&eигрок&c) &a- передать лидерство клана другому игроку."));
  166. p.sendMessage(C.c("&7======================================="));
  167. }
  168. return true;
  169. default:
  170. return true;
  171. }
  172.  
  173. case "create":
  174. if (args.length == 1) {
  175. p.sendMessage(C.getPrefix() + C.c("&cУкажите название клана!"));
  176. return true;
  177. }
  178.  
  179. if (Clan.getClan(args[1]) != null) {
  180. p.sendMessage(C.getPrefix() + C.c("&cКлан с таким названием уже существует!"));
  181. return true;
  182. }
  183.  
  184. String clanName = args[1].replaceAll("&.", "");
  185.  
  186. if (clanName.length() > getMaxSimbols) {
  187. p.sendMessage(C.getPrefix() + C.c("&cМаксимальное количество символов в названии клана: &7" + getMaxSimbols + "&c!"));
  188. return true;
  189. }
  190.  
  191. if (clanName.length() < getMinSimbols) {
  192. p.sendMessage(C.getPrefix() + C.c("&cМинимальное количество символов в названии клана: &7" + getMinSimbols + "&c!"));
  193. return true;
  194. }
  195.  
  196. if (clan != null) {
  197. p.sendMessage(C.getPrefix() + C.c("&cВы уже состоите в клане!"));
  198. return true;
  199. }
  200.  
  201. try {
  202. if (API.getEconomy().getBalance(p) < getPrice) {
  203. p.sendMessage(C.getPrefix() + C.c("&cУ вас недостаточно монет для основания клана!"));
  204. return true;
  205. }
  206.  
  207. API.getEconomy().withdrawPlayer(p, getPrice);
  208. } catch (Exception e) {
  209. e.printStackTrace();
  210. }
  211.  
  212. Clan.create(args[1], p.getName());
  213. p.sendMessage(C.getPrefix() + C.c("&aКлан под названием &7«" + Clan.getClanByName(p.getName()).getName() + "&7» &aбыл основан!"));
  214. return true;
  215.  
  216. case "disband":
  217. if (clan == null) {
  218. p.sendMessage(C.getPrefix() + C.c("&cВы не состоите в клане!"));
  219. return true;
  220. }
  221.  
  222. if (!clan.hasLeader(p.getName())) {
  223. p.sendMessage(C.getPrefix() + C.c("&cВы не лидер клана, чтобы распускать клан."));
  224. return true;
  225. }
  226.  
  227. clan.broadcast(C.getPrefix() + C.c("&cКлан &7«" + Clan.getClanByName(p.getName()).getName() + "&7» &cбыл расформирован."));
  228. clan.disband();
  229. return true;
  230. case "msg":
  231. if (clan == null) {
  232. p.sendMessage(C.getPrefix() + C.c("&cВы не состоите в клане!"));
  233. return true;
  234. }
  235.  
  236. if (!clan.isModer(s.getName()) && !clan.hasLeader(s.getName())) {
  237. p.sendMessage(C.getPrefix() + C.c("&cСделать объявление может только лидер или модератор клана."));
  238. return false;
  239. }
  240.  
  241. StringBuilder message = new StringBuilder();
  242.  
  243. for (int i = 1; i < args.length; i++) message.append(args[i]).append(" ");
  244.  
  245. if (message.toString().length() <= 3) {
  246. s.sendMessage(C.getPrefix() + C.c("&cСообщение должно содержать не менее 3 символов."));
  247. return false;
  248. }
  249.  
  250. String colorMes = C.c("&9&l➾ &7&l&o");
  251.  
  252. if (clan.isModer(p.getName())) colorMes = C.c("&9&l➾ &a&l&o");
  253. if (clan.hasLeader(p.getName())) colorMes = C.c("&9&l➾ &6&l&o");
  254.  
  255. Iterator memberIterator = clan.getMembers().iterator();
  256.  
  257. while (memberIterator.hasNext()) {
  258.  
  259. Member m = (Member) memberIterator.next();
  260.  
  261. if (!Bukkit.getOfflinePlayer(m.getName()).isOnline()) continue;
  262.  
  263. Bukkit.getPlayer(m.getName()).sendMessage(C.c(C.getPrefix() + "&9&l| " + "&d[&b&lОбъявление&d] &9&l|&7&l " + s.getName() + colorMes + message.toString()));
  264. }
  265. return true;
  266. default:
  267. p.sendMessage(C.getPrefix() + C.c("&cНеизвестная подкоманда!"));
  268. return true;
  269. }
  270. }
  271. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement