Workaround BUKKIT-4612

This commit is contained in:
Olof Larsson 2013-07-27 10:07:56 +02:00
parent fa59f9f6cd
commit f92f48cbd0

View File

@ -303,6 +303,19 @@ public class MUtil
// POTION DERP // POTION DERP
// -------------------------------------------- // // -------------------------------------------- //
/**
* Get just the potion effect bits. This is to work around bugs with potion parsing.
* Workaround created by the WorldGuard team: https://github.com/sk89q/worldguard/commit/8dec32fa6a1238a11743cea8b8302a6c9d2aaa55
* This issue is reported as BUKKIT-4612 "Potion.fromItemStack causes IllegalArgumentException: Instant potions cannot be extended"
*
* @param item item
* @return new bits
*/
public static int getPotionEffectBits(ItemStack item)
{
return item.getDurability() & 0x3F;
}
public static List<PotionEffect> getPotionEffects(ItemStack itemStack) public static List<PotionEffect> getPotionEffects(ItemStack itemStack)
{ {
if (itemStack == null) return null; if (itemStack == null) return null;
@ -310,7 +323,7 @@ public class MUtil
List<PotionEffect> ret = new ArrayList<PotionEffect>(); List<PotionEffect> ret = new ArrayList<PotionEffect>();
Potion potion = Potion.fromItemStack(itemStack); Potion potion = Potion.fromDamage(getPotionEffectBits(itemStack));
ret.addAll(potion.getEffects()); ret.addAll(potion.getEffects());
PotionMeta meta = (PotionMeta) itemStack.getItemMeta(); PotionMeta meta = (PotionMeta) itemStack.getItemMeta();