Крафт программ. Делаем свой мод - часть 1. Регистрация в Minecraft.
Благодаря посту «Путь от нуля до разработчика OpenComputers» я вспомнил, что сам тоже хотел сделать моды для Minecraft. Два раза я пытался установить всё необходимое, два раза Gradle ругался на отсутствие JDK.
Почему бы не попробовать ещё раз? К тому же, нашлась замечательная ссылка на документацию Forge: https://mcforge.readthedocs.io/en/latest/gettingstarted/ (спасибо @Totoro).
Итак, я раскопал на диске Gradle от 1.14 версии Minecraft и выполнил новую для себя команду gradlew genEclipseRuns . Жду… нет, ничего не завершается с ошибкой, Minecraft спокойно декомпилируется, и наконец появляется надпись «BUILD SUCCESSFUL». До такого этапа я раньше не доходил, поэтому решил выбрать, какую из своих идей реализовать.
Мне понравилась идея заводика, интегрированного с OpenComputers. Заводик импортирует в себя руду, перерабатывает (с помощью верстаков, печек, дробилок) и экспортирует готовый продукт. При этом каждую команду даёт компьютер из OpenComputers.
Как и положено по документации, я написал в файл TestMod.java:
package org.octechnics.octechnics;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
import net.minecraftforge.fml.common.Mod.EventBusSubscriber.Bus;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import net.minecraftforge.eventbus.api.SubscribeEvent;
@Mod( "octechnics" )
public class TestMod {
public TestMod() {
FMLJavaModLoadingContext.get().getModEventBus().register(this::setup);
MinecraftForge.EVENT_BUS.register(this);
}
@SubscribeEvent
public void setup(FMLCommonSetupEvent event) {
}
}
В файл mcmod.info (прямо внутри папки src/main/resources):
[
{
"modid": "octechnics",
"name": "OC Technic Factories",
"version": "1.0",
"description": "This mod adds factory blocks which can interact with OpenComputers.",
"mcversion": "1.14.3",
"authorList": ["ProgramCrafter"],
"credits": "Thanks eu_tomat for help with installing Forge"
}
]
Пишу gradlew build. Мод собирается. Закидываю его к другим модам, запускаю Minecraft 1.14. Запуск происходит очень спокойно, никакого мода по имени OCTechnics в списке не появилось.
Что делать? Правильно, искать другие моды под ту же версию (не важно, исходники или скомпилированные моды, главное, чтобы работали). Смотреть, где там лежат файлы и делать такие же файлы у себя.
Нашёлся некий файл pack.mcmeta. Пишем туда (спасибо IronChests):
{
"pack": {
"description": "OC Technic Factories Resources",
"pack_format": 4,
"_comment": "A pack_format of 4 requires json lang files. Note: we require v4 pack meta for all mods."
}
}
Кроме того, нужен ещё файл mods.toml:
modLoader="javafml"
loaderVersion="[27,)"
[[mods]]
modId="octechnics"
version="1.0.0"
displayName="OC Technic Factories"
authors="ProgramCrafter"
credits="Thanks eu_tomat for help with installing Forge"
description='''
This mod adds factory blocks (furnaces, crafting tables, etc) which can interact with OpenComputers.
'''
[[dependencies.octechnics]]
modId="forge"
mandatory=true
versionRange="[27,)"
ordering="NONE"
side="BOTH"
[[dependencies.octechnics]]
modId="minecraft"
mandatory=true
versionRange="[1.14.3]"
ordering="NONE"
side="BOTH"
На этом этапе я безуспешно пытался понять, какие ссылки (для проверки обновлений мода) сюда надо подключить. В конце концов просто удалил их все. Тогда в логах пропала ошибка MalformedURL, и мод стал опознаваться.
Итоговая схема расположения файлов:
src - main - java - org - octechnics - octechnics - TestMod.java
- resources - assets - octechnics - lang - en_us.json (пустой)
- META-INF - mods.toml
- mcmod.info
- pack.mcmeta
В следующей записи - создание базового блока для завода.
- 3
3 комментария
Рекомендуемые комментарии