summaryrefslogtreewikicommitdiff
path: root/src/main/java/net/tylermurphy/hideAndSeek/util/Version.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/tylermurphy/hideAndSeek/util/Version.java')
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/util/Version.java45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/util/Version.java b/src/main/java/net/tylermurphy/hideAndSeek/util/Version.java
new file mode 100644
index 0000000..96854db
--- /dev/null
+++ b/src/main/java/net/tylermurphy/hideAndSeek/util/Version.java
@@ -0,0 +1,45 @@
+package net.tylermurphy.hideAndSeek.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;
+ }
+ }
+}