Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/hummel009/dirt-tools-and-armor

Мод "Dirt Tools and Armor" для Minecraft 1.3.2 - 1.21.1
https://github.com/hummel009/dirt-tools-and-armor

fabric forge game gradle java minecraft minecraft-mod mod

Last synced: 1 day ago
JSON representation

Мод "Dirt Tools and Armor" для Minecraft 1.3.2 - 1.21.1

Awesome Lists containing this project

README

        

Dirt Tools and Armor - простенький мод, о котором мечтал каждый. Он добавляет меч, сет брони и инструменты
из земли. Все предметы могут быть скрафчены в выживании и имеют характеристики алмазных.

## Общая информация

Этот репозиторий обладает сложной иерархией. Он содержит:

* Актуальный проект, состоящий из 3 модулей (appForge, appFabric и appNeoForge). В этом случае папкой проекта является
весь репозиторий целиком.
* Архивный проект Forge, состоящий из 14 модулей (1.3.2 - 1.20.6). В этом случае папкой проекта является папка
appForgeArchive.
* Архивный проект Fabric, состоящий из 7 модулей (1.14.4 - 1.20.6). В этом случае папкой проекта является папка
appFabricArchive.
* Архивный проект NeoForge, состоящий из 1 модуля (1.20.6). В этом случае папкой проекта является папка
appNeoForgeArchive.

Так было сделано для более гибкой и легковесной работы без необходимости прогружать всё сразу.

## Техническая информация

| Версия Minecraft | Плагин сборки | JDK | Syntax |
|------------------|----------------------------------------|-----|--------|
| 1.3.2 - 1.6.4 | Voldeloom | 11 | 6 |
| 1.7.10 | RetroFuturaGradle | 8 | 8 |
| 1.8.9 - 1.12.2 | Essential Loom | 8 | 8 |
| 1.13.2 - 1.16.5 | ForgeGradle 6.X; FabricLoom | 8 | 8 |
| 1.17.1 | ForgeGradle 6.X; FabricLoom | 16 | 16 |
| 1.18.2 - 1.19.4 | ForgeGradle 6.X; FabricLoom | 17 | 17 |
| 1.20.6 и новее | ForgeGradle 6.X; FabricLoom; NeoGradle | 21 | 21 |

* Плагин сборки - инструментарий, который используется для работы с определённой версией игры. Принципы работы везде
похожи, но отличия имеются. Об этом подробнее будет сказано ниже.
* JDK - это Java, которая нужна для работы с модом на этой версии игры: ею запускается игра, ею компилируется код. Она
зависит от Mojang и менять её нельзя.
* Syntax - синтаксис Java, используемый в файлах с кодом. Программист не должен использовать синтаксис более новой
версии, чем указан в таблице. Более старый - можно, но зачем?

Очевидно, что JDK и Syntax почти всегда совпадают, кроме версий с плагином Voldeloom. JDK 6 слишком стара для удобной
работы с ней в 2024 году, поэтому Voldeloom использует JDK 11 с компиляцией в байткод 6.

## Установка

> [!IMPORTANT]
> Раздел написан для новичков - пошагово и с расчётом на то, что на компьютере ничего не настроено и не установлено.

Первым делом нужно скачать репозиторий и разархивировать его в любое место на диске. Если всё сделано правильно, вы
должны увидеть несколько папок: `appForge`, `appFabric` и так далее.

### Установка нужных версий JDK

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

* Запустите IntelliJ IDEA.
* Нажмите сочетание клавиш `Ctrl + Alt + Shift + S`.
* В открывшемся окне в списке параметров слева нажмите `SDKs`. Сверху нажмите `+`, `Download JDK`.
* В открывшемся окне выберите вендора `Eclipse Temurin`, а версию `21`. Нажмите `Download`.`

Версия `21` выбрана неслучайно — на момент 2024 года это самая новая из LTS-версий Java. В долгосрочной перспективе её
брать лучше всего.

Если всё сделано правильно, то вы должны увидеть скачанную JDK в папке пользователя. В моём случае,
это `C:\Users\Hummel009\.jdks`.

### Конфигурация переменных сред Windows

У вас на компьютере уже могут быть сконфигурированы другие JRE и JDK. Чтобы не было конфликтов, мы удалим все старые
настройки и поставим новые.

* Нажмите `Win + R` и введите `systempropertiesadvanced`. Нажмите `OK`.
* В открывшемся окне нажмите `Переменные среды`.
* В открывшемся окне вы увидите два раздела - переменные среды для пользователя и для системы.
* Проверьте оба раздела на наличие там переменной с названием `JAVA_HOME`.
* Если она есть, дважды кликните по ней ЛКМ и введите в значение путь к скачанной ранее JDK. В моём случае,
это `C:\Users\Hummel009\.jdks\temurin-21`.
* Если её нет, создайте там переменную с таким именем и введите значение, как в пункте выше.
* Если их несколько, удалите все, кроме одной, а оставшуюся настройте, как в пункте выше.
* Проверьте оба раздела на наличие там переменной с названием `Path`. Она есть у каждого пользователя и представляет
собой таблицу из путей.
* Проверьте все пути в обеих переменных `Path` и удалите все строчки с
упоминанием `Java`, `Oracle`, `jre`, `jdk`.
* Только в одной из двух переменных `Path` создайте новую строку и введите в неё `%JAVA_HOME%\bin`.

> [!NOTE]
> После настройки сред иногда требуется перезагрузка компьютера, а иногда нет.

Попробуйте в любом месте компьютера открыть консоль Windows и введите команду `java -version`. Если всё сделано
правильно, то консоль выдаст что-то такое:

```
openjdk version "21.0.1" 2023-10-17
OpenJDK Runtime Environment Temurin-21.0.1+9 (build 21.0.1+9)
OpenJDK 64-Bit Server VM Temurin-21.0.1+9 (build 21.0.1+9, mixed mode, sharing)
```

Если же что-то пошло не так, попробуйте утилиту JarFix, она работает в один клик. Если и она не помогает, то вас спасёт
только чистка реестра Windows. Но это для действительно тяжёлых случаев и вообще не рекомендуется новичкам.

Будем считать, что установка прошла успешно, и можно приступать к, собственно, работе с **проектом**. Но для начала
определимся, какой из проектов нас интересует.

### Что считать папкой проекта?

Как уже было сказано ранее, `весь репозиторий` - это один проект; `appFabricArchive` - второй проект;
`appForgeArchive` - третий проект; `appNeoForgeArchive` - четвёртый проект;

Итак, в сумме мы насчитали четыре проекта. Любой из них можно отдельно открыть в IntelliJ IDEA. Собственно, в
зависимости от того, какой проект вы откроете, вы сможете редактировать ту или иную версию мода.

* Если вас интересует разработка под новейшую версию, не важно, Fabric, Forge или NeoForge, ваша цель - весь
репозиторий.
* Если вас интересует разработка под более старые версии на Fabric, ваша цель - `appFabricArchive`.
* Если вас интересует разработка под более старые версии на Forge, ваша цель - `appForgeArchive`.
* Если вас интересует разработка под более старые версии на NeoForge, ваша цель - `appNeoForgeArchive`.

Ещё раз, в виде образца рассуждений:

* Я хочу отредактировать мод для новейшей версии. Значит, папка проекта - весь репозиторий.
* Я хочу отредактировать мод для Forge 1.3.2. Эта версия лежит в `appForgeArchive`. Значит, папка
проекта - `appForgeArchive`.
* Я хочу отредактировать мод для Fabric 1.19.4. Эта версия лежит в `appFabricArchive`. Значит, папка
проекта - `appFabricArchive`.

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

### Разворачиваем среду

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

* Запустите IntelliJ IDEA.
* Откройте папку проекта: `File -> Open -> [выбираете папку] -> OK`.

Сразу после открытия начнётся установка среды. Если от вас потребуется разрешение на скачивание файлов, дайте его.
Спустя некоторое время все необходимые файлы скачаются, и среда будет готова к работе. Процесс может быть долгим, вплоть
до нескольких часов, если интернет медленный. Скачаны будут гигабайты и гигабайты инструментов — не забывайте об этом,
если у вас ограниченный трафик. Школьный/университетский Wi-Fi лучше не использовать, так как там зачастую сайты,
связанные с Minecraft, находятся в чёрном списке.

В конечном итоге, если всё сделано правильно, то вы увидите проект без сообщений об ошибке и с подсветкой синтаксиса в
файлах с кодом.

Если же что-то пошло не так (например, пропадал интернет, или ещё что-то помешало), запустите установку ещё раз. Это
можно сделать в меню Gradle внутри IntelliJ IDEA: `View -> Tool Windows -> Gradle`. Там сверху слева вы увидите значок
обновления (стрелка по кругу). Альтернативный вариант — удалить репозиторий, скачать его снова и открыть снова. Не
пугайтесь: всё, что успешно скачалось, снова скачиваться не будет. «Прогресс» не сбросится.

## Основы работы

После установки среды весь необходимый инструментарий готов к работе. Инструментарий может немного отличаться в
зависимости от того, какой плагин сборки использует данная версия. Согласно таблице из первого раздела, это может быть
Voldeloom, RetroFuturaGradle, Essential Loom, ForgeGradle 6.X.

Большая часть функционала располагается в меню Gradle. Меню, как уже было сказано ранее, можно открыть следующим
образом: `View -> Tool Windows -> Gradle`.

### Voldeloom

Современный плагин для моддинга под Forge на очень старых версиях Minecraft. Самые важные функции:

* Запуск клиента из среды: `Меню Gradle -> Tasks -> volde.run -> runClient`.
* Запуск локального сервера из среды: `Меню Gradle -> Tasks -> modded minecraft -> runServer`. К нему можно подключиться
из клиента, введя в качестве адреса `localhost`.
* Если подключиться не получилось, проверьте, чтобы сервер работал не в защищённом режиме. Для этого в папке
`папка_проекта/run/server/server.properties` найдите строчку `online-mode` и укажите ему значение `false`.
* Сервер для версий 1.5.2 и 1.6.4 не работает. Это проблема Voldeloom.
* Компиляция мода в файл с расширением `.jar`: `Меню Gradle -> Tasks -> build -> build`. После компиляции ваш мод
появится в папке `папка_проекта/build/libs`. Вас интересует тот файл, который без приписки `-dev.jar`.

### RetroFuturaGradle

Современный плагин для моддинга под Forge на популярнейших из относительно старых версий Minecraft. Самые важные
функции:

* Генерация исходного кода Minecraft: `Меню Gradle -> Tasks -> modded minecraft -> setupDecompWorkspace`. Эта функция
исправляет проблему, из-за которой весь ваш код горит красным цветом после установки среды.
* Запуск клиента из среды: `Меню Gradle -> Tasks -> modded minecraft -> runClient`.
* Запуск локального сервера из среды: `Меню Gradle -> Tasks -> modded minecraft -> runServer`. К нему можно подключиться
из клиента, введя в качестве адреса `localhost`.
* При запуске сервера в консоли будет дважды требоваться ввод согласия или несогласия с параметрами.
* `Do you want to start the server in online-mode? Type 'y' to do so` - введите `n`.
* `Do you accept the minecraft EULA? Type 'y' to do so` - введите `y`.
* Компиляция мода в файл с расширением .jar: `Меню Gradle -> Tasks -> build -> build`. После компиляции ваш мод появится
в папке `папка_проекта/build/libs`. Вас интересует тот файл, который без приписки `-dev.jar`.

### Essential Loom

Современный плагин для моддинга под Forge на относительно старых версиях Minecraft. Самые важные функции:

* Запуск клиента из среды здесь осуществляется кнопкой с зелёным треугольником в верхней части окна.
* Запуск локального сервера из среды тоже осуществляется кнопкой с зелёным треугольником в верхней части окна. К нему
можно подключиться из клиента, введя в качестве адреса `localhost`.
* Если подключиться не получилось, проверьте, чтобы сервер работал не в защищённом режиме. Для этого в папке
`папка_проекта/run/server.properties` найдите строчку `online-mode` и укажите ему значение `false`.
* Компиляция мода в файл с расширением `.jar` осуществляется в папке проекта посредством двойного нажатия ЛКМ на
файл `build.bat`. После компиляции ваш мод появится в папке `папка_проекта/build/libs`.

### ForgeGradle 6.X

Новейший плагин для моддинга под Forge на новых версиях Minecraft. Самые важные функции:

* Запуск клиента из среды: `Меню Gradle -> Tasks -> forgegradle runs -> runClient`.
* Запуск локального сервера из среды: `Меню Gradle -> Tasks -> forgegradle runs -> runServer`. К нему можно подключиться
из клиента, введя в качестве адреса `localhost`.
* Первый запуск сервера будет неудачным, потому что не подписано соглашение EULA. После неудачного запуска откройте
папку `папка_проекта/runs/server/eula.txt` и замените `false` на `true`.
* Если подключиться не получилось, проверьте, чтобы сервер работал не в защищённом режиме. Для этого в папке
`папка_проекта/runs/server/server.properties` найдите строчку `online-mode` и укажите ему значение `false`.
* Компиляция мода в файл с расширением .jar: `Меню Gradle -> Tasks -> build -> build`. После компиляции ваш мод появится
в папке `папка_проекта/build/libs`.

### NeoGradle

Новейший плагин для моддинга под NeoForge на новых версиях Minecraft. Самые важные функции:

* Запуск клиента из среды: `Меню Gradle -> Tasks -> neogradle/runs -> runClient`.
* Запуск локального сервера из среды: `Меню Gradle -> Tasks -> neogradle/runs -> runServer`. К нему можно подключиться
из клиента, введя в качестве адреса `localhost`.
* Первый запуск сервера будет неудачным, потому что не подписано соглашение EULA. После неудачного запуска откройте
папку `папка_проекта/runs/server/eula.txt` и замените `false` на `true`.
* Если подключиться не получилось, проверьте, чтобы сервер работал не в защищённом режиме. Для этого в папке
`папка_проекта/runs/server/server.properties` найдите строчку `online-mode` и укажите ему значение `false`.
* Компиляция мода в файл с расширением .jar: `Меню Gradle -> Tasks -> build -> build`. После компиляции ваш мод появится
в папке `папка_проекта/build/libs`.

### FabricLoom

Новейший плагин для моддинга под Fabric на новых версиях Minecraft. Самые важные функции:

* Запуск клиента из среды: `Меню Gradle -> Tasks -> fabric -> runClient`.
* Запуск локального сервера из среды: `Меню Gradle -> Tasks -> fabric -> runServer`. К нему можно подключиться
из клиента, введя в качестве адреса `localhost`.
* Первый запуск сервера будет неудачным, потому что не подписано соглашение EULA. После неудачного запуска откройте
папку `папка_проекта/run/eula.txt` и замените `false` на `true`.
* Если подключиться не получилось, проверьте, чтобы сервер работал не в защищённом режиме. Для этого в папке
`папка_проекта/run/server.properties` найдите строчку `online-mode` и укажите ему значение `false`.
* Компиляция мода в файл с расширением .jar: `Меню Gradle -> Tasks -> build -> build`. После компиляции ваш мод появится
в папке `папка_проекта/build/libs`.