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

Помогите Из NMS в MCP и наоборот

Тема в разделе "Разработка плагинов для новичков", создана пользователем BeYkeR, 28 фев 2015.

  1. Автор темы
    BeYkeR

    BeYkeR Старожил Девелопер Пользователь

    Баллы:
    173
    Пишу с горячего фокси на андрейке леденца. Полноценного редактора нету, как-то неудобно.

    Так вот, крч пишу либу под "калдрон" используя туториал с mcp: https://bukkit.org/threads/tutorial...s-using-mcp-for-nms-via-asm-remapping.131060/ (Просто юзаю рефлексии и .class'ы из nms). С деобфускацией все идет хорошо, но после реобфускации начинается проблема: плагин обфусцируется не полностью, только местами. Как исправить ?
     
  2. Plasticable

    Plasticable Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    plasticable
    Имя в Minecraft:
    Plasticable
    @Bars
    Он, вроде, разбирается в котелке.
     
  3. Bars

    Bars Старожил Девелопер Пользователь

    Баллы:
    173
    Сам долго мучался, но отыскал решение)
    Прямо так не скажу пока не написал тутор, но дам наводку: открой тот класс, поля которого не обфусцировались, и поищи там исполтзуемое поле/метод :)
    Дальше думаю сам обо всём догадаешься)
     
  4. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    В составе котла идут маппинги cb->mcp. Просто открой их и смотри.
     
  5. Bars

    Bars Старожил Девелопер Пользователь

    Баллы:
    173
    Он про них явно знает, тут дело другое. Если не догадается по моему совету, то скажу что надо сделать
     
  6. Автор темы
    BeYkeR

    BeYkeR Старожил Девелопер Пользователь

    Баллы:
    173
    Я про эти маппинги знаю, по-моему не в них дело.
    Использовать ванильный код ? Или не до конца деобфусцированный код (типо всякие методы остались обфусцированными, а названия пакетов и классов изменились) ?
     
  7. Bars

    Bars Старожил Девелопер Пользователь

    Баллы:
    173
    Короче не угадал. Extends'ы не ремаппятся, надо преобразовать в... **я. Короче пример: есть поле поиска пути у моба. Открываем EntityZombie, видим там такое поле? Нет, смотрим что он наследует. Ага, EntityMonster. В EntityMonster есть система поиска пути? Да, есть, значит у себя в коде делаем вместо this.pathfinder (это пример) ((EntityMonster)this).pathfinder, потому что класс EntityZombie не содержит такого поля, => строку с ним ремапнуть нельзя, а вот если преобразовать в родительский класс, то ремаппинг пройдёт успешно, а преобразование удалится в результате)
     
  8. Автор темы
    BeYkeR

    BeYkeR Старожил Девелопер Пользователь

    Баллы:
    173
    Ого, спасибо, теперь работает :D
    Теперь волнует другой вопрос: Можно ли включить поддержку разных версий майна с Cauldron'ом ? Насколько я знаю, в каждой версии майна обфускация происходит по разному.
     
  9. Bars

    Bars Старожил Девелопер Пользователь

    Баллы:
    173
    Разные классы: одни для NMS, другие для MCP. И при старте проверяй, калдрон это или нет, и подключай соответствующее
     

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