eclipse для создания модов майнкрафт

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

Доброго времени всем читателям сайта! Данная статья будет посвящена небольшому туториалу «Как создать мод для minecraft 1.7.* с помощью Forge» Будет дано несколько основных уроков, после которых можно уже делать собственные модификации!

Подготовка всех компонентов:

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

Чтобы начать писать собственный мод, необходимо скачать и установить IDE (Среда разработки). Например, Eclipse или IntelliJ IDEA. Теперь нам нужно установить Forge, чтобы сразу можно было начать создание модификации. Для этого необходимо установить Java Development Kit (JDK), скачав с официального сайта Oracle.

Источник

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

В этой статье описывается процесс создания модификаций для Minecraft с использованием API Forge и Eclipse. Для создания даже простых модификаций требуется знание основ Java. Если во время создания модификаций возникнут вопросы или проблемы, не описанные здесь, опишите их на странице обсуждения.

Таблица готовности
Урок 1.6+ 1.7+ 1.9+ 1.10+ 1.12+ 1.14+
Блок Готов Готов Готов Готов Готов Не планируется
Предмет Готов Готов Готов Готов Приостановлено Не планируется
Крафт Готов Готов Готов Готов Приостановлено Не планируется
Компиляция Готов Готов Готов Готов Приостановлено Не планируется
Генерация Возможно Готов Готов Не планируется Приостановлено Не планируется
Прокси и инстанция Не планируется Готов Не планируется Не планируется Приостановлено Не планируется
Моб Возможно Готов Не планируется Не планируется Не планируется Не планируется
Блоки с моделью Возможно Возможно Не планируется Не планируется Приостановлено Не планируется
Доп. Уроки Всего: 3 Всего: 12 Всего: 10 Всего: 0 Всего:0 Всего:0

Общие сведения [ ]

Для создания модификаций в любом случае нужны JDK и Eclipse. Первая — это комплект разработчика Java и отличается от обычной Java тем, что имеет средства для компиляции/декомпиляции, несколько дополнительных библиотек и документацию. С 2019-го года ввиду изменений в лицензировании для загрузки JDK потребуется учётная запись Oracle. Также важно то, что Minecraft 1.12 не поддерживает Java ниже 7-й и выше 9-й включительно, тогда как 1.14 поддерживает практически все версии Java выше 8-го выпуска. Eclipse — это среда разработки, которая имеет поддержку синтаксиса нужного языка программирования, а также в ней был написан сам Minecraft.

Источник

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

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

Содержание

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

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

Forge [ ]

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

С 15 января 2020 года Maven больше не поддерживает протокол HTTP и требует использовать HTTPS, поэтому для создание модификаций под версию 1.7.10 необходимо в файле gradle/wrapper/gradle-wrapper.properties изменить значение параметра distributionUrl :

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  где найти командный блок в майнкрафте на телефоне без модов

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

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

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

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

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

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

Запуск [ ]

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

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

Источник

[1.5.2] [Tutorial] [Forge] Уроки по созданию мода, 1-4 глава

Как же все таки начать писать мод?

import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.Init;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.Mod.PostInit;
import cpw.mods.fml.common.Mod.PreInit;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.NetworkMod;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;
import cpw.mods.fml.common.network.NetworkMod.SidedPacketHandler;
import cpw.mods.fml.common.SidedProxy;
@Mod (modid = «TestMod», name = «Test Mod», version = «0.0.1»)
@NetworkMod (clientSideRequired = true, serverSideRequired = false, versionBounds = «1.0.0»)

public class TestModBase <

@Instance(«TestModID»)
public static TestModBase instance;

@Init
public void load(FMLInitializationEvent event)
<
>

@PreInit
public void preLoad(FMLPreInitializationEvent event)
<
>

@PostInit
public void postLoad(FMLPostInitializationEvent event)
<
>
>

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.creativetab.CreativeTabs;

public class TestBlock extends Block <

public TestBlock(int par1)
<
super(par1, Material.ground);//Материал
this.setCreativeTab(CreativeTabs.tabTools);//Добавляем в креатив
>
//Регистрируем текстуру
@Override
public void registerIcons(IconRegister par1IconRegister)
<
this.blockIcon = par1IconRegister.registerIcon(«testmod:testBlock»);
>
>

import net.minecraft.item.Item;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.creativetab.CreativeTabs;

public class TestItem extends Item
<
public TestItem(int par1)
<
super(par1);
setCreativeTab(CreativeTabs.tabTools);
>

//Регистрация текстуры для итема немного отличается от блока
@Override
public void registerIcons(IconRegister par1IconRegister)
<
this.itemIcon = par1IconRegister.registerIcon(«testmod:testItem»);
>
>

\Tutorial Forge 1.5.1\mcp744\src\minecraft\mods\testmod\textures\blocks\testBlock.png

@Override
public void registerIcons(IconRegister par1IconRegister)
<
this.itemIcon = par1IconRegister.registerIcon(«testmod:testItem»);
>

Источник

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

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

Содержание

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

Данное руководство написано для работы со средой Eclipse под Windows.

Подготовка Forge [ ]

Перед началом создания вашей модификации необходимо получить исходные файлы Forge, которые доступны на сайте https://files.minecraftforge.net/. По скольку эта вики-страница посвящена разработке модификаций под версию 1.6.*, то, соответственно, скачайте какой-нибудь исходник из диапазона версий 1.6.1-1.6.4. Очень важно определить среди них рабочие сборки. На это может уйти некоторое время, но если вы очень сообразительный читатель, то вероятно, вам не составит особого труда ввести в поисковике запрос на подобие «minecraft forge 1.6.4 source download» и скачать рабочие исходники Forge, уже найденные за вас другими людьми.

Если вы всё сделали правильно, то теперь вы можете открыть окно команд в корневой директории разархивированного Forge (или перейти в неё из командной строки), после чего последовательно ввести 2 простенькие команды:

Первая команда заставляет gradlew выполнить задачу setupDecompWorkspace, которая (как это можно понять из названия) начнёт что-то декомпилировать. Но что? Правильно — Minecraft! Именно поэтому процесс выполнения этой задачи достаточно долгий и вам надо будет немного потерпеть. Это как перевести учебник по квантовой механике с корейского на русский. Не думаю, что вы бы справились с этой задачей за пару секунд…

Вторая задача, посылаемая gradlew создаёт директорию в корневой папке Forge под названием «eclipse», которую придётся указать в качестве пути к будущему рабочему пространству в Eclipse. Эта команда необходима, если вы хотите включить поддержку декомпилированных файлов Minecraft в Eclipse.

Если по каким-то причинам у gradlew не получилось завершить хотя бы один из вышеперечисленных процессов, то, вероятнее всего, всё дело в сборке Forge. Поищите другую, их достаточно много.

На этом подготовка Forge закончена.

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

После установки и запуска Eclipse вам нужно будет выбрать рабочую среду, в которой будут содержаться как исходники вашей модификации, так и исходники Forge. Укажите в поле для ввода путь к папке «eclipse», находящуюся в корневой директории, ранее вами разархивированного Forge.

В идеальном случае, после нажатия клавиши Enter, перед вами появится ваша будущая рабочая область, в иерархии которой будет свёрнутая папка «Minecraft» без каких-либо пугающих значков сбоку от неё, вроде восклицательного знака. Это будет означать то, что вы всё сделали правильно. Иначе — всё дело либо в вас, либо в сборке Forge.

Читайте также:  тинькофф драйв кредитная карта условия начисления бонусов

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

Урок 1. Ваш пакет [ ]

Теперь когда вы разобрались с Forge и Eclipse, можно приступать к подготовке вашего мод-пакета.

Откройте свёрнутую папку Minecraft в Eclipse. В самом её начале будет пакет src/main/java.

Для того, чтобы в Java что-то заработало вам в любом случае придётся создать свой класс. То же самое и с модификациями.

Создайте пакет в пакете. Это делается просто: правой кнопкой мыши нажмите на вышеназванный пакет и выберите из выпадающего списка поле «New» или «Создать» (в зависимости от вашей локализации среды), после чего выберите из другого выпадающего списка пункт «Package» или «Пакет». Всё что вам потребуется — ввести название вашего будущего пакета. Вот несколько примеров:

Можете поэкспериментировать с другими названиями.

После этих несложных действий вам потребуется создать класс вашей модификации. Повторите всё то же самое, но замените src/main/java на название вашего пакета и вместо «Package»/«Пакет» выберите «Class»/«Класс».

Я рекомендую называть классы с больших букв: NameOfYourMod.class, но это не принципиально.

Итак, ваш мод-пакет и основной мод-класс готовы! А теперь самое интересное…

Урок 2. Мод-класс [ ]

Итак, вот что вы должны написать в конце этого урока в вашем основном классе:

Давайте же разберём этот код.

Строчка выше задаёт параметры вашего будущего мод-файла (заметьте, не класса и не пакета). Этот файл просто необходим для идентификации вашей модификации Forg’ем.

Если на этой строчке у вас появилась ошибка, не спешите паниковать, это нормально. Всё равно код пока ещё не рабочий.

Эта строчка значит, что ваш главный класс является публичным или, грубо говоря — общедоступным. То есть вы можете создать в нём какую-нибудь переменную и получить к ней доступ из другого класса. Скоро мы поговорим об этом чуть более подробно.

Эти две записи задают значения переменным вашего мод-файла. Думаю здесь комментарии излишни.

И наконец эти последние строчки являются корневыми для вашего мод-класса. Поясню лишь то, что функция init() — это основная функция в этом документе.

Итак, после успешного написания кода просто нажмите Ctrl + Shift + O и в ваш класс импортируются все недостающие пакеты, требуемые для корректной компиляции.

Теперь нажимайте на зелёно-белую иконку «Play» и радуйтесь тому, что у вас не вылетела игра. 🙂

Если из этого урока у вас остались вопросы, не переживайте! Скоро мы их все разберём.

Урок 3. Блок [ ]

Теперь, когда у вас есть шаблон основного мод-класса вы можете начать творить.

Для начала создайте переменную типа Block перед вызовом основной функции init().

Далее вам потребуется её описать. Это мы сделаем в init().

Если вы всё сделали правильно, то вы увидите ошибку, которая будет означать отсутствие класса TestBlock. Я думаю вы поняли что вам нужно сделать. 😉

Теперь замените в созданном классе всё на этот небольшой код (ниже я объясню его работу).

Вначале к public class TestBlock добавляется extends Block. Это значит, что вы собираетесь добавить к Minecraft-блокам свой блок.

Дальше вы создаёте конструктор вашего блок-класса. Не спрашивайте зачем, это уже ООП. 🙂

Ну а теперь вы задаёте свойства блока. На самом деле их куда больше. Вы можете их увидеть, просто написав «this.» в этой же части кода.

hardness — это параметр, отвечающий за длительностью разрушения блока. Например, у булыжника он равен 2.0F, а у обсидиана 50.0F. Тем самым, чтобы сломать булыжник рукой вам потребуется 10 секунд, а чтобы сломать обсидиан понадобится уже 250 секунд. Правда вам ничего не выпадет, что кстати тоже можно поправить… но об этом в дополнительных уроках.

lightValue — это параметр, отвечающий за свечение блока.

resistance — это параметр, который определяет устойчивость к взрывам. Для примера, у обсидиана этот параметр равен 2000.0F.

Ну а теперь, пожалуй, вернитесь в вашу основную функцию init() и кое-что допишите.

И, наконец, последний штрих — создайте текстуру вашего блока. Скачайте Paint.NET или какой-нибудь другой графический редактор с удобным редактированием маленьких изображений (8×8, 16×16) и нарисуйте что-нибудь.

Помните про Ctrl + Shift + O.

Теперь запускайте игру и радуйтесь. Вы создали свой СОБСТВЕННЫЙ блок!

Урок 4. Предмет [ ]

Ну вот мы и создали блок. Но ведь в Майнкрафте присутствуют не только блоки, но и предметы. Такие как еда, инструменты, в общем всё подряд, что обычно нельзя поставить на землю. Давайте создадим такой предмет. Например инструмент кирку, почему бы и нет?

Перейдем в главный класс мода. До метода Load() сразу после public static Block bestblockever; допишите

Тем самым мы создадим переменную типа Item с кодовым названием кирки.

В методе Load() для удобства отступите одну строку от того что уже написано, и пишите туда следующее: (Я сразу напишу всё, что нужно, многие элементы описания предмета совпадают с описанием блока, особой разницы нет)

Итак, мы создали кирку с ID 1001, зарегистрировали в Forge и локализировали название. Щелкнув по ошибке создадим класс этой кирки. Класс создан, но Eclipse не знает, что мы хотим создать еду или инструмент, поэтому сделаем этот класс наследником класса, где написано про инструмент или еду или что хотите, главное, что про предмет, а не блок. В строчке public class BestPickAxe< после BestPickAxe допишите extends ItemPickaxe и импортируйте этот самый ItemPickaxe. Теперь, не исправляя появившуюся ошибку вставьте в тело это:

Тогда ошибка исчезнет. Строка super(par1, EnumToolMaterial.EMERALD); говорит о том, что пошлёт в супер-класс информацию о том, что кирка обладает свойствами алмазной кирки а также имеет ID 1001, которая передаётся через par1 сюда из главного класса. Ну и также допишем после этой строчки

Читайте также:  1 овд г якутска код подразделения

тем самым добавив кирку в раздел инструменты в Creative.

Напишите это в классе BestPickAxe после метода BestPickAxe() (То есть перед последней фигурной скобкой). И можно запускать для проверки.

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

Урок 5. Крафт [ ]

Собственно, у нас есть блок и предмет. Мы можем их держать в руках, а блок даже ставить. Но а если мы хотим достать их, играя в режиме Выживания? Тогда блок или предмет можно только найти или скрафтить. Добавить крафт очень просто, поэтому урок короткий. Например я хочу скрафтить блок, положив во все верхние и нижние клетки железные слитки, в оставшиеся боковые — гравий, а в середину — обсидиан, тогда я запишу вот это в тело метода Load главного класса:

Не забудьте ничего импортировать (Item в net.minecraft.item).

Давайте разберем, что тут написано: Итак с помощью GameRegistry мы добавляем новый рецепт, new itemStack значит, что создастся новая стопка с предметом bestblockever который объявлен в классе BaseMyBestMod в количестве одной штуки (вместо 1 можно вписать любое число до 64). А далее уже записана сетка крафта. Как мы помним в верстаке мы видим всего 9 клеток, здесь первая строка верстака это «###», вторая строка — это «XYX», ну и последняя — «###». Понятней будет, если посмотреть вот так:

Каждый предмет в крафте обозначается своим личным знаком(любым). Далее это записано как Character.valueOf(‘X’), Block.gravel То есть это означает, что X — это гравий, который является блоком. Соответственно знак # — это слиток железа (который является предметом, а не блоком), а Y — это блок обсидиана. Если нужно, чтоб в ячейке крафта ничего не лежало, то вместо знака пишется пробел (Например » # » значит что посередине будет слиток железа, а по бокам ничего).

Добавить рецепт крафта можно не только вашему блоку или предмету. Можно вписывать вместо BaseMyBestMod.bestblockever или Block.obsidian что угодно, главное что бы после точки была указана зарегистрированная переменная типа Block или Item. А до точки — это просто путь к этой переменной.

Если хотите создать крафт, который можно произвести в инвентаре, вместо «###», «XYX», «###» используйте «AA», «BC» соответственно.

Бесформенный крафт (то есть крафт, в котором можно располагать ингредиенты как угодно) опишите так:

То есть если вы положите в верстак/инвентарь 2 блока гравия и стрелу, то получите 4 блока Земли, покрытой травой.

Урок 6. Компиляция [ ]

Ну что ж, мы написали мод. Он работает и всё ок, но как же играть с ним вне Eclipse? Для этого нужно его компилировать. Приступим.

Зайдите в папку с MCP, у меня эта папка D:\MCModding. В ней запустите файл recompile.bat После того, как он завершит работу запустите reobf.bat Если всё получилось то в папке reobf вы увидите папку Minecraft а в ней папку platon и так далее. Но вот проблема: при компиляции он не видит текстуры и прочее не относящееся к коду. Чтоб это исправить, зайдите в MCP\src\minecraft и скопируйте оттуда папку assets в папку MCP\reobf\Minecraft Внимание: в папке assets должны быть только ваши папки с названием модов (если их несколько). То есть никакой папки forge быть не должно. удалите её. Собственно теперь папки assets и platon обведите и добавьте в zip-архив. Теперь мод можно помещать в папку mods вашего Minecraft.

Поздравляю, мод откомпилирован, полностью создан и готов к применению.

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

Дроп определённого предмета при разрушении блока [ ]

Всё очень просто. В конец класса созданного вами блока (перед последней фигурной скобкой) вставьте это:

То есть теперь при разрушении вашего блока из него выпадет алмаз. Вы можете написать, чтобы выпадало что угодно. Просто вместо return Item.diamond.itemID; напишите «return Block.» или «return Item.», а после ввода вами точки выпадет список возможных предметов или блоков.

Если хотите, чтобы выпадал не один предмет, а несколько, просто вставьте

Тогда при разрушении выпадет 20 выбранных вами предметов или блоков.

Свой материал для инструмента [ ]

Допустим вы хотите, чтобы ваш инструмент обладал свойствами не железной/алмазной кирок из Minecraft, а собственными.

Тогда где-нибудь (вы можете где угодно написать эту строку, главное, чтобы можно было вызвать), например в главном классе вне каких либо методов (то есть можно перед последней фигурной скобкой), напишите:

Не забудьте про импорт. Давайте разберёмся: static означает, что переменная NEWMAT типа EnumToolMaterial доступна из других классов. Затем приравнивается значению, которое и даст вашей кирке определенные свойства. Теперь об аргументах, перечисленных через запятую:

Что ж, теперь можно придать какому-нибудь инструменту эти свойства, для этого в инструменте (например в нашей кирке) измените super(par1, EnumToolMaterial.EMERALD); на super(par1, BaseMyBestMod.NEWMAT); В таком случае вы отправляете в супер-класс инструмента информацию о том, что свойства описаны переменной NEWMAT типа EnumToolMaterial, которая описана в классе BaseMyBestMod (или любой другой класс, где она написана).

Вот и всё, свойства инструмента изменены.

Локализация названий в игре [ ]

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

Источник

Компьютерный онлайн портал