如何获得bukkit版本?
How to get bukkit version?
我正在尝试在我的插件中使用反射。
但我不知道如何获取bukkit,或v1_8_R1、v1_7_R4等NMS版本。
有什么办法可以得到这种东西吗?或者我需要使用开关来检测它使用 Bukkit.getVerion(); ?
您需要获取任何NMS或CB的包名class。
下面的示例采用普通的 bukkit 服务器实例 plugin.getServer()
并获取 class 这是 CraftServer 并从包中读取版本。
public static String getVersion(Server server) {
final String packageName = server.getClass().getPackage().getName();
return packageName.substring(packageName.lastIndexOf('.') + 1);
}
我使用这组方法来确定哪个版本或者它是否是更新版本:
public static boolean isMC110(){
return Bukkit.getBukkitVersion().contains("1.10");
}
public static boolean isMC19(){
return Bukkit.getBukkitVersion().contains("1.9");
}
public static boolean isMC18(){
return Bukkit.getBukkitVersion().contains("1.8");
}
public static boolean isMC17(){
return Bukkit.getBukkitVersion().contains("1.7");
}
public static boolean isMC110OrNewer(){
if (isMC110())
return true;
else if (isMC19()||isMC18()||isMC17())
return false;
return true;
}
public static boolean isMC19OrNewer(){
if (isMC19())
return true;
else if (isMC18()||isMC17())
return false;
return true;
}
public static boolean isMC18OrNewer(){
if (isMC18())
return true;
else if (isMC17())
return false;
return true;
}
我正在尝试在我的插件中使用反射。
但我不知道如何获取bukkit,或v1_8_R1、v1_7_R4等NMS版本。
有什么办法可以得到这种东西吗?或者我需要使用开关来检测它使用 Bukkit.getVerion(); ?
您需要获取任何NMS或CB的包名class。
下面的示例采用普通的 bukkit 服务器实例 plugin.getServer()
并获取 class 这是 CraftServer 并从包中读取版本。
public static String getVersion(Server server) {
final String packageName = server.getClass().getPackage().getName();
return packageName.substring(packageName.lastIndexOf('.') + 1);
}
我使用这组方法来确定哪个版本或者它是否是更新版本:
public static boolean isMC110(){
return Bukkit.getBukkitVersion().contains("1.10");
}
public static boolean isMC19(){
return Bukkit.getBukkitVersion().contains("1.9");
}
public static boolean isMC18(){
return Bukkit.getBukkitVersion().contains("1.8");
}
public static boolean isMC17(){
return Bukkit.getBukkitVersion().contains("1.7");
}
public static boolean isMC110OrNewer(){
if (isMC110())
return true;
else if (isMC19()||isMC18()||isMC17())
return false;
return true;
}
public static boolean isMC19OrNewer(){
if (isMC19())
return true;
else if (isMC18()||isMC17())
return false;
return true;
}
public static boolean isMC18OrNewer(){
if (isMC18())
return true;
else if (isMC17())
return false;
return true;
}