summaryrefslogtreewikicommitdiff
path: root/src/main/java/net/tylermurphy/hideAndSeek/configuration/Items.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/tylermurphy/hideAndSeek/configuration/Items.java')
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/configuration/Items.java74
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"),