版本更新至 4.06
新增:TLocale 新增 BOOK 类型,用于发送书本界面(代替 Language2) 新增:TLocale 新增 BAR 类型,用于发送 Bossbar(需要 BossBarAPI) 新增:TLocale#Tellraw 工具用于发送原始 json 信息 新增:TellrawJson 工具用于创建原始 json 信息 新增:VariableFormatter 工具用于变量识别 新增:ArrayUtils 新增数组修改方法 修复:Language2Book 工具失效问题 调整:JsonFormatter 工具已过时,不再维护 从该版本起不再对 1.7.10 版本进行支持与维护,任何在 1.7.10 版本内出现的问题不再修复。 1.7.10 稳定版:v3.832
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package me.skymc.taboolib.jsonformatter;
|
||||
|
||||
import com.ilummc.tlib.resources.TLocale;
|
||||
import me.skymc.taboolib.json.JSONArray;
|
||||
import me.skymc.taboolib.json.JSONObject;
|
||||
import me.skymc.taboolib.jsonformatter.click.ClickEvent;
|
||||
@@ -15,17 +16,14 @@ import java.lang.reflect.Method;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Unknown
|
||||
*/
|
||||
@Deprecated
|
||||
public class JSONFormatter {
|
||||
|
||||
public static void sendRawMessage(Player player, String message) {
|
||||
try {
|
||||
Object entityplayer = NMSUtils.getHandle(player);
|
||||
Object ppco = ppc.get(entityplayer);
|
||||
Object packet = ppocc.newInstance(message);
|
||||
sp.invoke(ppco, packet);
|
||||
} catch (Exception e) {
|
||||
Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "tellraw " + player.getName() + " " + message);
|
||||
}
|
||||
TLocale.Tellraw.send(player, message);
|
||||
}
|
||||
|
||||
private JSONArray ja = new JSONArray();
|
||||
|
||||
@@ -3,6 +3,7 @@ package me.skymc.taboolib.jsonformatter.hover;
|
||||
import me.skymc.taboolib.TabooLib;
|
||||
import me.skymc.taboolib.inventory.ItemUtils;
|
||||
import me.skymc.taboolib.json.JSONObject;
|
||||
import me.skymc.taboolib.json.tellraw.TellrawJson;
|
||||
import me.skymc.taboolib.nms.item.DabItemUtils;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
@@ -13,64 +14,68 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
public class ShowItemEvent extends HoverEvent{
|
||||
|
||||
private JSONObject object = new JSONObject();
|
||||
|
||||
public Object getItemTag(ItemStack item) {
|
||||
try {
|
||||
return DabItemUtils.getInstance().getTag(DabItemUtils.getInstance().getNMSCopy(item));
|
||||
} catch (Exception e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public ShowItemEvent(ItemStack is){
|
||||
try{
|
||||
object.put("action", "show_item");
|
||||
StringBuilder tag = new StringBuilder();
|
||||
Object itemTag = getItemTag(is);
|
||||
if (itemTag != null) {
|
||||
public class ShowItemEvent extends HoverEvent {
|
||||
|
||||
private JSONObject object = new JSONObject();
|
||||
|
||||
public Object getItemTag(ItemStack item) {
|
||||
try {
|
||||
return DabItemUtils.getInstance().getTag(DabItemUtils.getInstance().getNMSCopy(item));
|
||||
} catch (Exception e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public ShowItemEvent(ItemStack is) {
|
||||
if (TabooLib.getVerint() > 10700) {
|
||||
try {
|
||||
object.put("action", "show_item");
|
||||
object.put("value", TellrawJson.create().getItemComponent(is));
|
||||
} catch (Exception ignored) {
|
||||
}
|
||||
}
|
||||
try {
|
||||
object.put("action", "show_item");
|
||||
StringBuilder tag = new StringBuilder();
|
||||
Object itemTag = getItemTag(is);
|
||||
if (itemTag != null) {
|
||||
tag.append(",tag:").append(itemTag);
|
||||
}
|
||||
else {
|
||||
ItemMeta im = is.getItemMeta();
|
||||
List<String> lore = im.hasLore() ? im.getLore() : new ArrayList<>();
|
||||
Map<Enchantment, Integer> enchants = is.getItemMeta().getEnchants();
|
||||
} else {
|
||||
ItemMeta im = is.getItemMeta();
|
||||
List<String> lore = im.hasLore() ? im.getLore() : new ArrayList<>();
|
||||
Map<Enchantment, Integer> enchants = is.getItemMeta().getEnchants();
|
||||
tag.append(",tag:{display:{Name:").append(enchants.size() > 0 ? "§b§o" : "§f").append(ItemUtils.getCustomName(is));
|
||||
if (lore.size() > 0) {
|
||||
tag.append(",Lore:[");
|
||||
for (String s : lore){
|
||||
if (lore.size() > 0) {
|
||||
tag.append(",Lore:[");
|
||||
for (String s : lore) {
|
||||
tag.append("\"").append(s).append("\",");
|
||||
}
|
||||
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.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:").append(e.getKey().getId()).append(",lvl:").append(e.getValue()).append("},");
|
||||
}
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject getEvent(){
|
||||
return object;
|
||||
}
|
||||
|
||||
}
|
||||
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 ignored) {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject getEvent() {
|
||||
return object;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user