ServerProject and ServerVersion: Adds support for BukkitMock

This commit is contained in:
Christian Koop 2021-11-21 22:57:18 +01:00
parent d64dfbf5c6
commit 7d255685ed
No known key found for this signature in database
GPG Key ID: 89A8181384E010A3
2 changed files with 29 additions and 5 deletions

View File

@ -4,12 +4,16 @@ import org.apache.commons.lang.ArrayUtils;
import org.bukkit.Bukkit;
public enum ServerProject {
UNKNOWN, CRAFTBUKKIT, SPIGOT, PAPER, TACO, GLOWSTONE;
UNKNOWN, CRAFTBUKKIT, SPIGOT, PAPER, TACO, GLOWSTONE, MOCK_BUKKIT;
private final static ServerProject serverProject = checkProject();
private static ServerProject checkProject() {
String serverPath = Bukkit.getServer().getClass().getName();
if (serverPath.equals("be.seeseemelk.mockbukkit.ServerMock")) {
return MOCK_BUKKIT;
}
if (serverPath.contains("glowstone")) {
return GLOWSTONE;
}

View File

@ -6,10 +6,30 @@ import org.bukkit.Bukkit;
public enum ServerVersion {
UNKNOWN, V1_7, V1_8, V1_9, V1_10, V1_11, V1_12, V1_13, V1_14, V1_15, V1_16, V1_17, V1_18, V1_19, V1_20, V1_21;
private final static String serverPackagePath = Bukkit.getServer().getClass().getPackage().getName();
private final static String serverPackageVersion = serverPackagePath.substring(serverPackagePath.lastIndexOf('.') + 1);
private final static String serverReleaseVersion = serverPackageVersion.indexOf('R') != -1 ? serverPackageVersion.substring(serverPackageVersion.indexOf('R') + 1) : "";
private final static ServerVersion serverVersion = getVersion();
private final static String serverPackagePath;
private final static String serverPackageVersion;
private final static String serverReleaseVersion;
private final static ServerVersion serverVersion;
private final static boolean isMocked;
static {
String srvPackage = Bukkit.getServer().getClass().getPackage().getName();
isMocked = srvPackage.equals("be.seeseemelk.mockbukkit");
if (isMocked) {
String packageVersionShard = "v" + Bukkit.getServer().getBukkitVersion().replace('.', '_') + "_R0";
serverPackagePath = "org.bukkit.craftbukkit." + packageVersionShard;
serverPackageVersion = packageVersionShard;
serverReleaseVersion = "0";
} else {
serverPackagePath = srvPackage;
serverPackageVersion = serverPackagePath.substring(serverPackagePath.lastIndexOf('.') + 1);
serverReleaseVersion = serverPackageVersion.indexOf('R') != -1 ? serverPackageVersion.substring(serverPackageVersion.indexOf('R') + 1) : "";
}
serverVersion = getVersion();
}
private static ServerVersion getVersion() {
for (ServerVersion version : values()) {