Advertisement
Lisenochek

Untitled

Jan 31st, 2017
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.02 KB | None | 0 0
  1. package ru.lisenochek.fgmrealistic;
  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 org.bukkit.inventory.ItemStack;
  9. import ru.lisenochek.fgmrealistic.crate.CrateList;
  10. import ru.lisenochek.fgmrealistic.diseases.DiseaseManager;
  11. import ru.lisenochek.fgmrealistic.lists.ListItems;
  12. import ru.lisenochek.fgmrealistic.statusBar.GetEvents;
  13. import ru.lisenochek.fgmrealistic.utils.C;
  14.  
  15. import java.util.Arrays;
  16.  
  17. public class CommandAPI implements CommandExecutor {
  18.  
  19. @Override
  20. public boolean onCommand(CommandSender s, Command cmd, String str, String[] args) {
  21.  
  22. if (args.length == 0) {
  23. C.setMultiText(s, Arrays.asList(
  24. "&6&lRealistic &aплагин.",
  25. "&aВерсия: &c1.6&a.",
  26. "&aРазработано &6&lFoxyTale&a. Лицензия FGM.",
  27. "&8-----------------------------------------",
  28. "&7/realistic help &a- открыть меню помощи.",
  29. "&7/realistic rtp &a- телепортироваться в случайную точку.",
  30. "&8-----------------------------------------"
  31. ));
  32.  
  33. if (!s.isOp()) return true;
  34. C.setMultiText(s, Arrays.asList(
  35. "&7/realistic give (предмет) (игрок) &a- получить предмет из плагина.",
  36. "&7/realistic crate (название ящика) (игрок) &a- призвать ящик с припасами.",
  37. "&7/realistic disease (название болезни) (игрок) &a- выдать себе болезнь.",
  38. "&7/realistic cratetime (время в секундах) &a- постаить новое время сброса ящиков.",
  39. "&7/realistic udtime (время в секундах) &a- поставить новое время всемирного очищения.",
  40. "&7/realistic status &a- статус плагина.",
  41. "&8-----------------------------------------"
  42. ));
  43. return true;
  44. }
  45.  
  46. switch (args[0].toLowerCase()) {
  47. case "give": {
  48. if (!s.isOp()) {
  49. s.sendMessage(C.getPrefix() + C.c("&cУ вас нет прав для этого!"));
  50. return true;
  51. }
  52.  
  53. if (args.length < 2) {
  54. C.setMultiText(s, Arrays.asList(
  55. C.getPrefix() + "&cМало аргументов",
  56. "",
  57. "&aИспользование: /realistic give (название предмета) (игрок)"
  58. ));
  59. return true;
  60. }
  61.  
  62. ItemStack stack = ListItems.getItem(args[1]);
  63.  
  64. if (stack == null) {
  65. C.setMultiText(s, Arrays.asList(
  66. C.getPrefix() + "&cТакого предмета не существует!",
  67. "",
  68. "&aДоступные предметы: &7rock, branch, axe, dirtybandage, bandage,",
  69. "&7splint, commonsignal, strangesignal, bioglue, antibio, tornsweater,",
  70. "&7explosives, c4"
  71. ));
  72. return true;
  73. }
  74.  
  75. if (args.length == 3) {
  76.  
  77. Player p = Bukkit.getPlayer(args[2]);
  78.  
  79. if (p == null) {
  80. s.sendMessage(C.getPrefix() + C.c("&cИгрок не в сети!"));
  81. return true;
  82. }
  83.  
  84. if (p.getInventory().firstEmpty() == -1) {
  85. s.sendMessage(C.getPrefix() + C.c("&cИнвентарь игрока заполнен!"));
  86. return true;
  87. }
  88.  
  89. p.getInventory().addItem(stack);
  90. s.sendMessage(C.getPrefix() + C.c("&aВы выдали &3\"" + stack.getItemMeta().getDisplayName() + "&3\" &aигроку &6" + p.getName() + "&a!"));
  91. return true;
  92. }
  93.  
  94. if (s == Bukkit.getConsoleSender()) {
  95. s.sendMessage(C.getPrefix() + C.c("&cВы консоль!"));
  96. return true;
  97. }
  98.  
  99. Player player = (Player) s;
  100.  
  101. if (player.getInventory().firstEmpty() == -1) {
  102. player.sendMessage(C.getPrefix() + C.c("&cУ вас заполнен инвентарь!"));
  103. return true;
  104. }
  105.  
  106. player.getInventory().addItem(stack);
  107. s.sendMessage(C.getPrefix() + C.c("&aВы получили &3\"" + stack.getItemMeta().getDisplayName() + "&3\"&a!"));
  108. return true;
  109. }
  110.  
  111. case "crate": {
  112. if (!s.isOp()) {
  113. s.sendMessage(C.getPrefix() + C.c("&cУ вас нет прав для этого!"));
  114. return true;
  115. }
  116.  
  117. if (args.length < 2) {
  118. C.setMultiText(s, Arrays.asList(
  119. C.getPrefix() + "&cМало аргументов",
  120. "",
  121. "&aИспользование: /realistic crate (название ящика) (игрок)"
  122. ));
  123. return true;
  124. }
  125.  
  126. if (args.length == 3) {
  127.  
  128. Player p = Bukkit.getPlayer(args[2]);
  129.  
  130. if (p == null) {
  131. s.sendMessage(C.getPrefix() + C.c("&cИгрок не в сети!"));
  132. return true;
  133. }
  134.  
  135. switch (args[1].toLowerCase()) {
  136. case "common": {
  137. CrateList.getCommonCrate(p, p.getLocation());
  138. s.sendMessage(C.getPrefix() + C.c("&aВы успешно сбросили обычный ящик!"));
  139. return true;
  140. }
  141.  
  142. case "strange": {
  143. CrateList.getStrangeCrate(p.getLocation());
  144. s.sendMessage(C.getPrefix() + C.c("&aВы успешно сбросили странный ящик!"));
  145. return true;
  146. }
  147.  
  148. default: {
  149. C.setMultiText(s, Arrays.asList(
  150. C.getPrefix() + "&cНеправильное название ящика!",
  151. "",
  152. "&aДоступные ящики: &7common, strange"
  153. ));
  154. return true;
  155. }
  156. }
  157. }
  158.  
  159. if (s == Bukkit.getConsoleSender()) {
  160. s.sendMessage(C.getPrefix() + C.c("&cВы консоль!"));
  161. return true;
  162. }
  163.  
  164. Player player = (Player) s;
  165.  
  166. switch (args[1].toLowerCase()) {
  167. case "common": {
  168. CrateList.getCommonCrate(player, player.getLocation());
  169. s.sendMessage(C.getPrefix() + C.c("&aВы успешно сбросили обычный ящик игроку &6" + player.getName() + "&a!"));
  170. return true;
  171. }
  172.  
  173. case "strange": {
  174. CrateList.getStrangeCrate(player.getLocation());
  175. s.sendMessage(C.getPrefix() + C.c("&aВы успешно сбросили странный ящик игроку &6" + player.getName() + "&a!"));
  176. return true;
  177. }
  178.  
  179. default: {
  180. C.setMultiText(s, Arrays.asList(
  181. C.getPrefix() + "&cНеправильное название ящика!",
  182. "",
  183. "&aДоступные ящики: &7common, strange"
  184. ));
  185. return true;
  186. }
  187. }
  188. }
  189.  
  190. case "disease": {
  191. if (!s.isOp()) {
  192. s.sendMessage(C.getPrefix() + C.c("&cУ вас нет прав для этого!"));
  193. return true;
  194. }
  195.  
  196. if (args.length < 2) {
  197. C.setMultiText(s, Arrays.asList(
  198. C.getPrefix() + "&cМало аргументов",
  199. "",
  200. "&aИспользование: /realistic disease (название болезни) (игрок)"
  201. ));
  202. return true;
  203. }
  204.  
  205. if (args.length == 3) {
  206.  
  207. Player p = Bukkit.getPlayer(args[2]);
  208.  
  209. if (p == null) {
  210. s.sendMessage(C.getPrefix() + C.c("&cИгрок не в сети!"));
  211. return true;
  212. }
  213.  
  214. switch (args[1].toLowerCase()) {
  215. case "blooding": {
  216. if (DiseaseManager.hasBlood(p)) {
  217. s.sendMessage(C.getPrefix() + C.c("&cИгрок уже имеет кровотечение!"));
  218. return true;
  219. }
  220.  
  221. DiseaseManager.setBlood(p);
  222. s.sendMessage(C.getPrefix() + C.c("&aВы успешно пустили кровь игроку &6" + p.getName() + "&a!"));
  223. return true;
  224. }
  225.  
  226. case "bones": {
  227. if (DiseaseManager.hasBrokenBones(p)) {
  228. s.sendMessage(C.getPrefix() + C.c("&cИгрок уже сломал ноги!"));
  229. return true;
  230. }
  231.  
  232. DiseaseManager.setBrokenBones(p);
  233. s.sendMessage(C.getPrefix() + C.c("&aВы успешно сломали ноги игроку &6" + p.getName() + "&a!"));
  234. return true;
  235. }
  236.  
  237. case "diseasex": {
  238. if (DiseaseManager.hasDiseaseX(p)) {
  239. s.sendMessage(C.getPrefix() + C.c("&cИгрок уже болеет болезнью X!"));
  240. return true;
  241. }
  242.  
  243. DiseaseManager.setDiseaseX(p);
  244. return true;
  245. }
  246.  
  247. case "none": {
  248. if (!DiseaseManager.hasBlood(p) && !DiseaseManager.hasBrokenBones(p) && !DiseaseManager.hasDiseaseX(p)) {
  249. s.sendMessage(C.getPrefix() + C.c("&cИгрок здоровый!"));
  250. return true;
  251. }
  252.  
  253. if (DiseaseManager.hasBlood(p)) DiseaseManager.removeBlood(p);
  254. if (DiseaseManager.hasBrokenBones(p)) DiseaseManager.removeBrokenBones(p);
  255. if (DiseaseManager.hasDiseaseX(p)) DiseaseManager.removeDiseaseX(p);
  256.  
  257. s.sendMessage(C.getPrefix() + C.c("&aВы успешно сняли все болезни с игрока &6" + p.getName() + "&a!"));
  258. return true;
  259. }
  260.  
  261. default: {
  262. C.setMultiText(s, Arrays.asList(
  263. C.getPrefix() + "&cТакой болезни не существует!",
  264. "",
  265. "&aДоступные болезни: blooding, bones, diseasex, none"
  266. ));
  267. return true;
  268. }
  269. }
  270. }
  271.  
  272. if (s == Bukkit.getConsoleSender()) {
  273. s.sendMessage(C.getPrefix() + C.c("&cВы консоль!"));
  274. return true;
  275. }
  276.  
  277. Player p = (Player) s;
  278.  
  279. switch (args[1].toLowerCase()) {
  280. case "blooding": {
  281. if (DiseaseManager.hasBlood(p)) {
  282. s.sendMessage(C.getPrefix() + C.c("&cВы уже имеете кровотечение!"));
  283. return true;
  284. }
  285.  
  286. DiseaseManager.setBlood(p);
  287. s.sendMessage(C.getPrefix() + C.c("&aВы успешно пустили кровь!"));
  288. return true;
  289. }
  290.  
  291. case "bones": {
  292. if (DiseaseManager.hasBrokenBones(p)) {
  293. s.sendMessage(C.getPrefix() + C.c("&cВы уже сломали ноги!"));
  294. return true;
  295. }
  296.  
  297. DiseaseManager.setBrokenBones(p);
  298. s.sendMessage(C.getPrefix() + C.c("&aВы успешно сломали ноги!"));
  299. return true;
  300. }
  301.  
  302. case "diseasex": {
  303. if (DiseaseManager.hasDiseaseX(p)) {
  304. s.sendMessage(C.getPrefix() + C.c("&cВы уже болеете болезнью X!"));
  305. return true;
  306. }
  307.  
  308. DiseaseManager.setDiseaseX(p);
  309. return true;
  310. }
  311.  
  312. case "none": {
  313. if (!DiseaseManager.hasBlood(p) && !DiseaseManager.hasBrokenBones(p) && !DiseaseManager.hasDiseaseX(p)) {
  314. s.sendMessage(C.getPrefix() + C.c("&cВы здоровый!"));
  315. return true;
  316. }
  317.  
  318. if (DiseaseManager.hasBlood(p)) DiseaseManager.removeBlood(p);
  319. if (DiseaseManager.hasBrokenBones(p)) DiseaseManager.removeBrokenBones(p);
  320. if (DiseaseManager.hasDiseaseX(p)) DiseaseManager.removeDiseaseX(p);
  321.  
  322. s.sendMessage(C.getPrefix() + C.c("&aВы успешно сняли все болезни!"));
  323. return true;
  324. }
  325.  
  326. default: {
  327. C.setMultiText(s, Arrays.asList(
  328. C.getPrefix() + "&cТакой болезни не существует!",
  329. "",
  330. "&aДоступные болезни: blooding, bones, diseasex, none"
  331. ));
  332. return true;
  333. }
  334. }
  335. }
  336.  
  337. case "cratetime": {
  338. if (!s.isOp()) {
  339. s.sendMessage(C.getPrefix() + C.c("&cУ вас нету прав для этого!"));
  340. return true;
  341. }
  342.  
  343. if (args.length < 2) {
  344. s.sendMessage(C.getPrefix() + C.c("&cВы не указали новое время сброса ящиков!"));
  345. return true;
  346. }
  347.  
  348. try {
  349. int newTime = Integer.parseInt(args[1]);
  350.  
  351. if (newTime <= 0) {
  352. s.sendMessage(C.getPrefix() + C.c("&cЧисло не может быть отрицательным или равно 0!"));
  353. return true;
  354. }
  355.  
  356. GetEvents.crateTime = newTime;
  357. s.sendMessage(C.getPrefix() + C.c("&aВы успешно указали новое время сброса на &7" + newTime + " &aсек. !"));
  358. return true;
  359. } catch (NumberFormatException ignore) {
  360. s.sendMessage(C.getPrefix() + C.c("&cВремя должно быть числом!"));
  361. return true;
  362. }
  363. }
  364.  
  365. case "udtime": {
  366. if (!s.isOp()) {
  367. s.sendMessage(C.getPrefix() + C.c("&cУ вас нету прав для этого!"));
  368. return true;
  369. }
  370.  
  371. if (args.length < 2) {
  372. s.sendMessage(C.getPrefix() + C.c("&cВы не указали новое время всемирного очищения!"));
  373. return true;
  374. }
  375.  
  376. try {
  377. int newTime = Integer.parseInt(args[1]);
  378.  
  379. if (newTime <= 0) {
  380. s.sendMessage(C.getPrefix() + C.c("&cЧисло не может быть отрицательным или равно 0!"));
  381. return true;
  382. }
  383.  
  384. GetEvents.unDiseaseTime = newTime;
  385. s.sendMessage(C.getPrefix() + C.c("&aВы успешно указали новое время всемирного очищения на &7" + newTime + " &aсек. !"));
  386. return true;
  387. } catch (NumberFormatException ignore) {
  388. s.sendMessage(C.getPrefix() + C.c("&cВремя должно быть числом!"));
  389. return true;
  390. }
  391. }
  392.  
  393. case "status": {
  394. if (!s.isOp()) {
  395. s.sendMessage(C.getPrefix() + C.c("&cУ вас нету прав для этого!"));
  396. return true;
  397. }
  398.  
  399. C.setMultiText(s, Arrays.asList(
  400. C.getPrefix() + "&aСтатистика режима:",
  401. "",
  402. "&eИгроков на сервере: &c" + Bukkit.getOnlinePlayers().size() + "&e.",
  403. "",
  404. "&eВремя до вылета самолетов: &c" + GetEvents.getCrateTimeString() + "&e.",
  405. "&eВремя до всемирного очищения: &c" + GetEvents.getUndiseaseTimeString() + "&e.",
  406. "",
  407. "&eЗа время работы сервера было сброшено ящиков самолетами: &c" + GetEvents.recordCrateUptime + "&e.",
  408. "&eЗа время работы сервера было всемирных очищений: &c" + GetEvents.recordUnDiseaseUptime + "&e."
  409. ));
  410. return true;
  411. }
  412.  
  413. case "rtp": {
  414. if (s == Bukkit.getConsoleSender()) {
  415. s.sendMessage(C.getPrefix() + C.c("&cВы консоль!"));
  416. return true;
  417. }
  418.  
  419. Player p = (Player) s;
  420. RandomTeleport.setTeleport(p);
  421. return true;
  422. }
  423.  
  424. case "help": {
  425. if (s == Bukkit.getConsoleSender()) {
  426. s.sendMessage(C.getPrefix() + C.c("&cВы консоль!"));
  427. return true;
  428. }
  429.  
  430. Player p = (Player) s;
  431. GuideGUI.getInventory(p);
  432. return true;
  433. }
  434.  
  435. default: {
  436. s.sendMessage(C.getPrefix() + C.c("&cНеизвестная подкоманда!"));
  437. return true;
  438. }
  439. }
  440. }
  441. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement