aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/github/moulberry/notenoughupdates/questing/requirements/RequirementApi.java
diff options
context:
space:
mode:
authorBuildTools <james.jenour@protonmail.com>2021-01-07 12:57:35 +0800
committerBuildTools <james.jenour@protonmail.com>2021-01-07 12:57:35 +0800
commitcfa0aa0c9a24aa739d3254b24ef4bf0bea7087a6 (patch)
tree37195b6df62d8281e236e0fb87e5d9edbd60f625 /src/main/java/io/github/moulberry/notenoughupdates/questing/requirements/RequirementApi.java
parent9ae63509ab33c4d3f0ee19bc618ef4e4c654ef46 (diff)
downloadnotenoughupdates-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.java108
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);
- }*/
- }
- }
-}