diff options
| author | BuildTools <james.jenour@protonmail.com> | 2021-01-07 12:57:35 +0800 |
|---|---|---|
| committer | BuildTools <james.jenour@protonmail.com> | 2021-01-07 12:57:35 +0800 |
| commit | cfa0aa0c9a24aa739d3254b24ef4bf0bea7087a6 (patch) | |
| tree | 37195b6df62d8281e236e0fb87e5d9edbd60f625 /src/main/java/io/github/moulberry/notenoughupdates/questing/requirements/RequirementApi.java | |
| parent | 9ae63509ab33c4d3f0ee19bc618ef4e4c654ef46 (diff) | |
| download | notenoughupdates-cfa0aa0c9a24aa739d3254b24ef4bf0bea7087a6.tar.gz notenoughupdates-cfa0aa0c9a24aa739d3254b24ef4bf0bea7087a6.tar.bz2 notenoughupdates-cfa0aa0c9a24aa739d3254b24ef4bf0bea7087a6.zip | |
PRE4
Diffstat (limited to 'src/main/java/io/github/moulberry/notenoughupdates/questing/requirements/RequirementApi.java')
| -rw-r--r-- | src/main/java/io/github/moulberry/notenoughupdates/questing/requirements/RequirementApi.java | 108 |
1 files changed, 0 insertions, 108 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/questing/requirements/RequirementApi.java b/src/main/java/io/github/moulberry/notenoughupdates/questing/requirements/RequirementApi.java deleted file mode 100644 index 16da64fe..00000000 --- a/src/main/java/io/github/moulberry/notenoughupdates/questing/requirements/RequirementApi.java +++ /dev/null @@ -1,108 +0,0 @@ -package io.github.moulberry.notenoughupdates.questing.requirements; - -import com.google.common.base.Splitter; -import com.google.gson.*; -import io.github.moulberry.notenoughupdates.NotEnoughUpdates; - -import java.util.List; - -public class RequirementApi extends Requirement { - - private boolean valid = false; - private String requirementLeft; //a.b.c - private String op; //!=,<=,>=,=,<,> - private String requirementRight; //true,float,etc. - - private String[] ops = new String[]{"!=","<=",">=","=","<",">"}; - - public RequirementApi(String apiCheck, Requirement... preconditions) { - super(preconditions); - - processApiCheck(apiCheck); - } - - public void processApiCheck(String apiCheck) { - for(String operator : ops) { - if(apiCheck.contains(operator)) { - String[] split = apiCheck.split(operator); - requirementLeft = split[0]; - requirementRight = split[1]; - op = operator; - valid = true; - return; - } - } - } - - private static Splitter PATH_SPLITTER = Splitter.on(".").omitEmptyStrings().limit(2); - private static JsonElement getElement(JsonElement element, String path) { - List<String> path_split = PATH_SPLITTER.splitToList(path); - if(element instanceof JsonObject) { - JsonElement e = element.getAsJsonObject().get(path_split.get(0)); - if(path_split.size() > 1) { - return getElement(e, path_split.get(1)); - } else { - return e; - } - } else { - return element; - } - } - - private static boolean checkElementSatisfiesComparison(JsonElement element, String op, String value) { - try { - if(element instanceof JsonNull) { - return value.equals("null"); - } else if(element instanceof JsonObject) { - if(value.contains(".")) { - StringBuilder sb = new StringBuilder(); - String[] split = value.split("\\."); - for(int i=0; i<split.length-1; i++) { - sb.append(split[i]).append("."); - } - return checkElementSatisfiesComparison(getElement(element, sb.toString()), op, split[split.length-1]); - } else { - boolean containsValue = element.getAsJsonObject().has(value); - switch(op) { - case "=": return containsValue; - case "!=": return !containsValue; - default: return false; - } - } - } else if(element instanceof JsonArray) { - for(int i=0; i<element.getAsJsonArray().size(); i++) { - JsonElement e = element.getAsJsonArray().get(i); - if(checkElementSatisfiesComparison(e, op, value)) return true; - } - } else if(element instanceof JsonPrimitive) { - JsonPrimitive prim = element.getAsJsonPrimitive(); - if(!prim.isNumber()) { - return prim.getAsString().equals(value); - } else { - switch(op) { - case "=": return prim.getAsString().equals(value); - case "!=": return !prim.getAsString().equals(value); - case ">": return prim.getAsDouble() > Double.parseDouble(value); - case "<": return prim.getAsDouble() < Double.parseDouble(value); - case "<=": return prim.getAsDouble() <= Double.parseDouble(value); - case ">=": return prim.getAsDouble() >= Double.parseDouble(value); - default: return false; - } - } - } - } catch(Exception e) {} - return false; - } - - @Override - public void updateRequirement() { - if(valid) { - /*JsonObject profile = NotEnoughUpdates.INSTANCE.manager.auctionManager.getPlayerInformation(); - if(profile != null) { - System.out.println("-----------"); - JsonElement element = getElement(profile, requirementLeft); - completed = checkElementSatisfiesComparison(element, op, requirementRight); - }*/ - } - } -} |
