Files
PaintballBattle/src/main/java/pb/ajneb97/utils/ServerVersion.java
2026-03-27 15:03:14 +01:00

67 lines
1.9 KiB
Java

package pb.ajneb97.utils;
import org.bukkit.Bukkit;
public enum ServerVersion {
v1_8_R1,
v1_8_R2,
v1_8_R3,
v1_9_R1,
v1_9_R2,
v1_10_R1,
v1_11_R1,
v1_12_R1,
v1_13_R1,
v1_13_R2,
v1_14_R1,
v1_15_R1,
v1_16_R1,
v1_16_R2,
v1_16_R3,
v1_17_R1,
v1_18_R1,
v1_18_R2,
v1_19_R1,
v1_19_R2,
v1_19_R3,
v1_20_R1,
v1_20_R2,
v1_20_R3,
v1_20_R4,
v1_21_R1,
v1_21_R2,
v1_21_R3,
v1_21_R4, // Added for Paper 1.21.8
SPIGOT_26_1; // Added für Spigot 26.1
public boolean serverVersionGreaterEqualThan(ServerVersion version1, ServerVersion version2) {
return version1.ordinal() >= version2.ordinal();
}
/**
* Detect the server version safely.
* This method will try to map the CraftBukkit package version to an enum constant.
* If it cannot find one, it falls back to the latest known version.
*/
public static ServerVersion detect() {
String pkg = Bukkit.getServer().getClass().getPackage().getName();
// Bukkit.getLogger().info(pkg);
// Typically ends with v1_x_Ry or spigot_26_1
String detected = pkg.substring(pkg.lastIndexOf('.') + 1);
try {
ServerVersion version = ServerVersion.valueOf(detected);
Bukkit.getLogger().info("[PaintballBattle] Detected server version: " + version.name());
return version;
} catch (IllegalArgumentException ex) {
// Zusätzliche Erkennung für Spigot 26.1
if(detected.toLowerCase().startsWith("spigot_26_1")) {
Bukkit.getLogger().info("[PaintballBattle] Detected server version: SPIGOT_26_1");
return ServerVersion.SPIGOT_26_1;
}
Bukkit.getLogger().warning("[PaintballBattle] Unknown server version '" + detected + "', defaulting to v1_21_R4");
return ServerVersion.v1_21_R4;
}
}
}