diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/calculators/SignCalculator.java | 16 | ||||
-rw-r--r-- | src/main/java/de/hysky/skyblocker/utils/Calculator.java | 24 |
2 files changed, 20 insertions, 20 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/calculators/SignCalculator.java b/src/main/java/de/hysky/skyblocker/skyblock/calculators/SignCalculator.java index f9bb1e9f..dc51e48c 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/calculators/SignCalculator.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/calculators/SignCalculator.java @@ -17,15 +17,13 @@ public class SignCalculator { private static double output; public static void renderCalculator(DrawContext context, String message, int renderX, int renderY) { - if (SkyblockerConfigManager.get().uiAndVisuals.inputCalculator.requiresEquals) { - if (message.startsWith("=")) { - message = message.substring(1); - } - else { - output = -1; - lastInput = message; - return; - } + if (SkyblockerConfigManager.get().uiAndVisuals.inputCalculator.requiresEquals && !message.startsWith("=")) { + output = -1; + lastInput = message; + return; + } + if (message.startsWith("=")) { + message = message.substring(1); } //only update output if new input if (!message.equals(lastInput)) { // diff --git a/src/main/java/de/hysky/skyblocker/utils/Calculator.java b/src/main/java/de/hysky/skyblocker/utils/Calculator.java index 30c1ee64..7b0baaf6 100644 --- a/src/main/java/de/hysky/skyblocker/utils/Calculator.java +++ b/src/main/java/de/hysky/skyblocker/utils/Calculator.java @@ -15,13 +15,14 @@ public class Calculator { int tokenLength; } - private static final Pattern NUMBER_PATTERN = Pattern.compile("(\\d+\\.?\\d*)([kmbse]?)"); - private static final Map<String, Integer> magnitudeValues = Map.of( - "s", 64, - "e", 160, - "k", 1000, - "m", 1000000, - "b", 1000000000 + private static final Pattern NUMBER_PATTERN = Pattern.compile("(\\d+\\.?\\d*)([sekmbt]?)"); + private static final Map<String, Long> MAGNITUDE_VALUES = Map.of( + "s", 64L, + "e", 160L, + "k", 1_000L, + "m", 1_000_000L, + "b", 1_000_000_000L, + "t", 1_000_000_000_000L ); private static List<Token> lex(String input) { @@ -88,7 +89,7 @@ public class Calculator { Deque<Token> operatorStack = new ArrayDeque<>(); List<Token> outputQueue = new ArrayList<>(); - for (Token shuntingToken : tokens) + for (Token shuntingToken : tokens) { switch (shuntingToken.type) { case NUMBER -> outputQueue.add(shuntingToken); case OPERATOR -> { @@ -122,6 +123,7 @@ public class Calculator { } } } + } //empty the operator stack while (!operatorStack.isEmpty()) { Token leftToken = operatorStack.pop(); @@ -189,10 +191,10 @@ public class Calculator { String magnitude = numberMatcher.group(2); if (!magnitude.isEmpty()) { - if (!magnitudeValues.containsKey(magnitude)) {//its invalid if its another letter + if (!MAGNITUDE_VALUES.containsKey(magnitude)) {//its invalid if its another letter throw new UnsupportedOperationException("Invalid magnitude"); } - number *= magnitudeValues.get(magnitude); + number *= MAGNITUDE_VALUES.get(magnitude); } return number; @@ -200,7 +202,7 @@ public class Calculator { public static double calculate(String equation) { //custom bit for replacing purse with its value - equation = equation.toLowerCase().replaceAll("p(urse)?",String.valueOf((int)Utils.getPurse())); + equation = equation.toLowerCase().replaceAll("p(urse)?", String.valueOf(Utils.getPurse())); return evaluate(shunt(lex(equation))); } } |