diff --git a/src/main/java/svar/ajneb97/api/ServerVariablesAPI.java b/src/main/java/svar/ajneb97/api/ServerVariablesAPI.java index 7331538..15f0a61 100644 --- a/src/main/java/svar/ajneb97/api/ServerVariablesAPI.java +++ b/src/main/java/svar/ajneb97/api/ServerVariablesAPI.java @@ -6,8 +6,10 @@ import svar.ajneb97.model.ServerVariablesPlayer; import svar.ajneb97.model.structure.ListVariable; import svar.ajneb97.model.structure.StringVariable; +import svar.ajneb97.model.structure.Variable; import java.util.List; +import java.util.StringJoiner; import java.util.UUID; public class ServerVariablesAPI { @@ -161,6 +163,71 @@ public static boolean listVariableContainsValue(String variableName,String value return result.getResultValue().contains(value); } + public static String getListVariableAllValues(UUID uuid, String variableName){ + ListVariableResult result = plugin.getPlayerVariablesManager().getListVariableValue(uuid, variableName); + return joinListValues(result); + } + + public static String getListVariableAllValues(String playerName, String variableName){ + ListVariableResult result = plugin.getPlayerVariablesManager().getListVariableValue(playerName, variableName); + return joinListValues(result); + } + + public static String getListVariableAllValues(String variableName){ + ListVariableResult result = plugin.getVariablesManager().getListVariablesManager().getListVariableValue(null, variableName, false); + return joinListValues(result); + } + + public static String getListVariableAllValuesDisplay(UUID uuid, String variableName){ + ListVariableResult result = plugin.getPlayerVariablesManager().getListVariableValue(uuid, variableName); + return joinListValuesDisplay(result); + } + + public static String getListVariableAllValuesDisplay(String playerName, String variableName){ + ListVariableResult result = plugin.getPlayerVariablesManager().getListVariableValue(playerName, variableName); + return joinListValuesDisplay(result); + } + + public static String getListVariableAllValuesDisplay(String variableName){ + ListVariableResult result = plugin.getVariablesManager().getListVariablesManager().getListVariableValue(null, variableName, false); + return joinListValuesDisplay(result); + } + + private static String joinListValues(ListVariableResult result){ + if(result.isError() || result.getResultValue() == null){ + return ""; + } + List list = result.getResultValue(); + if(list.isEmpty()){ + return ""; + } + StringJoiner values = new StringJoiner(","); + for(String value : list){ + values.add(value); + } + return values.toString(); + } + + private static String joinListValuesDisplay(ListVariableResult result){ + if(result.isError() || result.getResultValue() == null){ + return ""; + } + List list = result.getResultValue(); + if(list.isEmpty()){ + return ""; + } + StringJoiner values = new StringJoiner(","); + Variable variable = result.getVariable(); + for(String value : list){ + if(variable != null){ + values.add(plugin.getVariablesManager().getDisplayFromVariableValue(variable, value)); + }else{ + values.add(value); + } + } + return values.toString(); + } + public static ServerVariables getPlugin() { return plugin; } diff --git a/src/main/java/svar/ajneb97/api/ServerVariablesExpansion.java b/src/main/java/svar/ajneb97/api/ServerVariablesExpansion.java index 96b9cd5..b6403f3 100644 --- a/src/main/java/svar/ajneb97/api/ServerVariablesExpansion.java +++ b/src/main/java/svar/ajneb97/api/ServerVariablesExpansion.java @@ -51,6 +51,10 @@ public String onPlaceholderRequest(Player player, String identifier){ // %servervariables_list_length_% // %servervariables_list_globalcontains_:% // %servervariables_list_contains_:% + // %servervariables_list_globalallvalues_% + // %servervariables_list_allvalues_% + // %servervariables_list_globalalldisplay_% + // %servervariables_list_alldisplay_% String identifierM = identifier.replace("list_",""); String[] sep = identifierM.split("_"); String subIdentifier = sep[0]; @@ -109,6 +113,28 @@ public String onPlaceholderRequest(Player player, String identifier){ String[] sep2 = variableName.split(":"); return ServerVariablesAPI.listVariableContainsValue(player.getName(), sep2[0], sep2[1]) + ""; } + case "globalallvalues": { + String variableName = identifierM.replace("globalallvalues_", ""); + return ServerVariablesAPI.getListVariableAllValues(variableName); + } + case "allvalues": { + if (player == null) { + return ""; + } + String variableName = identifierM.replace("allvalues_", ""); + return ServerVariablesAPI.getListVariableAllValues(player.getName(), variableName); + } + case "globalalldisplay": { + String variableName = identifierM.replace("globalalldisplay_", ""); + return ServerVariablesAPI.getListVariableAllValuesDisplay(variableName); + } + case "alldisplay": { + if (player == null) { + return ""; + } + String variableName = identifierM.replace("alldisplay_", ""); + return ServerVariablesAPI.getListVariableAllValuesDisplay(player.getName(), variableName); + } } }else if(identifier.startsWith("globalvalue_")){ // %servervariables_globalvalue_%