2015-02-24 2 views
0

Я пытаюсь использовать отражение в своем плагине.Как получить версию bukkit?

Но я не знаю, как получить bukkit, или версии NMS, такие как v1_8_R1, v1_7_R4 и т. Д.

Есть ли способ получить такие вещи? Или мне нужно использовать переключатель, чтобы обнаружить его с помощью Bukkit.getVerion(); ?

ответ

4

Вам необходимо получить имя пакета для любого класса NMS или CB.

Приведенный ниже пример принимает обычный экземпляр сервера bukkit plugin.getServer() и получает класс, который является CraftServer, и считывает версию из пакета.

public static String getVersion(Server server) { 
    final String packageName = server.getClass().getPackage().getName(); 

    return packageName.substring(packageName.lastIndexOf('.') + 1); 
} 
0

Я использую этот набор методов, чтобы определить, какую версию или, если это новая версия:

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; 
} 
Смежные вопросы