package plus.crates.Utils; import org.bukkit.ChatColor; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.enchantments.Enchantment; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import java.util.ArrayList; import java.util.List; import java.util.Map; public class LinfootUtil { public static Enchantment getEnchantmentFromNiceName(String name) { Enchantment enchantment = null; try { enchantment = Enchantment.getByName(name); } catch (Exception ignored) { } if (enchantment != null) return enchantment; switch (name.toLowerCase()) { case "sharpness": enchantment = Enchantment.DAMAGE_ALL; break; case "unbreaking": enchantment = Enchantment.DURABILITY; break; case "efficiency": enchantment = Enchantment.DIG_SPEED; break; case "protection": enchantment = Enchantment.PROTECTION_ENVIRONMENTAL; break; case "power": enchantment = Enchantment.ARROW_DAMAGE; break; case "punch": enchantment = Enchantment.ARROW_KNOCKBACK; break; case "infinite": enchantment = Enchantment.ARROW_INFINITE; break; } return enchantment; } public static ItemStack buildItemStack(ItemStack itemStack, String name, List<String> lore) { if (name == null && lore == null) { return itemStack; } ItemMeta itemMeta = itemStack.getItemMeta(); if (name != null) { itemMeta.setDisplayName(ChatColor.RESET + name); } if (lore != null) { itemMeta.setLore(lore); } itemStack.setItemMeta(itemMeta); return itemStack; } public static void copyConfigSection(FileConfiguration config, String fromPath, String toPath) { Map<String, Object> vals = config.getConfigurationSection(fromPath).getValues(true); String toDot = toPath.equals("") ? "" : "."; for (String s : vals.keySet()) { Object val = vals.get(s); if (val instanceof List) val = new ArrayList((List) val); config.set(toPath + toDot + s, val); } } // System.out.println(versionCompare("1.6", "1.8")); // -1 as 1.8 is newer // System.out.println(versionCompare("1.7", "1.8")); // -1 as 1.8 is newer // System.out.println(versionCompare("1.8", "1.8")); // 0 as same // System.out.println(versionCompare("1.9", "1.8")); // 1 as 1.9 is newer public static int versionCompare(String str1, String str2) { String[] vals1 = str1.split("\\."); String[] vals2 = str2.split("\\."); int i = 0; while (i < vals1.length && i < vals2.length && vals1[i].equals(vals2[i])) { i++; } if (i < vals1.length && i < vals2.length) { int diff = Integer.valueOf(vals1[i]).compareTo(Integer.valueOf(vals2[i])); return Integer.signum(diff); } return Integer.signum(vals1.length - vals2.length); } }