Это полное руководство по моддингу Minecraft 1.11 с помощью Forge. Оно охватывает все аспекты создания модов, от настройки среды разработки до добавления игрового контента, решения проблем и распространения вашего мода.
Основные темы:
- Настройка пространства для моддинга - от установки Java до настройки среды разработки.
- Создание модифицированных элементов и блоков - как создавать и регистрировать новые блоки и предметы.
- Добавление игровой глубины - многосторонние текстуры блоков, настраиваемый крафт, новые мобы и AI.
- Генерация новых биомов и ландшафта - создание уникальных биомов и ландшафтных особенностей.
- Новые зелья и эффекты - добавление новых зелий с уникальными эффектами.
- Управление данными и сетевыми взаимодействиями - синхронизация данных и создание сетевых пакетов.
- Custom меню, GUI и визуальные эффекты - создание пользовательских интерфейсов и визуальных эффектов.
- Отладка и оптимизация - идентификация и исправление ошибок, оптимизация производительности.
- Поделиться модом с сообществом - упаковка и распространение вашего мода, взаимодействие с игроками.
Дополнительные ресурсы:
Ресурс | Описание |
---|---|
Minecraft Forge Documentation | Официальная документация по Forge |
CurseForge Maven Helper | Инструмент для управления зависимостями и сборкой мода |
Json Linter | Инструмент для проверки синтаксиса JSON-файлов |
Bitshifting Tutorial | Руководство по битовой арифметике в Java |
JEI Discord | Сервер Discord для вопросов по моддингу |
MinecraftModDevelopment/Modding-Resources | Репозиторий с ресурсами по моддингу на GitHub |
Modding-Resources/dev_pins.md | Список полезных ресурсов для моддеров |
Это руководство поможет вам начать создавать уникальные моды для Minecraft 1.11 с помощью Forge. Продолжайте экспериментировать, учиться и делиться своими модами с сообществом.
Настройка пространства для моддинга
В этом разделе мы будем готовить пространство для моддинга, от установки Java до настройки среды разработки.
Создайте папку для проекта
Создайте новую папку для вашего проекта в C:/Users/_Ваше_имя_пользователя_/Documents
. Имя этой папки может быть легко изменено позже.
Получите "источник распределения"
Посетите сайт https://files.minecraftforge.net и убедитесь, что выбрана версия для которой вы хотите создать мод. В большом поле "Download Recommended" нажмите на маленькое поле MDK. Диалоговое окно запросит, где вы хотите сохранить файл и как его назвать. Выберите любое удобное место, но оставьте имя без изменений.
Копирование ключевых файлов в папку проекта
Откройте папку _forge-1.16.5-...-mdk_
(с или без разархивации) и скопируйте следующие файлы в папку проекта:
Файл/Папка | Описание |
---|---|
src |
Папка с исходным кодом |
gradle |
Папка с настройками Gradle |
gradlew |
Файл для запуска Gradle |
gradlew.bat |
Файл для запуска Gradle в Windows |
build.gradle |
Файл настроек сборки |
Импортируйте проект Gradle
Откройте программу IntelliJ IDEA. В начальном экране нажмите на "Open". Диалоговое окно запросит, какой файл импортировать. Перейдите в папку проекта и выберите файл "build.gradle", затем нажмите OK.
Укажите JDK
В следующем окне нажмите в поле "Gradle JVM" и перейдите к файлам JDK, которые вы установили ранее. Если вы установили версию 8 update 282, выберите папку с именем "jdk1.8.0_282". Нажмите OK и дождитесь завершения сборки, результаты которой будут отображаться в нижнем поле.
Теперь вы готовы начать создавать свой первый мод для Minecraft 1.11 с помощью Forge.
Создание своих первых модифицированных элементов и блоков
В этом разделе мы создадим свои первые модифицированные элементы и блоки в Minecraft 1.11 с помощью Forge.
Создание класса для блока
Сначала создайте новый класс для вашего блока, например, BlockTest.java
. Этот класс должен наследоваться от класса Block
из Minecraft. В этом классе вы можете переопределить методы, чтобы изменить поведение блока.
public class BlockTest extends Block {
// переопределите методы здесь
}
Регистрация блока
Чтобы зарегистрировать ваш блок, вам нужно создать экземпляр класса Block
и зарегистрировать его в игре. Вы можете сделать это в методе init
вашего основного класса.
public static Block oldTNT;
public void init() {
oldTNT = new BlockTest();
oldTNT.setRegistryName("oldTNT");
oldTNT.setUnlocalizedName(oldTNT.getRegistryName().toString());
GameRegistry.register(oldTNT);
}
Создание элемента для блока
Каждый блок в Minecraft требует соответствующего элемента, чтобы его можно было использовать в игре. Создайте новый класс для элемента, например, ItemBlockTest.java
. Этот класс должен наследоваться от класса ItemBlock
из Minecraft.
public class ItemBlockTest extends ItemBlock {
public ItemBlockTest(Block block) {
super(block);
}
}
Регистрация элемента
Чтобы зарегистрировать ваш элемент, вам нужно создать экземпляр класса ItemBlock
и зарегистрировать его в игре. Вы можете сделать это в методе init
вашего основного класса.
public static ItemBlock oldTNTIB;
public void init() {
oldTNTIB = new ItemBlockTest(oldTNT);
oldTNTIB.setRegistryName("oldTNT");
oldTNTIB.setUnlocalizedName(oldTNTIB.getRegistryName().toString());
GameRegistry.register(oldTNTIB);
}
Теперь у вас есть свой первый модифицированный блок и элемент в Minecraft 1.11 с помощью Forge. В следующем разделе мы будем добавлять игровую глубину с помощью промежуточного моддинга.
Добавление игровой глубины с помощью промежуточного моддинга
В этом разделе мы будем добавлять игровую глубину с помощью промежуточного моддинга, включая многосторонние текстуры блоков и настройку крафта.
Многосторонние текстуры блоков
Многосторонние текстуры блоков - это способ добавить реализм в ваш мод. Они позволяют вам создавать блоки с разными текстурами на каждой стороне.
Чтобы создать многостороннюю текстуру блока, вам нужно создать новый класс, наследуясь от класса Block
из Minecraft. В этом классе вы можете переопределить метод getBlockTextureFromSide
, чтобы указать текстуру для каждой стороны блока.
Сторона блока | Текстура |
---|---|
0 | textures/blocks/top.png |
1 | textures/blocks/bottom.png |
2 | textures/blocks/left.png |
3 | textures/blocks/right.png |
4 | textures/blocks/front.png |
5 | textures/blocks/back.png |
Default | textures/blocks/default.png |
Настраиваемый крафт
Настраиваемый крафт - это способ добавить игровую глубину в ваш мод. Он позволяет вам создавать сложные рецепты крафта, которые могут включать в себя различные ингредиенты и условия.
Чтобы создать настраиваемый крафт, вам нужно создать новый класс, наследуясь от класса Recipe
из Minecraft. В этом классе вы можете переопределить метод matches
, чтобы указать условия для крафта.
Ингредиент | Условие |
---|---|
Item.diamond |
inventory.getStackInRowAndColumn(0, 0).getItem() == Item.diamond |
Item.stick |
inventory.getStackInRowAndColumn(0, 1).getItem() == Item.stick |
В следующем разделе мы будем создавать custom mobs и AI.
Создание Custom Mobs и AI
В этом разделе мы будем создавать custom mobs с уникальным AI и поведением, что позволит расширить динамичность игры.
Создание Custom Mobs
Чтобы создать custom mob, вам нужно создать новый класс, наследуясь от класса EntityMob
из Minecraft. В этом классе вы можете переопределить методы onUpdate
и onAttack
, чтобы указать поведение моба.
Метод | Описание |
---|---|
onUpdate |
Вызывается каждый тик, управляет поведением моба |
onAttack |
Вызывается, когда моб атакует игрока, управляет атакой |
Создание AI для Custom Mobs
Чтобы создать AI для custom mob, вам нужно создать новый класс, наследуясь от класса EntityAIBase
из Minecraft. В этом классе вы можете переопределить метод updateTask
, чтобы указать логику AI.
Метод | Описание |
---|---|
updateTask |
Вызывается каждый тик, управляет логикой AI |
Пример Custom Mob с AI
Давайте создадим пример custom mob с AI, который будет атаковать игрока, когда он находится в радиусе 5 блоков.
public class MyMob extends EntityMob {
@Override
public void onUpdate() {
// Логика обновления моба
}
@Override
public void onAttack(EntityPlayer player) {
// Логика атаки моба
}
}
public class MyMobAI extends EntityAIBase {
@Override
public void updateTask() {
// Логика AI
if (entity.getDistanceToEntity(player) < 5) {
entity.attackEntity(player);
}
}
}
В следующем разделе мы будем создавать генерацию новых биомов и ландшафта.
Генерация Новых Биомов и Ландшафта
В этом разделе мы будем создавать новые биомы и ландшафтные особенности, добавляя разнообразие в мир Minecraft.
Создание Новых Биомов
Чтобы создать новый биом, вам нужно создать новый класс, наследуясь от класса Biome
из Minecraft. В этом классе вы можете переопределить методы generateTerrain
и generateStructures
, чтобы указать логику генерации биома.
Метод | Описание |
---|---|
generateTerrain |
Генерирует ландшафт биома |
generateStructures |
Генерирует структуры в биоме |
Создание Ландшафтных Особенностей
Чтобы создать ландшафтные особенности, вам нужно создать новый класс, наследуясь от класса TerrainGenerator
из Minecraft. В этом классе вы можете переопределить метод generate
, чтобы указать логику генерации ландшафта.
Метод | Описание |
---|---|
generate |
Генерирует ландшафт |
Пример Генерации Нового Биома
Давайте создадим пример нового биома с уникальным ландшафтом.
public class MyBiome extends Biome {
@Override
public void generateTerrain() {
// Логика генерации ландшафта
}
@Override
public void generateStructures() {
// Логика генерации структур
}
}
public class MyTerrainGenerator extends TerrainGenerator {
@Override
public void generate() {
// Логика генерации ландшафта
}
}
В следующем разделе мы будем добавлять новые зелья и эффекты.
sbb-itb-b1cf51d
Добавление Новых Зелий и Эффектов
В этом разделе мы рассмотрим, как создать новые зелья с уникальными эффектами и добавить их в игру Minecraft 1.11 с помощью Forge.
Создание Нового Зелья
Чтобы создать новый зель, вам нужно создать новый класс, наследуясь от класса Potion
из Minecraft. В этом классе вы можете переопределить метод hasStatusIcon
, чтобы указать иконку для зелья.
Метод | Описание |
---|---|
hasStatusIcon |
Возвращает true, если зелье имеет иконку |
Вы также можете добавить метод setIconIndex
, чтобы указать индекс иконки для зелья.
public class MyPotion extends Potion {
@Override
public boolean hasStatusIcon() {
return true;
}
public Potion setIconIndex(int par1, int par2) {
super.setIconIndex(par1, par2);
return this;
}
}
Добавление Эффекта к Зелью
Чтобы добавить эффект к зелью, вам нужно создать новый класс, наследуясь от класса PotionEffect
из Minecraft. В этом классе вы можете переопределить метод performEffect
, чтобы указать логику эффекта.
Метод | Описание |
---|---|
performEffect |
Выполняет эффект зелья |
Вы также можете добавить метод getColor
, чтобы указать цвет эффекта.
public class MyPotionEffect extends PotionEffect {
@Override
public void performEffect(EntityLivingBase entityLivingBaseIn, int amplifier) {
// Логика эффекта
}
@Override
public int getColor() {
return 0x000000; // Черный цвет
}
}
Регистрация Зелья и Эффекта
Чтобы зарегистрировать зелье и эффект, вам нужно создать статические поля для зелья и эффекта в классе, где вы будете регистрировать их. Затем вы можете зарегистрировать зелье и эффект в методе init
.
public class MyMod {
public static Potion myPotion;
public static PotionEffect myPotionEffect;
public void init() {
myPotion = new MyPotion();
myPotionEffect = new MyPotionEffect();
// Регистрация зелья и эффекта
}
}
В следующем разделе мы будем управлять данными и сетевыми взаимодействиями в модах.
Управление данными и сетевыми взаимодействиями в модах
В этом разделе мы рассмотрим, как хранить и синхронизировать данные, а также создавать сетевые пакеты для многопользовательских сред.
Когда необходима сетевая передача данных?
В большинстве случаев вам не нужно беспокоиться о сетевой передаче данных, поскольку игра сама может обрабатывать многие задачи. Однако, есть случаи, когда вам нужно использовать сетевую передачу данных. Например, если вы хотите отображать уведомление в правом верхнем углу экрана, когда игрок достигает certain milestones.
Использование EntityDataManager для синхронизации данных
EntityDataManager - это механизм синхронизации данных между сервером и клиентом, который встроен в Minecraft. Он позволяет вам синхронизировать данные между сервером и клиентом, не создавая custom пакеты.
Создание custom пакетов для сетевой передачи данных
Если вам нужно создать custom пакет для сетевой передачи данных, вы можете использовать IMessage и IMessageHandler. IMessage - это интерфейс, который определяет структуру пакета, а IMessageHandler - это класс, который обрабатывает пакет на сервере или клиенте.
Компонент | Описание |
---|---|
IMessage | Определяет структуру пакета |
IMessageHandler | Обрабатывает пакет на сервере или клиенте |
Вот пример кода для создания custom пакета:
public class MessageSyncEntityToServer implements IMessage {
private int entityId;
private NBTTagCompound entitySyncDataCompound;
public MessageSyncEntityToServer() {}
public MessageSyncEntityToServer(int parEntityId, NBTTagCompound parTagCompound) {
entityId = parEntityId;
entitySyncDataCompound = parTagCompound;
}
@Override
public void fromBytes(ByteBuf buf) {
entityId = ByteBufUtils.readVarInt(buf, 4);
entitySyncDataCompound = ByteBufUtils.readTag(buf);
}
@Override
public void toBytes(ByteBuf buf) {
ByteBufUtils.writeVarInt(buf, entityId, 4);
ByteBufUtils.writeTag(buf, entitySyncDataCompound);
}
}
В следующем разделе мы будем создавать custom меню, GUI и визуальные эффекты для вашего мода.
Создание Custom Меню, GUI и Визуальных Эффектов
В этом разделе мы рассмотрим, как создать custom меню, GUI и визуальные эффекты для вашего мода.
Создание Класса для GUI
Чтобы создать GUI для вашего мода, вам нужно создать класс, который наследуется от net.minecraft.client.gui.screen.Screen
. Это абстрактный класс, который является базовым для каждого экрана в Minecraft.
Регистрация Фабрики GUI
После создания класса для GUI, вам нужно зарегистрировать фабрику GUI, чтобы Minecraft мог найти и инициализировать ваш GUI.
Добавление Элементов GUI
Затем вам нужно добавить элементы GUI, такие как кнопки, текстовые поля и другие компоненты, которые будут отображаться на экране. Вы можете использовать различные методы для добавления элементов GUI, такие как addButton
или addTextField
.
Связывание GUI с Конфигурацией Мода
Наконец, вам нужно связать GUI с конфигурацией мода, чтобы изменения, сделанные в GUI, влияли на игровой процесс.
Типы GUI
Тип GUI | Описание |
---|---|
Screen |
Базовый класс для каждого экрана в Minecraft |
GuiButton |
Класс для создания кнопок в GUI |
GuiTextField |
Класс для создания текстовых полей в GUI |
В следующем разделе мы будем рассматривать, как отладить и оптимизировать ваш мод.
Отладка и оптимизация вашего мода
Отладка и оптимизация вашего мода - это важный шаг в обеспечении гладкого геймплея для игроков. В этом разделе мы рассмотрим лучшие практики для идентификации и исправления ошибок в вашем моде.
Идентификация ошибок
При отладке вашего мода важно идентифицировать корень проблемы. Один из самых распространенных ошибок - это NullPointerException (NPE). Это ошибка происходит, когда ваш мод пытается получить доступ к null-объекту, что приводит к краху игры. Чтобы изолировать проблему, вы можете использовать различные инструменты отладки, такие как:
Инструмент отладки | Описание |
---|---|
Серверные логи | Проверьте серверные логи на ошибки, которые могут помочь вам идентифицировать проблему. |
Клиентские логи | Анализируйте клиентские логи, чтобы увидеть, есть ли какие-либо ошибки или предупреждения, связанные с вашим модом. |
Инструменты отладки | Используйте инструменты отладки, такие как те, которые упоминаются в subreddit r/feedthebeast, чтобы помочь изолировать ошибки модов, особенно NullPointerExceptions. |
Оптимизация производительности
Оптимизация производительности вашего мода критически важна для обеспечения гладкого геймплея. Вот несколько советов, чтобы помочь вам оптимизировать ваш мод:
Совет | Описание |
---|---|
Оптимизация кода | Оптимизируйте ваш код, уменьшив количество ненужных вычислений и улучшая эффективность алгоритмов. |
Управление ресурсами | Управляйте ресурсами эффективно, загружая и выгружая активы по мере необходимости. |
Многопоточность | Используйте многопоточность, чтобы выполнять задачи в фоне, уменьшив нагрузку на основной поток. |
Общие ошибки, которые нужно避ать
При отладке и оптимизации вашего мода есть несколько общих ошибок, которые нужно避ать:
Ошибка | Описание |
---|---|
Чрезмерная зависимость от инструментов отладки | Хотя инструменты отладки важны, чрезмерная зависимость от них может привести к ленивым практикам кодирования. |
Игнорирование серверных логов | Игнорирование серверных логов может привести к пропущенным ошибкам и нерешенным проблемам. |
Плохая организация кода | Плохая организация кода может сделать его трудным для понимания и исправления ошибок. |
В следующем разделе мы рассмотрим, как поделиться вашим модом с сообществом и получить обратную связь от игроков.
Поделиться модом с сообществом
Теперь, когда вы создали удивительный мод, пришло время поделиться им с сообществом Minecraft! В этом разделе мы рассмотрим лучшие практики для упаковки и распространения вашего мода, а также как взаимодействовать с сообществом для получения обратной связи и сотрудничества.
Выбор платформы
Когда речь идет о распространении вашего мода, у вас есть несколько вариантов платформ для хостинга и распространения вашей работы. Два популярных варианта - это CurseForge и Github. CurseForge - это платформа для моддинга Minecraft, позволяющая легко загружать и управлять вашими модами, а также взаимодействовать с другими моддерами и игроками. Github, с другой стороны, - это более общая платформа для открытых проектов, которая может быть полезна, если вы хотите поделиться кодом вашего мода с другими.
Платформа | Описание |
---|---|
CurseForge | Платформа для моддинга Minecraft, идеальная для распространения и управления вашими модами. |
Github | Общая платформа для открытых проектов, подходящая для распространения кода вашего мода. |
Подготовка мода к распространению
Перед тем, как поделиться вашим модом, убедитесь, что онproperly упакован и готов к распространению. Это включает:
- Создание ясного иconcise описания вашего мода, включая его функции и требования.
- Включение инструкций по установке и любых необходимых файлов конфигурации.
- Убедитесь, что ваш мод совместим с последней версией Minecraft и Forge.
Взаимодействие с сообществом
Поделиться модом - это только первый шаг - взаимодействие с сообществом является критически важным для получения обратной связи, исправления ошибок и улучшения вашего мода. Вот несколько советов для взаимодействия с сообществом:
- Отвечайте на комментарии и сообщения от игроков, решая любые проблемы или вопросы, которые они могут иметь.
- Поощряйте обратную связь и предложения от игроков, используя это для улучшения и обновления вашего мода.
- Сотрудничайте с другими моддерами и разработчиками, чтобы создавать новый контент и функции.
Следуя этим лучшим практикам, вы сможете успешно поделиться вашим модом с сообществом Minecraft и построить лояльное сообщество игроков и фанатов.
Заключительные мысли о моддинге Forge
В этом заключительном разделе мы подведем итоги нашего полного руководства по моддингу Minecraft 1.11 с Forge. Мы рассмотрели все аспекты создания модов, от настройки пространства моддинга до продвинутых функций и отладки.
Ключевые моменты
Вот несколько ключевых моментов, которые мы хотели бы подчеркнуть:
- Моддинг Minecraft 1.11 с Forge - это мощный инструмент для создания уникального геймплея и расширения возможностей игры.
- Создание модов требует знаний Java и программирования, поэтому не забывайте практиковаться и учиться.
- Отладка и оптимизация вашего мода важны для обеспечения гладкого геймплея и высокой производительности.
- Поделиться вашим модом с сообществом и получать отзывы от игроков - это важный шаг в создании успешного мода.
Продолжайте экспериментировать
Моддинг Minecraft 1.11 с Forge - это только начало вашего пути в создании уникальных модов. Продолжайте экспериментировать, учиться и создавать новые и интересные вещи. Не забывайте делиться своими модами с сообществом и получать отзывы от игроков, чтобы улучшать и развивать свои навыки.
Благодарность
Спасибо за то, что прочитали наше руководство по моддингу Minecraft 1.11 с Forge. Мы надеемся, что оно было полезным и информативным для вас. Если у вас есть какие-либо вопросы или комментарии, пожалуйста, не стесняйтесь оставлять их ниже.
Ключевые моменты | Описание |
---|---|
Мощный инструмент | Моддинг Minecraft 1.11 с Forge - это мощный инструмент для создания уникального геймплея и расширения возможностей игры. |
Необходимые знания | Создание модов требует знаний Java и программирования. |
Отладка и оптимизация | Отладка и оптимизация вашего мода важны для обеспечения гладкого геймплея и высокой производительности. |
Обратная связь | Поделиться вашим модом с сообществом и получать отзывы от игроков - это важный шаг в создании успешного мода. |
1. Продолжайте экспериментировать
Моддинг Minecraft 1.11 с Forge - это только начало вашего пути в создании уникальных модов. Продолжайте экспериментировать, учиться и создавать новые и интересные вещи.
2. Делитесь с сообществом
Не забывайте делиться своими модами с сообществом и получать отзывы от игроков, чтобы улучшать и развивать свои навыки.
Дополнительные ресурсы по моддингу
В этом разделе мы предоставим дополнительные ресурсы для тех, кто хочет углубиться в моддинг Minecraft 1.11 с Forge и связаться с сообществом моддеров.
Документация и инструменты Forge
Вот несколько полезных ресурсов, которые помогут вам в моддинге Minecraft 1.11 с Forge:
- Minecraft Forge Documentation - официальная документация по Minecraft Forge, где вы найдете информацию о различных аспектах моддинга.
- CurseForge Maven Helper - инструмент, который поможет управлять зависимостями и сборкой вашего мода.
- Json Linter - инструмент для проверки синтаксиса JSON-файлов, который может помочь исправить ошибки в вашем моде.
Руководства и туториалы
Вот несколько полезных руководств и туториалов, которые помогут вам начать моддинг Minecraft 1.11 с Forge:
Ресурс | Описание |
---|---|
Bitshifting Tutorial | Руководство по битовой арифметике, которое поможет понять, как работать с битами в Java. |
JEI Discord | Сервер Discord, где вы можете задать вопросы и получить ответы от опытных моддеров. |
Сообщества моддеров
Вот несколько сообществ моддеров, которые могут помочь вам в вашем путешествии по моддингу Minecraft 1.11 с Forge:
Ресурс | Описание |
---|---|
MinecraftModDevelopment/Modding-Resources | Репозиторий GitHub, где вы найдете различные ресурсы и руководства по моддингу Minecraft. |
Modding-Resources/dev_pins.md | Список полезных ресурсов для моддеров, включая руководства, документацию и инструменты. |
Надеемся, что эти ресурсы помогут вам в вашем путешествии по моддингу Minecraft 1.11 с Forge. Удачи!
Часто задаваемые вопросы
Как начать кодировать моды для Minecraft Forge?
Вот простые шаги, чтобы начать:
1. Создайте папку для проекта в C:/Users/Ваше_имя/Documents.
2. Загрузите "исходное распределение" Minecraft Forge.
3. Скопируйте ключевые файлы в папку проекта.
4. Импортируйте проект Gradle.
5. Укажите JDK.
6. Настройте рабочее пространство.
7. Настройте параметры запуска.
После этих шагов вы сможете начать кодировать моды для Minecraft Forge. Ознакомьтесь с официальной документацией Forge, чтобы узнать больше о моддинге.
Дополнительные ресурсы для изучения моддинга
Вот несколько полезных ресурсов:
Ресурс | Описание |
---|---|
Minecraft Forge Documentation | Официальная документация по Forge |
CurseForge Maven Helper | Инструмент для управления зависимостями и сборкой мода |
Json Linter | Инструмент для проверки синтаксиса JSON-файлов |
Bitshifting Tutorial | Руководство по битовой арифметике в Java |
JEI Discord | Сервер Discord для вопросов по моддингу |
MinecraftModDevelopment/Modding-Resources | Репозиторий с ресурсами по моддингу на GitHub |
Modding-Resources/dev_pins.md | Список полезных ресурсов для моддеров |
Эти ресурсы помогут вам в изучении моддинга Minecraft 1.11 с Forge. Удачи!