diff options
Diffstat (limited to 'src/main/java/net/tylermurphy/hideAndSeek/configuration/Items.java')
-rw-r--r-- | src/main/java/net/tylermurphy/hideAndSeek/configuration/Items.java | 74 |
1 files changed, 26 insertions, 48 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Items.java b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Items.java index 569cae6..1c77ec2 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Items.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Items.java @@ -19,14 +19,12 @@ package net.tylermurphy.hideAndSeek.configuration; -import org.bukkit.ChatColor; +import com.cryptomorin.xseries.XItemStack; +import net.tylermurphy.hideAndSeek.util.Version; import org.bukkit.Material; -import org.bukkit.NamespacedKey; import org.bukkit.configuration.ConfigurationSection; -import org.bukkit.enchantments.Enchantment; +import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; -import org.bukkit.inventory.meta.PotionMeta; import org.bukkit.potion.*; import java.util.ArrayList; @@ -63,7 +61,6 @@ public class Items { if(item != null) HIDER_ITEMS.add(item); i++; } - SEEKER_EFFECTS = new ArrayList<>(); ConfigurationSection SeekerEffects = manager.getConfigurationSection("effects.seeker"); i = 1; @@ -89,55 +86,36 @@ public class Items { } private static ItemStack createItem(ConfigurationSection item) { - String material_string = item.getString("material"); - if(material_string == null) return null; - Material material = Material.valueOf(material_string.toUpperCase()); - int amount = item.getInt("amount"); - ItemStack stack = new ItemStack(material, amount); - if(material == Material.POTION || material == Material.SPLASH_POTION || material == Material.LINGERING_POTION){ - PotionMeta meta = getPotionMeta(stack, item); - stack.setItemMeta(meta); - - } else { - ConfigurationSection enchantments = item.getConfigurationSection("enchantments"); - if (enchantments != null) - for (String enchantment_string : enchantments.getKeys(false)) { - Enchantment enchantment = Enchantment.getByKey(NamespacedKey.minecraft(enchantment_string)); - if (enchantment == null) continue; - stack.addUnsafeEnchantment( - enchantment, - enchantments.getInt(enchantment_string) - ); - } - ItemMeta meta = getItemMeta(stack,item); - stack.setItemMeta(meta); + ConfigurationSection config = new YamlConfiguration().createSection("temp"); + String material = item.getString("material").toUpperCase(); + boolean splash = false; + if(!Version.atLeast("1.9")){ + if(material.contains("POTION")){ + config.set("level", 1); + } + if(material.equalsIgnoreCase("SPLASH_POTION") || material.equalsIgnoreCase("LINGERING_POTION")){ + material = "POTION"; + splash = true; + } } + config.set("name", item.getString("name")); + config.set("material", material); + config.set("enchants", item.getConfigurationSection("enchantments")); + config.set("unbreakable", item.getBoolean("unbreakable")); + if(item.isSet("lore")) + config.set("lore", item.getStringList("lore")); + if (material.equalsIgnoreCase("POTION") || material.equalsIgnoreCase("SPLASH_POTION") || material.equalsIgnoreCase("LINGERING_POTION")) + config.set("base-effect", String.format("%s,%s,%s", item.getString("type"), false, splash)); + ItemStack stack = XItemStack.deserialize(config); + stack.setAmount(item.getInt("amount")); + if(stack.getData().getItemType() == Material.AIR) return null; return stack; } - private static ItemMeta getItemMeta(ItemStack stack, ConfigurationSection item){ - ItemMeta meta = stack.getItemMeta(); - assert meta != null; - String name = item.getString("name"); - if(name != null) - meta.setDisplayName(ChatColor.translateAlternateColorCodes('&', name)); - meta.setUnbreakable(item.getBoolean("unbreakable")); - meta.setLore(item.getStringList("lore")); - return meta; - } - - private static PotionMeta getPotionMeta(ItemStack stack, ConfigurationSection item){ - String type = item.getString("type"); - PotionMeta meta = (PotionMeta) stack.getItemMeta(); - if(type==null) return meta; - assert meta != null; - meta.setBasePotionData(new PotionData((PotionType.valueOf(type.toUpperCase())))); - return meta; - } - private static PotionEffect getPotionEffect(ConfigurationSection item){ String type = item.getString("type"); if(type == null) return null; + if(PotionEffectType.getByName(type.toUpperCase()) == null) return null; return new PotionEffect( Objects.requireNonNull(PotionEffectType.getByName(type.toUpperCase())), item.getInt("duration"), |