From 7dbc9966c5a8a009dd67390cf4eca754aebb6ba9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=9D=8F=E9=BB=91?= Date: Sun, 20 Jan 2019 16:45:02 +0800 Subject: [PATCH] =?UTF-8?q?+=20=E9=9D=99=E9=BB=98=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- src/main/java/com/ilummc/tlib/TLib.java | 5 +- src/main/java/me/skymc/taboolib/Main.java | 20 ++++--- src/main/java/me/skymc/taboolib/TabooLib.java | 54 ++++++------------- .../me/skymc/taboolib/cloud/TCloudLoader.java | 22 +++++--- .../skymc/taboolib/common/nms/NMSHandler.java | 2 + .../taboolib/common/nms/NMSHandlerImpl.java | 6 +++ .../skymc/taboolib/socket/TabooLibClient.java | 2 +- 8 files changed, 57 insertions(+), 56 deletions(-) diff --git a/pom.xml b/pom.xml index e45a643..4d52892 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ me.skymc TabooLib - 4.69 + 4.7 UTF-8 diff --git a/src/main/java/com/ilummc/tlib/TLib.java b/src/main/java/com/ilummc/tlib/TLib.java index 83559c3..831c274 100644 --- a/src/main/java/com/ilummc/tlib/TLib.java +++ b/src/main/java/com/ilummc/tlib/TLib.java @@ -12,6 +12,7 @@ import com.ilummc.tlib.resources.TLocale; import com.ilummc.tlib.resources.TLocaleLoader; import com.ilummc.tlib.util.IO; import me.skymc.taboolib.Main; +import me.skymc.taboolib.TabooLib; import me.skymc.taboolib.fileutils.FileUtils; import me.skymc.taboolib.plugin.PluginUtils; import org.bukkit.Bukkit; @@ -96,8 +97,8 @@ public class TLib { field.set(Bukkit.getServer(), new TPluginManager()); TLocale.Logger.info("TLIB.INJECTION-SUCCESS"); } catch (NoSuchFieldException | IllegalAccessException | IllegalArgumentException ignored) { - TLocale.Logger.fatal("TLIB.INJECTION-FAILED"); - Arrays.stream(Bukkit.getPluginManager().getPlugins()).filter(plugin -> plugin != Main.getInst()).forEach(plugin -> TDependencyInjector.inject(plugin, plugin)); + TLocale.Logger.error("TLIB.INJECTION-FAILED"); + Arrays.stream(Bukkit.getPluginManager().getPlugins()).filter(plugin -> !TabooLib.isTabooLib(plugin)).forEach(plugin -> TDependencyInjector.inject(plugin, plugin)); } } diff --git a/src/main/java/me/skymc/taboolib/Main.java b/src/main/java/me/skymc/taboolib/Main.java index c364a0a..c036d92 100644 --- a/src/main/java/me/skymc/taboolib/Main.java +++ b/src/main/java/me/skymc/taboolib/Main.java @@ -119,13 +119,15 @@ public class Main extends JavaPlugin { @Override public void run() { // 面子工程 - InputStream inputStream = FileUtils.getResource("motd.txt"); - try { - String text = new String(IO.readFully(inputStream), Charset.forName("utf-8")); - if (text != null) { - Arrays.stream(text.split("\n")).forEach(line -> Bukkit.getConsoleSender().sendMessage(Strings.replaceWithOrder(line, getDescription().getVersion()))); + if (!TabooLib.isSilent()) { + InputStream inputStream = FileUtils.getResource("motd.txt"); + try { + String text = new String(IO.readFully(inputStream), Charset.forName("utf-8")); + if (text != null) { + Arrays.stream(text.split("\n")).forEach(line -> Bukkit.getConsoleSender().sendMessage(Strings.replaceWithOrder(line, getDescription().getVersion()))); + } + } catch (IOException ignored) { } - } catch (IOException ignored) { } // 本地通讯网络终端 if (getConfig().getBoolean("SERVER")) { @@ -135,12 +137,14 @@ public class Main extends JavaPlugin { TabooLibClient.init(); } }.runTask(this); - // 更新检测 - new UpdateTask(); // 启动 started = true; // 载入语言文件 exampleLanguage2 = new Language2("Language2", this); + // 更新检测 + if (!TabooLib.isSilent()) { + new UpdateTask(); + } } @Override diff --git a/src/main/java/me/skymc/taboolib/TabooLib.java b/src/main/java/me/skymc/taboolib/TabooLib.java index 93097e9..bc61503 100644 --- a/src/main/java/me/skymc/taboolib/TabooLib.java +++ b/src/main/java/me/skymc/taboolib/TabooLib.java @@ -1,6 +1,6 @@ package me.skymc.taboolib; -import me.skymc.taboolib.nms.NMSUtils; +import me.skymc.taboolib.common.nms.NMSHandler; import me.skymc.taboolib.other.NumberUtils; import me.skymc.taboolib.playerdata.DataUtils; import net.md_5.bungee.api.ChatColor; @@ -16,6 +16,7 @@ import java.util.UUID; public class TabooLib { private static boolean spigot = false; + private static boolean silent = false; static { try { @@ -28,8 +29,6 @@ public class TabooLib { /** * 获取主类对象,因 Main 名称容易造成混淆所以转移至此 - * - * @return {@link Main} */ public static Main instance() { return (Main) Main.getInst(); @@ -37,9 +36,6 @@ public class TabooLib { /** * 插件是否为 TabooLib(沙雕方法) - * - * @param plugin 插件 - * @return boolean */ public static boolean isTabooLib(Plugin plugin) { return plugin.equals(instance()) || plugin.getName().equals("TabooLib"); @@ -47,9 +43,6 @@ public class TabooLib { /** * 插件是否依赖于 TabooLib(依赖或软兼容) - * - * @param plugin 插件 - * @return boolean */ public static boolean isDependTabooLib(Plugin plugin) { return plugin.getDescription().getDepend().contains("TabooLib") || plugin.getDescription().getSoftDepend().contains("TabooLib"); @@ -57,17 +50,27 @@ public class TabooLib { /** * 是否为 Spigot 核心,因 TabooLib 可在 BungeeCord 上运行所以添加此方法 - * - * @return boolean */ public static boolean isSpigot() { return spigot; } + /** + * 是否为静默模式 + */ + public static boolean isSilent() { + return silent; + } + + /** + * 设置静默模式,启用后将关闭部分提示 + */ + public static void setSilent(boolean silent) { + TabooLib.silent = silent; + } + /** * 获取 TabooLib 插件版本 - * - * @return double */ public static double getPluginVersion() { return NumberUtils.getDouble(Main.getInst().getDescription().getVersion()); @@ -75,8 +78,6 @@ public class TabooLib { /** * 获取服务端版本 - * - * @return String */ public static String getVersion() { return Bukkit.getServer().getClass().getName().split("\\.")[3]; @@ -84,8 +85,6 @@ public class TabooLib { /** * 获取服务端版本数字 - * - * @return int */ public static int getVersionNumber() { return getVerint(); @@ -100,8 +99,6 @@ public class TabooLib { /** * 是否为调试模式 - * - * @return boolean */ public static boolean isDebug() { return DataUtils.getPluginData("TabooLibrary", instance()).getBoolean("debug"); @@ -109,8 +106,6 @@ public class TabooLib { /** * 切换调试模式 - * - * @param debug 值 */ public static void setDebug(boolean debug) { DataUtils.getPluginData("TabooLibrary", instance()).set("debug", debug); @@ -118,8 +113,6 @@ public class TabooLib { /** * 发送调试信息 - * - * @param args 内容 */ public static void debug(String... args) { debug(instance(), args); @@ -127,9 +120,6 @@ public class TabooLib { /** * 发送调试信息 - * - * @param plugin 插件名 - * @param args 内容 */ public static void debug(Plugin plugin, String... args) { if (TabooLib.isDebug()) { @@ -139,8 +129,6 @@ public class TabooLib { /** * 获取服务器序列号 - * - * @return String */ public static String getServerUID() { if (!DataUtils.getPluginData("TabooLibrary", null).contains("serverUID")) { @@ -151,17 +139,9 @@ public class TabooLib { /** * 获取服务器 TPS - * - * @return double[3] */ public static double[] getTPS() { - try { - Class minecraftServer = NMSUtils.getNMSClass("MinecraftServer"); - Object server = minecraftServer.getMethod("getServer").invoke(null); - return (double[]) server.getClass().getField("recentTps").get(server); - } catch (Exception e) { - return new double[] {0, 0, 0}; - } + return NMSHandler.getHandler().getTPS(); } @Deprecated diff --git a/src/main/java/me/skymc/taboolib/cloud/TCloudLoader.java b/src/main/java/me/skymc/taboolib/cloud/TCloudLoader.java index 53d22e3..4be5c95 100644 --- a/src/main/java/me/skymc/taboolib/cloud/TCloudLoader.java +++ b/src/main/java/me/skymc/taboolib/cloud/TCloudLoader.java @@ -14,9 +14,7 @@ import me.skymc.taboolib.plugin.PluginUtils; import org.bukkit.Bukkit; import java.io.File; -import java.util.HashMap; import java.util.Map; -import java.util.Set; /** * @Author sky @@ -48,13 +46,17 @@ public class TCloudLoader { long time = System.currentTimeMillis(); latestJsonOrigin = FileUtils.getStringFromURL(url, 1024); if (latestJsonOrigin == null) { - TLocale.Logger.error("TCLOUD.LIST-CONNECT-FAILED"); + if (!TabooLib.isSilent()) { + TLocale.Logger.error("TCLOUD.LIST-CONNECT-FAILED"); + } return; } try { latestJsonObject = new JsonParser().parse(latestJsonOrigin).getAsJsonObject(); } catch (Exception e) { - TLocale.Logger.info("TCLOUD.LIST-PARSE-FAILED", e.getMessage()); + if (!TabooLib.isSilent()) { + TLocale.Logger.info("TCLOUD.LIST-PARSE-FAILED", e.getMessage()); + } return; } if (latestJsonObject.has("plugins")) { @@ -62,7 +64,9 @@ public class TCloudLoader { try { expansionPlugins.put(pluginEntry.getKey(), Expansion.unSerialize(ExpansionType.PLUGIN, pluginEntry.getKey(), pluginEntry.getValue().getAsJsonObject())); } catch (Exception e) { - TLocale.Logger.info("TCLOUD.LIST-LOAD-FAILED", pluginEntry.getKey(), e.getMessage()); + if (!TabooLib.isSilent()) { + TLocale.Logger.info("TCLOUD.LIST-LOAD-FAILED", pluginEntry.getKey(), e.getMessage()); + } } } } @@ -71,11 +75,15 @@ public class TCloudLoader { try { expansionInternal.put(pluginEntry.getKey(), Expansion.unSerialize(ExpansionType.INTERNAL, pluginEntry.getKey(), pluginEntry.getValue().getAsJsonObject())); } catch (Exception e) { - TLocale.Logger.info("TCLOUD.LIST-LOAD-FAILED", pluginEntry.getKey(), e.getMessage()); + if (!TabooLib.isSilent()) { + TLocale.Logger.info("TCLOUD.LIST-LOAD-FAILED", pluginEntry.getKey(), e.getMessage()); + } } } } - TLocale.Logger.info("TCLOUD.LIST-LOAD-SUCCESS", String.valueOf(System.currentTimeMillis() - time)); + if (!TabooLib.isSilent()) { + TLocale.Logger.info("TCLOUD.LIST-LOAD-SUCCESS", String.valueOf(System.currentTimeMillis() - time)); + } }); } diff --git a/src/main/java/me/skymc/taboolib/common/nms/NMSHandler.java b/src/main/java/me/skymc/taboolib/common/nms/NMSHandler.java index 0a2ddab..51749e6 100644 --- a/src/main/java/me/skymc/taboolib/common/nms/NMSHandler.java +++ b/src/main/java/me/skymc/taboolib/common/nms/NMSHandler.java @@ -32,6 +32,8 @@ public abstract class NMSHandler { abstract public void sendActionBar(Player player, String text); + abstract public double[] getTPS(); + public static NMSHandler getHandler() { return handler; } diff --git a/src/main/java/me/skymc/taboolib/common/nms/NMSHandlerImpl.java b/src/main/java/me/skymc/taboolib/common/nms/NMSHandlerImpl.java index d365346..15de1a0 100644 --- a/src/main/java/me/skymc/taboolib/common/nms/NMSHandlerImpl.java +++ b/src/main/java/me/skymc/taboolib/common/nms/NMSHandlerImpl.java @@ -3,6 +3,7 @@ package me.skymc.taboolib.common.nms; import me.skymc.taboolib.TabooLib; import me.skymc.taboolib.common.packet.TPacketHandler; import net.minecraft.server.v1_12_R1.ChatMessageType; +import net.minecraft.server.v1_12_R1.MinecraftServer; import net.minecraft.server.v1_8_R3.ChatComponentText; import net.minecraft.server.v1_8_R3.PacketPlayOutChat; import net.minecraft.server.v1_8_R3.PacketPlayOutTitle; @@ -28,4 +29,9 @@ public class NMSHandlerImpl extends NMSHandler { TPacketHandler.sendPacket(player, new PacketPlayOutChat(new ChatComponentText(String.valueOf(text)), (byte) 2)); } } + + @Override + public double[] getTPS() { + return MinecraftServer.getServer().recentTps; + } } diff --git a/src/main/java/me/skymc/taboolib/socket/TabooLibClient.java b/src/main/java/me/skymc/taboolib/socket/TabooLibClient.java index 2706db7..9309e5d 100644 --- a/src/main/java/me/skymc/taboolib/socket/TabooLibClient.java +++ b/src/main/java/me/skymc/taboolib/socket/TabooLibClient.java @@ -68,7 +68,7 @@ public class TabooLibClient { /* 防止未启用终端服务器导致重复提示连接失败信息 */ - if (!notify) { + if (!notify && !TabooLib.isSilent()) { notify = true; TLocale.sendToConsole("COMMUNICATION.FAILED-CONNECT-SERVER"); }