From e7ebf50ff2e9b8bfd8a362921eef38c4dc1c2639 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=9D=8F=E9=BB=91?= Date: Tue, 20 Feb 2018 15:03:37 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=88=E6=9C=AC=E6=9B=B4=E6=96=B0=E8=87=B3?= =?UTF-8?q?=203.59?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 调整:帮助命令的 JSON 版本改为 1.9+ 版本显示 调整:插件尚未启动完成则不会执行 onDisable() 方法 修复:ActionUtils 工具在 1.12 版本下失效的问题,感谢 MCBBS 用户 Innovators 的测试。 --- src/main/src/me/skymc/taboolib/Main.java | 12 ++++++++++++ .../skymc/taboolib/commands/sub/HelpCommand.java | 2 +- .../src/me/skymc/taboolib/display/ActionUtils.java | 14 ++++++++++++-- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/main/src/me/skymc/taboolib/Main.java b/src/main/src/me/skymc/taboolib/Main.java index a18f523..82646f0 100644 --- a/src/main/src/me/skymc/taboolib/Main.java +++ b/src/main/src/me/skymc/taboolib/Main.java @@ -88,6 +88,8 @@ public class Main extends JavaPlugin implements Listener { private static LogClient client; @Getter private static Language2 exampleLangauge2; + @Getter + private static boolean started; public static Random getRandom() { return NumberUtils.getRand(); @@ -220,12 +222,22 @@ public class Main extends JavaPlugin implements Listener { TLM.getInst(); } }.runTask(this); + + // 启动 + started = true; } @Override public void onDisable() { disable = true; + // 如果插件尚未启动完成 + if (!started) { + MsgUtils.send("&c插件尚未启动完成, 已跳过卸载代码"); + MsgUtils.send("&c插件作者: &4坏黑"); + return; + } + // 保存数据 Bukkit.getOnlinePlayers().forEach(x -> DataUtils.saveOnline(x.getName())); // 结束线程 diff --git a/src/main/src/me/skymc/taboolib/commands/sub/HelpCommand.java b/src/main/src/me/skymc/taboolib/commands/sub/HelpCommand.java index feb07eb..d64d523 100644 --- a/src/main/src/me/skymc/taboolib/commands/sub/HelpCommand.java +++ b/src/main/src/me/skymc/taboolib/commands/sub/HelpCommand.java @@ -46,7 +46,7 @@ public class HelpCommand extends SubCommand { helps.put("e", null); helps.put("/taboolib importdata", "4ݿ⵼뱾 8(òݿ)"); - if (sender instanceof ConsoleCommandSender || TabooLib.getVerint() < 10800) { + if (sender instanceof ConsoleCommandSender || TabooLib.getVerint() < 10900) { sender.sendMessage("f"); sender.sendMessage("bl----- 3lTaooLib Commands bl-----"); sender.sendMessage("f"); diff --git a/src/main/src/me/skymc/taboolib/display/ActionUtils.java b/src/main/src/me/skymc/taboolib/display/ActionUtils.java index ceae2bf..7b4c273 100644 --- a/src/main/src/me/skymc/taboolib/display/ActionUtils.java +++ b/src/main/src/me/skymc/taboolib/display/ActionUtils.java @@ -4,7 +4,9 @@ import java.lang.reflect.Constructor; import org.bukkit.Bukkit; import org.bukkit.entity.Player; +import me.skymc.taboolib.TabooLib; import me.skymc.taboolib.methods.MethodsUtils; +import net.minecraft.server.v1_12_R1.ChatMessageType; public class ActionUtils { @@ -44,8 +46,16 @@ public class ActionUtils { try { Object ab = getNMSClass("ChatComponentText").getConstructor(new Class[] { String.class }).newInstance(new Object[] { msg }); - Constructor ac = getNMSClass("PacketPlayOutChat").getConstructor(new Class[] { getNMSClass("IChatBaseComponent"), Byte.TYPE }); - Object abPacket = ac.newInstance(new Object[] { ab, Byte.valueOf((byte) 2) }); + Constructor ac = null; + Object abPacket = null; + // ����汾���� 1.11.0 + if (TabooLib.getVerint() > 11100) { + Class chatMessageType = getNMSClass("ChatMessageType"); + ac = getNMSClass("PacketPlayOutChat").getConstructor(getNMSClass("IChatBaseComponent"), chatMessageType); + abPacket = ac.newInstance(ab, chatMessageType.getMethod("a", Byte.TYPE).invoke(null, (byte) 2)); + } else { + abPacket = ac.newInstance(ab, Byte.valueOf((byte) 2)); + } sendPacket(p, abPacket); } catch (Exception ex)