版本更新至 5.12
调整:指令 “/tlib iteminfo” 提示信息 调整:JSON 工具的物品显示功能算法优化 修复:JSON 工具的物品显示功能在 1.7.10 版本失效的问题
This commit is contained in:
		@@ -11,6 +11,7 @@ import me.skymc.taboolib.inventory.ItemUtils;
 | 
			
		||||
import me.skymc.taboolib.itemnbtapi.NBTItem;
 | 
			
		||||
import me.skymc.taboolib.jsonformatter.JSONFormatter;
 | 
			
		||||
import me.skymc.taboolib.jsonformatter.click.SuggestCommandEvent;
 | 
			
		||||
import me.skymc.taboolib.jsonformatter.hover.ShowItemEvent;
 | 
			
		||||
import me.skymc.taboolib.jsonformatter.hover.ShowTextEvent;
 | 
			
		||||
import me.skymc.taboolib.message.MsgUtils;
 | 
			
		||||
 | 
			
		||||
@@ -36,6 +37,8 @@ public class InfoCommand extends SubCommand {
 | 
			
		||||
				json.append("<EFBFBD><EFBFBD>7 - <20><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>: <20><>f"); json.appendHoverClick("<EFBFBD><EFBFBD>f" + ItemUtils.getCustomName(player.getItemInHand()), new ShowTextEvent("<EFBFBD><EFBFBD>f<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), new SuggestCommandEvent(ItemUtils.getCustomName(player.getItemInHand()).replace("<EFBFBD><EFBFBD>", "&")));
 | 
			
		||||
				json.newLine();
 | 
			
		||||
				json.append("<EFBFBD><EFBFBD>7 - <20><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>: <20><>f" + player.getItemInHand().getTypeId() + ":" + player.getItemInHand().getDurability());
 | 
			
		||||
				json.newLine();
 | 
			
		||||
				json.append("<EFBFBD><EFBFBD>7 - <20><>Ʒչʾ: <20><>f"); json.appendHover(ItemUtils.getCustomName(player.getItemInHand()), new ShowItemEvent(player.getItemInHand()));
 | 
			
		||||
				json.send(player);
 | 
			
		||||
				
 | 
			
		||||
				NBTItem nbt = new NBTItem(((Player) sender).getItemInHand());
 | 
			
		||||
 
 | 
			
		||||
@@ -5,12 +5,14 @@ import java.util.List;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
import java.util.Map.Entry;
 | 
			
		||||
 | 
			
		||||
import org.bukkit.Bukkit;
 | 
			
		||||
import org.bukkit.enchantments.Enchantment;
 | 
			
		||||
import org.bukkit.inventory.ItemStack;
 | 
			
		||||
import org.bukkit.inventory.meta.ItemMeta;
 | 
			
		||||
 | 
			
		||||
import me.skymc.taboolib.TabooLib;
 | 
			
		||||
import me.skymc.taboolib.inventory.ItemUtils;
 | 
			
		||||
import me.skymc.taboolib.json.JSONObject;
 | 
			
		||||
import me.skymc.taboolib.nms.NMSUtil19;
 | 
			
		||||
import me.skymc.taboolib.nms.item.DabItemUtils;
 | 
			
		||||
 | 
			
		||||
public class ShowItemEvent extends HoverEvent{
 | 
			
		||||
@@ -21,52 +23,34 @@ public class ShowItemEvent extends HoverEvent{
 | 
			
		||||
	public ShowItemEvent(ItemStack is){
 | 
			
		||||
		try{
 | 
			
		||||
			object.put("action", "show_item");
 | 
			
		||||
			String display = DabItemUtils.getName(is);
 | 
			
		||||
			String raw = DabItemUtils.getRawName(is);
 | 
			
		||||
			ItemMeta im = is.getItemMeta();
 | 
			
		||||
			List<String> lore = im.hasLore() ? im.getLore() : new ArrayList<String>();
 | 
			
		||||
			List<String> lore = im.hasLore() ? im.getLore() : new ArrayList<>();
 | 
			
		||||
			Map<Enchantment, Integer> enchants = is.getItemMeta().getEnchants();
 | 
			
		||||
			boolean utag = !display.equals(raw) || lore.size() > 0 || enchants.size() > 0;
 | 
			
		||||
			String tag = "";
 | 
			
		||||
			if(utag){
 | 
			
		||||
				tag = ",tag:{";
 | 
			
		||||
				if(!display.equals(raw)){
 | 
			
		||||
					tag = tag + "display:{Name:" + display;
 | 
			
		||||
					if(lore.size() > 0){
 | 
			
		||||
						tag = tag + ",Lore:[";
 | 
			
		||||
						for(String s : lore){
 | 
			
		||||
							tag = tag + "\"" + s + "\",";
 | 
			
		||||
						}
 | 
			
		||||
						tag = tag.substring(0, tag.length() - 1);
 | 
			
		||||
						tag = tag + "]";
 | 
			
		||||
					}
 | 
			
		||||
					tag = tag + "}";
 | 
			
		||||
				}else{
 | 
			
		||||
					if(lore.size() > 0){
 | 
			
		||||
						tag = tag + "display:{Lore:[";
 | 
			
		||||
						for(String s : lore){
 | 
			
		||||
							tag = tag + "\"" + s + "\",";
 | 
			
		||||
						}
 | 
			
		||||
						tag = tag.substring(0, tag.length() - 1);
 | 
			
		||||
						tag = tag + "]}";
 | 
			
		||||
					}
 | 
			
		||||
			StringBuilder tag = new StringBuilder();
 | 
			
		||||
			tag.append(",tag:{display:{Name:" + (enchants.size() > 0 ? "<EFBFBD><EFBFBD>b<EFBFBD><EFBFBD>o" : "<EFBFBD><EFBFBD>f") + ItemUtils.getCustomName(is));
 | 
			
		||||
			if (lore.size() > 0) {
 | 
			
		||||
				tag.append(",Lore:[");
 | 
			
		||||
				for (String s : lore){
 | 
			
		||||
					tag.append("\"" + s + "\",");
 | 
			
		||||
				}
 | 
			
		||||
				if(enchants.size() > 0){
 | 
			
		||||
					if(tag.length() > 6){
 | 
			
		||||
						tag = tag + ",";
 | 
			
		||||
					}
 | 
			
		||||
					tag = tag + "ench:[";
 | 
			
		||||
					for(Entry<Enchantment, Integer> e : enchants.entrySet()){
 | 
			
		||||
						tag = tag + "{id:" + e.getKey().getId() + ",lvl:" + e.getValue() + "},";
 | 
			
		||||
					}
 | 
			
		||||
					tag = tag.substring(0, tag.length() - 1);
 | 
			
		||||
					tag = tag + "]";
 | 
			
		||||
				}
 | 
			
		||||
				tag = tag + "}";
 | 
			
		||||
				tag.delete(tag.length() - 1, tag.length());
 | 
			
		||||
				tag.append("]");
 | 
			
		||||
			}
 | 
			
		||||
			String name = DabItemUtils.getMinecraftName(is);
 | 
			
		||||
			object.put("value", "{id:" + name + ",Count:" + is.getAmount() + tag + "}");
 | 
			
		||||
		}catch(Exception e){
 | 
			
		||||
			tag.append("}");
 | 
			
		||||
			if (enchants.size() > 0) {
 | 
			
		||||
				if(tag.length() > 6) {
 | 
			
		||||
					tag.append(",");
 | 
			
		||||
				}
 | 
			
		||||
				tag.append("ench:[");
 | 
			
		||||
				for (Entry<Enchantment, Integer> e : enchants.entrySet()) {
 | 
			
		||||
					tag.append("{id:" + e.getKey().getId() + ",lvl:" + e.getValue() + "},");
 | 
			
		||||
				}
 | 
			
		||||
				tag.delete(tag.length() - 1, tag.length());
 | 
			
		||||
				tag.append("]");
 | 
			
		||||
			}
 | 
			
		||||
			tag.append("}");
 | 
			
		||||
			object.put("value", "{id:" + (TabooLib.getVerint() > 10700 ? DabItemUtils.getMinecraftName(is) : is.getTypeId()) + ",Count:" + is.getAmount() + tag.toString() + "}");
 | 
			
		||||
		} catch(Exception e) {
 | 
			
		||||
			e.printStackTrace();
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user