Minecraft 1.12.2 Forge Modの作成 その1 【開発環境の準備 IntelliJ IDEA】

# はじめに
Minecraft MODの開発環境作るのめっちゃめんどくさい記憶があるんですよね
Eclipseは重いし、複雑で参考動画、参考サイトと同じようにならないし...。(大体自分のミス)

**でも！！**
**今ってこれだけ！？っていうくらい簡単に出来るんですよ！！！**

えー、という風に書いたんですが、
私の場合は、環境構築に**丸一日が吹き飛びました**...。
最新verのMinecraftでやろうとしたのがミスでした...。
という話は一番最後に記載します。

追記:2019/09/15
**Minecraft 1.14.4 Mod開発環境ができた**ので書き直しました。
[Minecraft 1.14.4 Forge Modの作成 その1 【開発環境の準備 IntelliJ IDEA】](https://qiita.com/Hiroya_W/items/f38089724d9358d1668d)

この記事を作成するにあたって、以下の記事を参考にしました。
分かりやすい記事をありがとうございました。

[IntelliJ IDEAでmoddingしてみる](https://qiita.com/syu_chan_1005/items/8ac2e7ee2d601aa10083)
[(WIP)Minecraft Mod をForgeで作成(導入)](https://qiita.com/chocoa/items/09510fc0a8468d59352c)

# 💻開発環境
ということで、ここでは環境は以下のようにします。

- Windows 10
- JDK 8u211
- Minecraft 1.12.2
- Minecraft Forge 1.12.2 (14.23.5.2838)
- IntelliJ IDEA 2019.1.3

# 開発環境のセットアップ
## JDK
ダウンロードサイトは[こちら](https://www.oracle.com/technetwork/java/javase/downloads/index.html)

`Java SE 8u211 / Java SE 8u212`のJDKをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/bffaebf4-ece5-3408-adf4-2118168301b1.png)

Accept License Agreementにチェックを入れ、
Windows x64向けのインストーラーをダウンロード**したいところですが...。**

**2019年4月16日よりOracle JDKのライセンスが変更され、
Oracleプロファイルを作成することが必須となりました。**

作ります。私(学生)の場合、は
- 部署・役職名:学生
- 会社名:学校名
以下学校の住所

としました。

メールが届くので、そちらから電子メール・アドレスの確認を行って、プロファイルの作成は終わりです。

これでようやく、Windows x64向けのインストーラーをダウンロードできます。

**なお、環境変数の設定をしなくても、IntelliJ IDEAが自動でJDKを見つけてくれるので問題ありません。**

## IntelliJ IDEA
ダウンロード、インストール方法は[こちら](https://qiita.com/syu_chan_1005/items/46f94412f7493d6e60eb)

セットアップウィザードは何も変更せず進めました。

### 起動
参考サイトに記載がなかった部分の補足。

Import IntelliJ IDEA Settings Fromのウィンドウでは`Do not import settings`のまま`OK`をクリックします

Data Sharingのウィンドウでは、製品の改善のために情報を提供してもらえるか、と聞かれているので
良ければ`Send Usage Statistics`を、嫌なら`Don't send`で。

後は、UI Themes、Default plugins、Featured pluginsの設定を終えます。

### Minecraft Development Pluginをインストール
右下の`Configure`から`Plugins`をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/d2bf2eeb-eb24-ed25-3f11-b2a96d5dcc8c.png)

`Minecraft`と入力し検索すると、`Minecraft Development`がヒットするので、`Install`する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/e8c1535e-eb51-8d8b-44a2-c3d97dde36a4.png)

`Accept`をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/71bc2705-a5c0-06c4-6ef0-319f55a70e66.png)

インストールできれば、`Install`ボタンが`Restart IDE`に変わります。
クリックしてIntelliJ IDEAを再起動します。

# プロジェクトの作成
IntelliJ IDEAが起動した直後の画面から、`Create New Project`をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/7f518959-f2dd-8718-6d4e-043faec088ed.png)

左のメニューから`Minecraft`を選び、`Forge Mod`を選択しておきます。
また、Project SDKにインストールしたJDKのバージョンが表示されていることも確認しておきます。

良ければ`Next`をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/edef5e18-385f-5a60-b332-8e07373b42a0.png)


Build Settingsでは、こんな感じに入力してみました。琵琶湖MODです。

| 項目       | 値         |
|------------|------------|
| GroupId    | jp.yuyu    |
| ArtifactId | biwako_mod |
| Version    | 1.0.0      |

`Next`をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/e1966def-8ca8-645b-ca5f-0af4c2c49768.png)

`Minecraft Version`を`1.12.2`に変更します。
すると自動的に適切な`Forge Version`と`MCP Version`が選択されます。
本当にあってるかは、以下のサイトから確認できます。

[Forge バージョンの確認](http://files.minecraftforge.net/maven/net/minecraftforge/forge/index_1.12.2.html)
[MCP バージョンの確認](http://export.mcpbot.bspk.rs/stable/)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/2e4bdc6a-fe40-5227-ea9f-09b30d2f77bc.png)

`Finish`をクリック

プロジェクトの設定が終了するまで一息🍵。

## Import Module from Gradle
自動的にウィンドウが表示されるので、設定は変更せず、そのまま`OK`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/30620afa-b617-15fc-5b14-4f591b89319f.png)


### そんなウィンドウ出てこなかったぜ？
右下にこんな表示がでていました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/a8010fa8-76bc-725c-363b-166fa3d99380.png)

もしくは、IntelliJ IDEAの一番下の部分に`Event Log`というものが表示されているのでそれをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/ad26beaf-81a0-4a94-1f2b-c97eae574afb.png)

`Import Gradle project`をクリックして、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/ae0dfd81-eaa1-3949-c6f2-a7f9c84b2626.png)

何も変更せず`OK`

すると、なんか動きだして、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/a065bbda-6b83-9aa6-facc-24e925bb2bee.png)

Gradleがインポートされました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/09bff967-d14d-927d-3624-c9f0bf5ed51d.png)

## 右下にもう1つ表示された
`Enable Auto-Imported`をクリックしておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/28144d30-8ab2-832c-3504-f85c89141cef.png)

# Minecraftの起動
Sample Modが用意されているので、このままMinecraftを起動して確認してみます

右側の`Gradle`タブから`biwako_mod`->`Tasks`->`forgegradle`->`runClient`を右クリック
表示されたドロップダウンメニューから`Run 'biwako_mod [runClient]'`をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/985beb98-953a-3769-e510-ecf4f88373c9.png)

起動しました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/79de394b-460d-3cb5-4945-e62c2980ddd3.png)

琵琶湖MODが導入されていますね
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/d3344951-da9f-3708-da8d-fc78a8829b9a.png)

お疲れさまでした。

# 最新verがダメだった話
## 環境
MinecraftとForgeのバージョンのみ最新に変更し、同じようにやってみます

- Minecraft 1.14.3
- Minecraft Forge 1.14.3 (27.0.50)

- Minecraft 1.13.2
- Minecraft Forge 1.13.2 (25.0.219)

## 記事と同じ方法でやった結果
Import Module from Gradleまでは同様に進めることができる(?)
というのも、この場合だとウィンドウが表示されず、
`Event log`から`Import Module from Gradle`ウィンドウを開いて行うしかなかった

で、この状態でrunClientを実行しても、applyBinaryPatches FAILEDとなり、ビルドに失敗してしまう

手作業で以下のコマンドを実行するも、

```
gradlew setupDecompWorkspace
gradlew genIntellijRuns
```

1つ目のコマンドでエラーが発生し、ビルドに失敗する

```
Could not resolve all files for configuration ':forgeGradleMcpData'.
> Could not find de.oceanlabs.mcp:mcp:1.14.3.
```

これは、Minecraft 1.13.2でも同じでした。

## ForgeのMDKからやってみる
Minecraft 1.14.3 - 27.0.50をダウンロードしてzipファイルを展開。
そのディレクトリで`gradlew setupDecompWorkspace`を実行

```
Task 'setupDecompWorkspace' not found in root project 'forge-1.14.3-27.0.50-mdk'. 
```

**ダメです！**

ということで、Minecraft 1.12.2に下げた次第です。
知識不足というのもありますが、これがなぜダメなのかは私には解決できませんでした。

# IntelliJ IDEAのカスタマイズ
快適に使いたいので、ちょっとだけいじります。

## 日本語化
[IntelliJ IDEAの日本語化](https://qiita.com/daigoro7/items/00819e5686f6c4d682f8)を参考に。
とても簡単に日本語化できました。

## フォント
[プログラミング用フォント Myrica（ミリカ）](https://github.com/tomokuni/Myrica/)を使います。
フォントファイルをインストールできれば、
`ファイル`->`設定`->`フォント`から変更します。
私の場合はこんな感じ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/336583/6c5b65d7-94a8-026d-78f0-20f0d9f5353c.png)

## IdeaVim プラグイン
[RubyMine：ideavimの設定 & ideavimrcについて](https://qiita.com/iwaseasahi/items/4b19bdf1885801649460)を参考に。
`.ideavimrc`もお借りしました。

## Gitのバージョン管理
バージョン管理の機能もあるみたい。

# おわりに
中学時代にMinecarftを始め、その頃からやりたかったMOD製作がついにスタートしそうです。
当時も導入までにめっちゃ時間がかかって、Minecraftが起動するところまでは行ったのですが、
プログラムのプも知らない時代だったので、今ならある程度読めて書けるハズ！！！頑張る！！！

というか、Javaも初めてだしIntelliJ IDEAを使うのも初めてなのに、
Minecraft Modを作ろうとしている状況は、昔と変わらないような気もする...。

---
次回はアイテムの追加をしていく予定です。
[Minecraft 1.12.2 Forge Modの作成 その1 【開発環境の準備 IntelliJ IDEA】](https://qiita.com/Hiroya_W/items/7ad9bad0387ef3688d1e)
[Minecraft 1.12.2 Forge Modの作成 その2 【mcmod.infoの編集と無機能アイテムの追加】](https://qiita.com/Hiroya_W/items/9c7ec637c949a48371b6)
[Minecraft 1.12.2 Forge Modの作成 その3 【剣の追加とレシピ登録,クラフト後に返ってくるアイテムの設定】](https://qiita.com/Hiroya_W/items/5eea1538a75e79f88c58)
[Minecraft 1.12.2 Forge Modの作成 その4 【ブロックの追加】](https://qiita.com/Hiroya_W/items/eeae44064a5c2b5c4377)

2019/07/14 初版
2019/07/15 IntelliJ IDEAのカスタマイズの追加
2019/07/16 タイトルの修正
2019/08/08 目次追加
2019/09/15 Minecraft 1.14.4 Mod開発環境の作成 記事リンクの記載