pon52ponponのブログ

メモ帳だもの

2.ハローワールドしてみる

前回は環境構築してとりあえず起動までやったので、ある意味ハローワールドはできているかとwww。

 

まずはデフォルトを覗いてみる。

起動後のタイトルからModを押してみると、「Example Mod」が追加されてるのが確認できた。

f:id:pon52ponpon:20200802015850p:plain

とりあえずここの内容変えたいかと。

 

調べたらどうやら「mods.toml」を変更するみたい。

f:id:pon52ponpon:20200802021644p:plain

このファイル覗くと1行1行がパラメータになってるみたいね。

先頭の#はコメントアウトで無効にする感じですね。

ここで変更できそうなのが、

①modId

②version

③displayName

④displayURL

⑤credits

⑥authors

⑦description

これくらい?あとはよくわからんので気が向いたら調べて変更にしようかと。

 

①modId="ponmod"

今後プログラムする時にも使用するモッドのIDになる文字列を記入。

②version="1.0.0"

デフォルトで何かを参照してるみたいだけど、どこ参照してるかわからんかったので、適当な文字列いれとこww

③displayName="Pon Mod"

こっちはMod確認時に表示されるモッド名かと。

④displayURL="https://pon52ponpon.hatenablog.jp/

作成するモッドに関するホームページとかのリンク張っとけばいいのかな?

とりあえずここのリンクでも貼っとけばいいかな?

⑤#credits="Thanks for this example mod goes to Java" #Optional

クレジットは今は無効にしとこ。#Optionalがあるものは任意らしいのでコメントアウト

⑥authors="pon52"

モッド作者名

⑦description='''作成中'''

モッド説明らしい。複数行いける。

前後に「'''」を入れること。一回間違えて消してしまってエラーに・・・( ゚Д゚)

 

そして、「mods.toml」変更後一度起動してみたら見事にエラーになりましたwwww

java側のプログラムでmodIDをexamplemodで登録されてるのが原因らしい。

結局ソースファイルも修正しないといけない・・。

 

とりあえずサンプルと同じようにパッケージ・ソースを作ってみる。

ファイル → 新規 → クラスでウィンドウを開き

パッケージ名の部分にcom.pon.ponmodを記述。

名前の部分にPonModを記述。

こんな感じで完了を押して作成。

 

作成したPonMod.javaにExampleMod.javaの中身を全部コピーして修正していく。

// 1:
package com.pon.ponmod; //package com.example.examplemod;

import java.util.stream.Collectors;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import net.minecraft.block.Block;
import net.minecraft.block.Blocks;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.InterModComms;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
import net.minecraftforge.fml.event.lifecycle.InterModEnqueueEvent;
import net.minecraftforge.fml.event.lifecycle.InterModProcessEvent;
import net.minecraftforge.fml.event.server.FMLServerStartingEvent;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;

// The value here should match an entry in the META-INF/mods.toml file
@Mod("ponmod") // @Mod("examplemod")
public class PonMod // public class ExampleMod
{
    // Directly reference a log4j logger.
    private static final Logger LOGGER = LogManager.getLogger();

    public PonMod() { //public ExampleMod() {
        // Register the setup method for modloading
        FMLJavaModLoadingContext.get().getModEventBus().addListener(this::setup);
        // Register the enqueueIMC method for modloading

@Modの部分が「mods.toml」のmodIdに記述したものと同じじゃないとダメらしい。

 

修正後元々あったExampleModパッケージとjavaファイルを削除。(残すと邪魔をしてエラーになる)

 

最終的に以下のファイル、パッケージの構成になる。

f:id:pon52ponpon:20200802133620p:plain

 

ここまでできたら起動してみて、エラーにならなければOK。

再度タイトルからModを押して確認。

f:id:pon52ponpon:20200802133946p:plain

とりあえず変わってくれたのでよしとしよう。