Как написать мод для minecraft на java
Перейти к содержимому

Как написать мод для minecraft на java

  • автор:

Структура мода#

Fabric использует автоматический сборщик Gradle, поэтому нам стоит придерживаться определенной структуры папок:

└── src └── main ├── java └── resources 

В java хранится весь Ваш исходный код. В resources хранятся текстуры, модели, звуки, рецепты и прочее.

fabric.mod.json#

Fabric использует файл fabric.mod.json для обнаружения и загрузки Вашего мода. Он должен обязательно находится по пути src/main/resources . Файл определяет данные Вашего мода: ModId, название, зависимости, точки входа, Mixins, авторов и так далее. Примерный fabric.mod.json выглядит так:

 "schemaVersion": 1, "id": "fabrictut", "version": "1.0-SNAPSHOT", "name": "FabricTutorial", "description": "My awesome mode!", "authors": [ "jjigem" ], "contact": <>, "license": "MIT", "icon": "assets/fabrictut/icon.png", "environment": "*", "entrypoints":  "main": [ "ru.mcmodding.fabrictut.FabricTutorial" ] >, "mixins": [ "fabrictut.mixins.json" ], "depends":  "fabricloader": ">=0.10.8", "fabric": "*", "minecraft": "1.16.3" > > 

Параметры name , description и authors могут содержать коды цветового форматирования.

Параметр Описание Обязательный? Пример
schemaVersion Обозначает версию формата json-файла
Тип: число
Нет (0 если не указано) «schemaVersion»: 1
id Обозначает идентификатор мода (MOD_ID)
Тип: строка
Да «id»: «myawesomemod»
version Версия Вашего мода
Тип: строка
Да «version»: «1.0-SNAPSHOT»
name Имя Вашего мода
Тип: строка
Нет «name»: «More Food»
description Описание Вашего мода
Тип: строка
Нет «description»: «Супер мод на еду из медных слитков»
authors Авторы мода
Тип: массив строк или объектов Person
Нет «authors»: [«jjigem», «Notch»]
contributors Внесшие вклад в мод
Тип: массив строк или объектов Person
Нет «contributors»: [«Mumfey»]
license Лицензия для Вашего мода
Тип: строка
Нет «license»: «MIT»
icon Путь к иконке для Вашего мода. Иконка должна быть в формате PNG.
Тип: строка
Нет «icon»: «assets/myawesomemod/icon.png»
depends Зависимости мода
Тип: массив пар строка-строка (ID — Версия)
Нет «depends»:
recommends Рекомендации для мода. То же, что и зависимости, но не остановят игру, а покажут предупреждение
Тип: массив пар строка-строка (ID — Версия)
Нет «recommends:»
conflicts Конфликты модификаций. При запуске Вашего мода с конфликтным будет предупреждение о несовместимости
Тип: массив пар строка-строка (ID — Версия)
Нет «conflicts»:
breaks Конфликты модификаций, которые не дадут запустить игру.
Тип: массив пар строка-строка (ID — Версия)
Нет «breaks»:
entrypoints Точки входа для мода Да «entrypoints»:
environment Игровое окружение Да «environment»: «*»
mixins Файлы Mixins для мода
Тип: массив строк
Нет «mixins»: [«modid.mixins.json»]
accessWidener Файл accessWidener для мода. О нем подробнее позже
Тип: строка
Нет «accessWidener»: «modid.accesswidener»

Это далеко не все параметры, а лишь основные из них.

Главный класс мода#

Мы знаем как правильно выглядит файл fabric.mod.json , создали его и заполнили, как нам нужно, но мод все еще не будет инициализирован.

Точки входа#

Fabric использует точки входа для разделения клиента и сервера.

Допустимые точки входа: client , server , main . main используется для инициализации вещей, которые могут происходить как на клиенте, так и на сервере, например, регистрация предметов и существ. client используется для всего того, что не может происходить на сервере, например, регистрация рендера существ. client ни за что не будет использован на сервере. server используется для сервера, и не будет использоваться на клиенте.

Вы наверное спросите, зачем нужен server , если можно использовать main ? Дело в том, что server используется для выделенного (Dedicated) сервера, а не для встроенного (Integrated).

Итак, как создать точку входа: создаем класс в пакете нашего мода, реализуем нужный интерфейс и переопределяем метод.

Интерфейс Метод Сторона
ModInitializer onInitialize() Клиент-сервер
ClientModInitializer onInitializeClient() Клиент
DedicatedServerModInitializer onInitializeServer() Сервер

Обычно моды содержат либо реализацию ModInitializer и ClientModInitializer , либо только ModInitializer .

Для начала мы сделаем самый простой мод, реализовав ModInitializer . В отличие от Forge, нам не нужны никакие дополнительные аннотации вроде «@Mod», достаточно лишь указать, что мы реализуем интерфейс.

Создаем класс нашего мода по пути наш_домен/никнейм/ID_мода , например ru/mcmodding/fabrictut . Конечно, можно использовать абсолютно любой путь, но это не очень правильно. Назовем класс FabricTutorial и укажем, что мы реализуем интерфейс ModInitializer . Затем нам нужно переопределить метод onInitialize() , иначе будет ошибка.

В итоге у нас получится такой класс:

package ru.mcmodding.fabrictut; import net.fabricmc.api.ModInitializer; public class FabricTutorial implements ModInitializer  @Override public void onInitialize()  > > 

Структура файлов при этом будет выглядеть так:

└── src └── main ├── java │ └── ru │ └── mcmodding │ └── fabrictut │ └── FaricTutorial.java └── resources └── fabric.mod.json 

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

Как создать мод Minecraft?

Курс створення модів в Minecraft

Курс создания модов в Minecraft дает возможность совместить изучение программирования с любимой игрой многих детей.

Уроки программирования в Minecraft

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

Вот шаги, которые вам предстоит выполнить:

  1. Загрузите и установите Java Development Kit (JDK) на компьютер. Вы можете скачать его с официального сайта Oracle. Загрузите и установите Minecraft Forge, который необходим инструмент для разработки модов. Вы можете скачать его с официального сайта Forge.
  2. Создайте новый проект в своем редакторе кодирования, например Eclipse или IntelliJ IDEA.
  3. Добавьте зависимости Minecraft Forge к вашему проекту. Вы можете найти их в папке «libs» в вашем установленном каталоге Minecraft Forge.
  4. Создайте новый пакет для вашего моды в дереве проекта.
  5. Создайте новый класс для вашего моды в вашем новом пакете.
  6. Отредактируйте ваш класс, добавляя необходимый код для вашего моды. К примеру, если вы хотите добавить новый блок, вы должны создать новый класс блока и переопределить необходимые методы.
  7. Сохраните ваш класс и запустите Minecraft, чтобы проверить, работает ли ваш мод. Если все прошло успешно, вы должны увидеть изменения в игре.

Это лишь общее описание процесса создания модов для Minecraft, но оно может изменяться в зависимости от вашего конкретного проекта и потребностей. Поэтому рекомендуется посетить наши занятия и получить исчерпывающую информацию по созданию мод.

На уроках программирования в Minecraft учащиеся создают моды в программе MCreator.

Создание мод в программе MCreator

MCreator – это интегрированная среда разработки модов для Minecraft, позволяющая пользователям создавать свои собственные модификации игры без необходимости в программировании.

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

MCreator является полезным инструментом для желающих создавать свои собственные модификации игры Minecraft, но не имеет опыта в программировании.

Курс создания модов в Minecraft. Уроки программирования в Minecraft. Создание мод в программе MCreator. Создание своих собственных модификаций игры

Оставьте номер и мы поможем подобрать курс

Сделай шаг к успешному будущему

Создание модификаций с помощью Forge/1.7+

Сначала подготовим среду для работы с кодом Minecraft.

Forge [ ]

Собственно, для создания модификаций нужен Forge. Скачать его можно здесь с пометкой Mdk или с пометкой Src (для версий 1.8/1.7). Теперь создайте любую папку там, где вам удобно (в примере это D:\MCModding ), в ней будет находиться Forge и модификация. В эту папку распакуйте содержимое архива с Forge. Вы увидите следующее:

Распакованное содержание Forge

С 15 января 2020 года Maven больше не поддерживает протокол HTTP и требует использовать HTTPS. А с 4 ноября 2022 года сайт Amazon S3 удалил файлы версии 1.7.10, что сделало невозможным их скачивание. Поэтому для создания модификаций под версию 1.7.10 необходимо внести несколько коррекций в файлы скачанного архива.

Сначала в файле gradle/wrapper/gradle-wrapper.properties нужно изменить значение параметра distributionUrl :

distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip

Затем в файле build.gradle нужно заменить содержимое тега buildscript<> следующим образом:

buildscript < repositories < mavenCentral() maven < name = "github" url = "https://github.com/juanmuscaria/maven/raw/master" >> dependencies < classpath 'net.minecraftforge.gradle:ForgeGradle:[1.2-1.4.6-SNAPSHOT,)' >>

Проделанные шаги заменяют ссылки на их рабочие варианты.

Среда разработки [ ]

Теперь нам нужно установить Forge, который при установке также произведёт декомпиляцию и деобфускацию кода Minecraft, чтобы сразу можно было начать создание модификации. Для этого необходимо установить Java Development Kit (JDK), скачав его с официального сайта Oracle. Minecraft 1.7.10 работает на JDK версии 1.8.

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

При первой установке JDK откройте ⊞ Win + PauseBreak ->Дополнительные параметры->Переменные среды и проверьте содержимое. Там должны существовать две переменные (если их нет, то их нужно создать вручную):

  • JAVA_HOME: « C:\Program Files\Java\jdk1.8.0_241 » (по умолчанию; у вас может быть другая версия jdk или путь установки)
  • Path: « C:\Program Files\Java\jdk1.8.0_241\bin » (по умолчанию; у вас может быть другая версия jdk или путь установки)

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

Затем с помощью командной строки необходимо выполнить следующую команду (замените eclipse на idea , если вы используете IntelliJ IDEA):

gradlew.bat setupDecompWorkspace eclipse

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

Также имеются команды без возможности просмотра исходного кода Minecraft во время разработки:

  • gradlew.bat setupDevWorkspace eclipse
  • gradlew.bat genEclipseRuns eclipse

Если вы являетесь пользователем операционной системы Linux, нужно прописать следующие строки в терминале:

  • cd / и
  • ./gradlew setupDecompWorkspace eclipse —refresh-dependencies

Чтобы выполнить команду, можно создать в папке .bat-файл с выбранной вами командой (но обычно он там уже есть) и запустить его. Также вместо всего этого можно запустить командную строку в этой папке (например, нажать ⇧ Shift + ПКМ по этой папке и выбрать «Открыть окно команд») и выполнить выбранную команду.

Выполнение команды займёт какое-то время, после чего должно появиться сообщение рода Build Successful.

Команда setupDecompWorkspace eclipse

Если же появляется какая-либо ошибка:

  • Проверьте ещё раз ваши переменные среды, JAVA_HOME и Path. Их пути должны вести в существующие папки с установленным JDK.
  • Введите команду set JAVA_HOME=»Тут нужно вставить адрес папки с JDK без кавычек»
  • Включите VPN, так как в редких случаях ссылки, необходимые скрипту, могут быть недоступны.
  • После любых изменений, связанными с переменными средами, перезагружайте компьютер.

Настройка Eclipse [ ]

Нужно настроить Eclipse для работы с Minecraft. Первым делом зайдите в него. Он предложит выбрать рабочую директорию (Workspace). Введите туда путь к папке «eclipse» в папке (Путь к папке должен содержать только английские буквы), куда вы распаковали содержимое Forge и поставьте галочку для того, чтоб окно больше не появлялось. В примере это «D:\MCModding\eclipse». Если всё прошло успешно, то слева в Eclipse вы увидите раскрывающееся меню Minecraft.

Eclipse после установки

Затем вы должны убедиться, что Eclipse использует правильную версию JDK для работы с исходниками. Откройте в меню сверху Window->Preferences->Java->Installed JREs. Перед вами откроется список установленных сред Java. Обычно там помечена галочкой встроенная в Eclipse версия JDK, которая слишком новая и не подходит для разработки. Чтобы исправить это, нажмите на версию, справа нажмите кнопку «Remove», а затем кнопку «Add». В открывшемся диалоге выберите «Standart VM» и укажите путь к той папке, куда у вас в системе установлена JDK 1.8 (вы этот путь уже находили при настройке переменных сред). После этого подтвердите добавление виртуальной машины и пометьте её галочкой, сохранив изменения.

Installed JREs после настройки

После всех действий остаётся настроить Compliance. По умолчанию значение Compliance равняется 1.6 и не будет препятствовать работе. Однако, если вы попробуете открыть код, использующий нововведения Compliance 1.7-1.8, то некоторые фрагменты кода будут подчёркнуты как ошибки, несмотря на то, что код там правильный. Чтобы исправить это, откройте в меню сверху Window->Preferences->Java->Compiler и выберите там Compliance 1.8. Ошибки, связанные с нераспознанными новыми возможностями языка Java, исчезнут.

Compliance после настройки

Для того, чтобы осуществлять сборку проекта с изменённым Compilance, отредактируйте в файле build.gradle содержимое тега minecraft<> следующим образом:

minecraft

Здесь добавились две строчки, обеспечивающие поддержку новых возможностей Java.

Настройка IntelliJ IDEA [ ]

Если вместо Eclipse Вы решили использовать IntelliJ IDEA, то после того как вы установите ее, в стартовом окне в правом нижнем углу нажмите на кнопку «Configure», откройте вкладку «Project Defaults» и выберите пункт «Project Structure» или в главном меню нажмите комбинацию клавиш (Ctrl+Alt+Shift+S).

Стартовая страница IntelliJ IDEA

В открывшемся окне нажмите на красную надпись «No SDK», для контекстного меню и выберите пункт с вашей версией JDK. (Если же в меню нет вашей версии JDK нажмите «Add SDK» и укажите путь. В нашем случае это C:\Program Files\Java\jdk1.8.0_241 )

IntelliJ IDEA

После этого можно воспользоваться двумя способами:

Первый способ: [ ]

После того, как Forge скомпилирован и установлен, необходимо запустить IDEA, и в появившемся окне нажать ‘Import Project’. После чего выбираем в папке «D:\MCModding» файл build.gradle. В появившемся окне Вам предложат выбрать способ компиляции (рекомендуется оставить значение Use default gradle wrapper.) В строчке ниже выберите Ваш JAVA_HOME. В пункте «Формат проекта» нужно обязательно выбрать «.ipr (file based)». В противном случае, придётся подключать все библиотеки и настраивать запуск самостоятельно. После всего этого нажмите OK. Ждите, пока сборка скомпилируется.

В случае, если ваша IntelliJ IDEA установлена правильно и она различает формат *.ipr, вы можете просто дважды нажать по файлу .ipr в директории вашего MCP. IDEA все сделает за вас.

Второй способ: [ ]

После того, как вы распаковали файлы в «D:\MCModding», сразу запускайте IntelliJ IDEA. В появившемся окне нажать ‘Import Project’. После чего выбираем в папке «D:\MCModding» файл build.gradle.

Если IDEA указывает на старую версию Gradle, нужно обновить ее на более новую. Для этого запустите консоль с директорией к папке с Forge (щелкните ⇧ Shift + ПКМ по папке с Forge > Открыть консоль команд) и выполните следующую команду:

  • gradlew.bat wrapper —gradle-version

Список всех версий можно посмотреть на официальном сайте.

Потребуется подождать пару минут, пока среда разработки полностью все выполнит и импортирует. После завершения процесса откройте меню «View» в верхней части экрана и выберите пункты «Tools Windows > Gradle». У вас откроется окно с Gradle задачами. Переходим в раздел Tasks > forgegradle.

Окно с Gradle задачами

Выполните task setupDecompWorkspace . После его выполнения запустите genIntellijRuns

Готово. Мы проделали все то же самое, что и в первом способе, только без использования консоли, а это может быть большим плюсом для новичков.

Запуск [ ]

После выполнения выше перечисленных действий, в верхней части экрана перейдите в раздел «Run» и выберите пункт «Run configurations». По очереди выберите «Minecraft Client» и «Minecraft Server» и уже в правой части окна, в раскрывающемся списке «Use classpath of module» выберите тот пункт, который заканчивается на _main. Теперь вы можете запустить клиент или сервер и удостовериться, что все работает.

Run config

Поздравляем! Вы успешно настроили среду для того, чтобы начать писать модификации при помощи нее.

Основные уроки [ ]

Основная статья: Создание модификаций с помощью Forge/1.7+/Основные уроки

Дополнительные уроки [ ]

Основная статья: Создание модификаций с помощью Forge/1.7+/Дополнительные уроки

  1. Локализация названий в игре
  2. Дроп определённого предмета при разрушении блока
  3. Разносторонняя текстура блока
  4. Собственная вкладка в Творческом режиме
  5. Обновление Forge
  6. Обновление ForgeGradle
  7. Свой материал для инструмента
  8. Создание брони
  9. Свой материал для брони
  10. Генерация предметов в контейнерах натуральных структур
  11. Атрибуты для моба
  12. Интеллект для моба
  13. Свой скин при моддинге

Minecraft Modding#

Хотите создать мод для Minecraft? Добавить в игру что-то свое: блок, сущность или целое измерение?

На этом сайте вы найдете интересный, понятный и подробный учебник по созданию собственных модов для Minecraft.

Вы думаете это сложно? На самом деле нет (с помощью этого учебника)

С чего начать?#

Первый и абсолютно необходимый навык для создания модов — знание основ программирование и Java.

Переменная, объект, класс, метод — все эти слова должны быть вам достаточно хорошо знакомы. Если вы не знаете, что это, то вам необходимо пройти самые основы языка Java.

Теперь поговорим об API.

API — набор инструментов для упрощения работы с программой (в нашем случае, с Minecraft).

К сожалению, никакого встроенного API для создания модов у Minecraft нет.

Minecraft не поддерживает моды!

Однако, исходный код игры можно получить, и многие разработчики стали разрабатывать свои неофициальные API: Forge, Sponge и так далее. О Forge вы наверняка не раз слышали. Это самое популярное на сегодня API для создания модов.

Поэтому у вас есть выбор.

Писать моды с помощью API#

Это будет проще. Но запускаться ваши моды смогут только на клиенте с заранее установленным API. Моды, написанные с помощью Forge пойдут только на Minecraft, где предварительно установлен Forge.

Большинство всех Minecraft модов написаны при помощи Forge API.

Плюсы

  • Простое создание модов
  • Удобный перенос на другие Minecraft версии
  • Совместимость (и даже взаимодействие) с другими модами

Минусы

  • Необходимость иметь установленное API на клиенте

Писать моды без помощи API#

Это несколько сложнее, так как потребует от вас глубокого понимания внутреннего устройства работы Minecraft. При написании модов без использования API вы напрямую редактируете исходный код игры. Получается, что вы словно пишете свой собственный Minecraft (или новую его версию), и никакие другие моды работать вместе с вашим скорее всего не будут.

Плюсы

  • Не нужно ничего предварительно устанавливать
  • Полный контроль над происходящим в игре
  • Возможность менять исходные файлы игры

Минусы

  • Почти абсолютная несовместимость с другими модами
  • Относительная сложность написания
  • Сложный перевод мода под другие Minecraft версии

Что выбрать?#

В большинстве случаев рекомендуется писать моды при помощи Forge API. Он сейчас наиболее популярен и является практически стандартом.

Большинство модов и уроков по их созданию написано с помощью этого API. Forge настолько распространен, что частенько под созданием модов для Minecraft понимается именно их создание с помощью Forge API.

У меня вопрос/проблема!#

Если что-то не работает, но должно, или (что еще хуже), что-то работает, но не должно, смело обращайтесь на форум за помощью.

Кстати, там можно не только просить о помощи, но еще и общаться с другими создателями модов, обмениваться опытом и рекламировать свои моды!

Как поделиться с другом?#

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

Разделы статьи разделяются заголовками. Наведите на заголовок курсор мышки. Справа от него появится значок ссылки. Нажмите на него правой кнопкой и выберите пункт «Копировать адрес ссылки».

Вклад в учебник#

Вы можете вносить правки в существующие статьи, добавлять свои собственные, а также предлагать идеи для новых статей. Сделать это очень просто. Весь процесс полностью автоматизирован. Подробные инструкции вы можете найти на вики по работе с сайтом.

О сайте#

На просторах интернета достаточно много штучных учебников под какие-то конкретные Minecraft версии. Получается, что нет единого источника информации, который поддерживается сообществом, а не единственным автором.

Здесь мы реализуем другой подход.

Сайт работает на статическом генераторе MkDocs с темой Material. Такой подход позволяет не возиться с исходниками сайта, а писать статьи в удобной markdown разметке, которая автоматически собирается в готовый и красивый сайт.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *