mirror of
https://github.com/EpicEricEE/ShopChest.git
synced 2024-06-26 14:44:53 +02:00
77 lines
2.6 KiB
Java
77 lines
2.6 KiB
Java
package de.epiceric.shopchest.utils;
|
|
|
|
import java.util.Arrays;
|
|
import java.util.Map;
|
|
|
|
import org.bukkit.Material;
|
|
import org.bukkit.enchantments.Enchantment;
|
|
import org.bukkit.inventory.ItemStack;
|
|
import org.bukkit.inventory.meta.EnchantmentStorageMeta;
|
|
import org.bukkit.inventory.meta.PotionMeta;
|
|
import org.bukkit.potion.Potion;
|
|
import org.bukkit.potion.PotionType;
|
|
|
|
public class ItemUtils {
|
|
|
|
public static Map<Enchantment, Integer> getEnchantments(ItemStack itemStack) {
|
|
if (itemStack.getItemMeta() instanceof EnchantmentStorageMeta) {
|
|
EnchantmentStorageMeta esm = (EnchantmentStorageMeta) itemStack.getItemMeta();
|
|
return esm.getStoredEnchants();
|
|
} else {
|
|
return itemStack.getEnchantments();
|
|
}
|
|
}
|
|
|
|
public static PotionType getPotionEffect(ItemStack itemStack) {
|
|
if (itemStack.getItemMeta() instanceof PotionMeta) {
|
|
if (Utils.getMajorVersion() < 9) {
|
|
return Potion.fromItemStack(itemStack).getType();
|
|
} else {
|
|
return ((PotionMeta) itemStack.getItemMeta()).getBasePotionData().getType();
|
|
}
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
public static boolean isExtendedPotion(ItemStack itemStack) {
|
|
if (itemStack.getItemMeta() instanceof PotionMeta) {
|
|
if (Utils.getMajorVersion() < 9) {
|
|
return Potion.fromItemStack(itemStack).hasExtendedDuration();
|
|
} else {
|
|
return ((PotionMeta) itemStack.getItemMeta()).getBasePotionData().isExtended();
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
public static boolean isBannerPattern(ItemStack itemStack) {
|
|
return itemStack.getType().name().endsWith("BANNER_PATTERN");
|
|
}
|
|
|
|
public static boolean isAir(Material type) {
|
|
return Arrays.asList("AIR", "CAVE_AIR", "VOID_AIR").contains(type.name());
|
|
}
|
|
|
|
/**
|
|
* Get the {@link ItemStack} from a String
|
|
* @param item Serialized ItemStack e.g. {@code "STONE"} or {@code "STONE:1"}
|
|
* @return The de-serialized ItemStack or {@code null} if the serialized item is invalid
|
|
*/
|
|
public static ItemStack getItemStack(String item) {
|
|
if (item.trim().isEmpty()) return null;
|
|
|
|
if (item.contains(":")) {
|
|
Material mat = Material.getMaterial(item.split(":")[0]);
|
|
if (mat == null) return null;
|
|
return new ItemStack(mat, 1, Short.parseShort(item.split(":")[1]));
|
|
} else {
|
|
Material mat = Material.getMaterial(item);
|
|
if (mat == null) return null;
|
|
return new ItemStack(mat, 1);
|
|
}
|
|
}
|
|
|
|
}
|