MinecraftForgeのMOD開発環境構築した
動機
FatCatModをv1.12対応しようと思い、MinecraftForgeのビルド環境を構築した
手順
1. MinecraftForgeのビルド環境を構築
情報は豊富にあるので割愛
2. IntelliJのマルチプロジェクト構成で構築
ディレクトリ構成
MinecraftForge直下にMODのプロジェクトを配置
├── forge-1.12.2-14.23.4.2703-mdk │ ├── CREDITS-fml.txt │ ├── FatCatMOD │ │ ├── FatCatMOD │ │ ├── FatCatMOD.iml │ │ ├── LICENSE.txt │ │ ├── README.md │ │ ├── build.gradle │ │ ├── src │ │ └── work │ ├── LICENSE-new.txt │ ├── MinecraftForge-Credits.txt │ ├── Paulscode\ IBXM\ Library\ License.txt │ ├── Paulscode\ SoundSystem\ CodecIBXM\ License.txt │ ├── README.txt │ ├── build │ │ ├── classes │ │ ├── dependency-cache │ │ ├── libs │ │ ├── resources │ │ ├── sources │ │ └── tmp │ ├── build.gradle │ ├── eclipse │ ├── forge-1.12.2-14.23.4.2703-changelog.txt │ ├── forge-1.12.2-14.23.4.2703-mdk.iml │ ├── gradle │ │ └── wrapper │ ├── gradle.properties │ ├── gradlew │ ├── gradlew.bat │ ├── out │ │ └── production │ ├── run │ │ ├── addons │ │ ├── config │ │ ├── logs │ │ ├── mods │ │ ├── options.txt │ │ ├── resourcepacks │ │ ├── saves │ │ ├── screenshots │ │ ├── servers.dat │ │ ├── usercache.json │ │ └── usernamecache.json │ ├── settings.gradle │ └── src │ ├── api │ ├── main │ └── test
/build.gradle (参考URLの内容を参考に書き換え)
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' //Only edit below this line, the above code adds and enables the necessary things for Forge to be setup. //version = "1.0" //group = "com.yourname.modid" // http://maven.apache.org/guides/mini/guide-naming-conventions.html //archivesBaseName = "modid" allprojects{ apply plugin: 'net.minecraftforge.gradle.forge' sourceCompatibility = targetCompatibility = '1.8' // Need this here so eclipse task generates correctly. compileJava { sourceCompatibility = targetCompatibility = '1.8' } runClient { args '--username', 'test1' } minecraft { version = "1.12.2-14.23.4.2703" runDir = "run" // the mappings can be changed at any time, and must be in the following format. // snapshot_YYYYMMDD snapshot are built nightly. // stable_# stables are built at the discretion of the MCP team. // Use non-default mappings at your own risk. they may not always work. // simply re-run your setup task after changing the mappings to update your workspace. mappings = "snapshot_20171003" // makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable. } archivesBaseName = project.projectDir.name } dependencies { // you may put jars on which you depend on in ./libs // or you may define them like so.. //compile "some.group:artifact:version:classifier" //compile "some.group:artifact:version" // real examples //compile 'com.mod-buildcraft:buildcraft:6.0.8:dev' // adds buildcraft to the dev env //compile 'com.googlecode.efficient-java-matrix-library:ejml:0.24' // adds ejml to the dev env // the 'provided' configuration is for optional dependencies that exist at compile-time but might not at runtime. //provided 'com.mod-buildcraft:buildcraft:6.0.8:dev' // the deobf configurations: 'deobfCompile' and 'deobfProvided' are the same as the normal compile and provided, // except that these dependencies get remapped to your current MCP mappings //deobfCompile 'com.mod-buildcraft:buildcraft:6.0.8:dev' //deobfProvided 'com.mod-buildcraft:buildcraft:6.0.8:dev' // for more info... // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html // http://www.gradle.org/docs/current/userguide/dependency_management.html } processResources { // this will ensure that this task is redone when the versions change. inputs.property "version", project.version inputs.property "mcversion", project.minecraft.version // replace stuff in mcmod.info, nothing else from(sourceSets.main.resources.srcDirs) { include 'mcmod.info' // replace version and mcversion expand 'version':project.version, 'mcversion':project.minecraft.version } // copy everything else except the mcmod.info from(sourceSets.main.resources.srcDirs) { exclude 'mcmod.info' } }
3. ビルド
MODフォルダ配下の/FatCatMOD/build.gradle
からビルド
(正しいやり方かはわかりませんが・・・)
/FatCatMOD/build.gradle (変更なし)
sourceSets.main { java.srcDirs project.projectDir.name resources.srcDirs project.projectDir.name } version = "1.1.0" tasks.withType(Jar) {compileJava.options.encoding = 'UTF-8'} tasks.withType(Jar) {compileApiJava.options.encoding = 'UTF-8'} processResources { // this will ensure that this task is redone when the versions change. inputs.property "version", project.version inputs.property "mcversion", project.minecraft.version // replace stuff in mcmod.info, nothing else from(sourceSets.main.resources.srcDirs) { include 'mcmod.info' // replace version and mcversion expand 'version':project.version, 'mcversion':project.minecraft.version } // copy everything else, thats not the mcmod.info from(sourceSets.main.resources.srcDirs) { exclude 'mcmod.info' } }