Skip to content

Commit

Permalink
版本更新至 5.12
Browse files Browse the repository at this point in the history
调整:指令 “/tlib iteminfo” 提示信息
调整:JSON 工具的物品显示功能算法优化
修复:JSON 工具的物品显示功能在 1.7.10 版本失效的问题
  • Loading branch information
Bkm016 committed Feb 12, 2018
1 parent 902926c commit 12d7bdc
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 42 deletions.
3 changes: 3 additions & 0 deletions src/main/src/me/skymc/taboolib/commands/sub/InfoCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
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;

Expand All @@ -36,6 +37,8 @@ public InfoCommand(CommandSender sender, String[] args) {
json.append("§7 - 物品名称: §f"); json.appendHoverClick("§f" + ItemUtils.getCustomName(player.getItemInHand()), new ShowTextEvent("§f点击复制"), new SuggestCommandEvent(ItemUtils.getCustomName(player.getItemInHand()).replace("§", "&")));
json.newLine();
json.append("§7 - 物品序号: §f" + player.getItemInHand().getTypeId() + ":" + player.getItemInHand().getDurability());
json.newLine();
json.append("§7 - 物品展示: §f"); json.appendHover(ItemUtils.getCustomName(player.getItemInHand()), new ShowItemEvent(player.getItemInHand()));
json.send(player);

NBTItem nbt = new NBTItem(((Player) sender).getItemInHand());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,14 @@
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{
Expand All @@ -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 ? "¡ìb¡ìo" : "¡ì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.delete(tag.length() - 1, tag.length());
tag.append("]");
}
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 = 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("}");
object.put("value", "{id:" + (TabooLib.getVerint() > 10700 ? DabItemUtils.getMinecraftName(is) : is.getTypeId()) + ",Count:" + is.getAmount() + tag.toString() + "}");
} catch(Exception e) {
e.printStackTrace();
}
}
Expand Down

0 comments on commit 12d7bdc

Please sign in to comment.