Как пишут моды для minecraft

Здесь находятся инструкции по созданию модификаций, работающие для версии 1.7+

Подготовка среды и настройка

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

Forge

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

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

С 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. При этом JDK должен быть одной версии с Java (JRE). Minecraft 1.7.10 работаает на JRE версии 1.8.

При первой установке JDK проверьте, чтобы у вас в ⊞ Win+PauseBreak->Дополнительные параметры->Переменные среды: в JAVA_HOME указан путь к папке c JRE (по-умолчанию: «C:Program FilesJavajre1.8.0_241») и в Path был указан путь к bin-папке JDK после точки с запятой (по-умолчанию: «C:Program FilesJavajdk1.8.0_241bin»).

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

  • gradlew.bat setupDecompWorkspace eclipse или
  • gradlew.bat setupDevWorkspace eclipse
  • gradlew.bat genEclipseRuns eclipse

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

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

  • cd <путь>/<папка с Forge> и
  • ./gradlew setupDecompWorkspace eclipse --refresh-dependencies

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

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

Пример результата выполнения команды:[1]
gradlew.bat setupDecompWorkspace eclipse

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

  • Проверьте, чтобы у вас в ⊞ Win+PauseBreak->Дополнительные параметры->Переменные среды: в JAVA_HOME указан путь к папке c Java (по-умолчанию: «C:Program FilesJavajre1.8.0_241») и в Path был указан путь к bin-папке JDK после точки с запятой(если в конце списка) (по-умолчанию: «C:Program FilesJavajdk1.8.0_241bin»).
  • Введите команду set JAVA_HOME=»Тут нужно вставить адрес папки с JDK без кавычек»
  • Включите VPN, так как в редких случаях ссылки, необходимые скрипту, могут быть недоступны.
  • Установите Java другой версии, не удаляя предыдущую.
  • Смените в файле gradle/wrapper/gradle-wrapper.properties параметр distributionUrl на https://services.gradle.org/distributions/gradle-2.6-bin.zip и удалите папку .gradle в директории пользователя (ошибка Received status code 501 from server: HTTPS Required и ошибки связанные с apply plugin: 'forge').

Настройка Eclipse

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

Интерфейс Eclipse после правильной установки.

Затем вы должны убедиться, что Eclipse использует правильную версию JRE для работы с исходниками. Используйте поиск (значок в виде лупы в верхнем правом углу) и введите «Installed JREs», выбирая пункт с припиской «Open the preferences dialogue». Если там стоит помеченная галочкой версия Java 1.8, то всё в порядке. Если галочкой помечена встроенная в Eclipse версия JRE (обычно она слишком новая), то добавьте свою версию Java при помощи кнопки Add справа. В открывшемся диалоге выберите «Standart VM» и укажите путь к той папке, куда у вас в системе установлена JRE 1.8. После этого подтвердите добавление виртуальной машины и пометьте её галочкой, сохранив изменения.

После всех действий остаётся настроить Compilance. По умолчанию значение Compilance равняется 1.6 и не будет препятствовать работе. Однако, если вам потребуется открыть в Eclipse скачанный с интернета исходник мода на 1.7.10, где используется Compilance 1.7-1.8, то в среде будут отображаться ошибки. Чтобы их исправить, наведите курсор на подчёркнутые строки кода с ошибкой и выберите предложенное исправление «Change project compilance to 1.7 (1.8), и подтвердите rebuild.

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

minecraft {
    version = "1.7.10-10.13.4.1614-1.7.10"
    runDir = "eclipse"
	srcCompat = JavaVersion.VERSION_1_8
    targetCompat = JavaVersion.VERSION_1_8
}

Настройка IntelliJ IDEA

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

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

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

IntelliJ IDEA .png

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

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

После того, как 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 задачами

Окно Gradle

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

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

Запуск

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

Настройка запуска

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

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

  1. Директория Eclipse (Установка среды)
  2. Главный класс
  3. Блок
  4. Предмет
  5. Крафт
  6. Компиляция
  7. Генерация
  8. Прокси и инстанция
  9. Моб

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

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

Примечания

  1. При первом выполнении лог может быть длиннее.

Содержание:

  1. Сначала немного истории…
  2. Список статей о моддинге Minecraft 1.15-1.17

Сначала немного истории…

Привет всем! Одним из моих первых увлечений после начала изучения языков программирования был Minecraft. Вернее его моддинг. Поиграть тоже было круто, но иногда были шикарные идеи, которые были просто необходимы этой игре! Тем более версии 1.2.5, если кто такую помнит. Но тогда как-то вообще не понимал, что я делаю, а потому и интерес со временем угас.

Спустя время я снова столкнулся с этой игрой (спасибо младшему брату -_-) и вспомнил былые увлечения. Это был уже Minecraft 1.12 или вроде того. Конечно же новые знания позволили сделать куда больше, но по правде некоторые вещи выходили наугад (как бывает у всех прогеров :D).

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

Что-то не пошло…

Опыт может не так велик, но постараюсь расписать и описать все как можно понятнее. Так же буду рад любым подсказкам и замечаниям ^_^

Список статей о моддинге Minecraft 1.15-1.16

UPD 27.04.20: Немного меняю иерархию статей. Теперь не будет номеров вроде Первый урок, второй и т.д. С этого момента уроки будут разделены по группам. Думаю, что так будет логичнее и проще. И да, некоторые статейки теперь нужно будет поправить, чем я и займусь в ближайшие дни.
UPD 09.07.20: Начал обновлять гайды для соответствия версии 1.16.1.
UPD 14.07.21: Жду выхода Forge 1.17, а после этого обновлю все статьи!
UPD 22.08.21: Начал публиковать новые гайды по Froge 1.17.1!

  1. [Forge] Моддинг Minecraft Forge 1.17.1. Начало
  2. [Forge] Mods.toml. Настраиваем новый мод
  3. [Forge] Добавляем свой предмет (Item)
  4. [All Minecraft] Модель и Текстура для предмета (Item)
  5. [All Minecraft] Локализация в Minecraft
  6. [All Minecraft] Рецепты крафта для модов и дата паков Minecraft
  7. [Forge/Fabric] Новая вкладка в творческом
  8. [Forge 1.17.1] Добавляем свой блок (Block)
  9. [All Minecraft] Модель, текстура и blockstate для блока
  10. [Forge 1.17.1] Генерация блока в мире
  11. [Forge 1.17.1] Еда с эффектами и посудой

Исходный код проекта на Github

Fabric 1.17.1

  1. [Fabric] Создаём и настраиваем новый проект
  2. [Fabric] Добавляем новый предмет
  3. [All Minecraft] Модель и Текстура для предмета (Item)
  4. [All Minecraft] Локализация в Minecraft
  5. [All Minecraft] Рецепты крафта для модов и дата паков Minecraft
  6. [Forge/Fabric] Новая вкладка в творческом
  7. TODO New Fabric Block
  8. [All Minecraft] Модель, текстура и blockstate для блока

Foge 1.16 и ниже

Вступение

  1. Готовим все к созданию мода!
  2. Знакомство с модом!
  3. Настройка Gradle
  4. Настраиваем файл mods.toml

Предметы и Вкладки

  1. [1.16.1] Добавляем новый предмет, новую вкладку и локализацию для них
  2. [1.16.1] Добавляем новую еду
  3. [1.16.1] Новые инструменты
  4. [1.15.2] Добавляем новые предмет и вкладку
  5. [1.15.2] Добавляем еду, еду с эффектами и корм

Блоки

  1. [1.15.2] Добавляем свой блок
  2. [1.15.2] Добавляем свою плиту, ступени и стену
  3. [1.15.2] Рецепты. Верстак, печь, камнерез, костёр, коптильня
  4. [1.15.2] Дроп при добыче блоков
  5. Block.Properties
  6. Стекло
  7. Новая руда. Часть 1

Мобы

  1. [1.15.2] Добавляем своего моба (Новая корова ч. 1)
  2. [1.15.2] Добавляем новую модель для моба (Новая корова ч. 2)
  3. [1.15.2] Улучшаем интеллект своего моба (Новая корова ч. 3)

Генерация

  1. Новая руда. Часть 2. Генерация в мире
  2. [1.15.2] Добавляем постройку (особенность, feature) для биомов
  3. [1.15.2] Добавляем новую структуру

Полезное

  1. Локализация
  2. Выводим приветствие игроку. Моддинг Minecraft
  3. Анимированные текстуры
  4. Blockbench. Своя модель
  5. Меняем имя блока. Моддинг Minecraft

И будет еще!

Устаревшее для 1.15:

  1. Добавляем предмет!
  2. Текстура и модель для предмета!
  3. Добавляем вкладку!
  4. Делаем из сосиски еду
  5. Эффекты и блестяшка
  6. Добавляем свой блок
  7. Снова предмет, но теперь для блока
  8. Новые ступени
  9. Добавляем плиты (slab)
  10. Стена
  11. Дроп для блока и рецепт его создания

В разделе «Гайды» запрещено задавать вопросы по Майнкрафту.


Опрос  

23 пользователя проголосовало


  1. 1. Есть желание учить Java для моддинга?

    • Да

      18

    • Нет

      4

    • не уверен

      1

  2. 2. Вы смогли добраться до обучения mooc java курс?

    • Да

      5

    • Нет

      14

    • какие то моменты я не понял не получилось

      4

  3. 3. Стоит ли продолжать это?

    • да я хочу научиться делать крутые моды

      17

    • не знаю

      5

    • нет это бесполезно и никому не нужно

      1


title: Создание модов для Minecraft
description: Подробный и понятный учебник по созданию своего мода для Minecraft. Научитесь создавать все: от блока до целого измерения!

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.

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

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

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

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

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

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

{: .w9 .border }

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

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

О сайте

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

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

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

Понравилась статья? Поделить с друзьями:
  • Как пишут медики буквы
  • Как пишут маркеры
  • Как пишут манифест
  • Как пишут мальчики
  • Как пишут малыши