SHARE
TWEET

Untitled

a guest Jul 21st, 2019 80 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top