Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 25 additions & 16 deletions src/main/java/de/xite/scoreboard/utils/Version.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@

import org.jetbrains.annotations.NotNull;
import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Version implements Comparable<Version> {
private final String version;
Expand All @@ -15,13 +17,33 @@ public Version(@NotNull String version) {
this.version = version;
}

public static final Version v1_8 = new Version("1.8");
public static final Version v1_9 = new Version("1.9");
public static final Version v1_10 = new Version("1.10");
public static final Version v1_11 = new Version("1.11");
public static final Version v1_12 = new Version("1.12");
public static final Version v1_13 = new Version("1.13");
public static final Version v1_14 = new Version("1.14");
public static final Version v1_15 = new Version("1.15");
public static final Version v1_16 = new Version("1.16");
public static final Version v1_17 = new Version("1.17");
public static final Version v1_18 = new Version("1.18");
public static final Version v1_20_3 = new Version("1.20.3");

public static final Version CURRENT;
static {
Logger logger = PowerBoard.pl.getLogger();
Version v;
String s = Bukkit.getBukkitVersion();
try {
String s = Bukkit.getBukkitVersion();
String version = s.substring(0, s.lastIndexOf("-R")).replace("_", ".");
// Extracts the leading numeric version, tolerating arbitrary suffixes:
// "1.21.4-R0.1-SNAPSHOT" -> "1.21.4"
// "26.1.2-build.12-alpha" -> "26.1.2"
// "26.1.2.build.12-alpha" -> "26.1.2"
Matcher m = Pattern.compile("^([0-9]+(?:\\.[0-9]+)*)").matcher(s.replace("_", "."));
if(!m.find())
throw new IllegalArgumentException("No leading version number in '" + s + "'");
String version = m.group(1);

if(PowerBoard.debug) {
logger.info(" ");
Expand All @@ -32,24 +54,11 @@ public Version(@NotNull String version) {
v = new Version(version);
} catch (Exception e) {
e.printStackTrace();
logger.severe("Could not extract MC version! Defaulting to 1.13.");
logger.severe("Could not extract MC version from '" + s + "'! Defaulting to 1.13.");
v = Version.v1_13;
}
CURRENT = v;
}

public static final Version v1_8 = new Version("1.8");
public static final Version v1_9 = new Version("1.9");
public static final Version v1_10 = new Version("1.10");
public static final Version v1_11 = new Version("1.11");
public static final Version v1_12 = new Version("1.12");
public static final Version v1_13 = new Version("1.13");
public static final Version v1_14 = new Version("1.14");
public static final Version v1_15 = new Version("1.15");
public static final Version v1_16 = new Version("1.16");
public static final Version v1_17 = new Version("1.17");
public static final Version v1_18 = new Version("1.18");
public static final Version v1_20_3 = new Version("1.20.3");
private static boolean isAbove_1_13 = Version.CURRENT.isAtLeast(Version.v1_13);
private static boolean isAbove_1_20_3 = Version.CURRENT.isAtLeast(Version.v1_20_3);

Expand Down
Loading