Advertisement
Guest User

Untitled

a guest
Jul 21st, 2019
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.44 KB | None | 0 0
  1. Old Kits:
  2.  
  3. package com.planetgallium.kitpvp.game;
  4.  
  5. import java.io.File;
  6. import java.util.ArrayList;
  7. import java.util.Arrays;
  8. import java.util.HashMap;
  9. import java.util.List;
  10. import java.util.Map;
  11.  
  12. import org.bukkit.ChatColor;
  13. import org.bukkit.Material;
  14. import org.bukkit.configuration.ConfigurationSection;
  15. import org.bukkit.enchantments.Enchantment;
  16. import org.bukkit.entity.Player;
  17. import org.bukkit.inventory.ItemStack;
  18. import org.bukkit.inventory.meta.ItemMeta;
  19. import org.bukkit.inventory.meta.LeatherArmorMeta;
  20. import org.bukkit.potion.PotionEffect;
  21. import org.bukkit.potion.PotionEffectType;
  22.  
  23. import com.planetgallium.kitpvp.Game;
  24. import com.planetgallium.kitpvp.kit.Enchant;
  25. import com.planetgallium.kitpvp.kit.Item;
  26. import com.planetgallium.kitpvp.kit.Kit;
  27. import com.planetgallium.kitpvp.util.Config;
  28. import com.planetgallium.kitpvp.util.Materials;
  29. import com.planetgallium.kitpvp.util.Resource;
  30. import com.planetgallium.kitpvp.util.Resources;
  31. import com.planetgallium.kitpvp.util.Toolkit;
  32.  
  33. public class Kits {
  34.  
  35. private Game plugin;
  36. private Resources resources;
  37.  
  38. public Kits(Game plugin, Resources resources) {
  39. this.plugin = plugin;
  40. this.resources = resources;
  41. }
  42.  
  43. private Map<String, String> kits = new HashMap<String, String>();
  44.  
  45. public void createKit(String name, Player p) {
  46.  
  47. if (isKit(name)) {
  48.  
  49. p.sendMessage(Config.tr(resources.getMessages().getString("Messages.Error.Exists").replace("%prefix%", resources.getMessages().getString("Messages.General.Prefix"))));
  50. return;
  51.  
  52. }
  53.  
  54. resources.addKit(name);
  55.  
  56. Resource kitResource = resources.getKits(name);
  57. kitResource.set("Kit.Permission", "kp.kit." + name.toLowerCase());
  58. kitResource.set("Kit.Level", 0);
  59. kitResource.set("Kit.Cooldown", 0);
  60. kitResource.save();
  61.  
  62. if (p.getInventory().getHelmet() != null) {
  63.  
  64. saveItem(kitResource, p.getInventory().getHelmet(), "Inventory.Armor.Helmet", "&fHelmet");
  65.  
  66. // ItemStack helmet = p.getInventory().getHelmet();
  67. //
  68. // resources.getKits(name).set("Inventory.Armor.Helmet.Name", "&7Helmet");
  69. // resources.getKits(name).set("Inventory.Armor.Helmet.Item", helmet.getType().toString());
  70. // resources.getKits(name).save();
  71. //
  72. // if (helmet.getType() == Material.LEATHER_HELMET) {
  73. //
  74. // LeatherArmorMeta dyedHelmet = (LeatherArmorMeta) helmet.getItemMeta();
  75. //
  76. // resources.getKits(name).set("Inventory.Armor.Helmet.Dye.Red", dyedHelmet.getColor().getRed());
  77. // resources.getKits(name).set("Inventory.Armor.Helmet.Dye.Green", dyedHelmet.getColor().getGreen());
  78. // resources.getKits(name).set("Inventory.Armor.Helmet.Dye.Blue", dyedHelmet.getColor().getBlue());
  79. // resources.getKits(name).save();
  80. //
  81. // }
  82. //
  83. // if (helmet.getEnchantments().size() > 0) {
  84. //
  85. // for (Enchantment enchant : helmet.getEnchantments().keySet()) {
  86. // resources.getKits(name).set("Inventory.Armor.Helmet.Enchantments." + enchant.getName().toUpperCase(), helmet.getEnchantmentLevel(enchant));
  87. // resources.getKits(name).save();
  88. // }
  89. //
  90. // }
  91.  
  92. }
  93.  
  94. if (p.getInventory().getChestplate() != null) {
  95.  
  96. saveItem(kitResource, p.getInventory().getChestplate(), "Inventory.Armor.Chestplate", "&fChestplate");
  97.  
  98. // ItemStack chestplate = p.getInventory().getChestplate();
  99. //
  100. // resources.getKits(name).set("Inventory.Armor.Chestplate.Name", "&7Chestplate");
  101. // resources.getKits(name).set("Inventory.Armor.Chestplate.Item", chestplate.getType().toString());
  102. // resources.getKits(name).save();
  103. //
  104. // if (chestplate.getType() == Material.LEATHER_CHESTPLATE) {
  105. //
  106. // LeatherArmorMeta dyedChestplate = (LeatherArmorMeta) chestplate.getItemMeta();
  107. //
  108. // resources.getKits(name).set("Inventory.Armor.Chestplate.Dye.Red", dyedChestplate.getColor().getRed());
  109. // resources.getKits(name).set("Inventory.Armor.Chestplate.Dye.Green", dyedChestplate.getColor().getGreen());
  110. // resources.getKits(name).set("Inventory.Armor.Chestplate.Dye.Blue", dyedChestplate.getColor().getBlue());
  111. // resources.getKits(name).save();
  112. //
  113. // }
  114. //
  115. // if (chestplate.getEnchantments().size() > 0) {
  116. //
  117. // for (Enchantment enchant : chestplate.getEnchantments().keySet()) {
  118. // resources.getKits(name).set("Inventory.Armor.Chestplate.Enchantments." + enchant.getName().toUpperCase(), chestplate.getEnchantmentLevel(enchant));
  119. // resources.getKits(name).save();
  120. // }
  121. //
  122. // }
  123.  
  124. }
  125.  
  126. if (p.getInventory().getLeggings() != null) {
  127.  
  128. saveItem(kitResource, p.getInventory().getLeggings(), "Inventory.Armor.Leggings", "&fLeggings");
  129.  
  130. // ItemStack leggings = p.getInventory().getLeggings();
  131. //
  132. // resources.getKits(name).set("Inventory.Armor.Leggings.Name", "&7Leggings");
  133. // resources.getKits(name).set("Inventory.Armor.Leggings.Item", leggings.getType().toString());
  134. // resources.getKits(name).save();
  135. //
  136. // if (leggings.getType() == Material.LEATHER_LEGGINGS) {
  137. //
  138. // LeatherArmorMeta dyedLeggings = (LeatherArmorMeta) leggings.getItemMeta();
  139. //
  140. // resources.getKits(name).set("Inventory.Armor.Leggings.Dye.Red", dyedLeggings.getColor().getRed());
  141. // resources.getKits(name).set("Inventory.Armor.Leggings.Dye.Green", dyedLeggings.getColor().getGreen());
  142. // resources.getKits(name).set("Inventory.Armor.Leggings.Dye.Blue", dyedLeggings.getColor().getBlue());
  143. // resources.getKits(name).save();
  144. //
  145. // }
  146. //
  147. // if (leggings.getEnchantments().size() > 0) {
  148. //
  149. // for (Enchantment enchant : leggings.getEnchantments().keySet()) {
  150. // resources.getKits(name).set("Inventory.Armor.Leggings.Enchantments." + enchant.getName().toUpperCase(), leggings.getEnchantmentLevel(enchant));
  151. // resources.getKits(name).save();
  152. // }
  153. //
  154. // }
  155.  
  156. }
  157.  
  158. if (p.getInventory().getBoots() != null) {
  159.  
  160. saveItem(kitResource, p.getInventory().getBoots(), "Inventory.Armor.Boots", "&fBoots");
  161.  
  162. // ItemStack boots = p.getInventory().getBoots();
  163. //
  164. // resources.getKits(name).set("Inventory.Armor.Boots.Name", "&7Boots");
  165. // resources.getKits(name).set("Inventory.Armor.Boots.Item", boots.getType().toString());
  166. // resources.getKits(name).save();
  167. //
  168. // if (boots.getType() == Material.LEATHER_BOOTS) {
  169. //
  170. // LeatherArmorMeta dyedBoots = (LeatherArmorMeta) boots.getItemMeta();
  171. //
  172. // resources.getKits(name).set("Inventory.Armor.Boots.Dye.Red", dyedBoots.getColor().getRed());
  173. // resources.getKits(name).set("Inventory.Armor.Boots.Dye.Green", dyedBoots.getColor().getGreen());
  174. // resources.getKits(name).set("Inventory.Armor.Boots.Dye.Blue", dyedBoots.getColor().getBlue());
  175. // resources.getKits(name).save();
  176. //
  177. // }
  178. //
  179. // if (boots.getEnchantments().size() > 0) {
  180. //
  181. // for (Enchantment enchant : boots.getEnchantments().keySet()) {
  182. // resources.getKits(name).set("Inventory.Armor.Boots.Enchantments." + enchant.getName().toUpperCase(), boots.getEnchantmentLevel(enchant));
  183. // resources.getKits(name).save();
  184. // }
  185. //
  186. // }
  187.  
  188. }
  189.  
  190. // INVENTORY ITEMS
  191. for (int i = 0; i < 36; i++) {
  192.  
  193. if (p.getInventory().getItem(i) != null) {
  194.  
  195. resources.getKits(name).set("Inventory.Items." + i + ".Name" , "&7Item");
  196. resources.getKits(name).set("Inventory.Items." + i + ".Item", p.getInventory().getItem(i).getType().toString());
  197. resources.getKits(name).set("Inventory.Items." + i + ".Amount", p.getInventory().getItem(i).getAmount());
  198. resources.getKits(name).save();
  199.  
  200. if (p.getInventory().getItem(i).getEnchantments().size() > 0) {
  201.  
  202. for (Enchantment enchant : p.getInventory().getItem(i).getEnchantments().keySet()) {
  203. resources.getKits(name).set("Inventory.Items." + i + ".Enchantments." + enchant.getName().toUpperCase(), p.getInventory().getItem(i).getEnchantmentLevel(enchant));
  204. resources.getKits(name).save();
  205. }
  206.  
  207. }
  208.  
  209. }
  210.  
  211. }
  212.  
  213. // POTION EFFECTS
  214. for (PotionEffect effect : p.getActivePotionEffects()) {
  215.  
  216. resources.getKits(name).set("Potions." + effect.getType().getName() + ".Level", effect.getAmplifier() + 1);
  217. resources.getKits(name).set("Potions." + effect.getType().getName() + ".Duration", effect.getDuration() / 20);
  218. resources.getKits(name).save();
  219.  
  220. }
  221.  
  222. // DEFAULT ABILITY
  223. resources.getKits(name).set("Ability.Activator.Name", "&aDefault Ability &7(Must be modified in kit file)");
  224. resources.getKits(name).set("Ability.Activator.Item", "BEDROCK");
  225. resources.getKits(name).set("Ability.Message.Message", "%prefix% &7You have used your ability.");
  226. resources.getKits(name).set("Ability.Message.Enabled", true);
  227. resources.getKits(name).set("Ability.Sound.Sound", "FIZZ");
  228. resources.getKits(name).set("Ability.Sound.Pitch", 1);
  229. resources.getKits(name).set("Ability.Sound.Enabled", true);
  230. resources.getKits(name).set("Ability.Potions.SPEED.Level", 1);
  231. resources.getKits(name).set("Ability.Potions.SPEED.Duration", 10);
  232. resources.getKits(name).set("Ability.Commands.Commands", new String[]{"console: This command is run from the console, you can use %player%", "player: This command is run from the player, you can use %player%"});
  233. resources.getKits(name).set("Ability.Commands.Enabled", false);
  234. resources.getKits(name).save();
  235.  
  236. p.sendMessage(Config.tr(resources.getMessages().getString("Messages.Commands.Create").replace("%kit%", name)));
  237.  
  238. }
  239.  
  240. public void giveKit(String name, Player p) {
  241.  
  242. // GENERAL
  243. if (!isKit(name)) {
  244.  
  245. p.sendMessage(Config.tr(resources.getMessages().getString("Messages.Error.Lost")));
  246. return;
  247.  
  248. }
  249.  
  250. if (!p.hasPermission(resources.getKits(name).getString("Kit.Permission"))) {
  251.  
  252. p.sendMessage(Config.tr(resources.getMessages().getString("Messages.General.Permission")));
  253. return;
  254.  
  255. }
  256.  
  257. if (!(Game.getInstance().getArena().getLevels().getLevel(p.getUniqueId()) >= resources.getKits(name).getInt("Kit.Level"))) {
  258.  
  259. p.sendMessage(Config.tr(resources.getMessages().getString("Messages.Other.Needed").replace("%level%", String.valueOf(resources.getKits(name).getInt("Kit.Level")))));
  260. return;
  261.  
  262. }
  263.  
  264. Kit kit = new Kit();
  265. kit.setName(name);
  266.  
  267. setKit(p.getName(), name);
  268.  
  269. // ARMOR
  270. if (resources.getKits(kit.getName()).contains("Inventory.Armor")) {
  271.  
  272. if (resources.getKits(kit.getName()).contains("Inventory.Armor.Helmet.Item")) {
  273. kit.setHelmet(new Item(Material.valueOf(resources.getKits(kit.getName()).getString("Inventory.Armor.Helmet.Item").toUpperCase()), Toolkit.stringToColor(kit.getName(), "Inventory.Armor.Helmet.Dye"), resources.getKits(kit.getName()).getString("Inventory.Armor.Helmet.Name"), resources.getKits(kit.getName()).getStringList("Inventory.Armor.Helmet.Lore"), new Enchant(kit.getName(), "Inventory.Armor.Helmet"), 1));
  274. }
  275.  
  276. if (resources.getKits(kit.getName()).contains("Inventory.Armor.Chestplate.Item")) {
  277. kit.setChestplate(new Item(Material.valueOf(resources.getKits(kit.getName()).getString("Inventory.Armor.Chestplate.Item").toUpperCase()), Toolkit.stringToColor(kit.getName(), "Inventory.Armor.Chestplate.Dye"), resources.getKits(kit.getName()).getString("Inventory.Armor.Chestplate.Name"), resources.getKits(kit.getName()).getStringList("Inventory.Armor.Chestplate.Lore"), new Enchant(kit.getName(), "Inventory.Armor.Chestplate"), 1));
  278. }
  279.  
  280. if (resources.getKits(kit.getName()).contains("Inventory.Armor.Leggings.Item")) {
  281. kit.setLeggings(new Item(Material.valueOf(resources.getKits(kit.getName()).getString("Inventory.Armor.Leggings.Item").toUpperCase()), Toolkit.stringToColor(kit.getName(), "Inventory.Armor.Leggings.Dye"), resources.getKits(kit.getName()).getString("Inventory.Armor.Leggings.Name"), resources.getKits(kit.getName()).getStringList("Inventory.Armor.Leggings.Lore"), new Enchant(kit.getName(), "Inventory.Armor.Leggings"), 1));
  282. }
  283.  
  284. if (resources.getKits(kit.getName()).contains("Inventory.Armor.Boots.Item")) {
  285. kit.setBoots(new Item(Material.valueOf(resources.getKits(kit.getName()).getString("Inventory.Armor.Boots.Item").toUpperCase()), Toolkit.stringToColor(kit.getName(), "Inventory.Armor.Boots.Dye"), resources.getKits(kit.getName()).getString("Inventory.Armor.Boots.Name"), resources.getKits(kit.getName()).getStringList("Inventory.Armor.Boots.Lore"), new Enchant(kit.getName(), "Inventory.Armor.Boots"), 1));
  286. }
  287.  
  288. }
  289.  
  290. // INVENTORY ITEMS
  291. ConfigurationSection items = resources.getKits(kit.getName()).getConfigurationSection("Inventory.Items");
  292.  
  293. for (String identifier : items.getKeys(false)) {
  294.  
  295. if (!identifier.equals("Fill")) {
  296.  
  297. kit.addItem(new Item(Material.valueOf(resources.getKits(kit.getName()).getString("Inventory.Items." + identifier + ".Item").toUpperCase()), resources.getKits(kit.getName()).getString("Inventory.Items." + identifier + ".Name"), resources.getKits(kit.getName()).getStringList("Inventory.Items." + identifier + ".Lore"), new Enchant(kit.getName(), "Inventory.Items." + identifier), resources.getKits(kit.getName()).getInt("Inventory.Items." + identifier + ".Amount")), Integer.valueOf(identifier));
  298.  
  299. }
  300.  
  301. }
  302.  
  303. // POTION EFFECTS
  304. if (resources.getKits(kit.getName()).contains("Potions")) {
  305.  
  306. ConfigurationSection potions = resources.getKits(kit.getName()).getConfigurationSection("Potions");
  307.  
  308. for (String identifier : potions.getKeys(false)) {
  309.  
  310. kit.addEffect(new PotionEffect(PotionEffectType.getByName(identifier.toUpperCase()), resources.getKits(kit.getName()).getInt("Potions." + identifier + ".Duration"), resources.getKits(kit.getName()).getInt("Potions." + identifier + ".Level") - 1));
  311.  
  312. }
  313.  
  314. }
  315.  
  316. // FILL ITEM
  317. if (resources.getKits(kit.getName()).contains("Inventory.Items.Fill")) {
  318.  
  319. kit.setFill(new Item(Material.valueOf(resources.getKits(kit.getName()).getString("Inventory.Items.Fill.Item").toUpperCase()), resources.getKits(kit.getName()).getString("Inventory.Items.Fill.Name"), resources.getKits(kit.getName()).getStringList("Inventory.Items.Fill.Lore"), new Enchant(kit.getName(), "Inventory.Items.Fill"), resources.getKits(kit.getName()).getInt("Inventory.Items.Fill.Amount")));
  320.  
  321. }
  322.  
  323. kit.applyKit(p);
  324.  
  325. }
  326.  
  327. private void saveItem(Resource resource, ItemStack item, String path, String backupName) {
  328.  
  329. if (item != null) {
  330.  
  331. ItemMeta meta = item.getItemMeta();
  332. String name = backupName;
  333. List<String> lore = null;
  334.  
  335. if (meta != null) {
  336.  
  337. if (meta.hasDisplayName()) {
  338. name = Config.tr(meta.getDisplayName());
  339. }
  340.  
  341. if (meta.hasLore()) {
  342. lore = new ArrayList<String>(meta.getLore());
  343. lore.replaceAll(s -> ChatColor.translateAlternateColorCodes('&', s));
  344. }
  345.  
  346. }
  347.  
  348. resource.set(path + ".Name", name);
  349. resource.set(path + ".Lore", lore); // setting this to null may cause problems look into this later
  350. resource.set(path + ".Item", item.getType().toString());
  351. resource.set(path + ".Amount", item.getAmount());
  352. resource.save();
  353.  
  354. if (meta instanceof LeatherArmorMeta) {
  355.  
  356. LeatherArmorMeta dyedMeta = (LeatherArmorMeta) meta;
  357. resource.set(path + ".Dye.Red", dyedMeta.getColor().getRed());
  358. resource.set(path + ".Dye.Green", dyedMeta.getColor().getGreen());
  359. resource.set(path + ".Dye.Blue", dyedMeta.getColor().getBlue());
  360. resource.save();
  361.  
  362. }
  363.  
  364. if (item.getEnchantments().size() > 0) {
  365.  
  366. for (Enchantment enchant : item.getEnchantments().keySet()) {
  367. resource.set(path + ".Enchantments." + enchant.getName().toUpperCase(), item.getEnchantmentLevel(enchant));
  368. resource.save();
  369. }
  370.  
  371. }
  372.  
  373. }
  374.  
  375. }
  376.  
  377. private void setKit(String username, String kit) {
  378.  
  379. if (!kits.containsKey(username)) {
  380.  
  381. kits.put(username, kit);
  382.  
  383. }
  384.  
  385. }
  386.  
  387. public void clearKit(String username) {
  388.  
  389. if (hasKit(username)) {
  390.  
  391. kits.remove(username);
  392.  
  393. }
  394.  
  395. }
  396.  
  397. public String getKit(String username) {
  398.  
  399. if (hasKit(username)) {
  400.  
  401. return kits.get(username);
  402.  
  403. }
  404.  
  405. return "None";
  406.  
  407. }
  408.  
  409. public boolean hasKit(String username) {
  410.  
  411. return kits.containsKey(username);
  412.  
  413. }
  414.  
  415. public boolean isKit(String kit) {
  416.  
  417. return getList().contains(kit + ".yml");
  418.  
  419. }
  420.  
  421. public String getPath() {
  422.  
  423. return plugin.getDataFolder().getAbsolutePath() + "/kits";
  424.  
  425. }
  426.  
  427. public List<String> getList() {
  428.  
  429. File folder = new File(plugin.getDataFolder().getAbsolutePath() + "/kits");
  430.  
  431. return new ArrayList<String>(Arrays.asList(folder.list()));
  432.  
  433. }
  434.  
  435. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement