余白

https://blog.lacolaco.net/ に移転しました

IntelliJ IDEAでもぢんぐ環境整える(Forge953)

ただ参考記事Forge Development in IntelliJ IDEA - Minecraft Forgeの通りにやっただけです。日本語で適当に解説します


1.Forgeのセットアップ

今後わかりやすいように、IntelliJのプロジェクトを作るディレクトリを[PROJECT]とします。
好きなところにForgeのsourceを展開して、
[PROJECT]\forge\mcp
みたいな階層になるようにします。その後はいつもどおりinstall.cmdなり.shなり叩いてmcpをセットアップしてください

2.IntelliJのプロジェクト作成

IntelliJを起動します。New ProjectからJavaのプロジェクトを作ります。ここは参考記事の通りに、

Project name: MyForgeDev(好きに変えて)
Project location: [PROJECT]
Module name: Forge(変えない方がいい)
Content root: [PROJECT]\forge\mcp
Module file location: [PROJECT]\.idea(パス書いとけば勝手に作ってくれる)
Project format: .idea (directory based)
Create source root: チェック外す(重要)

としてください。Next押してFinish押して終わりです。

次に、IntelliJのプロジェクトツリーから、Forgeモジュールのsrc\minecraftフォルダを右クリックして下の方にある
Mark Directory As > Source Root.
をします。minecraftフォルダが青くなります
次に、srcフォルダ以外を選択して、
Mark Directory As > Excluded.
します。Forgeモジュールの中はsrcフォルダとbat/shファイルだけになると思います。
ここまででIntelliJのプロジェクト作成と、Forgeモジュールの作成が終わりました。

3.自分のMODのモジュール作成

自作MOD用のモジュールを作ります。FileからNew Moduleを選択。

Module name: 好きな名前
Content root: [PROJECT]\好きな名前
Module file location: [PROJECT]\.idea(Forgeと一緒にする)
Create source root: チェックをつける

これで終わりです。ここで工程の1/3が終わりました

4.ライブラリと依存関係の構築

ここが一番大変です。参考記事のSet up dependenciesのところを見ながらライブラリ19個と、マイクラのjar、合わせて20個のjarファイルを1つずつ追加していきます。頑張りましょう。

20個追加が終わったらModules>Dependenciesのところで読み込み順を上下できるので、
一番上に<Module source>
二番目にJDK
三番目にminecraftのjar(1.6.4とか)
になるようにします。ほかはどうでもいいです。

そのあと、Forgeモジュールと自作MODのモジュールの互いをDependenciesに追加します。緑の+ボタンからModule Dependencyを選ぶとすぐにできます。
この操作をするとモーダルの下の方に警告みたいなのが出ますが、これは右の×を押して無視していいです。循環参照してるよ~というやさしいアドバイスですが無視です。

5.起動設定

ここまでの作業にミスがなければもうあとすぐで終わります。ミスってたらミスを探して三千里です。

参考記事のSet up run & debug configurationsの項の通りに、まずはマイクラのデバッグに使うログイン用セッションIDを取得してください。

http://login.minecraft.net/?user=[ID]&password=[PASSWORD]&version=12

[ID]と[PASSWORD]を自分のに書き換えて適当なブラウザでアクセスしたら文字列が出てくるので、コロン(":")に挟まれた部分をコピーします。

IDEAのRun>Edit Configurationから、緑の+ボタンを押して、Java Applicationの起動設定を作ります。

Name: Client
Main class: net.minecraft.launchwrapper.Launch
VM options: -Djava.library.path="versions\1.6.4\1.6.4-natives" -Xincgc -Xmx1024M -Xms1024M
Program arguements: --version 1.6 --tweakClass cpw.mods.fml.common.launcher.FMLTweaker --username [ID] --session [SESSION_ID]
Working directory: [PROJECT]\forge\mcp\jars
Use classpath of module: Forge

[ID]と[SESSION_ID]はさっきのを入れてください。
もう一つServer用も作ります

Name: Server
Main class: cpw.mods.fml.relauncher.ServerLaunchWrapper
VM options: -Xincgc -Xmx1024M -Xms1024M
Program arguments: nogui
Working directory: [PROJECT]\forge\mcp\jars
Use classpath of module: Forge

6.IDEA用修正

最後に修正が必要なので一箇所FMLを書き換えます。cpw.mods.fml.common.discovery.JarDiscoverer.java

42    jar = new JarFile(candidate.getModContainer());
43
44    // TODO: Remove these lines for distribution build:
45    // *** START INTELLIJ FIX ***
46    if (jar.getName().endsWith("rt.jar")) return foundMods;
47    // *** END INTLELIJ FIX ***
48    
49    if ( ..

と書き足します。


これで終了です。

問題点

何故かうちの環境だとマイクラの音がならないassetsが空でした。入れたら鳴りました
・ライブラリの設定だるすぎる


正直まだIDEAに乗り換えるには早いと思いました。ForgeGradleが成熟してきてからでいいと思います。