読者です 読者をやめる 読者になる 読者になる

Spica*

プログラミングの話。

IntelliJ IDEA + Forge 1.7 で modding 環境整えた

追記:こちらは1.7.10以前向けの記事です。1.8以降はIntelliJ IDEA + Forge 1.8 で modding 環境整えた - Spica*をご参考ください。

とりあえずMod作り始めるところまで書いとく。

環境

手順

# 移動
cd /path/to/forge-1.7.10-10.13.4.1558-1.7.10-src

# 下記の2つのコマンドを順番に実行
./gradlew setupDecompWorkspace
./gradlew setupDevWorkspace ideaModule
  • IntelliJ IDEAを開き、最初の画面で"import project"を選択して、先ほどのディレクトリの中にある"build.gradle"ファイルを選択する。その後JDKを選択したりする画面が表示されるが、そのまま次へいく。
  • しばらくすると、開発する画面が表示される。

MODの実行

MODの知識ない状態で、どうやって手を付ければいいのかが難しいですね…。みんなどこ見てるの。 このへんが公式だと思うだけど、Outdatedって。。

とりあえず、最初からあるクラスのコードに+αして、動いてることを確認してみる。

package com.example.examplemod;

import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import net.minecraft.init.Blocks;

@Mod(modid = ExampleMod.MODID, name = ExampleMod.MODNAME, version = ExampleMod.VERSION)
public class ExampleMod {
    /** MODのID。小文字であること */
    public static final String MODID = "examplemod";
    /** MODの名前 */
    public static final String MODNAME = "Example Mod";
    /** MODのバージョン */
    public static final String VERSION = "1.0";

    @Mod.Instance(value = ExampleMod.MODID) //Tell Forge what instance to use.
    public static ExampleMod instance;

    @EventHandler
    public void init(FMLInitializationEvent event) {
        // some example code
        System.out.println("Hello!! DIRT BLOCK >> " + Blocks.dirt.getUnlocalizedName());
    }
}

そして、ターミナルから下記を実行。

cd /path/to/forge-1.7.10-10.13.4.1558-1.7.10-src

# 実行
./gradlew runClient

Minecraftが起動する。と同時に、ターミナルに沢山のログが流れる。 その中に、先ほどのメッセージが表示されていることを確認する。

f:id:esperia:20151126010331p:plain

…ちゃんと出てる!ということはとりあえず実行完了ということですね。 早くブロック置きたい。

※つづき書きました:Minecraftでカスタムアイテム作ってみる - Spica*