Workaround BUKKIT-4612
This commit is contained in:
		
							parent
							
								
									fa59f9f6cd
								
							
						
					
					
						commit
						f92f48cbd0
					
				@ -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();
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user