Изменение модификаций
Определение цели
Когда Recaf наконец-то запущен, мы можем перейти к самому изменению. Примером работы станет AFMP: A few more plushies[3] версии 1.19.2
Сначала выберем цель для перевода:
Допустим, надо перевести описание этого плюшевого аксолотля. К сожалению, автор добавил строки локализации только для названий, так что описание поменяем сами.
Быстро открыть модификацию в Recaf можно просто перетащив файл в окно программы:


Поиск строки
После того, как вы открыли модификацию, надо найти строку, которую необходимо перевести.
Что нужно знать, чтобы найти строчку описания предмета плюшевой игрушки:
- Весь код таких строк находится в классах; 
- Плюшевая игрушка аксолотля — блок, следовательно, ищем игрушку в классах блоков (папка block). 
Если бы это был предмет, например, кирка, мы искали бы его в классах предметов (папка item);
- ID плюшевой игрушки — - afmp_a_few_more_plushies:axolot(чтобы посмотреть, нажмите F3+H в игре вне инвентаря, ID будет отображаться во всплывающей подсказке на предмете), значит, класс будет иметь axolot в названии.
Лучше использовать именно способ через ID, потому что иногда название предмета не совпадает с ID;
- $1, $2 и т.д — это анонимные классы, они нам не нужны. 
Строка в классе нашлась довольно просто, но зачастую она находится намного глубже.

Чтобы найти строчку в классе лучше использовать поиск — горячая клавиша CTRL+F.

Изменение метода
Заметьте, что строчка описания плюшевой игрушки находится в коде не сама по себе, а под так называемой «крышей» — методом класса.
Не будем вдаваться в особенности работы кода, нам нужно лишь название метода, чтобы его изменить. В нашем случае, название метода — «m_5871_»
Откройте обзорщик полей и методов класса справа, чтобы найти метод.

Итак, перед тем, как поменять метод класса, в котором находится нужная нам строка вам необходимо поменять декомпилятор:
- Для большей совместимости: оставьте CFR 
- Для удобства: Procyon или Vineflower (Vineflower > Procyon) 
Разница декомпиляторов в том, что CFR сохраняет русский текст в юникоде, например вот так:
\u041f\u0440\u0438\u0432\u0435\u0442\u0021Такой текст неудобно менять, но, в теории, это должно помочь избежать ошибок на запуске модификации.
Vineflower и Procyon сохраняют русский текст как есть:

Теперь откройте метод в обзорщике щелчком ПКМ по методу → Edit → Edit method in assembler.

Настоятельно советуем менять именно метод класса, а не весь класс, чтобы он не сломался на экспорте.
Теперь осталось только поменять нужные строчки:
- Перепишите текст, не трогая кавычки. 
- Сохраните изменения — горячая клавиша CTRL+S. 
Далее вы можете перейти или к изменению следующего класса, или к экспортированию класса с изменениями.
Изменение .jar
Далее, вам потребуются программы, способные открыть .jar-файл в виде списка. Вы можете воспользоваться одним из представленных архиваторов или любым другим, на ваше усмотрение.

Пройдите по тому же пути, в котором вы изменили класс и замените старый класс на новый.
В нашем случае путь будет таким:
AFMP_forge_1.19.2.jar/net/hstudios/afmpafewmoreplushies/block
И что же, всё получилось!

Осталось экспортировать ещё десяток классов… по одному?
Нет! Вы можете сначала внести изменения для всех классов, а потом экспортировать вместе, чтобы не пришлось делать это каждый раз заново.
Чтобы экспортировать классы вместе:
- Щёлкните ПКМ по папке, в которой находятся изменённые классы. 
- Нажмите «Export package». 
- Дайте название сохраняемому пакету. 

Чтобы использовать сохранённый пакет для изменения .jar-файла:
- Откройте пакет с помощью архиватора. 
- Извлеките оттуда папку net. 
- Поместите папку net в корень .jar-файла, открытого архиватором. 
Last updated
