diff --git a/ShopChest/src/main/java/de/epiceric/shopchest/language/LanguageUtils.java b/ShopChest/src/main/java/de/epiceric/shopchest/language/LanguageUtils.java index 6cd58d0..24811b2 100644 --- a/ShopChest/src/main/java/de/epiceric/shopchest/language/LanguageUtils.java +++ b/ShopChest/src/main/java/de/epiceric/shopchest/language/LanguageUtils.java @@ -14,6 +14,7 @@ import org.bukkit.inventory.meta.BookMeta; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.PotionMeta; import org.bukkit.inventory.meta.SkullMeta; +import org.bukkit.potion.Potion; import org.bukkit.potion.PotionType; import java.util.ArrayList; @@ -946,16 +947,30 @@ public class LanguageUtils { if (stack.getItemMeta() instanceof PotionMeta) { PotionMeta meta = (PotionMeta) stack.getItemMeta(); - PotionType potionType = meta.getBasePotionData().getType(); + PotionType potionType; + + if (Utils.getMajorVersion() < 9) { + potionType = Potion.fromItemStack(stack).getType(); + } else { + potionType = meta.getBasePotionData().getType(); + } for (PotionName potionName : potionNames) { if (material == Material.POTION) { - if (potionName.getPotionItemType() == PotionName.PotionItemType.POTION && potionName.getPotionType() == potionType) { - return potionName.getLocalizedName(); - } - } else if (material == Material.SPLASH_POTION) { - if (potionName.getPotionItemType() == PotionName.PotionItemType.SPLASH_POTION && potionName.getPotionType() == potionType) { - return potionName.getLocalizedName(); + if (Utils.getMajorVersion() < 9) { + if (Potion.fromItemStack(stack).isSplash()) { + if (potionName.getPotionItemType() == PotionName.PotionItemType.SPLASH_POTION && potionName.getPotionType() == potionType) { + return potionName.getLocalizedName(); + } + } else { + if (potionName.getPotionItemType() == PotionName.PotionItemType.POTION && potionName.getPotionType() == potionType) { + return potionName.getLocalizedName(); + } + } + } else { + if (potionName.getPotionItemType() == PotionName.PotionItemType.POTION && potionName.getPotionType() == potionType) { + return potionName.getLocalizedName(); + } } } else { if (Utils.getMajorVersion() >= 9) { @@ -967,6 +982,10 @@ public class LanguageUtils { if (potionName.getPotionItemType() == PotionName.PotionItemType.TIPPED_ARROW && potionName.getPotionType() == potionType) { return potionName.getLocalizedName(); } + } else if (material == Material.SPLASH_POTION) { + if (potionName.getPotionItemType() == PotionName.PotionItemType.SPLASH_POTION && potionName.getPotionType() == potionType) { + return potionName.getLocalizedName(); + } } } } @@ -1052,12 +1071,22 @@ public class LanguageUtils { */ public static String getPotionEffectName(ItemStack itemStack) { PotionMeta potionMeta = (PotionMeta) itemStack.getItemMeta(); + PotionType potionType; + boolean upgraded; - String potionEffectString = formatDefaultString(potionMeta.getBasePotionData().getType().toString()); - String upgradeString = potionMeta.getBasePotionData().isUpgraded() ? "II" : ""; + if (Utils.getMajorVersion() < 9) { + potionType = Potion.fromItemStack(itemStack).getType(); + upgraded = (Potion.fromItemStack(itemStack).getTier() == Potion.Tier.TWO); + } else { + potionType = potionMeta.getBasePotionData().getType(); + upgraded = potionMeta.getBasePotionData().isUpgraded(); + } + + String potionEffectString = formatDefaultString(potionType.toString()); + String upgradeString = upgraded ? "II" : ""; for (PotionEffectName potionEffectName : potionEffectNames) { - if (potionEffectName.getEffect() == potionMeta.getBasePotionData().getType()) { + if (potionEffectName.getEffect() == potionType) { potionEffectString = potionEffectName.getLocalizedName(); } } diff --git a/ShopChest/src/main/java/de/epiceric/shopchest/listeners/ShopInteractListener.java b/ShopChest/src/main/java/de/epiceric/shopchest/listeners/ShopInteractListener.java index 706e6d1..73d6cab 100644 --- a/ShopChest/src/main/java/de/epiceric/shopchest/listeners/ShopInteractListener.java +++ b/ShopChest/src/main/java/de/epiceric/shopchest/listeners/ShopInteractListener.java @@ -319,14 +319,14 @@ public class ShopInteractListener implements Listener { Map enchantmentMap; if (Utils.getMajorVersion() >= 9) { - if (type == Material.TIPPED_ARROW || type == Material.LINGERING_POTION) { + if (type == Material.TIPPED_ARROW || type == Material.LINGERING_POTION || type == Material.SPLASH_POTION) { potionEffectString = LanguageUtils.getPotionEffectName(shop.getProduct()); if (potionEffectString == null) potionEffectString = LanguageUtils.getMessage(LocalizedMessage.Message.SHOP_INFO_NONE); } } - if (type == Material.POTION || type == Material.SPLASH_POTION) { + if (type == Material.POTION) { potionEffectString = LanguageUtils.getPotionEffectName(shop.getProduct()); if (potionEffectString == null) potionEffectString = LanguageUtils.getMessage(LocalizedMessage.Message.SHOP_INFO_NONE);