Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Old Kits:
- package com.planetgallium.kitpvp.game;
- import java.io.File;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import org.bukkit.ChatColor;
- import org.bukkit.Material;
- import org.bukkit.configuration.ConfigurationSection;
- import org.bukkit.enchantments.Enchantment;
- import org.bukkit.entity.Player;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.inventory.meta.ItemMeta;
- import org.bukkit.inventory.meta.LeatherArmorMeta;
- import org.bukkit.potion.PotionEffect;
- import org.bukkit.potion.PotionEffectType;
- import com.planetgallium.kitpvp.Game;
- import com.planetgallium.kitpvp.kit.Enchant;
- import com.planetgallium.kitpvp.kit.Item;
- import com.planetgallium.kitpvp.kit.Kit;
- import com.planetgallium.kitpvp.util.Config;
- import com.planetgallium.kitpvp.util.Materials;
- import com.planetgallium.kitpvp.util.Resource;
- import com.planetgallium.kitpvp.util.Resources;
- import com.planetgallium.kitpvp.util.Toolkit;
- public class Kits {
- private Game plugin;
- private Resources resources;
- public Kits(Game plugin, Resources resources) {
- this.plugin = plugin;
- this.resources = resources;
- }
- private Map<String, String> kits = new HashMap<String, String>();
- public void createKit(String name, Player p) {
- if (isKit(name)) {
- p.sendMessage(Config.tr(resources.getMessages().getString("Messages.Error.Exists").replace("%prefix%", resources.getMessages().getString("Messages.General.Prefix"))));
- return;
- }
- resources.addKit(name);
- Resource kitResource = resources.getKits(name);
- kitResource.set("Kit.Permission", "kp.kit." + name.toLowerCase());
- kitResource.set("Kit.Level", 0);
- kitResource.set("Kit.Cooldown", 0);
- kitResource.save();
- if (p.getInventory().getHelmet() != null) {
- saveItem(kitResource, p.getInventory().getHelmet(), "Inventory.Armor.Helmet", "&fHelmet");
- // ItemStack helmet = p.getInventory().getHelmet();
- //
- // resources.getKits(name).set("Inventory.Armor.Helmet.Name", "&7Helmet");
- // resources.getKits(name).set("Inventory.Armor.Helmet.Item", helmet.getType().toString());
- // resources.getKits(name).save();
- //
- // if (helmet.getType() == Material.LEATHER_HELMET) {
- //
- // LeatherArmorMeta dyedHelmet = (LeatherArmorMeta) helmet.getItemMeta();
- //
- // resources.getKits(name).set("Inventory.Armor.Helmet.Dye.Red", dyedHelmet.getColor().getRed());
- // resources.getKits(name).set("Inventory.Armor.Helmet.Dye.Green", dyedHelmet.getColor().getGreen());
- // resources.getKits(name).set("Inventory.Armor.Helmet.Dye.Blue", dyedHelmet.getColor().getBlue());
- // resources.getKits(name).save();
- //
- // }
- //
- // if (helmet.getEnchantments().size() > 0) {
- //
- // for (Enchantment enchant : helmet.getEnchantments().keySet()) {
- // resources.getKits(name).set("Inventory.Armor.Helmet.Enchantments." + enchant.getName().toUpperCase(), helmet.getEnchantmentLevel(enchant));
- // resources.getKits(name).save();
- // }
- //
- // }
- }
- if (p.getInventory().getChestplate() != null) {
- saveItem(kitResource, p.getInventory().getChestplate(), "Inventory.Armor.Chestplate", "&fChestplate");
- // ItemStack chestplate = p.getInventory().getChestplate();
- //
- // resources.getKits(name).set("Inventory.Armor.Chestplate.Name", "&7Chestplate");
- // resources.getKits(name).set("Inventory.Armor.Chestplate.Item", chestplate.getType().toString());
- // resources.getKits(name).save();
- //
- // if (chestplate.getType() == Material.LEATHER_CHESTPLATE) {
- //
- // LeatherArmorMeta dyedChestplate = (LeatherArmorMeta) chestplate.getItemMeta();
- //
- // resources.getKits(name).set("Inventory.Armor.Chestplate.Dye.Red", dyedChestplate.getColor().getRed());
- // resources.getKits(name).set("Inventory.Armor.Chestplate.Dye.Green", dyedChestplate.getColor().getGreen());
- // resources.getKits(name).set("Inventory.Armor.Chestplate.Dye.Blue", dyedChestplate.getColor().getBlue());
- // resources.getKits(name).save();
- //
- // }
- //
- // if (chestplate.getEnchantments().size() > 0) {
- //
- // for (Enchantment enchant : chestplate.getEnchantments().keySet()) {
- // resources.getKits(name).set("Inventory.Armor.Chestplate.Enchantments." + enchant.getName().toUpperCase(), chestplate.getEnchantmentLevel(enchant));
- // resources.getKits(name).save();
- // }
- //
- // }
- }
- if (p.getInventory().getLeggings() != null) {
- saveItem(kitResource, p.getInventory().getLeggings(), "Inventory.Armor.Leggings", "&fLeggings");
- // ItemStack leggings = p.getInventory().getLeggings();
- //
- // resources.getKits(name).set("Inventory.Armor.Leggings.Name", "&7Leggings");
- // resources.getKits(name).set("Inventory.Armor.Leggings.Item", leggings.getType().toString());
- // resources.getKits(name).save();
- //
- // if (leggings.getType() == Material.LEATHER_LEGGINGS) {
- //
- // LeatherArmorMeta dyedLeggings = (LeatherArmorMeta) leggings.getItemMeta();
- //
- // resources.getKits(name).set("Inventory.Armor.Leggings.Dye.Red", dyedLeggings.getColor().getRed());
- // resources.getKits(name).set("Inventory.Armor.Leggings.Dye.Green", dyedLeggings.getColor().getGreen());
- // resources.getKits(name).set("Inventory.Armor.Leggings.Dye.Blue", dyedLeggings.getColor().getBlue());
- // resources.getKits(name).save();
- //
- // }
- //
- // if (leggings.getEnchantments().size() > 0) {
- //
- // for (Enchantment enchant : leggings.getEnchantments().keySet()) {
- // resources.getKits(name).set("Inventory.Armor.Leggings.Enchantments." + enchant.getName().toUpperCase(), leggings.getEnchantmentLevel(enchant));
- // resources.getKits(name).save();
- // }
- //
- // }
- }
- if (p.getInventory().getBoots() != null) {
- saveItem(kitResource, p.getInventory().getBoots(), "Inventory.Armor.Boots", "&fBoots");
- // ItemStack boots = p.getInventory().getBoots();
- //
- // resources.getKits(name).set("Inventory.Armor.Boots.Name", "&7Boots");
- // resources.getKits(name).set("Inventory.Armor.Boots.Item", boots.getType().toString());
- // resources.getKits(name).save();
- //
- // if (boots.getType() == Material.LEATHER_BOOTS) {
- //
- // LeatherArmorMeta dyedBoots = (LeatherArmorMeta) boots.getItemMeta();
- //
- // resources.getKits(name).set("Inventory.Armor.Boots.Dye.Red", dyedBoots.getColor().getRed());
- // resources.getKits(name).set("Inventory.Armor.Boots.Dye.Green", dyedBoots.getColor().getGreen());
- // resources.getKits(name).set("Inventory.Armor.Boots.Dye.Blue", dyedBoots.getColor().getBlue());
- // resources.getKits(name).save();
- //
- // }
- //
- // if (boots.getEnchantments().size() > 0) {
- //
- // for (Enchantment enchant : boots.getEnchantments().keySet()) {
- // resources.getKits(name).set("Inventory.Armor.Boots.Enchantments." + enchant.getName().toUpperCase(), boots.getEnchantmentLevel(enchant));
- // resources.getKits(name).save();
- // }
- //
- // }
- }
- // INVENTORY ITEMS
- for (int i = 0; i < 36; i++) {
- if (p.getInventory().getItem(i) != null) {
- resources.getKits(name).set("Inventory.Items." + i + ".Name" , "&7Item");
- resources.getKits(name).set("Inventory.Items." + i + ".Item", p.getInventory().getItem(i).getType().toString());
- resources.getKits(name).set("Inventory.Items." + i + ".Amount", p.getInventory().getItem(i).getAmount());
- resources.getKits(name).save();
- if (p.getInventory().getItem(i).getEnchantments().size() > 0) {
- for (Enchantment enchant : p.getInventory().getItem(i).getEnchantments().keySet()) {
- resources.getKits(name).set("Inventory.Items." + i + ".Enchantments." + enchant.getName().toUpperCase(), p.getInventory().getItem(i).getEnchantmentLevel(enchant));
- resources.getKits(name).save();
- }
- }
- }
- }
- // POTION EFFECTS
- for (PotionEffect effect : p.getActivePotionEffects()) {
- resources.getKits(name).set("Potions." + effect.getType().getName() + ".Level", effect.getAmplifier() + 1);
- resources.getKits(name).set("Potions." + effect.getType().getName() + ".Duration", effect.getDuration() / 20);
- resources.getKits(name).save();
- }
- // DEFAULT ABILITY
- resources.getKits(name).set("Ability.Activator.Name", "&aDefault Ability &7(Must be modified in kit file)");
- resources.getKits(name).set("Ability.Activator.Item", "BEDROCK");
- resources.getKits(name).set("Ability.Message.Message", "%prefix% &7You have used your ability.");
- resources.getKits(name).set("Ability.Message.Enabled", true);
- resources.getKits(name).set("Ability.Sound.Sound", "FIZZ");
- resources.getKits(name).set("Ability.Sound.Pitch", 1);
- resources.getKits(name).set("Ability.Sound.Enabled", true);
- resources.getKits(name).set("Ability.Potions.SPEED.Level", 1);
- resources.getKits(name).set("Ability.Potions.SPEED.Duration", 10);
- 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%"});
- resources.getKits(name).set("Ability.Commands.Enabled", false);
- resources.getKits(name).save();
- p.sendMessage(Config.tr(resources.getMessages().getString("Messages.Commands.Create").replace("%kit%", name)));
- }
- public void giveKit(String name, Player p) {
- // GENERAL
- if (!isKit(name)) {
- p.sendMessage(Config.tr(resources.getMessages().getString("Messages.Error.Lost")));
- return;
- }
- if (!p.hasPermission(resources.getKits(name).getString("Kit.Permission"))) {
- p.sendMessage(Config.tr(resources.getMessages().getString("Messages.General.Permission")));
- return;
- }
- if (!(Game.getInstance().getArena().getLevels().getLevel(p.getUniqueId()) >= resources.getKits(name).getInt("Kit.Level"))) {
- p.sendMessage(Config.tr(resources.getMessages().getString("Messages.Other.Needed").replace("%level%", String.valueOf(resources.getKits(name).getInt("Kit.Level")))));
- return;
- }
- Kit kit = new Kit();
- kit.setName(name);
- setKit(p.getName(), name);
- // ARMOR
- if (resources.getKits(kit.getName()).contains("Inventory.Armor")) {
- if (resources.getKits(kit.getName()).contains("Inventory.Armor.Helmet.Item")) {
- 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));
- }
- if (resources.getKits(kit.getName()).contains("Inventory.Armor.Chestplate.Item")) {
- 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));
- }
- if (resources.getKits(kit.getName()).contains("Inventory.Armor.Leggings.Item")) {
- 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));
- }
- if (resources.getKits(kit.getName()).contains("Inventory.Armor.Boots.Item")) {
- 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));
- }
- }
- // INVENTORY ITEMS
- ConfigurationSection items = resources.getKits(kit.getName()).getConfigurationSection("Inventory.Items");
- for (String identifier : items.getKeys(false)) {
- if (!identifier.equals("Fill")) {
- 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));
- }
- }
- // POTION EFFECTS
- if (resources.getKits(kit.getName()).contains("Potions")) {
- ConfigurationSection potions = resources.getKits(kit.getName()).getConfigurationSection("Potions");
- for (String identifier : potions.getKeys(false)) {
- 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));
- }
- }
- // FILL ITEM
- if (resources.getKits(kit.getName()).contains("Inventory.Items.Fill")) {
- 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")));
- }
- kit.applyKit(p);
- }
- private void saveItem(Resource resource, ItemStack item, String path, String backupName) {
- if (item != null) {
- ItemMeta meta = item.getItemMeta();
- String name = backupName;
- List<String> lore = null;
- if (meta != null) {
- if (meta.hasDisplayName()) {
- name = Config.tr(meta.getDisplayName());
- }
- if (meta.hasLore()) {
- lore = new ArrayList<String>(meta.getLore());
- lore.replaceAll(s -> ChatColor.translateAlternateColorCodes('&', s));
- }
- }
- resource.set(path + ".Name", name);
- resource.set(path + ".Lore", lore); // setting this to null may cause problems look into this later
- resource.set(path + ".Item", item.getType().toString());
- resource.set(path + ".Amount", item.getAmount());
- resource.save();
- if (meta instanceof LeatherArmorMeta) {
- LeatherArmorMeta dyedMeta = (LeatherArmorMeta) meta;
- resource.set(path + ".Dye.Red", dyedMeta.getColor().getRed());
- resource.set(path + ".Dye.Green", dyedMeta.getColor().getGreen());
- resource.set(path + ".Dye.Blue", dyedMeta.getColor().getBlue());
- resource.save();
- }
- if (item.getEnchantments().size() > 0) {
- for (Enchantment enchant : item.getEnchantments().keySet()) {
- resource.set(path + ".Enchantments." + enchant.getName().toUpperCase(), item.getEnchantmentLevel(enchant));
- resource.save();
- }
- }
- }
- }
- private void setKit(String username, String kit) {
- if (!kits.containsKey(username)) {
- kits.put(username, kit);
- }
- }
- public void clearKit(String username) {
- if (hasKit(username)) {
- kits.remove(username);
- }
- }
- public String getKit(String username) {
- if (hasKit(username)) {
- return kits.get(username);
- }
- return "None";
- }
- public boolean hasKit(String username) {
- return kits.containsKey(username);
- }
- public boolean isKit(String kit) {
- return getList().contains(kit + ".yml");
- }
- public String getPath() {
- return plugin.getDataFolder().getAbsolutePath() + "/kits";
- }
- public List<String> getList() {
- File folder = new File(plugin.getDataFolder().getAbsolutePath() + "/kits");
- return new ArrayList<String>(Arrays.asList(folder.list()));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement