From 12c889083401a94caecef450eef8b8f5a9ac87ea Mon Sep 17 00:00:00 2001 From: 502647092 Date: Wed, 14 Sep 2016 12:06:33 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=80=BC=E4=B8=BA?= =?UTF-8?q?=E8=BF=9B=E8=A1=8CJson=E8=BD=AC=E4=B9=89=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 502647092 --- .../java/pw/yumc/YumCore/tellraw/ItemSerialize.java | 9 +++++---- src/main/java/pw/yumc/YumCore/tellraw/JsonBuilder.java | 10 ++++++++++ src/main/java/pw/yumc/YumCore/tellraw/MessagePart.java | 10 +++++----- src/main/java/pw/yumc/YumCore/tellraw/Tellraw.java | 2 ++ 4 files changed, 22 insertions(+), 9 deletions(-) diff --git a/src/main/java/pw/yumc/YumCore/tellraw/ItemSerialize.java b/src/main/java/pw/yumc/YumCore/tellraw/ItemSerialize.java index 3e0467f..5fef031 100644 --- a/src/main/java/pw/yumc/YumCore/tellraw/ItemSerialize.java +++ b/src/main/java/pw/yumc/YumCore/tellraw/ItemSerialize.java @@ -14,7 +14,8 @@ import org.bukkit.inventory.meta.ItemMeta; import pw.yumc.YumCore.bukkit.Log; /** - * + * 物品序列化类 + * * @since 2016年9月9日 下午3:47:17 * @author 喵♂呜 */ @@ -31,7 +32,7 @@ public abstract class ItemSerialize { public static String $(final ItemStack item) { final String result = itemSerialize.parse(item); - Log.debug(String.format("%s物品序列化结果: %s", itemSerialize.getName(), result)); + Log.d("%s物品序列化结果: %s", itemSerialize.getName(), result); return result; } @@ -76,7 +77,7 @@ public abstract class ItemSerialize { @Override public String parse(final ItemStack item) { try { - return new JsonBuilder((nmsSaveNBTMethod.invoke(asNMSCopyMethod.invoke(null, item), nmsNBTTagCompound.newInstance()).toString())).toString(); + return nmsSaveNBTMethod.invoke(asNMSCopyMethod.invoke(null, item), nmsNBTTagCompound.newInstance()).toString(); } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException | InstantiationException e) { itemSerialize = new Manual(); return itemSerialize.parse(item); @@ -168,7 +169,7 @@ public abstract class ItemSerialize { * @return 物品字符串 */ private String serialize(final ItemStack item) { - final JsonBuilder json = new JsonBuilder("{"); + final StringBuffer json = new StringBuffer("{"); json.append(String.format("id:\"%s\",Damage:\"%s\"", item.getTypeId(), item.getDurability())); if (item.getAmount() > 1) { json.append(String.format(",Count:%s", item.getAmount())); diff --git a/src/main/java/pw/yumc/YumCore/tellraw/JsonBuilder.java b/src/main/java/pw/yumc/YumCore/tellraw/JsonBuilder.java index 58d1034..d439e62 100644 --- a/src/main/java/pw/yumc/YumCore/tellraw/JsonBuilder.java +++ b/src/main/java/pw/yumc/YumCore/tellraw/JsonBuilder.java @@ -1,5 +1,11 @@ package pw.yumc.YumCore.tellraw; +/** + * Json构建 + * + * @since 2016年9月14日 上午11:55:36 + * @author 喵♂呜 + */ public class JsonBuilder { public static final String[] REPLACEMENT_CHARS; static { @@ -59,6 +65,10 @@ public class JsonBuilder { json.deleteCharAt(json.length() - 1); } + public boolean isEmpty() { + return json.length() == 0; + } + public int length() { return json.length(); } diff --git a/src/main/java/pw/yumc/YumCore/tellraw/MessagePart.java b/src/main/java/pw/yumc/YumCore/tellraw/MessagePart.java index 7a68b79..bdce4fc 100644 --- a/src/main/java/pw/yumc/YumCore/tellraw/MessagePart.java +++ b/src/main/java/pw/yumc/YumCore/tellraw/MessagePart.java @@ -14,7 +14,7 @@ public class MessagePart { /** * 消息文本 */ - public String text = ""; + public String text; /** * 点击操作 */ @@ -59,18 +59,18 @@ public class MessagePart { */ public void writeJson(final StringBuffer str) { str.append("{"); - str.append(String.format(TEXT_FORMAT, text)); + str.append(String.format(TEXT_FORMAT, new JsonBuilder(text))); if (clickActionName != null) { str.append(","); - str.append(String.format(CLICK_FORMAT, clickActionName, clickActionData)); + str.append(String.format(CLICK_FORMAT, clickActionName, new JsonBuilder(clickActionData))); } if (hoverActionName != null) { str.append(","); - str.append(String.format(HOVER_FORMAT, hoverActionName, hoverActionData)); + str.append(String.format(HOVER_FORMAT, hoverActionName, new JsonBuilder(hoverActionData))); } if (insertionData != null) { str.append(","); - str.append(String.format(INSERT_FORMAT, insertionData)); + str.append(String.format(INSERT_FORMAT, new JsonBuilder(insertionData))); } str.append("}"); } diff --git a/src/main/java/pw/yumc/YumCore/tellraw/Tellraw.java b/src/main/java/pw/yumc/YumCore/tellraw/Tellraw.java index 0e8b4dc..3c97e11 100644 --- a/src/main/java/pw/yumc/YumCore/tellraw/Tellraw.java +++ b/src/main/java/pw/yumc/YumCore/tellraw/Tellraw.java @@ -10,6 +10,7 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; +import pw.yumc.YumCore.bukkit.Log; import pw.yumc.YumCore.bukkit.P; import pw.yumc.YumCore.bukkit.compatible.C; @@ -276,6 +277,7 @@ public class Tellraw { messagePart.writeJson(msg); } msg.append("]"); + Log.debug(msg.toString()); return msg.toString(); }