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

Материал из Minecraft Wiki
Перейти к: навигация, поиск

В этой статье описывается создание модификаций на основе Minecraft Forge с использованием Eclipse для версий с 1.12.

Установка Forge Gradle[править | править код]

Для установки перейдите на официальный сайт Forge и скачайте версию с пометкой MDK. Из загруженного архива извлеките папку gradle и файл build.gradle в папку с названием вашей модификации, остальные файлы и папки в архиве нам не нужны. Далее запустите Eclipse и импортируйте проект указав папку, в которую вы всё распаковали и после загрузки проекта выполните задачи setupDecompWorkspace из папки forgegradle и eclipse из папки ide. Теперь достаточно обновить проект и удалить два файла с расширением .launch, так как они относятся к устаревшим функциям и настроить папки ресурсов. Для настройки папок ресурсов создайте в корне проекта папку src, в ней main, а в ней две папки: java и resources. Далее выделите две последние папки и нажмите в контекстном меню Build path > Use as sourse folder.

Примечание! Для установки потребуется компьютер с минимальным объёмом ОЗУ от 6Гб!

Создание модификации[править | править код]

build.gradle[править | править код]

Это файл нашего проекта, его нужно немного подправить:

buildscript {

   repositories {
       jcenter()
       maven { url = "http://files.minecraftforge.net/maven" }
   }
   dependencies {
       classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT'
   }

}

apply plugin: 'net.minecraftforge.gradle.forge'

version = "версия" group = "домен.никнейм.идентификатор" //Родительский каталог archivesBaseName = "идентификатор"

sourceCompatibility = targetCompatibility = '1.8'

compileJava {

   sourceCompatibility = targetCompatibility = '1.8'

}

minecraft {

   version = "1.12.2-14.23.5.2768"
   runDir = "run"
   mappings = "snapshot_20171003"

}

dependencies {

}

processResources {

   inputs.property "Версия модификации", project.version
   inputs.property "1.12.2", project.minecraft.version
   from(sourceSets.main.resources.srcDirs) {
       include 'mcmod.info'
       expand 'version':project.version, 'mcversion':project.minecraft.version
   }
       
   from(sourceSets.main.resources.srcDirs) {
       exclude 'mcmod.info'
   }

}

runClient {

args = ["--username=Желаемый никнейм"]

   jvmArgs "-Xmx1G", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseG1GC", "-XX:G1NewSizePercent=20", "-XX:G1ReservePercent=20", "-XX:MaxGCPauseMillis=50", "-XX:G1HeapRegionSize=32M"
   

}

runServer {

   jvmArgs "-Xmx1G", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseG1GC", "-XX:G1NewSizePercent=20", "-XX:G1ReservePercent=20", "-XX:MaxGCPauseMillis=50", "-XX:G1HeapRegionSize=32M"
   

}

Pack.mcmeta[править | править код]

Этот файл нужно создать в папке ресурсов и нужен для корректной работы локализаций. Заполнять его нужно следующим образом:

{

  "pack": {
     "pack_format": 3,
     "description": "любой текст, нигде не отображается"
  }

}

mcmod.info[править | править код]

Этот файл содержит информацию о модификации и заполняется следующим образом:

[{

 "modid": "Идентификатор модификации",
 "name": "Название",
 "description": "Описание",
 "version": "${version}",
 "mcversion": "${mcversion}",
 "logoFile": "Путь к логотипу",
 "url": "Сайт модификации",
 "updateJSON": "Ссылка на файл с информацией о обновлениях",
 "authorList": ["Автор"],
 "credits": "Благодарности кому либо"

}]

Класс модификации[править | править код]

Cоздайте пакет, который указали родительским в build.gradle и в нём класс модификации. Заполните следующим образом:

@Mod(modid = IndustryExpansion.MOD_ID, name = IndustryExpansion.MOD_NAME, version = IndustryExpansion.MOD_VERSION, dependencies = IndustryExpansion.DEPENDENCIES, useMetadata = IndustryExpansion.USE_METADATA, acceptedMinecraftVersions = IndustryExpansion.MC_VERSION, modLanguage = IndustryExpansion.MOD_LANGUAGE, updateJSON = IndustryExpansion.UPDATE_URL) public class IndustryExpansion {

public static final String MOD_ID = "Идентификатор (без пробелов и только в нижнем регистре!)"; public static final String MOD_NAME = "Название"; public static final String MOD_VERSION = "Версия модификации"; public static final String DEPENDENCIES = "required-after:[email protected]версия forge, которую вы установили"; public static final boolean USE_METADATA = true; public static final String MC_VERSION = "[1.12]"; public static final String MOD_LANGUAGE = "java"; public static final String UPDATE_URL = "Ссылка на файл с информацией о обновлениях";

@EventHandler public void preInit(FMLPreInitializationEvent event) {

}

@EventHandler public void init(FMLInitializationEvent event) {

}

@EventHandler public void postInit(FMLPostInitializationEvent event) {

}

}