Minecraft Forge или майнкрафт фордж это очень важное дополнение, при его помощи в игру устанавливаются моды. Это универсальный инструмент для добавления модов в игру, вы вставляете моды в папку, а майнкрафт фордж помещает их прямиком в игру.
Фордж умеет отслеживать проблемы с модами, если вы удалили моды, а на карте остались блоки из мода, фордж это заметит и заменит их на стандартные игровые. За много лет разработки фордж превратился в своеобразный язык программирования для модов, что позволяет устанавливать в игру 100-200 модов без проблем и конфликтов между ними.
Специально устанавливать фордж не нужно, но если выбранный вами мод требует его (95% всех модов требуют майнкрафт фордж), то это будет указано, без этого дополнения моды просто не будут работать, в игре просто не будет мода.
В данной новости вы сможете скачать фордж для большинства версий майнкрафта.
Как установить Minecraft Forge?
Готово, если не поняли, смотрите подробное видео:
Скачать Minecraft Forge (майнкрафт фордж):
Для версии 1.4.7 — Скачать [1,6 Mb]
для версии 1.4.6 — Скачать [1,65 Mb]
для версии 1.4.5 — Скачать [1,49 Mb]
для версии 1.4.4 — Скачать [1,49 Mb]
для версии 1.4.2 — Скачать [1,43 Mb]
Minecraft Fabric vs Forge: ¿Cuál es el mejor cargador de mods? (11.14.21)
Como la mayoría de los jugadores saben, Minecraft es altamente compatible con modificaciones. Los usuarios pueden descargar e implementar fácilmente mods para Minecraft. Estos mods son útiles por varias razones diferentes. Algunos están destinados a ayudar a los jugadores a mejorar el rendimiento de Minecraft, mientras que otros están destinados a agregar más al juego.
Los jugadores necesitarán un lanzador para ejecutar la mayoría de los mods de Minecraft. Desafortunadamente, no hay un lanzador de mods oficial para el juego. Sin embargo, todavía hay muchas opciones excelentes para que los jugadores elijan. Dos de los lanzadores de mods más populares disponibles para el juego son Forge y Fabric.
Lecciones populares de Minecraft
Minecraft Forge, más comúnmente conocido como Forge para abreviar, es una API open-img que se usa para modificar. Forge fue lanzado un par de años después del lanzamiento de Minecraft. La fecha de lanzamiento oficial del popular lanzador de Minecraft es el 30 de julio de 2011. Forge tiene un gran éxito gracias a su compatibilidad y facilidad de uso. La mayoría de los jugadores de Minecraft utilizan el popular lanzador para cargar sus modificaciones y el propio Minecraft.
¿Qué es Fabric?
Fabric es un cargador de mods más nuevo para Minecraft que ya se ha vuelto muy famoso en la comunidad de modding de Minecraft. Muchos usuarios de mod ahora prefieren Fabric sobre otros cargadores de mod de Minecraft. El programa fue creado en 2016, sin embargo, no estaba disponible para uso público en ese entonces. El cargador se hizo compatible con el uso público 2 años después en 2018.
Fabric vs Forge. ¿Qué lanzador de mods de Minecraft deberías elegir?
Tanto Fabric como Forge son opciones excelentes para los jugadores interesados en usar mods. Aquí hay una comparación detallada entre ambos cargadores si tiene dificultades para elegir entre ellos.
Compatibilidad
Forge es compatible con la mayoría de las versiones de Minecraft. Sin embargo, los jugadores deben instalar una nueva actualización de Forge cada vez que se lanza una nueva versión de Minecraft. Forge también es un cargador creado exclusivamente para Minecraft, lo que significa que los jugadores no pueden usarlo para ejecutar otros juegos basados en Java.
Funcionalidad
Fabric es solo un programa que se usa para cargar mods para Minecraft y otros juegos basados en Java. No se puede utilizar para ningún propósito que no esté relacionado con modificaciones. El cargador también se puede usar para descubrir modificaciones para las muchas versiones diferentes de Minecraft.
Minecraft Forge, por otro lado, es un lanzador para el juego en sí. Los jugadores pueden usar Forge para ejecutar Minecraft, así como modificaciones para el juego. Esto hace que Forge sea una buena mejora con respecto al lanzador oficial de Minecraft.
Mods
Hay grandes mods exclusivos disponibles para ambos cargadores de mods. Sin embargo, como Fabric es relativamente más nuevo, la colección de modificaciones disponibles para él es un poco más pequeña en comparación con la colección disponible para Forge.
Video de Youtube: Minecraft Fabric vs Forge: ¿Cuál es el mejor cargador de mods?
Minecraft Wiki
Из-за новой политики Microsoft в отношении сторонних ресурсов, Minecraft Wiki больше не является официальной. В связи с этим были внесены некоторые изменения, в том числе и обновлён логотип вики-проекта. Подробности на нашем Discord-сервере.
Создание модификаций с помощью Forge/1.12+
В этой статье описывается создание модификаций на основе Minecraft Forge с использованием Eclipse для версий Minecraft с 1.12.
Содержание
Установка Forge Gradle [ ]
Не забудьте! Далее, все связанное с Java кодом мы будем делать в каталоге src\main\java, а остальное в src\main\resources.
Примечание! Для установки потребуется компьютер с минимальным объёмом ОЗУ от 4Гб! Если у вас недостаточно ОЗУ, добавьте необходимый объём из файла подкачки, но такой метод работает лишь на 64-битных системах.
Создание модификации [ ]
build.gradle [ ]
Это файл, который задает свойства проекта и его нужно немного подправить:
Если вы используете IntelliJ IDEA, то в конец build.gradle дополнительно добавьте это:
pack.mcmeta [ ]
Этот файл нужен для корректной работы игры с ресурсами модификации, такими как локализации, модели, рецепты, таблицы добычи и так далее. Заполняется следующим образом:
mcmod.info [ ]
Этот файл задаёт более подробную информацию о модификации и заполняется следующим образом:
Класс модификации [ ]
Данный класс создается в патче и является главным файлом, благодаря которому игра видит нашу модификацию. Заполняется следующим образом:
Класс блока [ ]
Для создания блока создайте класс с названием блока в стиле TutorialBlock в пакете патч.blocks и заполните его следующим образом:
Примечание регистрируемое имя и ключ локализации указывать только в нижнем регистре, используя при надобности нижнее подчёркивание!
Модель [ ]
Модель (которую, например, можно создать здесь) решает то, как наш блок будет выглядеть. Важно знать, что для блоков используется две модели. Одна задает вид блока, поставленного в мире, а вторая, его иконку в инвентаре. Это дает нам возможность сделать блоку отдельную иконку для инвентаря. Сами же модели для блока подключаются к нему как состояния, normal для блока в мире и inventory для его иконки в инвентаре. Поэтому для начала создадим файл идентификатор_блока.json в пакете assets.идентификатор_мода.blockstates, который и подключит наши модели.
Теперь подключим модели. Для этого создайте файл регистрируемое_имя.json в пакете assets.идентификатор_мода.models.block со следующим содержимым:
Теперь зададим иконку блока в инвентаре в пакете assets.идентификатор_модификации.models.block с именем идентификатор_блока.json со следующим содержанием:
Регистрация [ ]
Наш блок имеет текстуры и свойства, но его нужно зарегистрировать в игре. Создадим в пакете домен.автор.мод.init класс BlocksInit :
Предмет [ ]
Основное [ ]
Класс предмета [ ]
Для создания предмета создадим класс с именем TutorialItem:
Регистрация [ ]
Для регистрации предмета создадим класс ItemsRegister:
Модель [ ]
Примечание: название файла модели должно совпадать с RegistryName предмета
Minecraft Wiki
Из-за новой политики Microsoft в отношении сторонних ресурсов, Minecraft Wiki больше не является официальной. В связи с этим были внесены некоторые изменения, в том числе и обновлён логотип вики-проекта. Подробности на нашем Discord-сервере.
Создание модификаций с помощью Forge/1.9+
Здесь находятся инструкции по созданию модификаций, работающие для версии 1.9/1.10+
Содержание
Подготовка среды и настройка [ ]
Сначала подготовим среду для работы с кодом Minecraft.
Скачивание и Установка Forge [ ]
Собственно, для создания модификаций нужен Forge. Скачать его можно здесь. Лучше скачивать рекомендованную версию Mdk или Src. Ну и под вашу версию игры. У меня это 1.9.4/1.10. Теперь создайте любую папку там, где вам удобно (в примере это «C:\Users\jgj96\Desktop\Modding»), в ней будет находиться Forge и модификация. В эту папку распакуйте содержимое архива с Forge. Вы увидите следующее:
Далее я вам советую создать файл gradlew build.bat. С помощью этого файла мы сможем собрать (скомпилировать) нашу модификацию в jar файл. Когда вы его создали вы кликаем по нему ПКМ и выбираете ИЗМЕНИТЬ. И прописываете вот этот код:
И сохраняете. Всё теперь вы сможете собрать вашу модификацию. Но об этом поподробнее я расскажу в следующем уроке
Среда разработки [ ]
Первая предпочтительней, так как в отличие от второй команды, подготавливает рабочее пространство с возможностью просмотра исходного кода Minecraft во время разработки. То есть вы всегда сможете посмотреть, как работает генерация мира, анимация движений, применение эффектов и т. д. Таким образом можно создавать модификации, не опираясь на руководства, которых может и не быть на конкретную цель.
Перед выполнением команды проверьте, чтобы у вас в win+PauseBreak->Дополнительные параметры->Переменные среды: в JAVA_HOME был указан путь к папке «C:\Program Files\Java\jdk1.7.0_79» и в Path был указан путь к bin-папке java после точки с запятой «…;C:\Program Files\Java\jdk1.7.0_79\bin». Тогда всё благополучно заработает.
Настройка Eclipse [ ]
Настройка IntelliJ IDEA [ ]
Поздравляю! Вы успешно настроили среду для того, чтобы начать писать модификацию на ней.
Уроки [ ]
Урок 1. Директория [ ]
Теперь вы можете приступать к созданию своей первой модификации.
Урок 2. Главные классы (Main, Reference, Proxy) [ ]
Создание класса Main.
Приступим к написанию кода. Запишем ВНЕ тела, то есть над строчкой public class. [4] класса следующую строчку:
Этот класс был создан для того чтобы хранить всю самую основную информацию о модификации (имя, версия, Id, поддерживаемые версии, прокси и так далее). Но если вы хотите использовать своё имя для этого класса, да пожалуйста.
Создание класса Reference.
Давайте создадим папку reference и в этой папке создадим класс Reference. Вы можете спросить «А зачем мы создаём отдельные папки, а не создаём классы в основой?» А для того чтобы не путаться. Потому что, когда у вас большую модификацию создавать всё в одной папке будет неудобно.
С этим разобрались. Теперь в классe Reference в теле public static Reference <> в фигурных скобках пишем вот этот код:
Если не получается то просто скопируйте код выше.
Теперь сообщение об ошибке должно исчезнуть.
Создание инстанции и классов для Proxy.
Сейчас мы будем создавать прокси и инстанцию. Лучше создавать его в начале чтобы не заморачиваться в будущем, когда они нам понадобятся. Прокси и инстанция (экземпляр) нужны для создания мобов, регистрация собственных рендеров, звуков и др. Для создания инстанции добавьте в главный класс модификации Main и в тело public class Main<> вот этот код:
@Instance и @SidedProxy не забудьте импортировать. clientSide это сторона клиента, а serverSide это сторона сервера. У ваc появляется ошибка так как в классe Reference нет параметров CLIENTPROXY и COMMONPROXY. Значит переходим в класс Reference и в теле public class Reference<> после public static final String VERSION. пишем этот код:
com.name.testmod.proxy.ClientProxy это расположение класса СlientProxy, а com.name.testmod.proxy.CommonProxy это расположение класса CommonProxy.
Далее в этом теле пишем вот этот код:
Импортируем не хватающие параметры (если вы забыли они помечены красными волнами).
С классом ClientProxy мы закончили. Теперь переходим в класс CommonProxy. И в теле public class CommonProxy<> пишем тот же код который предоставлен выше. И не забывайте импортировать не хватающие параметры.
Теперь переходим в главный класс Main. И ниже после public static CommonProxy. но ещё главном теле пишем:


Если у вас остались красные линии, то до импортируйте не хватающие параметры(классы).
Урок 3. Блок [ ]
Чтобы создать блок необходимо создать основной класс блоков. Где будет храниться всё краткая информация о блоках. Значит сначала создаём папку init и в этой папке создавайте класс (можете использовать своё название) BlocksInit. Далее переходите в него и в теле public class BlocksInit<> в фигурных скобках (если вы ещё не поняли) пишите этот код:
Void значит что наш (объект, блок, предмет) это пустота.
В теле init() мы будем указывать краткие параметры нашего блока, в теле register() мы будем регистрировать блоки (если мы не зарегистрируем блок, то он просто не появиться в игре), в теле registerRedner() мы будем регистрировать рендеры для нашего блока.
Теперь мы можем написать наш блок.
Сначала в теле public class Blockinit<> пишем вот эту строчку:
Все параметры указываются через this. после точки идут уже наши параметры (прочность, устойчивость и т.д). А также можно сделать из главного класса, указывая их через точку после testblock = new test_block(); (до точки с запятой).
Итак, давайте поработаем над характеристиками блока. Основные эти:
Самое важное. Без этой строчки у блока не будет внутриигрового(нелокализированного) имени, он просто будет называться «tile.null.name».
Которая говорит в какой вкладке будет находиться блок в креативе (доступные также можно посмотреть через точку от CreativeTabs). Не забудьте про импорт.
Устанавливает прочность, то есть как долго блок будет ломаться.
Устанавливает взрывоустойчивость блока.
Устанавливает, что можно сломать блок киркой алмазного уровня, не ниже.
Также можно установить будет ли блок светиться. Чем больше число, тем светлее (вместо 0 пишете уровень света, создаваемого блоком, умноженное на 10; таким образом нужно вставить туда значение от 0 до 150 (150 означает уровень света 15, максимальное значение)).
Теперь этот класс можно будет сохранить. Не забывайте про импорт. Сейчас мы будем создавать класс в котором будет указаны все параметры регистрации блока и чтобы мы потом смогли добавить модель и текстуру блоку. В это вникать пока не надо, потому что мы создадим этот класс и больше его трогать не будем. Для начала создайте папку utils в пакете com.name.testmod и уже в этой папке создайте класс и назовите его BlockRegistry (вы можете использовать своё название). Далее в этом классе в теле public class BlockRegistry<> вставьте вот этот код:
Импортируйте не хватающие параметры (классы) тем самым исправляя все ошибки. Потом вы этот класс сохраняете и всё. Сейчас мы будем регистрировать наш блок в Forge. Теперь вы переходите в класс BlocksInit и в теле register() <> в фигурных скобках прописываем вот это:
В скобках() вы указываете не название класса (где храниться вся информация о блоке) а самое первое название которое мы указали в самом начале public static Block testblock; Далее в теле registerRender() <> в фигурных скобках прописываем вот это:
Теперь переходим в класс Main и теле preInit() <> напишите вот этот код:
Эта строка означает, что все блоки которые находятся в классе BlocksInit в теле init() будут загружаться. Дальше мы в классе Main в теле Init() <> пишем этот код:
Эти строки означают что все блоки которые зарегистрированы в классе BlocksInit в теле register(); будут загружаться.
Создание модели и текстуры.
Всё с моделями закончили теперь преступим к текстуре. Переходим в папку textures и создаём папку blocks (как вы уже догадались туда мы будем кидать все текстуры блоков) Я буду использовать свою текстуру блока. Можете её взять 
Теперь скопируйте файл, и назовите копию ru_RU.lang (собственно русский перевод). Внутри него измените название на русское, например:
Всё локализация сделана!
Ну вот и всё, блок создан. И теперь самый волнующий момент. Запускайте Minecraft с вашей модификацией! Но сначала сохраните все классы ( Ctrl-S ). Для запуска нужно нажать сверху зелёный круг с треугольником (или Ctrl-F11 ). После запуска посмотрите, есть ли ваша модификация в окне модификации (в главном меню), создайте новый мир в режиме креатив и найдите свой блок в креатив-инвентаре во вкладке блоки. Если он там есть, берется, ставится и ломается, то поздравляю: модификация добавляющая блок создана. 
Урок 4. Предмет [ ]
Ну вот мы и создали блок. Но ведь в Майнкрафте присутствуют не только блоки, но и предметы. Такие как еда, инструменты, в общем всё подряд, что обычно нельзя поставить на землю. Давайте создадим такой предмет. Начнём с обычного предмета.
Чтобы создать предмет необходимо создать основной класс предметов. Так же как мы делали с блоками. Где будет храниться всё краткая информация о предметах. Значит в пакете com.name.testmod.init создавайте класс (можете использовать своё название) ItemsInit. Далее переходите в него и в теле public class ItemsInit<> в фигурных скобках пишите тот же код который мы писали для блоков:
Теперь мы начинаем писать наш предмет.
Сначала в теле public class ItemsInit<> пишем вот эту строчку:
Сохраняем и закрываем класс. Теперь вы переходите в класс ItemsInit и в теле register() <> в фигурных скобках прописываем вот это:
Далее в теле registerRender() <> в фигурных скобках прописываем вот это:
Теперь переходим в класс Main и теле preInit() <> напишите вот этот код:
Дальше мы в классе Main в теле Init() <> пишем этот код:
Создание модели и текстуры. Так, теперь мы так же как и для блока будем создавать модель и текстуру. Переходим уже проводник Windows и в папке нашей модификации идём по scr → main → resources → assets → tm → models → item и в ней создаём файл testitem.json и в нём пишем:
Ну на русском вы пишите это уже в файле ru_RU и собственно его перевод.
Собственно вот мы и создали первый самый обычный предмет. В следующих уроках я расскажу как сделать инструменты, еду, или молоток как из Industrial Craft 2 который сможет раздрабливать предметы.
Урок 4.1 Инструмент (Кирка, Меч, Топор..) [ ]
В этом мини уроке я расскажу как добавить предмет кирку, меч или топор с мотыгой. Будет 2 примера это кирка и меч. Потому что инструменты создаются все почти одинаково. Для начала мы с вами создадим кирку.
ToolMaterial. это материал кирки. Мы указали IRON значит наша кирка будет иметь прочность железной кирки. Можно указать так же (GOLD, DIAMOND, EMERALD, WOOD, STONE). Но я так же покажу как сделать кирку со свой прочностью. А дальше указываем вкладку в креативе this.setCreativeTab(CreativeTabs.TOOLS); и указываем нелокализированное имя предмета this.setUnlocalizedName(«testpickaxe»); А чтобы сделать кирку со своей прочностью просто напишите это:
1000 значит что кирка или топор или мотыга будет иметь прочность 1000.
Потом в главном классе с предметами ItemsInit в теле register() <> пишем ItemRegistry.registerItem(testpickaxe); и в теле registerRender() <> пишем ItemRegistry.registerRender(testpickaxe); тем самым мы зарегистрируем нашу кирку.
Всё кирка готова, Теперь нужно, дать кирке имя, модель и текстуру. А об этом я рассказывал в прошлом уроке.
Вот и всё. Надеюсь вам понятно как создавать инструменты. И вы наверно поняли что это не так уж и сложно. Если есть какие то проблемы с текстурой или моделью то перечитайте прошлой урок.
Урок 4.2 Инструменты с прочностью (Молоток, Нож) [ ]
Итак, в этом уроке я расскажу как создать предмет с прочностью, да и ещё чтоб наш нож/молоток умел раздваивать предметы/резать. Прям как в Industrial Craft 2. Заинтересованы тогда давайте приступим.
Сначала как обычно в классе ItemsInit в теле ItemsInit() <> пишем:
И в теле Init() <> пишем:
Давайте разберёмся. @SubscribeEvent это вспомогательная команда. Параметр onCrafting() <> означает что действие будут происходить на верстаке. Я выделил одну часть кода надписью //Knife. В этой части кода у нас идёт все действия с определённым предметом. У нас это knife. Если вы ходите добавить такой же другой предмет чтобы он тратил прочность в верстаке, то просто скопируйте часть кода начиная с ItemStack item0 = event.craftMatrix ….до event.craftMatrix.setInventorySlotsContentss(i,k); и измените предмет на свой. Весь код должен будет выглядеть так:
После строчки //Hammer как вы возможно догадались это второй предмет. Но вам его не обязательно добавлять. Ну если конечно вы не хотите его добавить. Перед сохранением класса не забудьте импортировать недостающие классы. Теперь нам нужно указать крафт. Про создания базы для крафта смотрите урок 5. Значит в папке craft в классе CraftingRecipes в теле init() <> пишем крафт.
Вот и всё. Теперь вам осталось добавить только модель, текстуру и локализировать предмет. Об это подробнее смотрите в уроке 4.

Примерно вот так у вас должно получиться.
Урок 4.3 Еда/Напитки [ ]
В прошлых уроках вы научились создавать предмет, а теперь давайте создадим еду, чтобы наш персонаж был сыт и мог вкусненько поесть. Создадим класс для нашей еды, пусть будет мандарин. (если вы не умеете создавать классы и работать с предметом, то и посмотрите 4 урок.) Значит назовем наш класс FoodMandarinchik (можете назвать по своему). Ну а дальше уже по старинке:
isWolfFood — отвечает за то, может ли волк есть нашу еду.
amount — отвечает за количество восполняемого голода.
saturation — отвечает за длительность сытости.
Всё! Вам только осталось локализировать еду, сделать модель и текстуру. Если вы не знаете как это делать смотрите 4 урок.
Добавление эффекта при съедании.
Из кода видно, что если у игрока уровень голода больше 2, то мы добавляем игроку эффект зелья тошноты (id = 9), которое будет длится 5 секунд. Вы можете использовать любые Id эффектов. Все еда с эффектом готова.
Это вообще легко. Возвращаемся в наш класс еды и пишем:
Это анимация питья. ( DRINK )
Урок 5. Крафт [ ]
Собственно, у нас есть блок и предмет. Мы можем их держать в руках, а блок даже ставить. Но а если мы хотим достать их, играя в режиме Выживания? Тогда блок или предмет можно только найти или скрафтить.
Но перед тем как мы будем создавать крафты мы создадим в пакете com.name.testmod.crafts класс CraftingRecipes (повторяю, что можно использовать своё название). И в этом классе в теле CraftingRecipes <> пишем маленький код:
Тут как вы уже поняли мы будем писать все крафты. Но перед этим мы в главном классе Main должны написать, что эти крафты будут загружаться. Значит в главном классе Main в теле init() <> пишем:
Добавить крафт очень просто. Например я хочу скрафтить блок, положив во все верхние и нижние клетки камень, в оставшиеся боковые — гравий, а в середину — железный слиток, тогда я запишу вот это в тело метода init() <> в фигурных скобках запишу вот это:
Каждый предмет в крафте обозначается своим личным знаком(любым). Далее это записано как (‘X’), Blocks.GRAVEL То есть это означает, что X — это гравий, который является блоком. Соответственно знак (‘#’) — это слиток железа (который является предметом, а не блоком), а (‘Y’) — это блок камня. Если нужно, чтоб в ячейке крафта ничего не лежало, то вместо знака пишется пробел (Например » # » значит что посередине будет слиток железа, а по бокам ничего).
Если хотите создать крафт, который можно произвести в инвентаре, вместо «###», «XYX», «###» используйте » AA», «BC» соответственно.
Бесформенный крафт (то есть крафт, в котором можно располагать ингредиенты как угодно) опишите так:
Не забывайте про импорт.
То есть если вы положите в верстак/инвентарь 2 блока гравия и стрелу, то получите 4 блока Земли, покрытой травой.
Но можно не писать 2 раза GRAVEL можно просто после Blocks.GRAVEL поставить запятую и указать цифру от 1 до 9.
Если у блока/предмета есть несколько видов (например: дубовые, еловые, березовые доски и т. д.), то указав просто например: Blocks.PLANKS в крафте можно будет использовать любые доски!
Так же в майнкрафте, как мы знаем, присутствует переплавка одних предметов/блоков в другие. Рецепт такой переплавки создаётся всего одной строкой, которую можно писать в любом месте класса CraftingRecipes и тела init() <> :
Если у вас есть предмет который имеет прочность и вы хотите чтобы при его использовании (крафте) его прочность уменьшалась(если вы не знаете. что это такое то посмотрите #урок 4.2) то напишите этот код:
Урок 6. Вкладка в креативе [ ]
Ну вот вы написали мод, да? У вас есть блоки, предметы, даже некоторые предметы со своими свойствами. Но вы хотите поместить их куда-то в одно место. Вы хотите создать свою вкладку в креативе, и не знаете как это сделать. Делается всё довольно легко. И сегодня я расскажу как.
Создание вкладки. Всё мы создали главный класс. Теперь в этом класс в теле CreativeTabInit <> пишем:
А потом в теле Init () <> :
getTabIconItem указывает какая иконка будет во вкладке. getTranslatedTabLabel какое имя будет у вашей вкладки. Собственно всё, можете сохранять.
Добавление предмета или блока во вкладку.
Просто в вашем классе блока или предмета там где строка this.setCreativeTab(главный класс.ваша вкладка); вместо главный класс пишите CreativeTabInit а вместо ваша вкладка пишите TabTest (вашу вкладку). Всё очень просто и легко. Вот вы и добавили свою первую вкладку.
Урок 7. Компиляция [ ]
Что же, вы написали модификацию, она работает, но вы хотите чтобы он работал и просто на Minecraft. Давайте наконец его скомпилируем!
Компилировать модификацию очень просто.
Теперь запускаем его. После автоматического закрытия консоли модификация скомпилирована и находится в папке build/libs. Если для компиляции модификации требуется подключение дополнительных jar библиотек, то необходимо в корневой папке проекта (Modding) создать папку libs и поместить все необходимые файлы в неё.
Так же немного о build.gradle Вы можете его модифицировать так, чтобы jar-файл автоматически назывался как надо. Откройте его любым текстовым редактором. Вы можете изменить следующие строки, как захотите, например так:
Сохраните файл. Таким образом вы получите при компиляции файл Test Mod-1.0.jar
Урок 8. Генерация блоков в мире [ ]
Давайте разбираться. Весь код нам не нужен, а нужна лишь вот эта часть (а код копировать весь):
Цифра 0 означает вес для данного генератора. Тяжелые веса, как правило, опускаются до нижней части списка мировых генераторов (то есть они запускаются позже). Если не поняли о чём речь то просто оставьте 0 и всё. Не забывайте импортировать недостающее классы. И после этого сохраняйте генератор. Теперь переходим в класс Main и в теле Init() <> пишем:
Всё теперь можно запускать и смотреть результаты.
Урок 9. Моб [ ]
Дополнительные уроки [ ]
Дроп определённого предмета при разрушении блока [ ]
Всё очень просто. В конец класса созданного вами блока (перед последней фигурной скобкой) вставьте это, но при этом нельзя сделать дроп блока, только предмета:
То есть теперь при разрушении вашего блока из него выпадет алмаз. Вы можете написать, чтоб выпадало что угодно. Просто вместо return Items.diamond; напишите « return Items.getItemFromBlock(Blocks.); » (для блоков) или « return Items.; » (для предметов), а после ввода вами точки выпадет список возможных предметов или блоков.
Если хотите, чтоб выпадал не один предмет, а несколько, просто вставьте сразу после предыдущих строк
Тогда при разрушении выпадет 20 выбранных вами предметов или блоков. Всё очень легко и просто!
Разносторонняя текстура блока [ ]
Я буду использовать следующие текстуры: 





Для этого, добавьте такой код в тело класса:
И такой после конструктора класса:
Теперь в папку assets/ID модификации/resources/textures/blocks/ добавьте файлы с таким именем: _
В игре блок будет выглядеть так:

Важно то, что текстура северной и восточной (2 и 5) части блока отображается зеркально. Если вы не поняли, то поставьте блок ТНТ и посмотрите на части, где написано TNT. С одной стороны написано «TNT», а с другой — «ТИТ».
.jpg)
Обновление Forge [ ]
Чтобы обновить версию Forge, на который вы создаёте модификации, необязательно всё перекачивать.
Достаточно просто изменить build.gradle Так что если хотите обновить Forge откройте его любым редактором и найдите строчку
Там будет написана версия Forge, которая у вас сейчас, соответственно вам нужно всего лишь изменить значение на новое. Измените его на версию, до которой хотите обновить Forge (например на 1.9.4-10.12.0.1012 ) и сохраните файл. Далее запустите gradlew.bat с командой eclipse (то есть запустить bat-файл с кодом gradlew.bat eclipse ) и после завершения его работы ваша версия Forge обновлена!
Обновление ForgeGradle [ ]
Создание брони [ ]
Создание брони немного отличается от создания обычных предметов, точнее имеет свои особенности. Приступим.
Мы не будем создавать для каждого предмета свой отдельный класс, а создадим один универсальный, который опишет сразу шлем, нагрудник, штаны и ботинки. Начнём с регистрации переменных.
Шлем, нагрудник, штаны и ботинки соответственно. Теперь описываем эти переменные с помощью универсального класса. Естественно внутри метода preLoad()
Здесь вроде всё знакомо, мы даём нелокализированное имя каждому из предметов, а также текстуру. Но здесь мы посылаем ещё и две цифры в метод BestArmor. Вторая цифра отвечает за тип брони (0 — шлем, 3 — ботинки), назначение первой неясно, но в данном случае она роли не играет. Далее тоже ничего нового, просто зарегистрируем эти предметы в Forge. Сделать это нужно после описания переменных.
С главным классом работа окончена.
Теперь щелкаем по одной из ошибок и создаём новый класс BestArmor. Теперь «продолжаем» класс ItemArmor, то есть пишем extends ItemArmor после названия класса. Теперь в тело класса вставляем следующее:
Что ж, давайте разбираться.
Первая переменная, просто обозначает начало пути к текстуре брони. Все нужные текстуры можно спокойно извлечь из майнкрафта и отредактировать по желанию. Вот мои отредактированные текстуры: 





Давайте дальше разбираться с кодом: следующим идёт метод BestArmor(), в который мы посылаем из главного класса параметры id и armorType. Напомню: от armorType зависит, какая это часть брони. В нём мы посылаем информацию о том, какой материал брони. Я написал, что броня будет аналогична алмазной, но можно создать свой материал для брони и вписать его. Далее мы настраиваем вкладку в креативе. Потом мы ограничиваем максимальное количество данного предмета в одной стопке до одного, чтобы броня не «стакалась». В конце концов мы вызываем созданный нами метод setTextureName()
В этом нашем собственном методе происходит проверка, какая часть брони вызвала этот класс. И, если это был шлем, нагрудник или ботинки, то используется первая текстура, а если поножи, то вторая. Мы прибавляем к изначальному пути брони нужное окончание, чтобы в определённом случае грузилась одна текстура, а в другом — вторая.
Последний же метод перезаписывает метод супер-класса и указывает майнкрафту, что должна грузиться текстура по пути texturePath, который предварительно был отредактирован во втором методе.
Теперь можно запускать игру и убивать мобов в новых блестящих доспехах!
Свой материал для брони [ ]
Почти не отличается от создания собственного материала для инструмента.
В главном классе в любом месте, но вне каких-либо методов пишем:
Затем импортируем ArmorMaterial. Теперь разберём:
Вот и все. Теперь можно использовать этот материал для брони, например заменив ArmorMaterial.DIAMOND на BaseMyBestMod.BESTMAT
Генерация предметов в контейнерах натуральных структур [ ]
Итак, вы можете сделать так, чтобы ваш, или любой другой предмет/блок генерировался в сундуках сокровищницы. Для этого в методе preLoad() в главном классе вставьте следующее:
Разберемся в параметрах:
Атрибуты для моба [ ]
Если вы уже проверили моба, то заметили, что он двигается очень медленно. Чтобы исправить это и добавить атрибуты для моба добавьте в класс моба следующий код:
| Параметр | Описание |
|---|---|
| maxHealth | Максимальное здоровье |
| followRange | Дистанция, на которой моб будет преследовать кого-либо |
| knockbackResistance | Сопротивление к отбрасыванию |
| movementSpeed | Скорость движения |
| attackDamage | Сила атаки |
Интеллект для моба [ ]
Теперь моб будет просто двигаться, но ничего не делать. Для того, чтобы добавить ему интеллект создайте в класс моба следующий код:
Теперь в конструктор класса добавьте следующий код:
Первый аргумент метода «addTask» — приоритет назначения интеллекта, второй — сам интеллект. В примере используются следующие интеллекты: «Swimming», «AttackOnCollid», «Wander», «WatchClosest», «LookIdle», «HurtByTarget» и «NearestAttackableTarget». Разъяснение:
| Интеллект | Описание |
|---|---|
| Swimming | Может ли существо плавать? |
| AttackOnCollid | Базовый тип атаки, который используют зомби и пауки. |
| Wander | Существо будет ходить вокруг, когда никого не атакует. |
| WatchClosest | Ищет назначенное существо на заданном расстоянии. |
| LookIdle | Существо будет осматриваться, просто стоя. |
| HurtByTarget | Сделает целью какого-либо моба, который его ударил. |
| NearestAttackableTarget | Ищет любое существо, которое подходит по второму параметру. |
Свой скин при моддинге [ ]
Внимание! Этот способ работает только на лицензионной версии MineCraft
Чтобы при создании модификации вы видели свой скин, вместо стандартного скина Steve, нужно прописать 2 строчки в аргументах запуска.
После этого, при заходе в игру вы будете видеть свой скин.








