Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

В разработке NMS на более чем одну версию...

Статус
Закрыто для дальнейших ответов.

Namer_PRO

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Namer_PRO
Написал плагин на таб лист. Работал с пакетами и все хорошо, НО... работает только на одной версии :( (а я хочу, чтобы на 1.8.x - 1.13.x + (даже не пишите, что многовато я хочу))

Как это поправить?

Слышал, что это делал кто-то прям на все (1.8 - 1.13) версии. Вроде получали nms версию сервера (Bukkit.getServer().getClass().getPackage().getName().substring(23)) и брали из какой-то онлайн директории что-то. Но вот как такое реализовать я не знаю.

Комментарии типа "Это невозможно" не писать! 100% уверен, что реализовать такое как-то можно.

Заранее спасибо :)

P.s: Такое даже не предлагайте: http://rubukkit.org/threads/perevod-nms-na-raznyx-versijax-bez-refleksii.155914/ (и оригинал на спиготе тоже https://www.spigotmc.org/wiki/nms-on-different-versions-without-reflection/)
 
Помощь приветствуется... (очень :good:)
 
ViaVersion тебе в помощь.
Я хочу, чтобы плагин поддерживал версии 1.8-1.13, а не только на моем сервере все работало. Или там апи какое есть?

Это я знаю, но я не хочу, чтобы мой плагин зависел от него.
 
Или все-таки советуете не париться и написать кучу классов под каждую версию?
Мне надо с 1.8 по 1.13, т.е. это:
  1. 1_8_R1
  2. 1_8_R2
  3. 1_8_R3
  4. 1_9_R1
  5. 1_9_R2
  6. 1_10_R1
  7. 1_11_R1
  8. 1_12_R1
  9. 1_13_R1
  10. 1_13_R2
Целых 10 классов :(
 
Или все-таки советуете не париться и написать кучу классов под каждую версию?
Мне надо с 1.8 по 1.13, т.е. это:
  1. 1_8_R1
  2. 1_8_R2
  3. 1_8_R3
  4. 1_9_R1
  5. 1_9_R2
  6. 1_10_R1
  7. 1_11_R1
  8. 1_12_R1
  9. 1_13_R1
  10. 1_13_R2
Целых 10 классов :(
Или делать как люди на protocollib. Сам себе жизнь усложняешь. Ты так на каждый плагин с пакетами будешь по 90 классов мутить?
 
ProtocolLib — реально, для людей.

Если не хочешь зависеть от него, то можешь через рефлексию все сделать. Для удобства, советую написать свою маленькую библиотеку, т.к. каждый раз переписывать одно и тоже это бред.
 
ProtocolLib — реально, для людей.

Если не хочешь зависеть от него, то можешь через рефлексию все сделать. Для удобства, советую написать свою маленькую библиотеку, т.к. каждый раз переписывать одно и тоже это бред.
Ага. Пусть лучше в таймингах висит тормозная рефлексия, чем юзать ProtocolLib :D.
 
Или все-таки советуете не париться и написать кучу классов под каждую версию?
Мне надо с 1.8 по 1.13, т.е. это:
  1. 1_8_R1
  2. 1_8_R2
  3. 1_8_R3
  4. 1_9_R1
  5. 1_9_R2
  6. 1_10_R1
  7. 1_11_R1
  8. 1_12_R1
  9. 1_13_R1
  10. 1_13_R2
Целых 10 классов :(
Почему народ нынче настолько ленив?( Настолько сложно сделать простенький генератор кода и сделать всего один класс?!
 
Ниче, что у ProtocolLib тож большой оверхед? Он подойдет разве что только для паб плагинов.
Обоснуй? Там прокси классы на cglib. Если нет слушателей пакетов, для сервера protocollib вообще прозрачен.
 
Обоснуй? Там прокси классы на cglib. Если нет слушателей пакетов, для сервера protocollib вообще прозрачен.
Ну слушатели пакетов и есть самый большой оверхед протоколлиба.
К тому же прокси классы через обычную рефлексию скорее всего делают вызовы.
 
Ну слушатели пакетов и есть самый большой оверхед протоколлиба.
К тому же прокси классы через обычную рефлексию скорее всего делают вызовы.
Не знаю где ты там свой оверхед увидел. У меня модовый серв с оребфускатором на protocollib вообще прозрачно работал, никаких отставаний. 150 человек получали кашу из руды вместо камней и никто не пожаловался.
 
Почему народ нынче настолько ленив?( Настолько сложно сделать простенький генератор кода и сделать всего один класс?!
А можно по подробнее...
Это типо if(версия nms такая-то) {то то-то} else { то-то }... ?
И так в 1ом классе или я не догоняю)
 
Или все-таки советуете не париться и написать кучу классов под каждую версию?
Мне надо с 1.8 по 1.13, т.е. это:
  1. 1_8_R1
  2. 1_8_R2
  3. 1_8_R3
  4. 1_9_R1
  5. 1_9_R2
  6. 1_10_R1
  7. 1_11_R1
  8. 1_12_R1
  9. 1_13_R1
  10. 1_13_R2
Целых 10 классов :(
А так не нагляднее получится?
И потом, а что если в новой версии будет что-то крутое, что бы я хотел добавить в плагин. Тогда в старых классах я ничего не трогаю, а в новом пишу код?
 
Или все-таки советуете не париться и написать кучу классов под каждую версию?
Мне надо с 1.8 по 1.13, т.е. это:
  1. 1_8_R1
  2. 1_8_R2
  3. 1_8_R3
  4. 1_9_R1
  5. 1_9_R2
  6. 1_10_R1
  7. 1_11_R1
  8. 1_12_R1
  9. 1_13_R1
  10. 1_13_R2
Целых 10 классов :(
Немножко о лени:
massivelag.png

По идее ты должен поддерживать только крайние версии мажорных, то есть с 1.8 по 1.13:
- 1.8.8
- 1.12.2
- 1.13.2
Все, остальные идут в ж... (желаемое место).
 
Немножко о лени:
massivelag.png

По идее ты должен поддерживать только крайние версии мажорных, то есть с 1.8 по 1.13:
- 1.8.8
- 1.12.2
- 1.13.2
Все, остальные идут в ж... (желаемое место).
Жуть какая. Для чего эти классы?
 
Статус
Закрыто для дальнейших ответов.

Поделиться этой страницей

Назад
Верх