summaryrefslogtreewikicommitdiff
path: root/src/main/java/net/tylermurphy/hideAndSeek/game/util/Version.java
diff options
context:
space:
mode:
authorTyler Murphy <tylermurphy534@gmail.com>2022-05-13 21:17:46 -0400
committerTyler Murphy <tylermurphy534@gmail.com>2022-05-13 21:17:46 -0400
commitea8f76493141717296e1f59fbdab21c39f1937be (patch)
tree3d6ceeb5baf90f857b88d8a09fc9a07caddf75ce /src/main/java/net/tylermurphy/hideAndSeek/game/util/Version.java
parentMerge pull request #53 from bobby29831/1.4.3 (diff)
downloadkenshinshideandseek-ea8f76493141717296e1f59fbdab21c39f1937be.tar.gz
kenshinshideandseek-ea8f76493141717296e1f59fbdab21c39f1937be.tar.bz2
kenshinshideandseek-ea8f76493141717296e1f59fbdab21c39f1937be.zip
refactor and encapsulate classes
Diffstat (limited to 'src/main/java/net/tylermurphy/hideAndSeek/game/util/Version.java')
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/game/util/Version.java45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/game/util/Version.java b/src/main/java/net/tylermurphy/hideAndSeek/game/util/Version.java
new file mode 100644
index 0000000..e2dcfdd
--- /dev/null
+++ b/src/main/java/net/tylermurphy/hideAndSeek/game/util/Version.java
@@ -0,0 +1,45 @@
+package net.tylermurphy.hideAndSeek.game.util;
+
+import org.bukkit.Bukkit;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class Version {
+
+ private static final Map<String,Boolean> CACHE = new HashMap<>();
+
+ public static boolean atLeast(String testVersion) {
+
+
+ if (CACHE.containsKey(testVersion)) return CACHE.get(testVersion);
+
+ String[] serverCheckTemp = Bukkit.getBukkitVersion().substring(2,Bukkit.getBukkitVersion().indexOf('-')).split("\\.");
+ int[] serverCheck = new int[serverCheckTemp.length];
+ for(int i=0; i<serverCheck.length; i++) {
+ serverCheck[i] = Integer.parseInt(serverCheckTemp[i]);
+ }
+
+ String[] customCheckTemp = testVersion.substring(2).split("\\.");
+ int[] customCheck = new int[customCheckTemp.length];
+ for(int i=0; i<customCheck.length; i++) {
+ customCheck[i] = Integer.parseInt(customCheckTemp[i]);
+ }
+
+ boolean result = getResult(customCheck, serverCheck);
+ CACHE.put(testVersion, result);
+ return result;
+ }
+
+ private static boolean getResult(int[] customCheck, int[] serverCheck) {
+ if (customCheck[0] > serverCheck[0]) return false;
+ else if (customCheck[0] < serverCheck[0]) return true;
+ else {
+ if (customCheck.length == 1 && serverCheck.length == 1) return true;
+ else if (customCheck.length == 2 && serverCheck.length == 2) {
+ return customCheck[1] <= serverCheck[1];
+ }
+ else return serverCheck.length == 2;
+ }
+ }
+}