Perform some sanitation of items before applying them as Mson tooltips.
This commit is contained in:
		
							parent
							
								
									94a950317a
								
							
						
					
					
						commit
						145a9e5054
					
				@ -11,6 +11,8 @@ import com.massivecraft.massivecore.nms.NmsItemStackTooltip;
 | 
			
		||||
import com.massivecraft.massivecore.util.MUtil;
 | 
			
		||||
import com.massivecraft.massivecore.util.Txt;
 | 
			
		||||
import com.massivecraft.massivecore.xlib.gson.JsonElement;
 | 
			
		||||
import org.bukkit.inventory.meta.BookMeta;
 | 
			
		||||
import org.bukkit.inventory.meta.ItemMeta;
 | 
			
		||||
 | 
			
		||||
public final class MsonEvent implements Serializable
 | 
			
		||||
{
 | 
			
		||||
@ -164,9 +166,30 @@ public final class MsonEvent implements Serializable
 | 
			
		||||
	public static MsonEvent item(ItemStack item)
 | 
			
		||||
	{
 | 
			
		||||
		if (item == null) throw new NullPointerException("item");
 | 
			
		||||
		item = getItemSanitizedForTooltip(item);
 | 
			
		||||
		String value = NmsItemStackTooltip.get().getNbtStringTooltip(item);
 | 
			
		||||
		return MsonEvent.valueOf(MsonEventAction.SHOW_ITEM, value);
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	private static ItemStack getItemSanitizedForTooltip(ItemStack item)
 | 
			
		||||
	{
 | 
			
		||||
		if (item == null) throw new NullPointerException("item");
 | 
			
		||||
		
 | 
			
		||||
		if (!item.hasItemMeta()) return item;
 | 
			
		||||
		
 | 
			
		||||
		ItemMeta meta = item.getItemMeta();
 | 
			
		||||
		
 | 
			
		||||
		if (meta instanceof BookMeta)
 | 
			
		||||
		{
 | 
			
		||||
			BookMeta book = (BookMeta)meta;
 | 
			
		||||
			book.setPages();
 | 
			
		||||
			item = item.clone();
 | 
			
		||||
			item.setItemMeta(meta);
 | 
			
		||||
			return item;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		return item;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// -------------------------------------------- //
 | 
			
		||||
	// CONVENIENCE
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user