From b6a166739b1d0a32792b8ce6a84bd5f5f7bd3a13 Mon Sep 17 00:00:00 2001 From: Mateus Date: Wed, 24 Jul 2019 12:26:44 +0100 Subject: [PATCH] Better config modification checker. --- pom.xml | 58 ++--- .../mattstudios/citizenscmd/CitizensCMD.java | 204 +++++++++++++++--- .../citizenscmd/commands/CMDAdd.java | 6 +- .../citizenscmd/commands/CMDCooldown.java | 6 +- .../citizenscmd/commands/CMDEdit.java | 6 +- .../citizenscmd/commands/CMDHelp.java | 2 +- .../citizenscmd/commands/CMDList.java | 2 +- .../citizenscmd/commands/CMDPermission.java | 2 +- .../citizenscmd/commands/CMDPrice.java | 6 +- .../citizenscmd/commands/CMDReload.java | 2 +- .../citizenscmd/commands/CMDRemove.java | 6 +- .../commands/base/CommandHandler.java | 7 +- .../citizenscmd/files/CooldownHandler.java | 5 +- .../citizenscmd/files/DataHandler.java | 23 +- .../citizenscmd/files/LangHandler.java | 17 +- .../citizenscmd/listeners/NPCListener.java | 6 +- .../citizenscmd/listeners/UpdateEvent.java | 8 +- .../mattstudios/citizenscmd/utility/Util.java | 48 +---- 18 files changed, 266 insertions(+), 148 deletions(-) diff --git a/pom.xml b/pom.xml index 673103e..0f65c93 100644 --- a/pom.xml +++ b/pom.xml @@ -1,12 +1,12 @@ + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 me.mattstudios.plugins citizens-cmd - 2.3.2 + 2.3.3 jar CitizensCMD @@ -14,6 +14,12 @@ citizens-cmd UTF-8 + 1.14.4-R0.1-SNAPSHOT + 2.0.25-SNAPSHOT + 2.10.2 + da407c0059 + 1.0.0 + 636229e @@ -59,10 +65,6 @@ spigotmc-repo https://hub.spigotmc.org/nexus/content/groups/public/ - - sonatype - https://oss.sonatype.org/content/groups/public/ - rayzr-repo https://cdn.rawgit.com/Rayzr522/maven-repo/master/ @@ -82,46 +84,50 @@ + + org.spigotmc spigot-api - 1.14.3-R0.1-SNAPSHOT + ${spigot.version} provided + net.citizensnpcs citizensapi - 2.0.25-SNAPSHOT + ${citizens.version} provided - - me.rayzr522 - jsonmessage - 1.0.0 - + me.clip placeholderapi - 2.10.2 + ${papi.version} provided + com.github.MilkBowl VaultAPI - da407c0059 + ${vault.version} provided + + + - org.jetbrains - annotations - 13.0 + me.rayzr522 + jsonmessage + ${jsonmsg.version} + + + + com.github.ipsk + MattUtils + ${utils.version} compile - - org.projectlombok - lombok - 1.18.8 - provided - + - + \ No newline at end of file diff --git a/src/main/java/me/mattstudios/citizenscmd/CitizensCMD.java b/src/main/java/me/mattstudios/citizenscmd/CitizensCMD.java index c787496..69519eb 100644 --- a/src/main/java/me/mattstudios/citizenscmd/CitizensCMD.java +++ b/src/main/java/me/mattstudios/citizenscmd/CitizensCMD.java @@ -18,10 +18,16 @@ package me.mattstudios.citizenscmd; -import lombok.Getter; -import lombok.Setter; import me.mattstudios.citizenscmd.api.CitizensCMDAPI; -import me.mattstudios.citizenscmd.commands.*; +import me.mattstudios.citizenscmd.commands.CMDAdd; +import me.mattstudios.citizenscmd.commands.CMDCooldown; +import me.mattstudios.citizenscmd.commands.CMDEdit; +import me.mattstudios.citizenscmd.commands.CMDHelp; +import me.mattstudios.citizenscmd.commands.CMDList; +import me.mattstudios.citizenscmd.commands.CMDPermission; +import me.mattstudios.citizenscmd.commands.CMDPrice; +import me.mattstudios.citizenscmd.commands.CMDReload; +import me.mattstudios.citizenscmd.commands.CMDRemove; import me.mattstudios.citizenscmd.commands.base.CommandHandler; import me.mattstudios.citizenscmd.files.CooldownHandler; import me.mattstudios.citizenscmd.files.DataHandler; @@ -47,8 +53,10 @@ import java.util.HashMap; import java.util.Objects; import java.util.stream.Stream; -@Getter -@Setter +import static me.mattstudios.utils.MessageUtils.color; +import static me.mattstudios.utils.MessageUtils.info; +import static me.mattstudios.utils.YamlUtils.copyDefaults; + public final class CitizensCMD extends JavaPlugin { /** @@ -61,9 +69,7 @@ public final class CitizensCMD extends JavaPlugin { private CooldownHandler cooldownHandler = null; private PermissionsManager permissionsManager = null; - @Getter private static CitizensCMDAPI api; - @Getter private static Economy economy = null; private boolean papi = false; @@ -79,8 +85,8 @@ public final class CitizensCMD extends JavaPlugin { public void onEnable() { - Util.checkOldConfig(this); saveDefaultConfig(); + copyDefaults(getClassLoader().getResourceAsStream("config.yml"), new File(getDataFolder().getPath(), "config.yml")); if (!hasCitizens() && getConfig().getBoolean("citizens-check")) { Util.disablePlugin(this); @@ -92,7 +98,7 @@ public final class CitizensCMD extends JavaPlugin { new Metrics(this); - Util.info(Util.color(Util.TAG + "&3Citizens&cCMD &8&o" + getDescription().getVersion() + " &8By &3Mateus Moreira &c@LichtHund")); + info(color(Util.TAG + "&3Citizens&cCMD &8&o" + getDescription().getVersion() + " &8By &3Mateus Moreira &c@LichtHund")); permissionsManager = new PermissionsManager(this); @@ -111,22 +117,22 @@ public final class CitizensCMD extends JavaPlugin { if (hasPAPI()) { switch (lang.getLanguage()) { case "en": - Util.info(Util.color(Util.TAG + "&7Using &aPlaceholderAPI&7!")); + info(color(Util.TAG + "&7Using &aPlaceholderAPI&7!")); break; case "pt": - Util.info(Util.color(Util.TAG + "&7Usando &aPlaceholderAPI&7!")); + info(color(Util.TAG + "&7Usando &aPlaceholderAPI&7!")); break; case "ro": - Util.info(Util.color(Util.TAG + "&7Folositi &aPlaceholderAPI&7!")); + info(color(Util.TAG + "&7Folositi &aPlaceholderAPI&7!")); break; case "bg": - Util.info(Util.color(Util.TAG + "&7Използвайки &aPlaceholderAPI&7!")); + info(color(Util.TAG + "&7Използвайки &aPlaceholderAPI&7!")); break; case "no": - Util.info(Util.color(Util.TAG + "&7Bruk &aPlaceholderAPI&7!")); + info(color(Util.TAG + "&7Bruk &aPlaceholderAPI&7!")); break; case "ch": - Util.info(Util.color(Util.TAG + "&7运用 &aPlaceholderAPI&7!")); + info(color(Util.TAG + "&7运用 &aPlaceholderAPI&7!")); break; } papi = true; @@ -135,22 +141,22 @@ public final class CitizensCMD extends JavaPlugin { if (setupEconomy()) { switch (lang.getLanguage()) { case "en": - Util.info(Util.color(Util.TAG + "&7Using &aVault&7!")); + info(color(Util.TAG + "&7Using &aVault&7!")); break; case "pt": - Util.info(Util.color(Util.TAG + "&7Usando &aVault&7!")); + info(color(Util.TAG + "&7Usando &aVault&7!")); break; case "ro": - Util.info(Util.color(Util.TAG + "&7Folositi &aVault&7!")); + info(color(Util.TAG + "&7Folositi &aVault&7!")); break; case "bg": - Util.info(Util.color(Util.TAG + "&7Използвайки &aVault&7!")); + info(color(Util.TAG + "&7Използвайки &aVault&7!")); break; case "no": - Util.info(Util.color(Util.TAG + "&7Bruk &aVault&7!")); + info(color(Util.TAG + "&7Bruk &aVault&7!")); break; case "ch": - Util.info(Util.color(Util.TAG + "&7运用 &aVault&7!")); + info(color(Util.TAG + "&7运用 &aVault&7!")); break; } } @@ -180,29 +186,29 @@ public final class CitizensCMD extends JavaPlugin { newVersion = updater.getLatestVersion(); switch (lang.getLanguage()) { case "en": - Util.info(Util.color(Util.TAG + "&cA new version of CitizensCMD is now available:")); + info(color(Util.TAG + "&cA new version of CitizensCMD is now available:")); break; case "pt": - Util.info(Util.color(Util.TAG + "&cA nova versão de CitizensCMD está disponivel:")); + info(color(Util.TAG + "&cA nova versão de CitizensCMD está disponivel:")); break; case "ro": - Util.info(Util.color(Util.TAG + "&cO noua versiune a CitizensCMD este acum valabila:")); + info(color(Util.TAG + "&cO noua versiune a CitizensCMD este acum valabila:")); break; case "bg": - Util.info(Util.color(Util.TAG + "&cНалична е нова версия на CitizensCMD:")); + info(color(Util.TAG + "&cНалична е нова версия на CitizensCMD:")); break; case "no": - Util.info(Util.color(Util.TAG + "&cEn ny versjon av CitizensCMD er nå tilgjengelig:")); + info(color(Util.TAG + "&cEn ny versjon av CitizensCMD er nå tilgjengelig:")); break; case "ch": - Util.info(Util.color(Util.TAG + "&cCitizensCMD的新版本现已推出:")); + info(color(Util.TAG + "&cCitizensCMD的新版本现已推出:")); break; } - Util.info(Util.color(Util.TAG + "&b&o" + updater.getResourceURL())); + info(color(Util.TAG + "&b&o" + updater.getResourceURL())); } } catch (Exception e) { // If it can't check for an update, tell the user and throw an error. - Util.info("Could not check for updates! Stacktrace:"); + info("Could not check for updates! Stacktrace:"); e.printStackTrace(); } } @@ -263,7 +269,7 @@ public final class CitizensCMD extends JavaPlugin { try { pm.registerEvents(new NPCListener(this), this); } catch (Exception ex) { - Util.info(Util.color("&cCould not register clone event, please update your Citizens.")); + info(color("&cCould not register clone event, please update your Citizens.")); } } @@ -350,4 +356,142 @@ public final class CitizensCMD extends JavaPlugin { public boolean papiEnabled() { return papi; } + + /** + * Gets the language that is selected on the config + * + * @return returns the language + */ + public LangHandler getLang() { + return lang; + } + + /** + * Gets if or not should alert player of new update on join + * + * @return Returns update status + */ + public boolean getUpdateStatus() { + return updateStatus; + } + + /** + * Sets new update status from scheduler + * + * @param newUpdateStatus New boolean with the update status; + */ + public void setUpdateStatus(boolean newUpdateStatus) { + this.updateStatus = newUpdateStatus; + } + + /** + * Gets String with new version + * + * @return the new version + */ + public String getNewVersion() { + return newVersion; + } + + /** + * Sets the new version string + * + * @param newVersion the new version to be set + */ + public void setNewVersion(String newVersion) { + this.newVersion = newVersion; + } + + /** + * Gets the NPC data to be used in other classes without needing to open the file + * + * @return returns the DataHandler class + */ + public DataHandler getDataHandler() { + return dataHandler; + } + + /** + * Gets the cooldown handler to check for cooldown informations + * + * @return Returns the cooldown handler + */ + public CooldownHandler getCooldownHandler() { + return cooldownHandler; + } + + /** + * Gets the permission manager to set and unset permission + * + * @return the permission manager class + */ + public PermissionsManager getPermissionsManager() { + return permissionsManager; + } + + /** + * Gets the economy to be used + * + * @return Returns the economy + */ + public static Economy getEconomy() { + return economy; + } + + /** + * Gets the hashmap with the players waiting to confirm the NPC payment + * + * @return returns the list of players + */ + public HashMap getWaitingList() { + return waitingList; + } + + /** + * Checks if player needs to shift or not to confirm payment + * + * @return Returns the boolean of whether or not players should shift + */ + public boolean shouldShift() { + return shift; + } + + /** + * Sets the new shifting rule + * + * @param shift The new shifting rule + */ + public void setShift(boolean shift) { + this.shift = shift; + } + + /** + * Gets the display format to be used + * + * @return Returns either SHORT, MEDIUM OR FULL + */ + public DisplayFormat getDisplayFormat() { + return displayFormat; + } + + /** + * Sets the new display format when reloading + * + * @param displayFormat The new display format + */ + public void setDisplayFormat(DisplayFormat displayFormat) { + this.displayFormat = displayFormat; + } + + public CitizensCMDAPI getApi() { + return api; + } + + public boolean isShift() { + return shift; + } + + public boolean isUpdateStatus() { + return updateStatus; + } } diff --git a/src/main/java/me/mattstudios/citizenscmd/commands/CMDAdd.java b/src/main/java/me/mattstudios/citizenscmd/commands/CMDAdd.java index b55e93a..75ed7b5 100644 --- a/src/main/java/me/mattstudios/citizenscmd/commands/CMDAdd.java +++ b/src/main/java/me/mattstudios/citizenscmd/commands/CMDAdd.java @@ -26,10 +26,10 @@ import org.bukkit.entity.Player; import java.util.Arrays; import static me.mattstudios.citizenscmd.utility.Util.HEADER; -import static me.mattstudios.citizenscmd.utility.Util.color; import static me.mattstudios.citizenscmd.utility.Util.getSelectedNpcId; -import static me.mattstudios.citizenscmd.utility.Util.notDouble; import static me.mattstudios.citizenscmd.utility.Util.npcNotSelected; +import static me.mattstudios.utils.MessageUtils.color; +import static me.mattstudios.utils.NumbersUtils.isDouble; public class CMDAdd extends CommandBase { @@ -81,7 +81,7 @@ public class CMDAdd extends CommandBase { continue; } - if (notDouble(commandsArray[i + 1])) { + if (!isDouble(commandsArray[i + 1])) { hasDelayError = true; continue; } diff --git a/src/main/java/me/mattstudios/citizenscmd/commands/CMDCooldown.java b/src/main/java/me/mattstudios/citizenscmd/commands/CMDCooldown.java index 7cfd91c..002053b 100644 --- a/src/main/java/me/mattstudios/citizenscmd/commands/CMDCooldown.java +++ b/src/main/java/me/mattstudios/citizenscmd/commands/CMDCooldown.java @@ -24,10 +24,10 @@ import me.mattstudios.citizenscmd.paths.Path; import org.bukkit.entity.Player; import static me.mattstudios.citizenscmd.utility.Util.HEADER; -import static me.mattstudios.citizenscmd.utility.Util.color; import static me.mattstudios.citizenscmd.utility.Util.getSelectedNpcId; -import static me.mattstudios.citizenscmd.utility.Util.notInteger; import static me.mattstudios.citizenscmd.utility.Util.npcNotSelected; +import static me.mattstudios.utils.MessageUtils.color; +import static me.mattstudios.utils.NumbersUtils.isInteger; public class CMDCooldown extends CommandBase { @@ -43,7 +43,7 @@ public class CMDCooldown extends CommandBase { if (npcNotSelected(plugin, player)) return; - if (notInteger(args[0])) { + if (!isInteger(args[0])) { player.sendMessage(color(HEADER)); player.sendMessage(plugin.getLang().getMessage(Path.INVALID_COOLDOWN)); return; diff --git a/src/main/java/me/mattstudios/citizenscmd/commands/CMDEdit.java b/src/main/java/me/mattstudios/citizenscmd/commands/CMDEdit.java index 5724255..e9db873 100644 --- a/src/main/java/me/mattstudios/citizenscmd/commands/CMDEdit.java +++ b/src/main/java/me/mattstudios/citizenscmd/commands/CMDEdit.java @@ -27,10 +27,10 @@ import org.bukkit.entity.Player; import java.util.Arrays; import static me.mattstudios.citizenscmd.utility.Util.HEADER; -import static me.mattstudios.citizenscmd.utility.Util.color; import static me.mattstudios.citizenscmd.utility.Util.getSelectedNpcId; -import static me.mattstudios.citizenscmd.utility.Util.notInteger; import static me.mattstudios.citizenscmd.utility.Util.npcNotSelected; +import static me.mattstudios.utils.MessageUtils.color; +import static me.mattstudios.utils.NumbersUtils.isInteger; public class CMDEdit extends CommandBase { @@ -47,7 +47,7 @@ public class CMDEdit extends CommandBase { if (npcNotSelected(plugin, player)) return; - if (notInteger(args[2])) { + if (!isInteger(args[2])) { player.sendMessage(color(HEADER)); player.sendMessage(plugin.getLang().getMessage(Path.INVALID_ID_NUMBER)); return; diff --git a/src/main/java/me/mattstudios/citizenscmd/commands/CMDHelp.java b/src/main/java/me/mattstudios/citizenscmd/commands/CMDHelp.java index bb2003b..a3391a7 100644 --- a/src/main/java/me/mattstudios/citizenscmd/commands/CMDHelp.java +++ b/src/main/java/me/mattstudios/citizenscmd/commands/CMDHelp.java @@ -25,7 +25,7 @@ import me.rayzr522.jsonmessage.JSONMessage; import org.bukkit.entity.Player; import static me.mattstudios.citizenscmd.utility.Util.HEADER; -import static me.mattstudios.citizenscmd.utility.Util.color; +import static me.mattstudios.utils.MessageUtils.color; /** * Thank you GlareMasters for creating this class as an example! diff --git a/src/main/java/me/mattstudios/citizenscmd/commands/CMDList.java b/src/main/java/me/mattstudios/citizenscmd/commands/CMDList.java index d434dd0..bf7e65b 100644 --- a/src/main/java/me/mattstudios/citizenscmd/commands/CMDList.java +++ b/src/main/java/me/mattstudios/citizenscmd/commands/CMDList.java @@ -29,9 +29,9 @@ import java.util.ArrayList; import java.util.List; import static me.mattstudios.citizenscmd.utility.Util.HEADER; -import static me.mattstudios.citizenscmd.utility.Util.color; import static me.mattstudios.citizenscmd.utility.Util.getSelectedNpcId; import static me.mattstudios.citizenscmd.utility.Util.npcNotSelected; +import static me.mattstudios.utils.MessageUtils.color; public class CMDList extends CommandBase { diff --git a/src/main/java/me/mattstudios/citizenscmd/commands/CMDPermission.java b/src/main/java/me/mattstudios/citizenscmd/commands/CMDPermission.java index 84561bb..eb73233 100644 --- a/src/main/java/me/mattstudios/citizenscmd/commands/CMDPermission.java +++ b/src/main/java/me/mattstudios/citizenscmd/commands/CMDPermission.java @@ -24,9 +24,9 @@ import me.mattstudios.citizenscmd.paths.Path; import org.bukkit.entity.Player; import static me.mattstudios.citizenscmd.utility.Util.HEADER; -import static me.mattstudios.citizenscmd.utility.Util.color; import static me.mattstudios.citizenscmd.utility.Util.getSelectedNpcId; import static me.mattstudios.citizenscmd.utility.Util.npcNotSelected; +import static me.mattstudios.utils.MessageUtils.color; public class CMDPermission extends CommandBase { diff --git a/src/main/java/me/mattstudios/citizenscmd/commands/CMDPrice.java b/src/main/java/me/mattstudios/citizenscmd/commands/CMDPrice.java index 5306136..6c300f8 100644 --- a/src/main/java/me/mattstudios/citizenscmd/commands/CMDPrice.java +++ b/src/main/java/me/mattstudios/citizenscmd/commands/CMDPrice.java @@ -24,10 +24,10 @@ import me.mattstudios.citizenscmd.paths.Path; import org.bukkit.entity.Player; import static me.mattstudios.citizenscmd.utility.Util.HEADER; -import static me.mattstudios.citizenscmd.utility.Util.color; import static me.mattstudios.citizenscmd.utility.Util.getSelectedNpcId; -import static me.mattstudios.citizenscmd.utility.Util.notDouble; import static me.mattstudios.citizenscmd.utility.Util.npcNotSelected; +import static me.mattstudios.utils.MessageUtils.color; +import static me.mattstudios.utils.NumbersUtils.isDouble; public class CMDPrice extends CommandBase { @@ -44,7 +44,7 @@ public class CMDPrice extends CommandBase { if (npcNotSelected(plugin, player)) return; - if (notDouble(args[0])) { + if (!isDouble(args[0])) { player.sendMessage(color(HEADER)); player.sendMessage(plugin.getLang().getMessage(Path.INVALID_PRICE)); return; diff --git a/src/main/java/me/mattstudios/citizenscmd/commands/CMDReload.java b/src/main/java/me/mattstudios/citizenscmd/commands/CMDReload.java index 6fd38e4..581ae9a 100644 --- a/src/main/java/me/mattstudios/citizenscmd/commands/CMDReload.java +++ b/src/main/java/me/mattstudios/citizenscmd/commands/CMDReload.java @@ -28,7 +28,7 @@ import org.bukkit.entity.Player; import java.util.Objects; import static me.mattstudios.citizenscmd.utility.Util.HEADER; -import static me.mattstudios.citizenscmd.utility.Util.color; +import static me.mattstudios.utils.MessageUtils.color; public class CMDReload extends CommandBase { diff --git a/src/main/java/me/mattstudios/citizenscmd/commands/CMDRemove.java b/src/main/java/me/mattstudios/citizenscmd/commands/CMDRemove.java index 63c1c32..f2e3ff5 100644 --- a/src/main/java/me/mattstudios/citizenscmd/commands/CMDRemove.java +++ b/src/main/java/me/mattstudios/citizenscmd/commands/CMDRemove.java @@ -25,10 +25,10 @@ import me.mattstudios.citizenscmd.utility.EnumTypes; import org.bukkit.entity.Player; import static me.mattstudios.citizenscmd.utility.Util.HEADER; -import static me.mattstudios.citizenscmd.utility.Util.color; import static me.mattstudios.citizenscmd.utility.Util.getSelectedNpcId; -import static me.mattstudios.citizenscmd.utility.Util.notInteger; import static me.mattstudios.citizenscmd.utility.Util.npcNotSelected; +import static me.mattstudios.utils.MessageUtils.color; +import static me.mattstudios.utils.NumbersUtils.isInteger; public class CMDRemove extends CommandBase { @@ -45,7 +45,7 @@ public class CMDRemove extends CommandBase { if (npcNotSelected(plugin, player)) return; - if (notInteger(args[1])) { + if (!isInteger(args[1])) { player.sendMessage(color(HEADER)); player.sendMessage(plugin.getLang().getMessage(Path.INVALID_ID_NUMBER)); return; diff --git a/src/main/java/me/mattstudios/citizenscmd/commands/base/CommandHandler.java b/src/main/java/me/mattstudios/citizenscmd/commands/base/CommandHandler.java index 61e2e55..b8a83fb 100644 --- a/src/main/java/me/mattstudios/citizenscmd/commands/base/CommandHandler.java +++ b/src/main/java/me/mattstudios/citizenscmd/commands/base/CommandHandler.java @@ -26,7 +26,6 @@ import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.command.TabCompleter; import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.Arrays; @@ -35,9 +34,9 @@ import java.util.List; import java.util.stream.Collectors; import static me.mattstudios.citizenscmd.utility.Util.HEADER; -import static me.mattstudios.citizenscmd.utility.Util.color; import static me.mattstudios.citizenscmd.utility.Util.getTabCompleteArgs; import static me.mattstudios.citizenscmd.utility.Util.npcNotSelectedNM; +import static me.mattstudios.utils.MessageUtils.color; /** * Thank you GlareMasters for creating this class! @@ -67,7 +66,7 @@ public class CommandHandler implements CommandExecutor, TabCompleter, IHandler { } @Override - public boolean onCommand(@NotNull CommandSender sender, Command cmd, @NotNull String commandLabel, @NotNull String[] args) { + public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) { if (!cmd.getName().equalsIgnoreCase("npcmd")) { return true; } @@ -134,7 +133,7 @@ public class CommandHandler implements CommandExecutor, TabCompleter, IHandler { } @Override - public List onTabComplete(@NotNull CommandSender sender, Command cmd, @NotNull String commandLabel, @NotNull String[] args) { + public List onTabComplete(CommandSender sender, Command cmd, String commandLabel, String[] args) { if (cmd.getName().equalsIgnoreCase("npcmd")) { if (args.length == 1) { List commandNames = new ArrayList<>(); diff --git a/src/main/java/me/mattstudios/citizenscmd/files/CooldownHandler.java b/src/main/java/me/mattstudios/citizenscmd/files/CooldownHandler.java index e5f265f..d130493 100644 --- a/src/main/java/me/mattstudios/citizenscmd/files/CooldownHandler.java +++ b/src/main/java/me/mattstudios/citizenscmd/files/CooldownHandler.java @@ -29,6 +29,9 @@ import java.io.IOException; import java.util.HashMap; import java.util.Objects; +import static me.mattstudios.utils.MessageUtils.color; +import static me.mattstudios.utils.MessageUtils.info; + public class CooldownHandler { private CitizensCMD plugin; @@ -70,7 +73,7 @@ public class CooldownHandler { try { cooldownsFile.createNewFile(); } catch (IOException e) { - Util.info(Util.color("&cError creating cooldowns file..")); + info(color("&cError creating cooldowns file..")); } } } diff --git a/src/main/java/me/mattstudios/citizenscmd/files/DataHandler.java b/src/main/java/me/mattstudios/citizenscmd/files/DataHandler.java index c18367c..b9928c5 100644 --- a/src/main/java/me/mattstudios/citizenscmd/files/DataHandler.java +++ b/src/main/java/me/mattstudios/citizenscmd/files/DataHandler.java @@ -34,6 +34,9 @@ import java.util.HashMap; import java.util.List; import java.util.Objects; +import static me.mattstudios.utils.MessageUtils.color; +import static me.mattstudios.utils.MessageUtils.info; + @SuppressWarnings("unchecked") public class DataHandler { @@ -75,7 +78,7 @@ public class DataHandler { try { savesFile.createNewFile(); } catch (IOException e) { - Util.info(Util.color("&cError creating saves file..")); + info(color("&cError creating saves file..")); } } } @@ -165,12 +168,12 @@ public class DataHandler { dataConfigurator.set("npc-data.npc-" + npc + ".price", 0); } - player.sendMessage(Util.color(Util.HEADER)); + player.sendMessage(color(Util.HEADER)); player.sendMessage(plugin.getLang().getMessage(Path.NPC_ADDED)); dataConfigurator.save(savesFile); } catch (IOException | InvalidConfigurationException e) { - player.sendMessage(Util.color(Util.HEADER)); + player.sendMessage(color(Util.HEADER)); player.sendMessage(plugin.getLang().getMessage(Path.NPC_ADD_FAIL)); } }).start(); @@ -241,12 +244,12 @@ public class DataHandler { data.replace("npc-data.npc-" + npc + ".cooldown", cooldown); - player.sendMessage(Util.color(Util.HEADER)); + player.sendMessage(color(Util.HEADER)); player.sendMessage(plugin.getLang().getMessage(Path.NPC_COOLDOWN_SET)); dataConfigurator.save(savesFile); } catch (IOException | InvalidConfigurationException e) { - player.sendMessage(Util.color(Util.HEADER)); + player.sendMessage(color(Util.HEADER)); player.sendMessage(plugin.getLang().getMessage(Path.NPC_COOLDOWN_SET_ERROR)); } }).start(); @@ -269,7 +272,7 @@ public class DataHandler { data.replace("npc-data.npc-" + npc + ".price", price); - player.sendMessage(Util.color(Util.HEADER)); + player.sendMessage(color(Util.HEADER)); player.sendMessage(plugin.getLang().getMessage(Path.NPC_PRICE_SET)); dataConfigurator.save(savesFile); @@ -296,7 +299,7 @@ public class DataHandler { data.replace("npc-data.npc-" + npc + ".permission", permission); - player.sendMessage(Util.color(Util.HEADER)); + player.sendMessage(color(Util.HEADER)); player.sendMessage(plugin.getLang().getMessage(Path.PERMISSION_SET)); dataConfigurator.save(savesFile); @@ -323,7 +326,7 @@ public class DataHandler { data.remove("npc-data.npc-" + npc + ".permission"); - player.sendMessage(Util.color(Util.HEADER)); + player.sendMessage(color(Util.HEADER)); player.sendMessage(plugin.getLang().getMessage(Path.PERMISSION_REMOVED)); dataConfigurator.save(savesFile); @@ -437,7 +440,7 @@ public class DataHandler { data.replace(key, commands); dataConfigurator.set(key, commands); - player.sendMessage(Util.color(Util.HEADER)); + player.sendMessage(color(Util.HEADER)); player.sendMessage(plugin.getLang().getMessage(Path.REMOVED_COMMAND)); dataConfigurator.save(savesFile); @@ -486,7 +489,7 @@ public class DataHandler { data.replace(key, commandsData); dataConfigurator.set(key, commandsData); - player.sendMessage(Util.color(Util.HEADER)); + player.sendMessage(color(Util.HEADER)); player.sendMessage(plugin.getLang().getMessage(Path.EDITED_COMMAND).replace("{type}", typeText)); dataConfigurator.save(savesFile); diff --git a/src/main/java/me/mattstudios/citizenscmd/files/LangHandler.java b/src/main/java/me/mattstudios/citizenscmd/files/LangHandler.java index 114b0ae..af43eba 100644 --- a/src/main/java/me/mattstudios/citizenscmd/files/LangHandler.java +++ b/src/main/java/me/mattstudios/citizenscmd/files/LangHandler.java @@ -30,6 +30,9 @@ import java.io.IOException; import java.util.HashMap; import java.util.Objects; +import static me.mattstudios.utils.MessageUtils.color; +import static me.mattstudios.utils.MessageUtils.info; + public class LangHandler { private CitizensCMD plugin; @@ -48,25 +51,25 @@ public class LangHandler { public void initialize() { switch (lang) { case "en": - Util.info(Util.color(Util.TAG + "&7Using &aEnglish &7messages!")); + info(color(Util.TAG + "&7Using &aEnglish &7messages!")); break; case "pt": - Util.info(Util.color(Util.TAG + "&7Usando mensagens em Portugues!")); + info(color(Util.TAG + "&7Usando mensagens em Portugues!")); break; case "ro": - Util.info(Util.color(Util.TAG + "&7Folositi mesajele in Limba &aRomana&7!")); + info(color(Util.TAG + "&7Folositi mesajele in Limba &aRomana&7!")); break; case "bg": - Util.info(Util.color(Util.TAG + "&7Използване на &aбългарски &7език!")); + info(color(Util.TAG + "&7Използване на &aбългарски &7език!")); break; case "no": - Util.info(Util.color(Util.TAG + "&aNorsk &7Oversettelse!")); + info(color(Util.TAG + "&aNorsk &7Oversettelse!")); break; case "ch": - Util.info(Util.color(Util.TAG + "&7使用&a中文&7消息!")); + info(color(Util.TAG + "&7使用&a中文&7消息!")); break; } @@ -299,7 +302,7 @@ public class LangHandler { * @return Returns String with colored message from file */ public String getMessage(String path) { - return Util.color(messages.get(path)); + return color(messages.get(path)); } /** diff --git a/src/main/java/me/mattstudios/citizenscmd/listeners/NPCListener.java b/src/main/java/me/mattstudios/citizenscmd/listeners/NPCListener.java index d0be0db..efd8797 100644 --- a/src/main/java/me/mattstudios/citizenscmd/listeners/NPCListener.java +++ b/src/main/java/me/mattstudios/citizenscmd/listeners/NPCListener.java @@ -1,17 +1,19 @@ package me.mattstudios.citizenscmd.listeners; -import lombok.AllArgsConstructor; import me.mattstudios.citizenscmd.CitizensCMD; import net.citizensnpcs.api.event.NPCCloneEvent; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; -@AllArgsConstructor public class NPCListener implements Listener { private CitizensCMD plugin; + public NPCListener(CitizensCMD plugin) { + this.plugin = plugin; + } + @EventHandler(priority = EventPriority.HIGHEST) public void on(NPCCloneEvent event) { if (!plugin.getDataHandler().hasNPCData(event.getNPC().getId())) return; diff --git a/src/main/java/me/mattstudios/citizenscmd/listeners/UpdateEvent.java b/src/main/java/me/mattstudios/citizenscmd/listeners/UpdateEvent.java index b8690cd..8e54cfc 100644 --- a/src/main/java/me/mattstudios/citizenscmd/listeners/UpdateEvent.java +++ b/src/main/java/me/mattstudios/citizenscmd/listeners/UpdateEvent.java @@ -27,6 +27,8 @@ import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; +import static me.mattstudios.utils.MessageUtils.color; + public class UpdateEvent implements Listener { private CitizensCMD plugin; @@ -38,9 +40,9 @@ public class UpdateEvent implements Listener { @EventHandler (priority = EventPriority.NORMAL) public void onPlayerJoin(PlayerJoinEvent event) { if (plugin.isUpdateStatus() && event.getPlayer().hasPermission("citizenscmd.update")) { - JSONMessage.create(Util.color(Util.HEADER)).send(event.getPlayer()); - JSONMessage.create(Util.color(plugin.getLang().getUncoloredMessage(Path.NEW_VERSION) + plugin.getNewVersion())).send(event.getPlayer()); - JSONMessage.create(Util.color(plugin.getLang().getUncoloredMessage(Path.DOWNLOAD_AT) + " spigotmc.org/resources/citizens-CMD.30224/")).openURL("https://spigotmc.org/resources/citizens-CMD.30224/").send(event.getPlayer()); + JSONMessage.create(color(Util.HEADER)).send(event.getPlayer()); + JSONMessage.create(color(plugin.getLang().getUncoloredMessage(Path.NEW_VERSION) + plugin.getNewVersion())).send(event.getPlayer()); + JSONMessage.create(color(plugin.getLang().getUncoloredMessage(Path.DOWNLOAD_AT) + " spigotmc.org/resources/citizens-CMD.30224/")).openURL("https://spigotmc.org/resources/citizens-CMD.30224/").send(event.getPlayer()); } } diff --git a/src/main/java/me/mattstudios/citizenscmd/utility/Util.java b/src/main/java/me/mattstudios/citizenscmd/utility/Util.java index 65b056b..2383ebd 100644 --- a/src/main/java/me/mattstudios/citizenscmd/utility/Util.java +++ b/src/main/java/me/mattstudios/citizenscmd/utility/Util.java @@ -24,7 +24,6 @@ import me.mattstudios.citizenscmd.paths.Path; import net.citizensnpcs.api.CitizensAPI; import net.citizensnpcs.api.npc.NPC; import org.bukkit.Bukkit; -import org.bukkit.ChatColor; import org.bukkit.OfflinePlayer; import org.bukkit.Sound; import org.bukkit.configuration.InvalidConfigurationException; @@ -42,6 +41,8 @@ import java.util.concurrent.TimeUnit; import java.util.regex.Matcher; import java.util.regex.Pattern; +import static me.mattstudios.utils.MessageUtils.color; +import static me.mattstudios.utils.MessageUtils.info; import static org.bukkit.Bukkit.getScheduler; public class Util { @@ -52,32 +53,6 @@ public class Util { public static final String HEADER = "&c&m-&6&m-&e&m-&a&m-&b&m-&3&l CitizensCMD &b&m-&a&m-&e&m-&6&m-&c&m-"; public static final String TAG = "&f[&3Citizens&cCMD&f]&r "; - /** - * @param str String to check if it is a number or not - * @return Returns true if it is a number false if it is a string or contains any non numeric character - */ - public static boolean notInteger(String str) { - try { - Integer.parseInt(str); - } catch (NumberFormatException | NullPointerException e) { - return true; - } - return false; - } - - /** - * @param str String to check if it is a double number or not - * @return Returns true if it is a number false if it is a string or contains any non numeric character - */ - public static boolean notDouble(String str) { - try { - Double.parseDouble(str); - } catch (NumberFormatException | NullPointerException e) { - return true; - } - return false; - } - /** * Checks if player has or not selected an NPC * @@ -121,25 +96,6 @@ public class Util { return plugin.getConfig().getBoolean("check-updates"); } - /** - * Utility to use color codes easily - * - * @param msg The message String - * @return returns the string with color - */ - public static String color(String msg) { - return ChatColor.translateAlternateColorCodes('&', msg); - } - - /** - * Simplified way for sending console messages - * - * @param msg the message to be sent to the console - */ - public static void info(String msg) { - Bukkit.getServer().getConsoleSender().sendMessage(msg); - } - /** * Gets default cooldown set on the config *