From 10a1c371964a21fc3d050ce01da10d672b547c1e Mon Sep 17 00:00:00 2001 From: MrNickax Date: Sat, 20 Dec 2025 01:35:09 +0100 Subject: [PATCH] - Add `folia-supported: true` to plugin.yml to indicate compatibility with Folia. - Refactor and clean up various classes with improved final modifiers and formatting. - Introduce `checkFolia` method for Folia detection. - Enhance PlayerListener, ServerVariablesAPI, and other components for code consistency and clarity. - Add missing null checks and annotations where applicable. - Begin using `ServerVariablesAPI.init` for API setup instead of constructor dependency injection. --- pom.xml | 10 - .../java/svar/ajneb97/ServerVariables.java | 90 ++- .../ajneb97/api/ListVariableChangeEvent.java | 8 +- .../svar/ajneb97/api/ServerVariablesAPI.java | 106 +-- .../ajneb97/api/ServerVariablesExpansion.java | 71 +- .../api/StringVariableChangeEvent.java | 5 +- .../svar/ajneb97/api/VariableChangeEvent.java | 54 +- .../svar/ajneb97/commands/MainCommand.java | 617 +++++++++--------- .../commands/subcommands/ListCommand.java | 360 +++++----- .../svar/ajneb97/config/ConfigsManager.java | 213 +++--- .../ajneb97/config/DataConfigManager.java | 76 +-- .../config/DataFolderConfigManager.java | 18 +- .../ajneb97/config/MainConfigManager.java | 291 +++++---- .../ajneb97/config/PlayersConfigsManager.java | 113 ++-- .../config/VariablesFolderConfigManager.java | 10 +- .../ajneb97/config/model/CommonConfig.java | 61 +- .../ajneb97/database/HikariConnection.java | 39 +- .../ajneb97/database/MySQLConnection.java | 349 +++++----- .../ajneb97/listeners/PlayerListener.java | 10 +- .../managers/ListVariablesManager.java | 154 ++--- .../ajneb97/managers/MessagesManager.java | 31 +- .../managers/PlayerVariablesManager.java | 109 ++-- .../managers/ServerVariablesManager.java | 14 +- .../managers/UpdateCheckerManager.java | 8 +- .../ajneb97/managers/VariablesManager.java | 322 ++++----- .../managers/dependencies/Metrics.java | 82 +-- .../ajneb97/model/ListVariableResult.java | 23 +- .../model/ServerVariablesListVariable.java | 2 +- .../ajneb97/model/ServerVariablesPlayer.java | 72 +- .../model/ServerVariablesStringVariable.java | 2 +- .../model/ServerVariablesVariable.java | 1 + .../ajneb97/model/StringVariableResult.java | 15 +- .../svar/ajneb97/model/VariableResult.java | 11 +- .../model/internal/UpdateCheckerResult.java | 14 +- .../internal/ValueFromArgumentResult.java | 13 +- .../ajneb97/model/structure/Limitations.java | 2 + .../ajneb97/model/structure/ListVariable.java | 3 +- .../model/structure/StringVariable.java | 8 +- .../ajneb97/model/structure/ValueType.java | 18 +- .../ajneb97/model/structure/Variable.java | 35 +- .../ajneb97/model/structure/VariableType.java | 2 + .../java/svar/ajneb97/tasks/DataSaveTask.java | 77 ++- .../java/svar/ajneb97/utils/MathUtils.java | 8 +- .../java/svar/ajneb97/utils/OtherUtils.java | 32 +- .../svar/ajneb97/utils/ServerVersion.java | 3 +- src/main/resources/plugin.yml | 1 + 46 files changed, 1775 insertions(+), 1788 deletions(-) diff --git a/pom.xml b/pom.xml index 8c6c159..42c7885 100644 --- a/pom.xml +++ b/pom.xml @@ -18,10 +18,6 @@ papermc https://repo.papermc.io/repository/maven-public/ - - spigot-repo - https://hub.spigotmc.org/nexus/content/repositories/snapshots/ - placeholderapi https://repo.extendedclip.com/content/repositories/placeholderapi/ @@ -35,12 +31,6 @@ 1.21.11-R0.1-SNAPSHOT provided - - org.spigotmc - spigot-api - 1.21.11-R0.1-SNAPSHOT - provided - me.clip placeholderapi diff --git a/src/main/java/svar/ajneb97/ServerVariables.java b/src/main/java/svar/ajneb97/ServerVariables.java index d705a01..e328eba 100644 --- a/src/main/java/svar/ajneb97/ServerVariables.java +++ b/src/main/java/svar/ajneb97/ServerVariables.java @@ -1,6 +1,7 @@ package svar.ajneb97; import org.bukkit.Bukkit; +import org.bukkit.command.PluginCommand; import org.bukkit.plugin.PluginDescriptionFile; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; @@ -16,12 +17,12 @@ import svar.ajneb97.tasks.DataSaveTask; import svar.ajneb97.utils.ServerVersion; - +@SuppressWarnings("deprecation") public class ServerVariables extends JavaPlugin { public static String prefix; public static ServerVersion serverVersion; - private PluginDescriptionFile pdfFile = getDescription(); + private final PluginDescriptionFile pdfFile = getDescription(); public String version = pdfFile.getVersion(); private VariablesManager variablesManager; @@ -35,51 +36,63 @@ public class ServerVariables extends JavaPlugin { private MySQLConnection mySQLConnection; - public void onEnable(){ + public final boolean isFolia = checkFolia(); + + public void onEnable() { setVersion(); setPrefix(); - this.variablesManager = new VariablesManager(this); - this.serverVariablesManager = new ServerVariablesManager(this); - this.playerVariablesManager = new PlayerVariablesManager(this); + variablesManager = new VariablesManager(this); + serverVariablesManager = new ServerVariablesManager(); + playerVariablesManager = new PlayerVariablesManager(this); + registerCommands(); registerEvents(); - this.configsManager = new ConfigsManager(this); - this.configsManager.configure(); + configsManager = new ConfigsManager(this); + configsManager.configure(); - ServerVariablesAPI api = new ServerVariablesAPI(this); - if(Bukkit.getServer().getPluginManager().getPlugin("PlaceholderAPI") != null){ + if (Bukkit.getServer().getPluginManager().getPlugin("PlaceholderAPI") != null) { new ServerVariablesExpansion(this).register(); } - Metrics metrics = new Metrics(this,19731); + new Metrics(this, 19731); - if(configsManager.getMainConfigManager().isMySQL()){ + if (configsManager.getMainConfigManager().isMySQL()) { mySQLConnection = new MySQLConnection(this); mySQLConnection.setupMySql(); } - Bukkit.getConsoleSender().sendMessage(MessagesManager.getLegacyColoredMessage(prefix+" &eHas been enabled! &fVersion: "+version)); - Bukkit.getConsoleSender().sendMessage(MessagesManager.getLegacyColoredMessage(prefix+" &eThanks for using my plugin! &f~Ajneb97")); + dataSaveTask = new DataSaveTask(this); + dataSaveTask.start(configsManager.getMainConfigManager().getConfig().getInt("config.data_save_time")); + + Bukkit.getConsoleSender().sendMessage(MessagesManager.getLegacyColoredMessage(prefix + " &eHas been enabled! &fVersion: " + version)); + Bukkit.getConsoleSender().sendMessage(MessagesManager.getLegacyColoredMessage(prefix + " &eThanks for using my plugin! &f~Ajneb97")); updateCheckerManager = new UpdateCheckerManager(version); updateMessage(updateCheckerManager.check()); + ServerVariablesAPI.init(this); } - public void onDisable(){ - this.configsManager.saveServerData(); - this.configsManager.savePlayerData(); - Bukkit.getConsoleSender().sendMessage(MessagesManager.getLegacyColoredMessage(prefix+" &eHas been disabled! &fVersion: "+version)); + public void onDisable() { + configsManager.saveServerData(); + + configsManager.savePlayerData(); + + if (mySQLConnection != null) { + mySQLConnection.disable(); + } + + Bukkit.getConsoleSender().sendMessage(MessagesManager.getLegacyColoredMessage(prefix + " &eHas been disabled! &fVersion: " + version)); } - public void setPrefix(){ + public void setPrefix() { prefix = MessagesManager.getLegacyColoredMessage("&8[&a&lServerVariables&8]"); } - public void setVersion(){ + public void setVersion() { String packageName = Bukkit.getServer().getClass().getPackage().getName(); String bukkitVersion = Bukkit.getServer().getBukkitVersion().split("-")[0]; - switch(bukkitVersion){ + switch (bukkitVersion) { case "1.20.5": case "1.20.6": serverVersion = ServerVersion.v1_20_R4; @@ -111,9 +124,9 @@ public void setVersion(){ serverVersion = ServerVersion.v1_21_R7; break; default: - try{ + try { serverVersion = ServerVersion.valueOf(packageName.replace("org.bukkit.craftbukkit.", "")); - }catch(Exception e){ + } catch (Exception e) { serverVersion = ServerVersion.v1_21_R7; } } @@ -142,6 +155,7 @@ public ConfigsManager getConfigsManager() { public PlayerVariablesManager getPlayerVariablesManager() { return playerVariablesManager; } + public void registerEvents() { PluginManager pm = getServer().getPluginManager(); pm.registerEvents(new PlayerListener(this), this); @@ -151,31 +165,39 @@ public DataSaveTask getDataSaveTask() { return dataSaveTask; } - public void setDataSaveTask(DataSaveTask dataSaveTask) { - this.dataSaveTask = dataSaveTask; - } public UpdateCheckerManager getUpdateCheckerManager() { return updateCheckerManager; } - public void registerCommands(){ - this.getCommand("servervariables").setExecutor(new MainCommand(this)); + public void registerCommands() { + PluginCommand command = getCommand("servervariables"); + if (command != null) { + command.setExecutor(new MainCommand(this)); + } } public MySQLConnection getMySQLConnection() { return mySQLConnection; } - public void updateMessage(UpdateCheckerResult result){ - if(!result.isError()){ + public void updateMessage(UpdateCheckerResult result) { + if (!result.isError()) { String latestVersion = result.getLatestVersion(); - if(latestVersion != null){ - Bukkit.getConsoleSender().sendMessage(MessagesManager.getLegacyColoredMessage("&cThere is a new version available. &e(&7"+latestVersion+"&e)")); + if (latestVersion != null) { + Bukkit.getConsoleSender().sendMessage(MessagesManager.getLegacyColoredMessage("&cThere is a new version available. &e(&7" + latestVersion + "&e)")); Bukkit.getConsoleSender().sendMessage(MessagesManager.getLegacyColoredMessage("&cYou can download it at: &fhttps://modrinth.com/plugin/servervariables")); } - }else{ - Bukkit.getConsoleSender().sendMessage(MessagesManager.getLegacyColoredMessage(prefix+" &cError while checking update.")); + } else { + Bukkit.getConsoleSender().sendMessage(MessagesManager.getLegacyColoredMessage(prefix + " &cError while checking update.")); } + } + private boolean checkFolia() { + try { + Class.forName("io.papermc.paper.threadedregions.RegionizedServer"); + return true; + } catch (ClassNotFoundException e) { + return false; + } } } diff --git a/src/main/java/svar/ajneb97/api/ListVariableChangeEvent.java b/src/main/java/svar/ajneb97/api/ListVariableChangeEvent.java index 367c76e..4067d35 100644 --- a/src/main/java/svar/ajneb97/api/ListVariableChangeEvent.java +++ b/src/main/java/svar/ajneb97/api/ListVariableChangeEvent.java @@ -5,10 +5,12 @@ import java.util.List; +@SuppressWarnings("unused") public class ListVariableChangeEvent extends VariableChangeEvent { - private List newValue; - private List oldValue; - private int indexModified; + + private final List newValue; + private final List oldValue; + private final int indexModified; public ListVariableChangeEvent(Player player, Variable variable, List newValue, List oldValue, int indexModified) { super(player, variable); diff --git a/src/main/java/svar/ajneb97/api/ServerVariablesAPI.java b/src/main/java/svar/ajneb97/api/ServerVariablesAPI.java index 7331538..5731bb3 100644 --- a/src/main/java/svar/ajneb97/api/ServerVariablesAPI.java +++ b/src/main/java/svar/ajneb97/api/ServerVariablesAPI.java @@ -10,152 +10,154 @@ import java.util.List; import java.util.UUID; +@SuppressWarnings("unused") public class ServerVariablesAPI { private static ServerVariables plugin; - public ServerVariablesAPI(ServerVariables plugin) { - this.plugin = plugin; + + public static void init(ServerVariables plugin) { + ServerVariablesAPI.plugin = plugin; } - public static StringVariableResult getVariableValue(UUID uuid, String variableName){ + public static StringVariableResult getVariableValue(UUID uuid, String variableName) { return plugin.getPlayerVariablesManager().getVariableValue(uuid, variableName, false); } - public static StringVariableResult getVariableValue(String playerName, String variableName){ + public static StringVariableResult getVariableValue(String playerName, String variableName) { return plugin.getPlayerVariablesManager().getVariableValue(playerName, variableName, false); } - public static StringVariableResult getVariableValue(String variableName){ + public static StringVariableResult getVariableValue(String variableName) { return plugin.getVariablesManager().getVariableValue(null, variableName, false); } - public static String getVariableDisplay(String playerName, String variableName){ - StringVariableResult result = plugin.getVariablesManager().getVariableValue(playerName,variableName,false); - if(result.getVariable() != null){ - return plugin.getVariablesManager().getDisplayFromVariableValue(result.getVariable(),result.getResultValue()); + public static String getVariableDisplay(String playerName, String variableName) { + StringVariableResult result = plugin.getVariablesManager().getVariableValue(playerName, variableName, false); + if (result.getVariable() != null) { + return plugin.getVariablesManager().getDisplayFromVariableValue(result.getVariable(), result.getResultValue()); } return result.getResultValue(); } - public static String getVariableDisplay(String variableName){ - StringVariableResult result = plugin.getVariablesManager().getVariableValue(null,variableName,false); - if(result.getVariable() != null){ - return plugin.getVariablesManager().getDisplayFromVariableValue(result.getVariable(),result.getResultValue()); + public static String getVariableDisplay(String variableName) { + StringVariableResult result = plugin.getVariablesManager().getVariableValue(null, variableName, false); + if (result.getVariable() != null) { + return plugin.getVariablesManager().getDisplayFromVariableValue(result.getVariable(), result.getResultValue()); } return result.getResultValue(); } - public static StringVariableResult setVariableValue(String variableName, String value){ - return plugin.getVariablesManager().setVariableValue(null,variableName,value); + public static StringVariableResult setVariableValue(String variableName, String value) { + return plugin.getVariablesManager().setVariableValue(null, variableName, value); } - public static StringVariableResult setVariableValue(UUID uuid, String variableName, String value){ - return plugin.getPlayerVariablesManager().setVariable(uuid,variableName,value); + public static StringVariableResult setVariableValue(UUID uuid, String variableName, String value) { + return plugin.getPlayerVariablesManager().setVariable(uuid, variableName, value); } - public static StringVariableResult setVariableValue(String playerName, String variableName, String value){ - return plugin.getPlayerVariablesManager().setVariable(playerName,variableName,value); + public static StringVariableResult setVariableValue(String playerName, String variableName, String value) { + return plugin.getPlayerVariablesManager().setVariable(playerName, variableName, value); } - public static StringVariableResult getListVariableValueAtIndex(UUID uuid, String variableName, int index){ + public static StringVariableResult getListVariableValueAtIndex(UUID uuid, String variableName, int index) { return plugin.getPlayerVariablesManager().getListVariableValueAtIndex(uuid, variableName, index); } - public static StringVariableResult getListVariableValueAtIndex(String playerName, String variableName, int index){ + public static StringVariableResult getListVariableValueAtIndex(String playerName, String variableName, int index) { return plugin.getPlayerVariablesManager().getListVariableValueAtIndex(playerName, variableName, index); } - public static StringVariableResult getListVariableValueAtIndex(String variableName, int index){ + public static StringVariableResult getListVariableValueAtIndex(String variableName, int index) { return plugin.getVariablesManager().getListVariablesManager().getListVariableValueAtIndex(null, variableName, index); } - public static String getListVariableDisplayAtIndex(String playerName, String variableName, int index){ - StringVariableResult result = plugin.getVariablesManager().getListVariablesManager().getListVariableValueAtIndex(playerName,variableName,index); - if(result.getVariable() != null){ - return plugin.getVariablesManager().getDisplayFromVariableValue(result.getVariable(),result.getResultValue()); + public static String getListVariableDisplayAtIndex(String playerName, String variableName, int index) { + StringVariableResult result = plugin.getVariablesManager().getListVariablesManager().getListVariableValueAtIndex(playerName, variableName, index); + if (result.getVariable() != null) { + return plugin.getVariablesManager().getDisplayFromVariableValue(result.getVariable(), result.getResultValue()); } return result.getResultValue(); } - public static String getListVariableDisplayAtIndex(String variableName, int index){ - StringVariableResult result = plugin.getVariablesManager().getListVariablesManager().getListVariableValueAtIndex(null,variableName,index); - if(result.getVariable() != null){ - return plugin.getVariablesManager().getDisplayFromVariableValue(result.getVariable(),result.getResultValue()); + public static String getListVariableDisplayAtIndex(String variableName, int index) { + StringVariableResult result = plugin.getVariablesManager().getListVariablesManager().getListVariableValueAtIndex(null, variableName, index); + if (result.getVariable() != null) { + return plugin.getVariablesManager().getDisplayFromVariableValue(result.getVariable(), result.getResultValue()); } return result.getResultValue(); } - public static StringVariableResult setListVariableValueAtIndex(String variableName, int index, String value){ - return plugin.getVariablesManager().getListVariablesManager().setListVariableValue(null,variableName,index,value,false); + public static StringVariableResult setListVariableValueAtIndex(String variableName, int index, String value) { + return plugin.getVariablesManager().getListVariablesManager().setListVariableValue(null, variableName, index, value, false); } - public static StringVariableResult setListVariableValueAtIndex(UUID uuid, String variableName, int index, String value){ - return plugin.getPlayerVariablesManager().setListVariableAtIndex(uuid,variableName,index,value); + public static StringVariableResult setListVariableValueAtIndex(UUID uuid, String variableName, int index, String value) { + return plugin.getPlayerVariablesManager().setListVariableAtIndex(uuid, variableName, index, value); } - public static StringVariableResult setListVariableValueAtIndex(String playerName, String variableName, int index, String value){ - return plugin.getPlayerVariablesManager().setListVariableAtIndex(playerName,variableName,index,value); + public static StringVariableResult setListVariableValueAtIndex(String playerName, String variableName, int index, String value) { + return plugin.getPlayerVariablesManager().setListVariableAtIndex(playerName, variableName, index, value); } - public static int getListVariableLength(UUID uuid, String variableName){ + public static int getListVariableLength(UUID uuid, String variableName) { ListVariableResult result = plugin.getPlayerVariablesManager().getListVariableValue(uuid, variableName); - if(result.isError() || result.getResultValue() == null){ + if (result.isError() || result.getResultValue() == null) { return 0; } return result.getResultValue().size(); } - public static int getListVariableLength(String playerName, String variableName){ + public static int getListVariableLength(String playerName, String variableName) { ListVariableResult result = plugin.getPlayerVariablesManager().getListVariableValue(playerName, variableName); - if(result.isError() || result.getResultValue() == null){ + if (result.isError() || result.getResultValue() == null) { return 0; } return result.getResultValue().size(); } - public static int getListVariableLength(String variableName){ + public static int getListVariableLength(String variableName) { ListVariableResult result = plugin.getVariablesManager().getListVariablesManager().getListVariableValue(null, variableName, false); - if(result.isError() || result.getResultValue() == null){ + if (result.isError() || result.getResultValue() == null) { return 0; } return result.getResultValue().size(); } - public static ServerVariablesPlayer getPlayerByName(String playerName){ + public static ServerVariablesPlayer getPlayerByName(String playerName) { return plugin.getPlayerVariablesManager().getPlayerByName(playerName); } - public static ServerVariablesPlayer getPlayerByUUID(UUID uuid){ + public static ServerVariablesPlayer getPlayerByUUID(UUID uuid) { return plugin.getPlayerVariablesManager().getPlayerByUUID(uuid); } - public static String getStringVariableInitialValue(String variableName){ + public static String getStringVariableInitialValue(String variableName) { StringVariable variable = (StringVariable) plugin.getVariablesManager().getVariable(variableName); - if(variable == null){ + if (variable == null) { return null; } return variable.getInitialValue(); } - public static List getListVariableInitialValue(String variableName){ + public static List getListVariableInitialValue(String variableName) { ListVariable variable = (ListVariable) plugin.getVariablesManager().getVariable(variableName); - if(variable == null){ + if (variable == null) { return null; } return variable.getInitialValue(); } - public static boolean listVariableContainsValue(String playerName, String variableName,String value){ + public static boolean listVariableContainsValue(String playerName, String variableName, String value) { ListVariableResult result = plugin.getPlayerVariablesManager().getListVariableValue(playerName, variableName); - if(result.isError() || result.getResultValue() == null){ + if (result.isError() || result.getResultValue() == null) { return false; } return result.getResultValue().contains(value); } - public static boolean listVariableContainsValue(String variableName,String value){ + public static boolean listVariableContainsValue(String variableName, String value) { ListVariableResult result = plugin.getVariablesManager().getListVariablesManager().getListVariableValue(null, variableName, false); - if(result.isError() || result.getResultValue() == null){ + if (result.isError() || result.getResultValue() == null) { return false; } return result.getResultValue().contains(value); diff --git a/src/main/java/svar/ajneb97/api/ServerVariablesExpansion.java b/src/main/java/svar/ajneb97/api/ServerVariablesExpansion.java index 96b9cd5..f6d23d3 100644 --- a/src/main/java/svar/ajneb97/api/ServerVariablesExpansion.java +++ b/src/main/java/svar/ajneb97/api/ServerVariablesExpansion.java @@ -2,47 +2,49 @@ import org.bukkit.entity.Player; import me.clip.placeholderapi.expansion.PlaceholderExpansion; +import org.jetbrains.annotations.NotNull; import svar.ajneb97.ServerVariables; import svar.ajneb97.model.StringVariableResult; +@SuppressWarnings("deprecation") public class ServerVariablesExpansion extends PlaceholderExpansion { // We get an instance of the plugin later. - private ServerVariables plugin; + private final ServerVariables plugin; public ServerVariablesExpansion(ServerVariables plugin) { - this.plugin = plugin; + this.plugin = plugin; } @Override - public boolean persist(){ + public boolean persist() { return true; } @Override - public boolean canRegister(){ + public boolean canRegister() { return true; } @Override - public String getAuthor(){ + public @NotNull String getAuthor() { return "Ajneb97"; } @Override - public String getIdentifier(){ + public @NotNull String getIdentifier() { return "servervariables"; } @Override - public String getVersion(){ + public @NotNull String getVersion() { return plugin.getDescription().getVersion(); } @Override - public String onPlaceholderRequest(Player player, String identifier){ + public String onPlaceholderRequest(Player player, String identifier) { StringVariableResult result; - if(identifier.startsWith("list_")){ + if (identifier.startsWith("list_")) { // %servervariables_list_globalvalue__% // %servervariables_list_globaldisplay__% // %servervariables_list_value__% @@ -51,11 +53,11 @@ public String onPlaceholderRequest(Player player, String identifier){ // %servervariables_list_length_% // %servervariables_list_globalcontains_:% // %servervariables_list_contains_:% - String identifierM = identifier.replace("list_",""); + String identifierM = identifier.replace("list_", ""); String[] sep = identifierM.split("_"); String subIdentifier = sep[0]; - switch(subIdentifier){ + switch (subIdentifier) { case "globalvalue": { int index = Integer.parseInt(sep[1]); String variableName = identifierM.substring(identifierM.indexOf(index + "_") + (index + "_").length()); @@ -110,49 +112,58 @@ public String onPlaceholderRequest(Player player, String identifier){ return ServerVariablesAPI.listVariableContainsValue(player.getName(), sep2[0], sep2[1]) + ""; } } - }else if(identifier.startsWith("globalvalue_")){ - // %servervariables_globalvalue_% - String variableName = identifier.replace("globalvalue_", ""); + } else if (identifier.startsWith("globalvalue_")) { + // %servervariables_globalvalue_% + String variableName = identifier.replace("globalvalue_", ""); result = ServerVariablesAPI.getVariableValue(variableName); return result.getResultValue() != null ? result.getResultValue() : result.getErrorKey(); - }else if(identifier.startsWith("globaldisplay_")){ + } else if (identifier.startsWith("globaldisplay_")) { // %servervariables_globaldisplay_% String variableName = identifier.replace("globaldisplay_", ""); return ServerVariablesAPI.getVariableDisplay(variableName); - }else if(identifier.startsWith("value_otherplayer_")){ + } else if (identifier.startsWith("value_otherplayer_")) { // %servervariables_value_otherplayer_:% String var = identifier.replace("value_otherplayer_", ""); int index = var.indexOf(":"); - String playerName = var.substring(0,index); - String variable = var.substring(index+1); - result = ServerVariablesAPI.getVariableValue(playerName,variable); + String playerName = var.substring(0, index); + String variable = var.substring(index + 1); + result = ServerVariablesAPI.getVariableValue(playerName, variable); return result.getResultValue() != null ? result.getResultValue() : result.getErrorKey(); - }else if(identifier.startsWith("display_otherplayer_")){ + } else if (identifier.startsWith("display_otherplayer_")) { // %servervariables_display_otherplayer_:% String var = identifier.replace("display_otherplayer_", ""); int index = var.indexOf(":"); - String playerName = var.substring(0,index); - String variable = var.substring(index+1); - return ServerVariablesAPI.getVariableDisplay(playerName,variable); - }else if(identifier.startsWith("value_")){ + String playerName = var.substring(0, index); + String variable = var.substring(index + 1); + return ServerVariablesAPI.getVariableDisplay(playerName, variable); + } else if (identifier.startsWith("value_")) { // %servervariables_value_% - if(player == null){ + if (player == null) { return ""; } String variableName = identifier.replace("value_", ""); - result = ServerVariablesAPI.getVariableValue(player.getName(),variableName); + result = ServerVariablesAPI.getVariableValue(player.getName(), variableName); return result.getResultValue() != null ? result.getResultValue() : result.getErrorKey(); - }else if(identifier.startsWith("display_")) { + } else if (identifier.startsWith("display_")) { // %servervariables_display_% - if(player == null){ + if (player == null) { return ""; } String variableName = identifier.replace("display_", ""); - return ServerVariablesAPI.getVariableDisplay(player.getName(),variableName); - }else if(identifier.startsWith("initial_value_")){ + return ServerVariablesAPI.getVariableDisplay(player.getName(), variableName); + } else if (identifier.startsWith("initial_value_")) { // %servervariables_initial_value_% String variableName = identifier.replace("initial_value_", ""); return ServerVariablesAPI.getStringVariableInitialValue(variableName); + } else if (identifier.startsWith("predict_display_")) { + String[] split = identifier.replace("predict_display_", "").split(":"); + if (split.length < 2) { + return ""; + } else { + String variableName = split[0]; + String future = split[1]; + return this.plugin.getVariablesManager().getDisplayFromVariableValue(this.plugin.getVariablesManager().getVariable(variableName), future); + } } return null; diff --git a/src/main/java/svar/ajneb97/api/StringVariableChangeEvent.java b/src/main/java/svar/ajneb97/api/StringVariableChangeEvent.java index d2a3fc2..c1ec6b1 100644 --- a/src/main/java/svar/ajneb97/api/StringVariableChangeEvent.java +++ b/src/main/java/svar/ajneb97/api/StringVariableChangeEvent.java @@ -4,8 +4,9 @@ import svar.ajneb97.model.structure.Variable; public class StringVariableChangeEvent extends VariableChangeEvent { - private String newValue; - private String oldValue; + + private final String newValue; + private final String oldValue; public StringVariableChangeEvent(Player player, Variable variable, String newValue, String oldValue) { super(player, variable); diff --git a/src/main/java/svar/ajneb97/api/VariableChangeEvent.java b/src/main/java/svar/ajneb97/api/VariableChangeEvent.java index c0d0ef8..aaf6cbe 100644 --- a/src/main/java/svar/ajneb97/api/VariableChangeEvent.java +++ b/src/main/java/svar/ajneb97/api/VariableChangeEvent.java @@ -3,41 +3,41 @@ import org.bukkit.entity.Player; import org.bukkit.event.Event; import org.bukkit.event.HandlerList; +import org.jetbrains.annotations.NotNull; import svar.ajneb97.model.structure.Variable; +@SuppressWarnings("unused") +public abstract class VariableChangeEvent extends Event { -public abstract class VariableChangeEvent extends Event{ + private final Player player; //Will be null if not a PLAYER variable + private final Variable variable; + private static final HandlerList handlers = new HandlerList(); - private Player player; //Will be null if not a PLAYER variable - private Variable variable; - private static final HandlerList handlers = new HandlerList(); + //Event called when a variable changes its value + public VariableChangeEvent(Player player, Variable variable) { + this.player = player; + this.variable = variable; + } - //Event called when a variable changes its value - public VariableChangeEvent(Player player, Variable variable){ - this.player = player; - this.variable = variable; - } - - public Player getPlayer() { - return player; - } + public Player getPlayer() { + return player; + } - public Variable getVariable() { - return variable; - } + public Variable getVariable() { + return variable; + } - public abstract Object getNewValue(); + public abstract Object getNewValue(); - public abstract Object getOldValue(); + public abstract Object getOldValue(); - @Override - public HandlerList getHandlers() { - // TODO Auto-generated method stub - return handlers; - } - - public static HandlerList getHandlerList() { - return handlers; - } + @Override + public @NotNull HandlerList getHandlers() { + return handlers; + } + + public static HandlerList getHandlerList() { + return handlers; + } } diff --git a/src/main/java/svar/ajneb97/commands/MainCommand.java b/src/main/java/svar/ajneb97/commands/MainCommand.java index 3368f61..31aa108 100644 --- a/src/main/java/svar/ajneb97/commands/MainCommand.java +++ b/src/main/java/svar/ajneb97/commands/MainCommand.java @@ -1,8 +1,6 @@ package svar.ajneb97.commands; - - import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; @@ -10,6 +8,7 @@ import org.bukkit.command.TabCompleter; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; import svar.ajneb97.ServerVariables; import svar.ajneb97.commands.subcommands.ListCommand; import svar.ajneb97.managers.MessagesManager; @@ -24,312 +23,320 @@ import java.util.Map; +@SuppressWarnings("DataFlowIssue") public class MainCommand implements CommandExecutor, TabCompleter { - private ServerVariables plugin; - private ListCommand listCommand; - public MainCommand(ServerVariables plugin){ - this.plugin = plugin; - this.listCommand = new ListCommand(plugin); - } - - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if(!sender.hasPermission("servervariables.admin")){ - return false; - } - - FileConfiguration config = plugin.getConfigsManager().getMainConfigManager().getConfig(); - MessagesManager msgManager = plugin.getMessagesManager(); - if(args.length >= 1){ - if(args[0].equalsIgnoreCase("set")){ - set(sender,args,config,msgManager); - }else if(args[0].equalsIgnoreCase("reload")){ - reload(sender,args,config,msgManager); - }else if(args[0].equalsIgnoreCase("get")){ - get(sender,args,config,msgManager); - }else if(args[0].equalsIgnoreCase("add")){ - add(sender,args,config,msgManager); - }else if(args[0].equalsIgnoreCase("reduce")){ - reduce(sender,args,config,msgManager); - }else if(args[0].equalsIgnoreCase("reset")){ - reset(sender,args,config,msgManager); - }else if(args[0].equalsIgnoreCase("list")){ - list(sender,args,config,msgManager); - }else{ - help(sender,args,config,msgManager); - } - }else{ - help(sender,args,config,msgManager); - } - - return true; - - } - - public void help(CommandSender sender, String[] args, FileConfiguration config, MessagesManager msgManager){ - sender.sendMessage(MessagesManager.getLegacyColoredMessage("&7[ [ &8[&aServerVariables&8] &7] ]")); - sender.sendMessage(MessagesManager.getLegacyColoredMessage(" ")); - sender.sendMessage(MessagesManager.getLegacyColoredMessage("&6/svar help &8Shows this message.")); - sender.sendMessage(MessagesManager.getLegacyColoredMessage("&6/svar set (optional) (optional)silent:true &8Sets the value of a variable.")); - sender.sendMessage(MessagesManager.getLegacyColoredMessage("&6/svar get (optional) (optional)silent:true &8Gets the value from a variable.")); - sender.sendMessage(MessagesManager.getLegacyColoredMessage("&6/svar add (optional) (optional)silent:true &8Adds a value to a variable (INTEGER or DOUBLE).")); - sender.sendMessage(MessagesManager.getLegacyColoredMessage("&6/svar reduce (optional) (optional)silent:true &8Reduces the value of a variable (INTEGER or DOUBLE).")); - sender.sendMessage(MessagesManager.getLegacyColoredMessage("&6/svar list