版本更新至 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:
坏黑
2018-05-27 21:15:29 +08:00
parent 8a20fb7edb
commit 5843e0be04
27 changed files with 1095 additions and 464 deletions

View File

@@ -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();

View File

@@ -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;
}
}