1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

как я переносил код с nms 1.16 на 1.17 или же что такое боль

Тема в разделе "Оффтопик", создана пользователем valera6666, 11 ноя 2021.

?

Моджанги -

  1. не хорошие люди

    3 голосов
    33,3%
  2. хорошие люди

    6 голосов
    66,7%
  1. Автор темы
    valera6666

    valera6666 Активный участник

    Баллы:
    60
    .
     

    Вложения:

    Последнее редактирование: 22 май 2023
  2. imDaniX

    imDaniX Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Тут ты сильно попутал - NMS всегда был обфусцирован, то бишь кроме этих букв ничего и не давалось. Вплоть до 1.16 (включительно) Spigot поставлял свои маппинги для этого дела. Более того, net.minecraft.server.версия.* - дело рук Spigot.
    С 1.17 Spigot отказались от этого в пользу официальных маппингов (по крайней мере пакеты), в том числе и версия больше не указывается. Как работать с новым NMS гуглится по запросу "spigot 1.17 how to use nms"
     
    Последнее редактирование: 11 ноя 2021
  3. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Да, надо. Да, на это требуется чуть больше времени, но есть два момента:

    1) Это сделать нужно один раз и забыть об этом. На прошлых версиях обфускация периодически менялась - тебе приходилось выяснять, как же теперь всё должно работать в новой версии. Теперь же у ВСЕГО за исключением переменных в методах адекватные названия. Да, что-то могут переименовать, но это будет не массово, и не составит никакой проблемы найти новое название. Короче говоря, в перспективе стало значительно проще.

    2) Если у тебя много кода на НМС - скорее всего, ты что-то делаешь не так. У меня огромный проект, в котором тоже раньше была огромная груда НМС. Но с каждой новой версией в АПИ завозили новый функционал, и количество кода на НМС значительно уменьшилось с тех пор. В итоге я не понимаю, из-за чего объективно сейчас может быть прям много НМС в проекте
     
  4. HauserGrim

    HauserGrim Активный участник Пользователь

    Баллы:
    96
    Так с каждой версией такое менялось.
     
  5. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Обычное ядро полностью обфусцировано, однако можно пошаманить с проектом, чтобы использовать ядро без обфускации. Всё так странно работает, чтобы избежать юридических проблем.

    Подробнее про маппинги можно почитать в моей интерпретации: http://rubukkit.org/threads/novaja-zhizn-java-edition-ili-mappingi-v-massy.165824/
    И от самого md_5: https://www.spigotmc.org/threads/spigot-bungeecord-1-17-1-17-1.510208/#post-4184317

    Для Spigot + Maven требуется использовать specialsource-maven-plugin: https://github.com/md-5/SpecialSource
    Пример в том же посте от md_5.

    Для Paper + Gradle существует paperweight: https://github.com/PaperMC/paperweight
    Пример: https://github.com/jpenilla/paperweight-test-plugin

    Вот так теперь выглядит код с использованием "новых" маппингов от Mojang (взято из примера paperweigth):
    upload_2021-11-11_21-1-34.png
     
    Последнее редактирование: 11 ноя 2021
  6. ВukkitPrоfi

    ВukkitPrоfi Активный участник Пользователь

    Баллы:
    76
    еще свое говно в виде obc (org.bukkit.craftbukkit.<obc_version>) в нормальный вид бы привели
     
  7. ВukkitPrоfi

    ВukkitPrоfi Активный участник Пользователь

    Баллы:
    76
    я о том, если прямо вообще переходить с гемороя вида foo.bar.v1_x_Rx на нормальные пакеты, дабы не лепить рефлексию или многоклассов для работы одной фичи при разработке кроссверсионного плагина
     
  8. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    CraftBukkit очень тесно работает с кодом игры. Скажу больше - на репозиторий CraftBukkit лет сто назад прилетела жалоба от Mojang. Так и появился спигот на замену обычному крафтбаккиту. Короче говоря, подобные беспокойства не беспочвенны.

    Вообще, в самом крафтбакките обфускации нет. А это тоже огромный плюс. Единственная сложность - это как раз названия пакетов. Почему именно так - вопрос интересный
     
    Последнее редактирование: 12 ноя 2021
  9. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Ведро апи для лохов пишется конечно же да. Сам полез в nms и еще жалуется нам тут...
     
  10. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Вот, написал туториал по paperweight:
    http://rubukkit.org/threads/179669

    Только не увлекайся использованием NMS.
    Там, где его можно не использовать, лучше не использовать )
     

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