> For the complete documentation index, see [llms.txt](https://wiki.aegis-mine.ru/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.aegis-mine.ru/articles/perevod-modifikacii/perevod-s-pomoshyu-recaf/izmenenie-modifikacii.md).

# Изменение модификаций

## **Определение цели**

Когда Recaf наконец-то запущен, мы можем перейти к самому изменению. Примером работы станет [AFMP: A few more plushies](https://www.curseforge.com/minecraft/mc-mods/afmp-a-few-more-plushies)[\[3\]](https://word2md.com/#footnote-3) версии 1.19.2

Сначала выберем цель для перевода:

Допустим, надо перевести описание этого плюшевого аксолотля. К сожалению, автор добавил строки локализации только для названий, так что описание поменяем сами.

Быстро открыть модификацию в Recaf можно просто перетащив файл в окно программы:

<div align="left"><figure><img src="/files/WxEQajLx9ZLKzRT7aH1n" alt=""><figcaption></figcaption></figure></div>

<figure><img src="/files/qDdydAg9gtGBONQrzF7e" alt=""><figcaption></figcaption></figure>

## **Поиск строки**

После того, как вы открыли модификацию, надо найти строку, которую необходимо перевести.

Что нужно знать, чтобы найти строчку описания предмета плюшевой игрушки:

* Весь код таких строк находится в классах;
* Плюшевая игрушка аксолотля — блок, следовательно, ищем игрушку в классах блоков (папка block).

Если бы это был предмет, например, кирка, мы искали бы его в классах предметов (папка item);

* ID плюшевой игрушки — `afmp_a_few_more_plushies:axolot` (чтобы посмотреть, нажмите F3+H в игре вне инвентаря, ID будет отображаться во всплывающей подсказке на предмете), значит, класс будет иметь axolot в названии.

Лучше использовать именно способ через ID, потому что иногда название предмета не совпадает с ID;

* $1, $2 и т.д — это анонимные классы, они нам не нужны.

Строка в классе нашлась довольно просто, но зачастую она находится намного глубже.

<div align="left"><figure><img src="/files/82AqbOh1XHbeEgzXpzlM" alt=""><figcaption></figcaption></figure></div>

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

<figure><img src="/files/PS7dvdxRkT5CS2OtQI1u" alt=""><figcaption></figcaption></figure>

## Изменение метода

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

Не будем вдаваться в особенности работы кода, нам нужно лишь название метода, чтобы его изменить. В нашем случае, название метода — «m\_5871\_»

Откройте обзорщик полей и методов класса справа, чтобы найти метод.

<div align="left"><figure><img src="/files/kAPIqsVqea0x35v4L6bO" alt=""><figcaption></figcaption></figure></div>

Итак, перед тем, как поменять метод класса, в котором находится нужная нам строка вам необходимо поменять декомпилятор:

* Для **большей совместимости**: оставьте CFR
* Для **удобства**: Procyon или Vineflower (Vineflower > Procyon)

Разница декомпиляторов в том, что CFR сохраняет русский текст в юникоде, например вот так:&#x20;

```
\u041f\u0440\u0438\u0432\u0435\u0442\u0021
```

Такой текст неудобно менять, но, в теории, это должно помочь избежать ошибок на запуске модификации.

Vineflower и Procyon сохраняют русский текст как есть:

<div align="left"><figure><img src="/files/PzfzXJuSvJZCMCA0Htmk" alt=""><figcaption></figcaption></figure></div>

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

<figure><img src="/files/pHV4mhjZhu2xmgLlmqx5" alt=""><figcaption></figcaption></figure>

Настоятельно советуем менять именно метод класса, а не весь класс, чтобы он не сломался на экспорте.

Теперь осталось только поменять нужные строчки:

1. Перепишите текст, **не трогая кавычки.**
2. Сохраните изменения — горячая клавиша CTRL+S.

Далее вы можете перейти или к изменению следующего класса, или к экспортированию класса с изменениями.

### **Изменение .jar**

Далее, вам потребуются программы, способные открыть .jar-файл в виде списка. Вы можете воспользоваться одним из представленных архиваторов или любым другим, на ваше усмотрение.

<div align="left" data-full-width="false"><figure><img src="/files/HMZsRAkozI1eOnTqt8ZD" alt="" width="288"><figcaption></figcaption></figure></div>

Пройдите по тому же пути, в котором вы изменили класс и замените старый класс на новый.

**В нашем случае путь будет таким:**

`AFMP_forge_1.19.2.jar/net/hstudios/afmpafewmoreplushies/block`

И что же, всё получилось!

<div align="left"><figure><img src="/files/cUXgZlXWj9I0XiFQz8aH" alt=""><figcaption></figcaption></figure></div>

Осталось экспортировать ещё десяток классов… по одному?

Нет! Вы можете сначала внести изменения для всех классов, а потом экспортировать вместе, чтобы не пришлось делать это каждый раз заново.

**Чтобы экспортировать классы вместе:**

1. Щёлкните ПКМ по папке, в которой находятся изменённые классы.
2. Нажмите «Export package».
3. Дайте название сохраняемому пакету.

<figure><img src="/files/5IVnaLyBFID2D6zzhIZL" alt=""><figcaption></figcaption></figure>

**Чтобы использовать сохранённый пакет для изменения .jar-файла:**

1. Откройте пакет с помощью архиватора.
2. Извлеките оттуда папку net.
3. Поместите папку net в корень .jar-файла, открытого архиватором.<br>
