mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2025-06-27 19:24:44 +02:00
CompatibilityLayer framework
This commit is contained in:
59
src/main/java/com/gmail/nossr50/util/nms/NMSConstants.java
Normal file
59
src/main/java/com/gmail/nossr50/util/nms/NMSConstants.java
Normal file
@ -0,0 +1,59 @@
|
||||
package com.gmail.nossr50.util.nms;
|
||||
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class NMSConstants {
|
||||
public final static String BUKKIT_PACKAGE_PATH = "org.bukkit";
|
||||
public final static String CRAFT_BUKKIT_PACKAGE_PATH = "org.bukkit.craftbukkit";
|
||||
public final static String NET_MINECRAFT_SERVER = "net.minecraft.server";
|
||||
|
||||
private final static String CRAFT_PLAYER_CLASS_PATH = "entity.CraftPlayer";
|
||||
private final static String ENTITY_HUMAN_CLASS_PATH = "EntityHuman";
|
||||
|
||||
/**
|
||||
* Grabs the fully qualified path of a class from CB
|
||||
* @param targetClass source root path
|
||||
* @return the fully qualified path of a CB class
|
||||
*/
|
||||
protected static String getFullyQualifiedCraftBukkitPath(String cbVersionPackage, String targetClass) {
|
||||
return CRAFT_BUKKIT_PACKAGE_PATH + "." + cbVersionPackage + "." + targetClass;
|
||||
}
|
||||
|
||||
protected static String getFullQualifiedBukkitPath(String fromSourceRoot) {
|
||||
return BUKKIT_PACKAGE_PATH + "." + fromSourceRoot;
|
||||
}
|
||||
|
||||
protected static String getFullyQualifiedNMSPath(String cbVersionPackage, String fromSourceRoot) {
|
||||
return NET_MINECRAFT_SERVER + "." +cbVersionPackage + "." + fromSourceRoot;
|
||||
}
|
||||
|
||||
public static String getCraftPlayerClassPath(String cbVersionPackage) {
|
||||
return getFullyQualifiedCraftBukkitPath(cbVersionPackage, CRAFT_PLAYER_CLASS_PATH);
|
||||
}
|
||||
|
||||
public static String getEntityHumanClassPath(String cbVersionPackage) {
|
||||
return getFullyQualifiedNMSPath(cbVersionPackage, ENTITY_HUMAN_CLASS_PATH);
|
||||
}
|
||||
|
||||
public static @Nullable String getCraftBukkitVersionPath(NMSVersion nmsVersion) {
|
||||
switch (nmsVersion) {
|
||||
|
||||
case NMS_1_8_8:
|
||||
break;
|
||||
case NMS_1_12_2:
|
||||
return "v1_12_R1";
|
||||
case NMS_1_13_2:
|
||||
return "v1_13_R2";
|
||||
case NMS_1_14_4:
|
||||
return "v1_14_R1";
|
||||
case NMS_1_15_2:
|
||||
return "v1_15_R1";
|
||||
case NMS_1_16:
|
||||
break;
|
||||
case UNSUPPORTED:
|
||||
break;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
39
src/main/java/com/gmail/nossr50/util/nms/NMSVersion.java
Normal file
39
src/main/java/com/gmail/nossr50/util/nms/NMSVersion.java
Normal file
@ -0,0 +1,39 @@
|
||||
package com.gmail.nossr50.util.nms;
|
||||
|
||||
public enum NMSVersion {
|
||||
//1.8
|
||||
NMS_1_8_8("1.8.8"),
|
||||
|
||||
//1.12
|
||||
NMS_1_12_2("1.12.2"),
|
||||
|
||||
//1.13
|
||||
NMS_1_13_2("1.13.2"),
|
||||
|
||||
//1.14
|
||||
NMS_1_14_4("1.14.4"),
|
||||
|
||||
//1.15
|
||||
NMS_1_15_2("1.15.2"),
|
||||
|
||||
//1.16
|
||||
NMS_1_16("1.16"),
|
||||
|
||||
//Version not known to this build of mcMMO
|
||||
UNSUPPORTED("unsupported");
|
||||
|
||||
private final String sanitizedVersionNumber;
|
||||
|
||||
NMSVersion(String sanitizedVersionNumber) {
|
||||
this.sanitizedVersionNumber = sanitizedVersionNumber;
|
||||
}
|
||||
|
||||
/**
|
||||
* The standardized major.minor.patch {@link String} for the current NMS mappings
|
||||
*
|
||||
* @return the standardized major.minor.patch version string, patch is omitted if it is not a patch version
|
||||
*/
|
||||
public String getSanitizedVersionNumber() {
|
||||
return sanitizedVersionNumber;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user