Помогите Как сделать поддержку несколькими версиями? (R1, R2, R3)

  • Автор темы Автор темы chief
  • Дата начала Дата начала

chief

Активный участник
Пользователь
Баллы
76
Толкового объяснения в гугле не нашел. Надеюсь, вы мне сможете помочь.
Писавши плагин понял, что мне придется его компилировать для каждой версии отдельно
Плагин импортирует класс org.bukkit.craftbukkit.v1_10_R1. и меня это настораживает, потому что когда выйдет R2 то мой плагин просто перестанет работать.
Как сделать, чтобы плагин имел поддержку всех возможных последующих версий craftbukkit.v*_*_ R* ?
 
Рефлексией получай нужный класс по имени, дальше делай с ним что угодно.
 
Последнее редактирование:
У меня есть собственный вопрос по этой теме. Есть ли возможность оживить старые плагины и моды? а то я тут сижу уже 3 день и все не как не могу въехать в тему что да как сейчас стало с серверами и плагинами...
 
У меня есть собственный вопрос по этой теме. Есть ли возможность оживить старые плагины и моды? а то я тут сижу уже 3 день и все не как не могу въехать в тему что да как сейчас стало с серверами и плагинами...
Ручками-ручками. Ну, если плагины не публичные, конечно.
В ином случае меняешь библиотеку-ядро на нужную версию, заменяешь импорты и смотришь всякие NMSы - наличие нужных методов, полей и вообще всего того, что используется в плагине. При желании можешь переделать всё на рефлексию. Однако учти, что это не даёт стопроцентной гарантии работоспособности на всех версиях. К тому же сёрфить сорцы NMS будет уже не так удобно...
 
Ещё вариант проект компилировать модулями (в терминологии maven-а), где есть один модуль главный, и несколько модулей, реализующих нужный код для разных версий (каждый модуль имеет ядро своей версии как подключенную библиотеку). Код верхнего уровня выберет подходящий модуль, если найдёт таковой.
Но вообще, по возможности, всегда лучше использовать только API, без внутрянки.
 
Потому что API призван быть стабильным на протяжении многих версий, а внутрянка постоянно меняется.
 
Потому что API призван быть стабильным на протяжении многих версий, а внутрянка постоянно меняется.
Выполнение в конечном итоге производится ядром же. О какой стабильности речь? Что-то я не шарю...
 
Выполнение в конечном итоге производится ядром же. О какой стабильности речь? Что-то я не шарю...
Само апи не менятся, а крафтбанка меняется.
Почему ее и вынесли в пакет с версией, чтоб задавить быдлогодеров.
 
Само апи не менятся, а крафтбанка меняется.
Почему ее и вынесли в пакет с версией, чтоб задавить быдлогодеров.
Всё-равно не понял. Смысл в том, чтобы не использовать возможности самого ядра? Ну, классы, методы и прочее.
Так-то названия совпадают с айпийными...
Вообще я всегда Спигот использую, даже не знаю, существует ли отдельно АПИ, поскольку проблем не возникало. Либо я вообще не понял, о чём речь.
 
Смысл в том, что API — объявление того, что должен делать код, а не как. А то, как он работает внутри — никто никому не объясняет, не гарантирует, и это может быть изменено вообще в любой момент, даже если у разработчика просто почесалась пятка.
 
Смысл в том, что API — объявление того, что должен делать код, а не как. А то, как он работает внутри — никто никому не объясняет, не гарантирует, и это может быть изменено вообще в любой момент, даже если у разработчика просто почесалась пятка.
Это-то понятно, но какое преимущество использования API? Не наткнуться на функционал, который выпилят/изменят? Как по мне, так удобней иметь возможность просматривать декомпил исходников... Ну, чтобы понимать, как поведёт себя код на данной конкретной версии ядра. Возможно дело в том, что я крайне редко пишу не для себя?
 
ЗАЧЕМ ?????Все старые плагины идут к новым версиям!
 
Назад
Верх