はじめに
最近MODを再び作るようになったのですが、アイテムやブロックの追加以外のことにあまり触れてこなかったので、プログラムを実行させる方法がわからず苦戦していました。
Mainクラスから実行されるんじゃないのかMainクラス見つからないんだが?と戦っていました。
ようやく動かし方がわかってきたのでこの記事に残しておきます。
MODの登録
@Mod("examplemod") // MODの登録
public class exampleMod { // クラスの作成
}
このようにMODのIDを指定して、exampleModを登録します。
exampleMod というのはファイル名と同じにする?っぽい(たぶん)
Eventの登録
ゲーム内のアクションを拾ってプログラムを実行するためにForgeのイベントにプログラムを登録していく必要があります。
@Mod("examplemod") // MODの登録
public class exampleMod { // クラスの作成
// ロガーの定義
private static final Logger LOGGER = LogManager.getLogger();
public exampleMod() {
// Eventの受信をできるようにする
MinecraftForge.EVENT_BUS.register(this);
}
// イベントの登録
@SubscribeEvent
public void onServerChat(ServerChatEvent event) {
String message = event.getMessage();
String username = event.getUsername();
// ログの出力
LOGGER.info(username + " says: " + message);
}
}
MinecraftForge.EVENT_BUS.registerという一文を書いていないとイベントは何も使えないということを知らず、SubscriveEventと戦い続けていました。
LOGGER.info()を知らず、System.out.println()をずっと使っていて、なかなか出力されないため、詰んでました。
さいごに
プログラムだけ書けてもでけねえ
プログラムだけ知っていてもどのような手順でMODが実行されているのかなんとなく知らないと始め方もわかりません。
一般的なMODの作り方を紹介する動画はアイテムを追加する系だけなのでこの記事が第二の私を作ることを防げることを願っています。