次の足場(Modding)

バージョン: forge-1.7.10-10.13.3.1403-1.7.10

概要




 
 

ここではMod制作を始めたあとで役に立つかもしれない事項を載せる。

 

ソースコード系

ソースコード内に全角文字を入れる

  • build.gradleに[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'の行を追加すると、ソースコードがUTF8で解析される。
    • エディタ(IDE)の方も文字コードをUTF8にしておく。

Java8を使う

build.gradleにsourceCompatibility = targetCompatibility = '1.8'の行を追加する。

自動化系

mcmod.infoのmodidなどの項目を自動で設定

mcmod.infoのversionとmcversionは既に自動で埋め込まれるが、そのほかのパラメータは自動で埋め込まれない。別に頻繁に変える項目ではないが、modidやnameをなるべく一か所にまとめて書きたいときのために埋め込み方を載せる。

mcmod.infoの置換したい項目を次のように${~~}にする。

[
{
  "modid": "${modid}",
  "name": "${name}",
  "description": "${description}",
  "version": "${version}",
  "mcversion": "${mcversion}",
  "url": "",
  "updateUrl": "",
  "authorList": ["${author}"],
  "credits": "${credits}",
  "logoFile": "",
  "screenshots": [],
  "dependencies": []
}
]

build.gradleの、processResourcesブロックのfrom項目のexpandを次のようにする。

        expand(
            "modid":"~~",
            "name":"~~",
            "description":"~~",
            'version':project.version,
            'mcversion':project.minecraft.version,
            "author":"~~",
            "credits":"~~")

この例では5か所置換したが、大体なんでもできる。

ソース中のバージョン番号を自動的に置換

build.gradleに次のように書く。

tasks.sourceMainJava.replace('${version}', project.version);

すると、src/main/java以下のファイルに現れる${version}の文字列が設定したプロジェクトのバージョンであると解釈されてビルドされる。

具体的には、次のように@Modのversion節に指定するとよい。

@Mod(modid = "modid", version = "${version}")

更にmodidも同様に置換できる。

srcをzipにする

オープンソースにするならsrcフォルダをzipでうpすることもあるだろう。

build.gradleに次のコードを設置すると、srcタスクでsrcをbuild/libsフォルダに圧縮して出力できる。

task src(type: Zip) {
    
    destinationDir = file 'build/libs'
    classifier = 'src'
    
    into ('src') {
        from 'src'
    }
    
}

Jarのmanifestに関する操作を行う

例えば、CoreModの作成の際の設定に関しては、build.gradleに次のように書く。

jar {
    manifest {
        attributes 'FMLCorePlugin': '~class binary name~'
        attributes 'FMLCorePluginContainsFMLMod': 'false'
    }
}

デバッガ系

NEIのdev板を使う

 NEIは次のバージョンの時点では、dev板をForgeの開発環境のmodsに入れてもconfファイルを指定するダイアログが出てくる。

  • CodeChickenCore 1.0.5.34
  • NotEnoughItems 1.0.5.82

ここで指定するべきフォルダは、Forge 1.7.10-10.13.3.1403の時点で次の場所である。

C:\Users\~ユーザー名~\.gradle\caches\minecraft\net\minecraftforge\forge\1.7.10-10.13.3.1403-1.7.10\unpacked\conf

無い場合は、forge階層の下にたくさんあると思われるバージョンごとにあるforgeのフォルダを辿ろう。

 

最終更新:2015年08月06日 22:31