From 83412fd5746fe41253e4ae74a205880c056e7820 Mon Sep 17 00:00:00 2001 From: LabodiDavid Date: Thu, 13 Jul 2023 00:09:18 +0200 Subject: [PATCH] Refactoring --- src/main/java/hu/ditservices/STPlugin.java | 175 +++++++++++------- .../{PingCmd.java => PingCommand.java} | 2 +- ...uginCmd.java => PluginManagerCommand.java} | 2 +- .../{SaveCmd.java => SaveCommand.java} | 2 +- .../{StatCmd.java => StatCommand.java} | 2 +- .../CommandHandler.java} | 36 ++-- .../ditservices/handlers/DITTabCompleter.java | 54 +++--- .../hu/ditservices/handlers/SaveHandler.java | 4 +- .../hu/ditservices/listeners/LogConnect.java | 4 +- 9 files changed, 158 insertions(+), 123 deletions(-) rename src/main/java/hu/ditservices/commands/{PingCmd.java => PingCommand.java} (97%) rename src/main/java/hu/ditservices/commands/{PluginCmd.java => PluginManagerCommand.java} (98%) rename src/main/java/hu/ditservices/commands/{SaveCmd.java => SaveCommand.java} (96%) rename src/main/java/hu/ditservices/commands/{StatCmd.java => StatCommand.java} (97%) rename src/main/java/hu/ditservices/{commands/DitCmd.java => handlers/CommandHandler.java} (87%) diff --git a/src/main/java/hu/ditservices/STPlugin.java b/src/main/java/hu/ditservices/STPlugin.java index 733a5ac..632a4a5 100644 --- a/src/main/java/hu/ditservices/STPlugin.java +++ b/src/main/java/hu/ditservices/STPlugin.java @@ -6,7 +6,7 @@ import hu.ditservices.handlers.TabHandler; import hu.ditservices.utils.*; import hu.ditservices.utils.Math; import org.bstats.bukkit.Metrics; -import hu.ditservices.commands.DitCmd; +import hu.ditservices.handlers.CommandHandler; import hu.ditservices.listeners.ChatEvents; import hu.ditservices.listeners.LogChat; import hu.ditservices.listeners.LogCommand; @@ -41,98 +41,133 @@ public final class STPlugin extends JavaPlugin implements CommandExecutor, Liste @Override public void onEnable() { instance = this; + + if (this.initPlugin()) { + this.log.info(ChatColor.stripColor(this.getPrefix())+"Started running."); + } + } + + + private void registerEvents() { + getServer().getPluginManager().registerEvents(this, this); + getServer().getPluginManager().registerEvents(new LogChat(this), this); + getServer().getPluginManager().registerEvents(new LogCommand(this), this); + getServer().getPluginManager().registerEvents(new LogConnect(this), this); + + if (this.config.isSet("CustomAdvancement.enabled") && this.config.getBoolean("CustomAdvancement.enabled")) { + getServer().getPluginManager().registerEvents(new ChatEvents(this), this); + this.log.info(ChatColor.stripColor(this.getPrefix()) + "Custom Advancement Messages enabled!"); + } + } + + private void scheduleTasks() { + Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new TPS(), 0, 1); + + if (this.config.getBoolean("Saving.enabled") && this.config.getInt("Saving.interval") > 0) { + long intervalTicks = Math.convert(Math.Convert.SECONDS, Math.Convert.TICKS, instance.config.getInt("Saving.interval")); + Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new SaveHandler(), 0L, intervalTicks); + } + } + + private void initUpdateChecker() { + new UpdateChecker(this, UpdateCheckSource.GITHUB_RELEASE_TAG, "LabodiDavid/SimplifyTools") + .setDownloadLink("https://github.com/LabodiDavid/SimplifyTools/releases") + .setDonationLink("https://paypal.me/labodidavid") + .setChangelogLink("https://github.com/LabodiDavid/SimplifyTools/blob/main/docs/ChangeLog.md") + .setNotifyOpsOnJoin(true) + .setNotifyByPermissionOnJoin("st.admin") + .setUserAgent(new UserAgentBuilder().addPluginNameAndVersion()) + .checkEveryXHours(24) + .checkNow(); + } + + private void initMetrics() { + Metrics metrics = new Metrics(this, 15108); + } + + private boolean initPlugin() { try { - this.Init(); + this.ServerStartTime = ManagementFactory.getRuntimeMXBean().getStartTime(); + if (Version.ServerVersion.isCurrentLower(Version.ServerVersion.v1_12_R1) || + Version.ServerVersion.isCurrentHigher(Version.ServerVersion.v1_20_R1)) + { + throw new Exception("The server version is not supported! Update to a version between 1.12 - 1.20.1 to run this plugin."); + } + + if (this.Reload()) { + TabHandler tab = new TabHandler(); + + PluginCommand stCommand = this.getCommand("st"); + stCommand.setExecutor(new CommandHandler(this)); + stCommand.setTabCompleter(new DITTabCompleter()); + + registerEvents(); + scheduleTasks(); + initUpdateChecker(); + initMetrics(); + + return true; + } else { + return false; + } } catch (Exception e) { - this.log.warning("[SimplifyTools] - INITIALIZATION ERROR: "+e.getMessage()); + this.log.warning("[SimplifyTools] - INITIALIZATION ERROR: " + e.getMessage()); this.log.warning("[SimplifyTools] - Plugin disabled!"); this.setEnabled(false); - return; - } - this.log.info(ChatColor.stripColor(this.getPrefix())+"Started running."); - } - - - private void Init() throws Exception { - this.ServerStartTime = ManagementFactory.getRuntimeMXBean().getStartTime(); - if (Version.ServerVersion.isCurrentLower(Version.ServerVersion.v1_12_R1)){ - throw new Exception("The server version is not supported! Update to a version between 1.12 - 1.20.1 to run this plugin."); - } - if (this.Reload()){ - - - TabHandler tab = new TabHandler(); - PluginCommand ditCmd = this.getCommand("st"); - ditCmd.setExecutor(new DitCmd(this)); - ditCmd.setTabCompleter(new DITTabCompleter()); - - getServer().getPluginManager().registerEvents(this, this); - getServer().getPluginManager().registerEvents(new LogChat(this), this); - getServer().getPluginManager().registerEvents(new LogCommand(this), this); - getServer().getPluginManager().registerEvents(new LogConnect(this), this); - if (this.config.isSet("CustomAdvancement.enabled") && this.config.getBoolean("CustomAdvancement.enabled")){ - getServer().getPluginManager().registerEvents(new ChatEvents(this), this); - this.log.info(ChatColor.stripColor(this.getPrefix()) + "Custom Advancement Messages enabled!"); - } - Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new TPS(), 0, 1); - - if (this.config.getBoolean("Saving.enabled") && this.config.getInt("Saving.interval")>0){ - Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new SaveHandler(), 0L, Math.convert(Math.Convert.SECONDS,Math.Convert.TICKS,instance.config.getInt("Saving.interval"))); - } - - new UpdateChecker(this, UpdateCheckSource.GITHUB_RELEASE_TAG, "LabodiDavid/SimplifyTools") - .setDownloadLink("https://github.com/LabodiDavid/SimplifyTools/releases") - .setDonationLink("https://paypal.me/labodidavid") - .setChangelogLink("https://github.com/LabodiDavid/SimplifyTools/blob/main/docs/ChangeLog.md") - .setNotifyOpsOnJoin(true) - .setNotifyByPermissionOnJoin("st.admin") - .setUserAgent(new UserAgentBuilder().addPluginNameAndVersion()) - .checkEveryXHours(24) - .checkNow(); - - Metrics metrics = new Metrics(this, 15108); + return false; } } + + /** + * Gets the plugin's prefix. + * + * @return String + */ public String getPrefix(){ - if (this.config.isSet("Prefix") && !Objects.requireNonNull(this.config.getString("Prefix")).isEmpty()){ + if (this.config.isSet("Prefix") && !Objects.requireNonNull(this.config.getString("Prefix")).isEmpty()) { return ChatColor.translateAlternateColorCodes('&', this.config.getString("Prefix")); }else{ return ChatColor.translateAlternateColorCodes('&',"&a[&fSimplify&7Tools&2] &4- &f"); } } + /** + * Returns the main plugin instance. + * + * @return STPlugin + */ public static STPlugin getInstance(){ return instance; } - public static String getUptime(){ - int uptime = (int)(System.currentTimeMillis() - instance.ServerStartTime)/1000; - String returnText = ""; + /** + * Gets the server's uptime in a human readable format. + * + * @return String + */ + public static String getUptime() { + long uptime = (System.currentTimeMillis() - instance.ServerStartTime) / 1000; + StringBuilder returnText = new StringBuilder(); - // Get remaining seconds from total minutes. - int seconds = uptime % 60; - // Convert to minutes, get remaining minutes from total hours. - int minutes = (uptime / 60) % 60; - // Convert to hours, get remaining hours from total days. - int hours = (uptime / 3600) % 24; - // Convert to days. - int days = uptime / 86400; + int days = (int) (uptime / 86400); + int hours = (int) ((uptime % 86400) / 3600); + int minutes = (int) ((uptime % 3600) / 60); + int seconds = (int) (uptime % 60); - if (days>1){ - returnText = returnText+ days+" days "; + if (days > 1) { + returnText.append(days).append(" days "); } - if (hours>1){ - returnText = returnText+ hours+ " hours "; + if (hours > 1) { + returnText.append(hours).append(" hours "); } - if (minutes>1){ - returnText = returnText+ minutes+ " min "; + if (minutes > 1) { + returnText.append(minutes).append(" min "); } - if (seconds>1){ - returnText = returnText+ seconds+ "s "; + if (seconds > 1) { + returnText.append(seconds).append("s "); } - return returnText; - + return returnText.toString(); } public boolean Reload(){ @@ -153,6 +188,6 @@ public final class STPlugin extends JavaPlugin implements CommandExecutor, Liste } @Override public void onDisable() { - this.log.info(ChatColor.stripColor(this.getPrefix()) + "Started running."); + this.log.info(ChatColor.stripColor(this.getPrefix()) + "Stopped running."); } } diff --git a/src/main/java/hu/ditservices/commands/PingCmd.java b/src/main/java/hu/ditservices/commands/PingCommand.java similarity index 97% rename from src/main/java/hu/ditservices/commands/PingCmd.java rename to src/main/java/hu/ditservices/commands/PingCommand.java index 227847f..f23d9e4 100644 --- a/src/main/java/hu/ditservices/commands/PingCmd.java +++ b/src/main/java/hu/ditservices/commands/PingCommand.java @@ -6,7 +6,7 @@ import org.bukkit.command.CommandSender; import org.bukkit.command.ConsoleCommandSender; import org.bukkit.entity.Player; -public class PingCmd { +public class PingCommand { public static boolean Run(CommandSender sender) { STPlugin plugin = STPlugin.getInstance(); if (sender instanceof Player) { diff --git a/src/main/java/hu/ditservices/commands/PluginCmd.java b/src/main/java/hu/ditservices/commands/PluginManagerCommand.java similarity index 98% rename from src/main/java/hu/ditservices/commands/PluginCmd.java rename to src/main/java/hu/ditservices/commands/PluginManagerCommand.java index 620a5a2..3131589 100644 --- a/src/main/java/hu/ditservices/commands/PluginCmd.java +++ b/src/main/java/hu/ditservices/commands/PluginManagerCommand.java @@ -7,7 +7,7 @@ import hu.ditservices.STPlugin; import org.bukkit.command.CommandSender; -public class PluginCmd { +public class PluginManagerCommand { public static boolean LoadPlugin(CommandSender sender, String[] args){ Plugin plugin = Bukkit.getPluginManager().getPlugin(args[2]); if (plugin == null) { diff --git a/src/main/java/hu/ditservices/commands/SaveCmd.java b/src/main/java/hu/ditservices/commands/SaveCommand.java similarity index 96% rename from src/main/java/hu/ditservices/commands/SaveCmd.java rename to src/main/java/hu/ditservices/commands/SaveCommand.java index 8340b48..785b543 100644 --- a/src/main/java/hu/ditservices/commands/SaveCmd.java +++ b/src/main/java/hu/ditservices/commands/SaveCommand.java @@ -4,7 +4,7 @@ import hu.ditservices.STPlugin; import org.bukkit.Bukkit; import org.bukkit.World; -public class SaveCmd { +public class SaveCommand { /** * Saves all worlds and players data. * diff --git a/src/main/java/hu/ditservices/commands/StatCmd.java b/src/main/java/hu/ditservices/commands/StatCommand.java similarity index 97% rename from src/main/java/hu/ditservices/commands/StatCmd.java rename to src/main/java/hu/ditservices/commands/StatCommand.java index ba46a57..8ed9c79 100644 --- a/src/main/java/hu/ditservices/commands/StatCmd.java +++ b/src/main/java/hu/ditservices/commands/StatCommand.java @@ -6,7 +6,7 @@ import org.bukkit.Statistic; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -public class StatCmd { +public class StatCommand { public static boolean Run(CommandSender sender){ Player player = (Player) sender; diff --git a/src/main/java/hu/ditservices/commands/DitCmd.java b/src/main/java/hu/ditservices/handlers/CommandHandler.java similarity index 87% rename from src/main/java/hu/ditservices/commands/DitCmd.java rename to src/main/java/hu/ditservices/handlers/CommandHandler.java index ac32af8..0e330c4 100644 --- a/src/main/java/hu/ditservices/commands/DitCmd.java +++ b/src/main/java/hu/ditservices/handlers/CommandHandler.java @@ -1,5 +1,9 @@ -package hu.ditservices.commands; +package hu.ditservices.handlers; +import hu.ditservices.commands.PingCommand; +import hu.ditservices.commands.PluginManagerCommand; +import hu.ditservices.commands.SaveCommand; +import hu.ditservices.commands.StatCommand; import hu.ditservices.utils.TPS; import hu.ditservices.STPlugin; import hu.ditservices.utils.Cooldown; @@ -9,20 +13,20 @@ import org.bukkit.command.*; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.entity.Player; -public class DitCmd implements CommandExecutor { +public class CommandHandler implements CommandExecutor { private final String noArgMsg; private final STPlugin plugin; private final Cooldown cd; private final FileConfiguration config; - public DitCmd(final STPlugin instance){ + public CommandHandler(final STPlugin instance) { this.plugin = instance; this.noArgMsg = plugin.getPrefix()+ ChatColor.DARK_RED + "To list all SimplifyTools commands use the '/help SIMPLIFYTOOLS' command!"; this.cd = new Cooldown(plugin); this.config = plugin.config; } - public boolean addToCoolDown(CommandSender sender){ + public boolean addToCoolDown(CommandSender sender) { if (sender instanceof Player){ Player p = (Player) sender; this.cd.Add(p); @@ -36,9 +40,13 @@ public class DitCmd implements CommandExecutor { if (command.getName().equals("st")){ if (cd.Check(sender)){ + + if (command.getName().equals("st")) { + this.addToCoolDown(sender); + } + if (command.getName().equals("st") && args.length==0) { - this.addToCoolDown(sender); sender.sendMessage(plugin.getPrefix()+ChatColor.GREEN+"Version: "+plugin.getDescription().getVersion()); sender.sendMessage(this.noArgMsg); return true; @@ -51,7 +59,6 @@ public class DitCmd implements CommandExecutor { } if (command.getName().equals("st") && args[0].contains("settings")) { - this.addToCoolDown(sender); sender.sendMessage(plugin.getPrefix()+ ChatColor.GREEN+" === Plugin Information === "); sender.sendMessage(plugin.getPrefix()+ChatColor.GREEN+"Plugin Version: "+plugin.getDescription().getVersion()); sender.sendMessage(plugin.getPrefix()+ChatColor.GREEN+"Server Version: "+ Version.ServerVersion.getCurrent().toString()); @@ -65,7 +72,6 @@ public class DitCmd implements CommandExecutor { if (command.getName().equals("st") && args[0].contains("reload") && sender.hasPermission("st.reload")){ if(plugin.Reload()){ - this.addToCoolDown(sender); sender.sendMessage(plugin.getPrefix()+ChatColor.GREEN+"Successfully reload!"); sender.sendMessage(plugin.getPrefix()+ChatColor.RED+"Notice: Restart your server if the settings didn't applied."); return true; @@ -73,16 +79,13 @@ public class DitCmd implements CommandExecutor { } if (command.getName().equals("st") && args[0].contains("tps") && sender.hasPermission("st.tps")){ - this.addToCoolDown(sender); sender.sendMessage(plugin.getPrefix()+ChatColor.GREEN+"Plugin Calculated TPS: "+TPS.getColor()+String.format("%.2f", TPS.getTPS())); return true; } if (command.getName().equalsIgnoreCase("st") && args[0].contains("pmanager")){ - if (sender.hasPermission("st.pmanager.unload") || sender.hasPermission("st.pmanager.load") || sender.hasPermission("st.pmanager")) { - this.addToCoolDown(sender); if (args.length==1){ sender.sendMessage(plugin.getPrefix()+ChatColor.DARK_RED+"Invalid arguments!"); return true; @@ -90,11 +93,11 @@ public class DitCmd implements CommandExecutor { if (config.getBoolean("PluginManager.enabled")) { if (args[1].equalsIgnoreCase("load")) { //PluginCmd.handleLoad(sender,args); - PluginCmd.LoadPlugin(sender,args); + PluginManagerCommand.LoadPlugin(sender,args); } if (args[1].equalsIgnoreCase("unload")) { //PluginCmd.handleUnload(sender,args); - PluginCmd.UnloadPlugin(sender, args); + PluginManagerCommand.UnloadPlugin(sender, args); } } else { sender.sendMessage(plugin.getPrefix()+ChatColor.DARK_RED+"Plugin manager commands are disabled in the config!"); @@ -105,17 +108,14 @@ public class DitCmd implements CommandExecutor { if (command.getName().equalsIgnoreCase("st") && args[0].contains("save-all") && sender.hasPermission("st.save")){ - this.addToCoolDown(sender); - return SaveCmd.Run(); + return SaveCommand.Run(); } if (command.getName().equalsIgnoreCase("st") && args[0].contains("ping") && sender.hasPermission("st.ping")){ - this.addToCoolDown(sender); - return PingCmd.Run(sender); + return PingCommand.Run(sender); } if (command.getName().equalsIgnoreCase("st") && args[0].contains("stats") && sender.hasPermission("st.stats")){ - this.addToCoolDown(sender); - return StatCmd.Run(sender); + return StatCommand.Run(sender); } }else{ cd.CDText(sender); diff --git a/src/main/java/hu/ditservices/handlers/DITTabCompleter.java b/src/main/java/hu/ditservices/handlers/DITTabCompleter.java index b15050b..6f82c20 100644 --- a/src/main/java/hu/ditservices/handlers/DITTabCompleter.java +++ b/src/main/java/hu/ditservices/handlers/DITTabCompleter.java @@ -44,40 +44,40 @@ public class DITTabCompleter implements TabCompleter { return result; } if (args.length >= 2) { - for (String a : arguments) { - vizsg_2 = false; - if (a.contains(" ")){ - vizsg_list = Arrays.asList(a.split(" ")); - vizsg_2 = true; - } - if (vizsg_2 && args.length ==2){ // length-1 - idea.add(vizsg_list.get(1)); - } - if (vizsg_2&& args[1].startsWith(vizsg_list.get(1))) { - idea.add(vizsg_list.get(1)); - } - } + for (String a : arguments) { + vizsg_2 = false; + if (a.contains(" ")){ + vizsg_list = Arrays.asList(a.split(" ")); + vizsg_2 = true; + } + if (vizsg_2 && args.length ==2){ // length-1 + idea.add(vizsg_list.get(1)); + } + if (vizsg_2&& args[1].startsWith(vizsg_list.get(1))) { + idea.add(vizsg_list.get(1)); + } + } - if (args[0].equalsIgnoreCase("pmanager")&& args[1].equalsIgnoreCase("unload") || args[1].equalsIgnoreCase("load")) { - if (args.length == 3) { - result.clear(); - PluginManager pm = Bukkit.getServer().getPluginManager(); - for (Plugin pl : pm.getPlugins()) { - if (pl.getName().toLowerCase().startsWith(args[2].toLowerCase()) && args[1].equalsIgnoreCase("unload")) { + if (args[0].equalsIgnoreCase("pmanager")&& args[1].equalsIgnoreCase("unload") || args[1].equalsIgnoreCase("load")) { + if (args.length == 3) { + result.clear(); + PluginManager pm = Bukkit.getServer().getPluginManager(); + for (Plugin pl : pm.getPlugins()) { + if (pl.getName().toLowerCase().startsWith(args[2].toLowerCase()) && args[1].equalsIgnoreCase("unload")) { + result.add(pl.getName()); + } + if (!pl.isEnabled()){ + if (pl.getName().toLowerCase().startsWith(args[2].toLowerCase()) && args[1].equalsIgnoreCase("load")) { result.add(pl.getName()); } - if (!pl.isEnabled()){ - if (pl.getName().toLowerCase().startsWith(args[2].toLowerCase()) && args[1].equalsIgnoreCase("load")) { - result.add(pl.getName()); - } - } } - return result; } + return result; } - return idea; + } + return idea; } } return null; } -} +} \ No newline at end of file diff --git a/src/main/java/hu/ditservices/handlers/SaveHandler.java b/src/main/java/hu/ditservices/handlers/SaveHandler.java index 821f731..60a2251 100644 --- a/src/main/java/hu/ditservices/handlers/SaveHandler.java +++ b/src/main/java/hu/ditservices/handlers/SaveHandler.java @@ -1,10 +1,10 @@ package hu.ditservices.handlers; -import hu.ditservices.commands.SaveCmd; +import hu.ditservices.commands.SaveCommand; public class SaveHandler implements Runnable{ @Override public void run() { - SaveCmd.Run(); + SaveCommand.Run(); } } diff --git a/src/main/java/hu/ditservices/listeners/LogConnect.java b/src/main/java/hu/ditservices/listeners/LogConnect.java index bc0f718..dda8d3c 100644 --- a/src/main/java/hu/ditservices/listeners/LogConnect.java +++ b/src/main/java/hu/ditservices/listeners/LogConnect.java @@ -20,9 +20,9 @@ public class LogConnect implements Listener { public LogConnect(STPlugin instance){ this.plugin = instance; this.config = plugin.config; - if (config.getBoolean("CustomMsg.enabled")){ + if (config.getBoolean("CustomMsg.enabled")) { this.JoinMsg = this.config.isSet("CustomMsg.connect") ? this.config.getString("CustomMsg.connect") : "{PREFIX}{NAME} &aconnected to the server."; - this.LeaveMsg = this.config.isSet("CustomMsg.connect") ? this.config.getString("CustomMsg.disconnect") : "{PREFIX}{NAME} leaved the game."; + this.LeaveMsg = this.config.isSet("CustomMsg.connect") ? this.config.getString("CustomMsg.disconnect") : "{PREFIX}{NAME} left the game."; } }