diff --git a/README.md b/README.md index e04e6d49..f55ca8ae 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,12 @@ -Legendary Item - простенький мод, который добавляет множество артефактов "Властелина колец" в Minecraft. В основном это оружие, а также аркенстон и сильмарилль. Почти все оружия имеют особый рендеринг: в инвентаре они имеют одну текстуру, а в руке от первого и третьего лица - другую, увеличенную. Так оружие смотрится эпичнее. Мод рассматривается как тематические дополнение к моду "Властелин колец", хотя мод независим и не требует установки каких-либо других модов. +Legendary Item - простенький мод, который добавляет множество артефактов "Властелина колец" в Minecraft. В основном это +оружие, а также аркенстон и сильмарилль. Почти все оружия имеют особый рендеринг: в инвентаре они имеют одну текстуру, а +в руке от первого и третьего лица - другую, увеличенную. Так оружие смотрится эпичнее. Мод рассматривается как +тематические дополнение к моду "Властелин колец", хотя мод независим и не требует установки каких-либо других модов. -## Общая информация +## Общая информация -Этот репозиторий содержит множество папок, каждая из них - это проект Gradle, который должен быть открыт через IntelliJ IDEA. +Этот репозиторий содержит множество папок, каждая из них - это проект Gradle, который должен быть открыт через IntelliJ +IDEA. | Версия Minecraft | Gradle | Плагин сборки | Gradle JDK | Project JDK | Toolchain JDK | Syntax | |------------------|--------|--------------------------|------------|-------------|---------------|--------| @@ -16,17 +20,26 @@ Legendary Item - простенький мод, который добавляе ### Примечания к таблице -* Gradle JDK - это Java, при помощи которой запускается скрипт сборки среды. Обычно это та Java, которая установлена глобально на компьютере, которая запускает программы и которая отражена в переменных средах. По идее, может быть сколь угодно новой и современной, кроме двух случаев, где она застряла на версии 1.8. -* Project JDK - это Java, при помощи которой запускается мод в среде разработки. Обычно равна версии из Gradle JDK или Toolchain JDK. По идее, может быть сколь угодно новой и современной, кроме двух случаев, где она застряла на версии 1.8. -* Toolchain JDK - это Java, которая используется при генерации среды разработки и компиляции мода. Эта Java должна быть скачана и находиться на диске, не обязательно в переменных средах. Менять её в проекте нельзя, иначе Forge, ожидающий байткод определённой версии, будет неприятно удивлён и крашнет игру. -* Syntax - синтаксис Java, используемый в файлах с кодом. Программист не должен использовать синтаксис более новой версии, чем указан в таблице. Более старый - можно, но зачем? +* Gradle JDK - это Java, при помощи которой запускается скрипт сборки среды. Обычно это та Java, которая установлена + глобально на компьютере, которая запускает программы и которая отражена в переменных средах. По идее, может быть сколь + угодно новой и современной, кроме двух случаев, где она застряла на версии 1.8. +* Project JDK - это Java, при помощи которой запускается мод в среде разработки. Обычно равна версии из Gradle JDK или + Toolchain JDK. По идее, может быть сколь угодно новой и современной, кроме двух случаев, где она застряла на версии + 1.8. +* Toolchain JDK - это Java, которая используется при генерации среды разработки и компиляции мода. Эта Java должна быть + скачана и находиться на диске, не обязательно в переменных средах. Менять её в проекте нельзя, иначе Forge, ожидающий + байткод определённой версии, будет неприятно удивлён и крашнет игру. +* Syntax - синтаксис Java, используемый в файлах с кодом. Программист не должен использовать синтаксис более новой + версии, чем указан в таблице. Более старый - можно, но зачем? ## Установка > [!IMPORTANT] > Раздел написан для новичков - пошагово и с расчётом на то, что на компьютере ничего не настроено и не установлено. -Первым делом нужно скачать репозиторий и разархивировать его в любое место на диске. Если всё сделано правильно, вы должны увидеть множество папок, в которых находятся файлы `build.gradle.kts`, `settings.gradle.kts` и другие. Полученные папки будем называть ***папками проектов***. +Первым делом нужно скачать репозиторий и разархивировать его в любое место на диске. Если всё сделано правильно, вы +должны увидеть множество папок, в которых находятся файлы `build.gradle.kts`, `settings.gradle.kts` и другие. Полученные +папки будем называть ***папками проектов***. ### Установка нужных версий JDK @@ -35,30 +48,38 @@ Legendary Item - простенький мод, который добавляе * Запустите IntelliJ IDEA. * Нажмите сочетание клавиш `Ctrl + Alt + Shift + S`. * В открывшемся окне в списке параметров слева нажмите `SDKs`. Сверху нажмите `+`, `Download JDK`. -* В открывшемся окне выберите вендора `Eclipse Temurin`, а версию посмотрите в таблице из первого раздела. Нажмите `Download`. -* Повторите это столько раз, сколько версий JDK вам нужно установить, согласно таблице. В общей сложности, для всех проектов в этом репозитории вам потребуется JDK 1.8, 11, 16, 17. +* В открывшемся окне выберите вендора `Eclipse Temurin`, а версию посмотрите в таблице из первого раздела. + Нажмите `Download`. +* Повторите это столько раз, сколько версий JDK вам нужно установить, согласно таблице. В общей сложности, для всех + проектов в этом репозитории вам потребуется JDK 1.8, 11, 16, 17. -Если всё сделано правильно, то вы должны увидеть несколько скачанных JDK в папке пользователя. В моём случае, это `C:\Users\Hummel009\.jdks`. +Если всё сделано правильно, то вы должны увидеть несколько скачанных JDK в папке пользователя. В моём случае, +это `C:\Users\Hummel009\.jdks`. ### Конфигурация переменных сред Windows -У вас на компьютере уже могут быть сконфигурированы другие JRE и JDK. Чтобы не было конфликтов, мы удалим все старые настройки и поставим новые. +У вас на компьютере уже могут быть сконфигурированы другие JRE и JDK. Чтобы не было конфликтов, мы удалим все старые +настройки и поставим новые. * Нажмите `Win + R` и введите `systempropertiesadvanced`. Нажмите `OK`. * В открывшемся окне нажмите `Переменные среды`. * В открывшемся окне вы увидите два раздела - переменные среды для пользователя и для системы. - * Проверьте оба раздела на наличие там переменной с названием `JAVA_HOME`. - * Если она есть, дважды кликните по ней ЛКМ и введите в значение путь к скачанной ранее JDK. В моём случае, это `C:\Users\Hummel009\.jdks\temurin-21.0.1`. - * Если её нет, создайте там переменную с таким именем и введите значение, как в пункте выше. - * Если их несколько, удалите все, кроме одной, а оставшуюся настройте, как в пункте выше. - * Проверьте оба раздела на наличие там переменной с названием `Path`. Она есть у каждого пользователя и представляет собой таблицу из путей. - * Проверьте все пути в обеих переменных `Path` и удалите все строчки с упоминанием `Java`, `Oracle`, `jre`, `jdk`. - * Только в одной из двух переменных `Path` создайте новую строку и введите в неё `%JAVA_HOME%\bin`. + * Проверьте оба раздела на наличие там переменной с названием `JAVA_HOME`. + * Если она есть, дважды кликните по ней ЛКМ и введите в значение путь к скачанной ранее JDK. В моём случае, + это `C:\Users\Hummel009\.jdks\temurin-21.0.1`. + * Если её нет, создайте там переменную с таким именем и введите значение, как в пункте выше. + * Если их несколько, удалите все, кроме одной, а оставшуюся настройте, как в пункте выше. + * Проверьте оба раздела на наличие там переменной с названием `Path`. Она есть у каждого пользователя и представляет + собой таблицу из путей. + * Проверьте все пути в обеих переменных `Path` и удалите все строчки с + упоминанием `Java`, `Oracle`, `jre`, `jdk`. + * Только в одной из двух переменных `Path` создайте новую строку и введите в неё `%JAVA_HOME%\bin`. > [!NOTE] > После настройки сред иногда требуется перезагрузка компьютера, а иногда нет. -Попробуйте в любом месте компьютера открыть консоль Windows и введите команду `java -version`. Если всё сделано правильно, то консоль выдаст следующее: +Попробуйте в любом месте компьютера открыть консоль Windows и введите команду `java -version`. Если всё сделано +правильно, то консоль выдаст следующее: ``` openjdk version "21.0.1" 2023-10-17 @@ -66,14 +87,18 @@ 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) ``` -Теперь можно приступать к, собственно, работе с проектами. Подход зависит от того, мод на какую версию Minecraft вы собираетесь открывать. +Теперь можно приступать к, собственно, работе с проектами. Подход зависит от того, мод на какую версию Minecraft вы +собираетесь открывать. ### Версии, не использующие ForgeGradle 2.X -Это версии, использующие относительно современное программное обеспечение, поэтому их установка проходит проще и быстрее. +Это версии, использующие относительно современное программное обеспечение, поэтому их установка проходит проще и +быстрее. * Запустите IntelliJ IDEA. -* Откройте папку проекта: `File -> Open -> [выбираете папку] -> OK`. Сразу после открытия начнётся установка среды. Если от вас потребуется разрешение на скачивание файлов, дайте его. Спустя некоторое время все необходимые файлы скачаются, и среда будет готова к работе. +* Откройте папку проекта: `File -> Open -> [выбираете папку] -> OK`. Сразу после открытия начнётся установка среды. Если + от вас потребуется разрешение на скачивание файлов, дайте его. Спустя некоторое время все необходимые файлы скачаются, + и среда будет готова к работе. Если всё сделано правильно, то вы увидите проект без сообщений об ошибке и с подсветкой синтаксиса в файлах с кодом. @@ -81,55 +106,70 @@ OpenJDK 64-Bit Server VM Temurin-21.0.1+9 (build 21.0.1+9, mixed mode, sharing) Это версии, использующие очень старое программное обеспечение, поэтому их установка проходит дольше и сложнее. -* Снова откройте переменные среды и замените значение вашего `JAVA_HOME` на скачанный ранее JDK 1.8. В моём случае, это `C:\Users\Hummel009\.jdks\temurin-1.8.0_392`. +* Снова откройте переменные среды и замените значение вашего `JAVA_HOME` на скачанный ранее JDK 1.8. В моём случае, + это `C:\Users\Hummel009\.jdks\temurin-1.8.0_392`. * Откройте папку проекта в проводнике и двойным нажатием ЛКМ запустите `setupIdea.bat`, подождите окончания. * По завершении установки среды вы увидите в папке файл с расширением `.ipr`. * Запустите IntelliJ IDEA. -* Откройте файл `.ipr` проекта: `File -> Open -> [выбираете папку, нажимаете на файл с расширением .ipr] -> OK`. Сразу после открытия среда будет готова к работе. -* В меню `File -> Manage IDE Settings -> Save as Directory-Based Format` конвертируйте среду. IntelliJ IDEA перезапустится. +* Откройте файл `.ipr` проекта: `File -> Open -> [выбираете папку, нажимаете на файл с расширением .ipr] -> OK`. Сразу + после открытия среда будет готова к работе. +* В меню `File -> Manage IDE Settings -> Save as Directory-Based Format` конвертируйте среду. IntelliJ IDEA + перезапустится. Если всё сделано правильно, то вы увидите проект без сообщений об ошибке и с подсветкой синтаксиса в файлах с кодом. ## Основы работы -После установки среды весь необходимый инструментарий готов к работе. Инструментарий может немного отличаться в зависимости от того, какой плагин сборки использует данная версия. Согласно таблице из первого раздела, это может быть Voldeloom, RetroFuturaGradle, ForgeGradle 2.X, ForgeGradle 6.X. +После установки среды весь необходимый инструментарий готов к работе. Инструментарий может немного отличаться в +зависимости от того, какой плагин сборки использует данная версия. Согласно таблице из первого раздела, это может быть +Voldeloom, RetroFuturaGradle, ForgeGradle 2.X, ForgeGradle 6.X. -Большая часть функционала располагается в меню Gradle. Меню можно открыть следующим образом: `View -> Tool Windows -> Gradle`. +Большая часть функционала располагается в меню Gradle. Меню можно открыть следующим +образом: `View -> Tool Windows -> Gradle`. ### Voldeloom Современный плагин для самых старых версий Minecraft. Самые важные функции: * Запуск клиента из среды: `Меню Gradle -> Tasks -> volde.run -> runClient`. -* Компиляция мода в файл с расширением `.jar`: `Меню Gradle -> Tasks -> build -> build`. После компиляции ваш мод появится в папке `папка_проекта/build/libs`. Вас интересует тот файл, который без приписки `-dev.jar`. +* Компиляция мода в файл с расширением `.jar`: `Меню Gradle -> Tasks -> build -> build`. После компиляции ваш мод + появится в папке `папка_проекта/build/libs`. Вас интересует тот файл, который без приписки `-dev.jar`. ### RetroFuturaGradle Современный плагин для популярнейших из относительно старых версий Minecraft. Самые важные функции: -* Генерация исходного кода Minecraft: `Меню Gradle -> Tasks -> modded minecraft -> setupDecompWorkspace`. Эта функция исправляет проблему, из-за которой весь ваш код горит красным цветом после установки среды. +* Генерация исходного кода Minecraft: `Меню Gradle -> Tasks -> modded minecraft -> setupDecompWorkspace`. Эта функция + исправляет проблему, из-за которой весь ваш код горит красным цветом после установки среды. * Запуск клиента из среды: `Меню Gradle -> Tasks -> modded minecraft -> runClient`. -* Запуск локального сервера из среды: `Меню Gradle -> Tasks -> modded minecraft -> runServer`. К нему можно подключиться из клиента, введя в качестве адреса `localhost`. -* Компиляция мода в файл с расширением .jar: `Меню Gradle -> Tasks -> build -> build`. После компиляции ваш мод появится в папке `папка_проекта/build/libs`. Вас интересует тот файл, который без приписки `-dev.jar`. +* Запуск локального сервера из среды: `Меню Gradle -> Tasks -> modded minecraft -> runServer`. К нему можно подключиться + из клиента, введя в качестве адреса `localhost`. +* Компиляция мода в файл с расширением .jar: `Меню Gradle -> Tasks -> build -> build`. После компиляции ваш мод появится + в папке `папка_проекта/build/libs`. Вас интересует тот файл, который без приписки `-dev.jar`. ### ForgeGradle 2.X Очень старый плагин для относительно старых версий Minecraft. Самые важные функции: * Запуск клиента из среды здесь осуществляется кнопкой с зелёным треугольником в верхней части окна. -* Компиляция мода в файл с расширением `.jar` осуществляется в папке проекта посредством двойного нажатия ЛКМ на файл `build.bat`. После компиляции ваш мод появится в папке `папка_проекта/build/libs`. +* Компиляция мода в файл с расширением `.jar` осуществляется в папке проекта посредством двойного нажатия ЛКМ на + файл `build.bat`. После компиляции ваш мод появится в папке `папка_проекта/build/libs`. ### ForgeGradle 6.X Новейший плагин для новых версий Minecraft. Самые важные функции: * Запуск клиента из среды: `Меню Gradle -> Tasks -> forgegradle runs -> runClient`. -* Компиляция мода в файл с расширением .jar: `Меню Gradle -> Tasks -> build -> build`. После компиляции ваш мод появится в папке `папка_проекта/build/libs`. +* Компиляция мода в файл с расширением .jar: `Меню Gradle -> Tasks -> build -> build`. После компиляции ваш мод появится + в папке `папка_проекта/build/libs`. ## Папка Forges В этой папке я храню свои пропатченные версии Voldeloom, RetroFuturaGradle и Forge. В чём их преимущество? -* Я постарался унифицировать и максимально обновить версии Gradle и плагинов. Получается очень значительная экономия интернета и места на диске. -* Я использовал плагины для старых версий, которые на данный момент непригодны к разработке через официальный устаревший Forge. -* Я использую Kotlin Gradle DSL для более строгого синтаксиса с подсветкой, подсказками и хорошей поддержкой со стороны IDE. +* Я постарался унифицировать и максимально обновить версии Gradle и плагинов. Получается очень значительная экономия + интернета и места на диске. +* Я использовал плагины для старых версий, которые на данный момент непригодны к разработке через официальный устаревший + Forge. +* Я использую Kotlin Gradle DSL для более строгого синтаксиса с подсветкой, подсказками и хорошей поддержкой со стороны + IDE.