diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 248a6a4..ea28283 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,7 +6,6 @@ on: - '[0-9]+.[0-9]+.[0-9]+' - '[0-9]+.[0-9]+.[0-9]+-beta[0-9]+' pull_request: - branches: [master] workflow_dispatch: jobs: diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/Main.java b/src/main/java/cn/stevei5mc/NewTipsVariables/Main.java index e4688ac..80a5f9b 100644 --- a/src/main/java/cn/stevei5mc/NewTipsVariables/Main.java +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/Main.java @@ -42,7 +42,8 @@ public void onLoad() { public void onEnable() { //判断需要的前置插件是否存在 - if (this.getServer().getPluginManager().getPlugin("Tips") != null) { + try{ + Class.forName("tip.utils.variables.BaseVariable"); //存在则加载该插件 this.getServer().getCommandMap().register("", new NewTipsVariablesCommand());//注册命令 this.tipsVariables();//加载变量部分 @@ -54,10 +55,10 @@ public void onEnable() { Plugin pl = getServer().getPluginManager().getPlugin("UnicodeVariables"); if (pl != null) { Server.getInstance().getPluginManager().disablePlugin(pl); - getLogger().info("§c插件UnicodeVariables的功能已合并到本插件,插件UnicodeVariables不再接受维护,你可以将其删除掉来使用本插件的相关功能"); + getLogger().info("§c插件UnicodeVariables的功能已合并到本插件,插件UnicodeVariables不再接受维护,你可以将其删除掉来使用本插件的相关功能"); } },20); - } else { + }catch (Exception ignore) { //不存在作为卸载该插件 this.getLogger().warning("§c未检测到前置插件§aTips§c,请安装§aTips§c再试!!!"); this.getLogger().warning("§b下载地址: §ehttps://motci.cn/job/GameCore/ 或 https://ci.lanink.cn/job/GameCore/"); diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/command/NewTipsVariablesCommand.java b/src/main/java/cn/stevei5mc/NewTipsVariables/command/NewTipsVariablesCommand.java index 9ecf24d..ab88be2 100644 --- a/src/main/java/cn/stevei5mc/NewTipsVariables/command/NewTipsVariablesCommand.java +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/command/NewTipsVariablesCommand.java @@ -4,13 +4,10 @@ import cn.stevei5mc.NewTipsVariables.command.sub.CheckStateCommand; import cn.stevei5mc.NewTipsVariables.command.sub.ReloadCommand; -/** - * @author lt_name - */ public class NewTipsVariablesCommand extends BaseCommand { public NewTipsVariablesCommand() { - super("NewTipsVariables", "NewTipsVariables 命令"); + super("newtipsvariables", "NewTipsVariables 命令"); this.setPermission("newtipsariables.admin"); this.addSubCommand(new ReloadCommand("reload")); this.addSubCommand(new CheckStateCommand("checkstatus")); @@ -19,9 +16,9 @@ public NewTipsVariablesCommand() { @Override public void sendHelp(CommandSender sender) { - String cmdname = "§a/newtipsariables "; - sender.sendMessage("§b=== NewTipsVariables ==="); - sender.sendMessage(cmdname+"reload §e重载配置文件"); - sender.sendMessage(cmdname+"checkstatus §e检查插件的状态"); + String cmdName = "§a/" + getName(); + sender.sendMessage("§bNewTipsVariables 命令帮助"); + sender.sendMessage(cmdName + "reload §e重载配置文件"); + sender.sendMessage(cmdName +" checkstatus §e检查插件的状态"); } } \ No newline at end of file diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/command/sub/CheckStateCommand.java b/src/main/java/cn/stevei5mc/NewTipsVariables/command/sub/CheckStateCommand.java index 130676c..ad4292a 100644 --- a/src/main/java/cn/stevei5mc/NewTipsVariables/command/sub/CheckStateCommand.java +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/command/sub/CheckStateCommand.java @@ -3,6 +3,7 @@ import cn.nukkit.command.CommandSender; import cn.nukkit.command.data.CommandParameter; import cn.stevei5mc.NewTipsVariables.command.BaseSubCommand; +import cn.stevei5mc.NewTipsVariables.utils.PluginsListEnum; import cn.stevei5mc.NewTipsVariables.utils.PluginsState; public class CheckStateCommand extends BaseSubCommand { @@ -23,16 +24,13 @@ public String[] getAliases() { @Override public boolean execute(CommandSender sender, String label, String[] args) { - PluginsState ps = PluginsState.getInstance(); - sender.sendMessage("Plugins loading status"); - sender.sendMessage("playerPoints = " + ps.playerPoints); - sender.sendMessage("EconomyAPI = " + ps.economyAPI); - sender.sendMessage("OreArea = " + ps.oreArea); - sender.sendMessage("RSTask = " + ps.rSTask); - sender.sendMessage("HealthAPI = " + ps.healthAPI); - sender.sendMessage("LevelAwakenSystem = " + ps.levelAwakenSystem); - sender.sendMessage("RSWeapon = " + ps.rSWeapon); - sender.sendMessage("LuckPerms = " + ps.luckPerms); + sender.sendMessage("§bNewTipsVariables 支持插件的状态列表:"); + for (PluginsListEnum plugin : PluginsListEnum.values()) { + String name = plugin.getName(); + boolean state = PluginsState.getPluginState(name); + String color = state ? "§a" : "§c"; + sender.sendMessage("§3" + name + "§7=" + color + state); + } return true; } diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/utils/GetConfigInfo.java b/src/main/java/cn/stevei5mc/NewTipsVariables/utils/GetConfigInfo.java index 34fabfe..6fe9bbe 100644 --- a/src/main/java/cn/stevei5mc/NewTipsVariables/utils/GetConfigInfo.java +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/utils/GetConfigInfo.java @@ -15,7 +15,7 @@ public static String getServerTps() { String serverTpslowColor = Main.getInstance().getConfigInServer().getString("TPS.low_color");//low值 int serverTpsMediumValue = Main.getInstance().getConfigInServer().getInt("TPS.medium_value");//medium值 String serverTpsMediumColor = Main.getInstance().getConfigInServer().getString("TPS.medium_color"); - int serverTpsHgihValue = Main.getInstance().getConfigInServer().getInt("TPS.high_value");//hgih值 + int serverTpsHgihValue = Main.getInstance().getConfigInServer().getInt("TPS.high_value");//high值 String serverTpsHgihColor = Main.getInstance().getConfigInServer().getString("TPS.high_color"); String serverTps; float tpsValue = Server.getInstance().getTicksPerSecond(); @@ -60,16 +60,16 @@ private static String getWorldName(String worldName) { * @return 玩家的延迟 */ public static String getPlayerPing(Player player) { - String playerPingLowColor = Main.getInstance().getConfigInPlayer().getString("ping.low_color");//low值 + String playerPingLowColor = Main.getInstance().getConfigInPlayer().getString("ping.low_color");// low color int playerPingMediumValue = Main.getInstance().getConfigInPlayer().getInt("ping.medium_value");//medium值 String playerPingMediumColor = Main.getInstance().getConfigInPlayer().getString("ping.medium_color"); - int playerPingHgihValue = Main.getInstance().getConfigInPlayer().getInt("ping.high_value");//hgih值 - String playerPingHgihColor = Main.getInstance().getConfigInPlayer().getString("ping.high_color"); + int playerPingHighValue = Main.getInstance().getConfigInPlayer().getInt("ping.high_value");//high值 + String playerPingHighColor = Main.getInstance().getConfigInPlayer().getString("ping.high_color"); String playerMS; int pingValue = player.getPing(); //low=0 - if (pingValue >= playerPingHgihValue) { - playerMS = playerPingHgihColor + pingValue; + if (pingValue >= playerPingHighValue) { + playerMS = playerPingHighColor + pingValue; }else if (pingValue >= playerPingMediumValue) { playerMS = playerPingMediumColor + pingValue; }else { @@ -92,7 +92,7 @@ public static String getPlayerHealth(Player player) { double healthValue; String healthValue2; String healthMaxValue; - if (PluginsState.getInstance().healthAPI) { + if (PluginsState.getPluginState(PluginsListEnum.HEALTH_API.getName())) { PlayerHealth health = PlayerHealth.getPlayerHealth(player); healthValue = health.getHealth(); healthValue2 = String.valueOf(healthValue); diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/utils/LoadVariables.java b/src/main/java/cn/stevei5mc/NewTipsVariables/utils/LoadVariables.java index e99b4d9..3c51026 100644 --- a/src/main/java/cn/stevei5mc/NewTipsVariables/utils/LoadVariables.java +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/utils/LoadVariables.java @@ -1,7 +1,5 @@ package cn.stevei5mc.NewTipsVariables.utils; -import cn.nukkit.Server; -import cn.stevei5mc.NewTipsVariables.Main; import cn.stevei5mc.NewTipsVariables.variables.EconomyApiVariable; import cn.stevei5mc.NewTipsVariables.variables.LuckPermsVar; import cn.stevei5mc.NewTipsVariables.variables.SmallasWaterPlugins; @@ -9,9 +7,6 @@ import net.luckperms.api.LuckPermsProvider; import tip.utils.Api; -import java.util.Arrays; -import java.util.List; - public class LoadVariables{ private static LuckPerms luckperms; public static LuckPerms getLP() { @@ -20,22 +15,13 @@ public static LuckPerms getLP() { //需要加载的变量的插件 public static void pluginVariables() { - PluginsState ps = PluginsState.getInstance(); - boolean debug = Main.debug; - List pluginList = Arrays.asList("playerPoints","EconomyAPI","OreArea","RSTask","HealthAPI","LevelAwakenSystem","RSWeapon","LuckPerms"); - for(String plugin: pluginList){ - if (Server.getInstance().getPluginManager().getPlugin(plugin) != null) { - ps.setPluginState(plugin); - if (debug) {Main.getInstance().getLogger().info(Main.debugPrefix+"§a找到插件§e【§b"+plugin+"§e】§a相关变量已加载");} - } else if (debug) { - Main.getInstance().getLogger().info(Main.debugPrefix+"§a无法找到插件§e【§b"+plugin+"§e】§a相相关变量加载失败,请安装相关插件再试"); - } - } + PluginsState.initPluginStates(); + Api.registerVariables("SmallasWaterPlugins", SmallasWaterPlugins.class); - if (ps.economyAPI) { + if (PluginsState.getPluginState(PluginsListEnum.ECONOMY_API.getName())) { Api.registerVariables("EconomyApiVariable", EconomyApiVariable.class); } - if (ps.luckPerms) { + if (PluginsState.getPluginState(PluginsListEnum.LUCK_PERMS.getName())) { luckperms = LuckPermsProvider.get(); Api.registerVariables("LuckPermsVar", LuckPermsVar.class); } diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/utils/PluginsListEnum.java b/src/main/java/cn/stevei5mc/NewTipsVariables/utils/PluginsListEnum.java new file mode 100644 index 0000000..6641274 --- /dev/null +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/utils/PluginsListEnum.java @@ -0,0 +1,29 @@ +package cn.stevei5mc.NewTipsVariables.utils; + +public enum PluginsListEnum { + + PLAYER_POINTS("playerPoints", "net.player.PlayerPoint"), + ECONOMY_API("EconomyAPI", "me.onebone.economyapi.EconomyAPI"), + ORE_AREA("OreArea", "ore.area.AreaMainClass"), + RS_TASK("RSTask", "com.task.RsTask"), + HEALTH_API("HealthAPI", "healthapi.HealthMainClass"), + LEVEL_AWAKEN_SYSTEM("LevelAwakenSystem", "AwakenSystem.AwakenSystem"), + RS_WEAPON("RSWeapon", "weapon.RsWeapon"), + LUCK_PERMS("LuckPerms", "net.luckperms.api.LuckPermsProvider"); + + private final String name; + private final String mainClass; + + PluginsListEnum(String name, String mainClass) { + this.name = name; + this.mainClass = mainClass; + } + + public String getName() { + return name; + } + + public String getMainClass() { + return mainClass; + } +} diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/utils/PluginsState.java b/src/main/java/cn/stevei5mc/NewTipsVariables/utils/PluginsState.java index 24b99c3..bca895a 100644 --- a/src/main/java/cn/stevei5mc/NewTipsVariables/utils/PluginsState.java +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/utils/PluginsState.java @@ -1,56 +1,44 @@ package cn.stevei5mc.NewTipsVariables.utils; +import cn.stevei5mc.NewTipsVariables.Main; +import lombok.Getter; + +import java.util.HashMap; + public class PluginsState { - - private static PluginsState instance; + @Getter + private static HashMap pluginsState; + private static final Main main = Main.getInstance(); + + + public static void initPluginStates() { + pluginsState = new HashMap<>(); + for (PluginsListEnum plugin: PluginsListEnum.values()) { + checkPluginState(plugin); + } + } - public static PluginsState getInstance() { - if (instance == null) { - instance = new PluginsState(); + public static void checkPluginState(PluginsListEnum plugin) { + try{ + Class.forName(plugin.getMainClass()); + setPluginsState(plugin.getName(), true); + main.getLogger().info(Main.debugPrefix + "§a找到插件§e【§b" + plugin.getName() + "§e】§a相关变量已加载"); + }catch (Exception ignore) { + setPluginsState(plugin.getName(), false); + main.getLogger().info(Main.debugPrefix + "§c无法找到插件§e【§b" + plugin.getName() + "§e】§c相关变量加载失败,请安装相关插件再试"); } - return instance; } - // 插件的状态 - public boolean playerPoints = false; - public boolean economyAPI = false; - public boolean oreArea = false; - public boolean rSTask = false; - public boolean healthAPI = false; - public boolean levelAwakenSystem = false; - public boolean rSWeapon = false; - public boolean luckPerms = false; - - public void setPluginState(String pluginName) { - switch (pluginName) { - case "playerPoints": - playerPoints = true; - break; - case "EconomyAPI": - economyAPI = true; - break; - case "OreArea": - oreArea = true; - break; - case "RSTask": - rSTask = true; - break; - case "HealthAPI": - healthAPI = true; - break; - case "LevelAwakenSystem": - levelAwakenSystem = true; - break; - case "RSWeapon": - rSWeapon = true; - break; - case "LuckPerms": - luckPerms = true; - break; - default: - // 对于其他插件,不做任何操作,因为没有必要 - break; + public static boolean getPluginState(String pluginName) { + return pluginsState.getOrDefault(pluginName, false); + } + + private static void setPluginsState(String pluginName, boolean state) { + if(pluginsState.containsKey(pluginName)) { + pluginsState.replace(pluginName, state); + }else { + pluginsState.put(pluginName, state); } } } \ No newline at end of file diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/BaseVariables.java b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/BaseVariables.java index e634028..ca9cfa1 100644 --- a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/BaseVariables.java +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/BaseVariables.java @@ -12,11 +12,11 @@ public BaseVariables(Player player) { } public void strReplace() { + text(); + unicode(); + server(); if (player != null && player.isOnline()) { - text(); player(); - server(); - unicode(); } } diff --git a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/SmallasWaterPlugins.java b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/SmallasWaterPlugins.java index e8b4211..16aaf37 100644 --- a/src/main/java/cn/stevei5mc/NewTipsVariables/variables/SmallasWaterPlugins.java +++ b/src/main/java/cn/stevei5mc/NewTipsVariables/variables/SmallasWaterPlugins.java @@ -6,6 +6,7 @@ import AwakenSystem.utils.nbtItems; import cn.nukkit.Player; import cn.nukkit.item.Item; +import cn.stevei5mc.NewTipsVariables.utils.PluginsListEnum; import cn.stevei5mc.NewTipsVariables.utils.PluginsState; import com.task.utils.tasks.PlayerFile; import com.task.utils.tasks.taskitems.PlayerTask; @@ -30,23 +31,22 @@ public SmallasWaterPlugins(Player player) { public void strReplace() { if (player != null && player.isOnline()) { - PluginsState ps = PluginsState.getInstance(); - if (ps.playerPoints) { + if (PluginsState.getPluginState(PluginsListEnum.PLAYER_POINTS.getName())) { playerPoint(); } - if (ps.rSTask) { + if (PluginsState.getPluginState(PluginsListEnum.RS_TASK.getName())) { RsTask(); } - if (ps.oreArea) { + if (PluginsState.getPluginState(PluginsListEnum.ORE_AREA.getName())) { OreArea(); } - if (ps.healthAPI) { + if (PluginsState.getPluginState(PluginsListEnum.HEALTH_API.getName())) { HealthAPI(); } - if (ps.rSWeapon) { + if (PluginsState.getPluginState(PluginsListEnum.RS_WEAPON.getName())) { RSWeapon(); } - if (ps.levelAwakenSystem) { + if (PluginsState.getPluginState(PluginsListEnum.LEVEL_AWAKEN_SYSTEM.getName())) { LevelAwakenSystem(); } }