MODの情報の登録

1.7.10の開発講座を修正中です。このページには誤りや古い情報が含まれる可能性があります。

minecraftのタイトル画面にある「mods」ボタンを押すと表示されるリストで使われる情報を設定する。
ここではjavaで設定しているが、”C:/forge/src/main/resources/mcmod.info”で設定することも可能。

ソースコード

package tutorial.aluminiummod;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import cpw.mods.fml.common.IFuelHandler;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.Mod.Metadata;
import cpw.mods.fml.common.ModMetadata;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.registry.GameRegistry;

@Mod(modid = AluminiumMod.MODID, name = AluminiumMod.MODNAME, version = AluminiumMod.VERSION)
public class AluminiumMod {

	//MODのIDなどを定義
	public static final String MODID = "AluminiumMod";
	public static final String MODNAME = "Aluminium Mod";
	public static final String VERSION = "1.0.0";

	//ModMetadataを格納するための変数を宣言
	@Metadata(MODID)
	public static ModMetadata meta;

	public static Item aluminium;

	public static Block blockAluminium;

	@EventHandler
	public void perInit(FMLPreInitializationEvent event) {

		//Infoファイルを読み込む
		ModInfo.loadInfo(meta);

		aluminium = new Item()
		.setCreativeTab(CreativeTabs.tabMaterials)
		.setUnlocalizedName("aluminium")
		.setTextureName("aluminiummod:aluminium");
		GameRegistry.registerItem(aluminium, "aluminium");

		blockAluminium = new AluminiumBlock(Material.rock)
		.setBlockName("blockAluminium")
		.setBlockTextureName("aluminiummod:aluminium_block");
		GameRegistry.registerBlock(blockAluminium, "blockAluminium");
	}

/*略*/

}
package tutorial.aluminiummod;

import cpw.mods.fml.common.ModMetadata;

public class ModInfo {

	public static void loadInfo(ModMetadata meta) {
		meta.modId = AluminiumMod.MODID;
		meta.name = AluminiumMod.MODNAME;
		meta.description ="This mod adds Aluminium.";
		meta.version =AluminiumMod.VERSION ;
		meta.url = "http://www63.atwiki.jp/akasatanahama/pages/17.html";
		meta.authorList.add("Akasata Nahama");
		meta.credits = "";
		meta.logoFile ="assets/aluminiummod/logo.png";
		meta.autogenerated = false;
	}

}

解説

Metadata

String modid
@Modで使用したmodidを渡すことで、このアノテーションをつけたModMetadata変数を設定に使えるようになる。

ModMetadata

modsリストで表示される情報を格納する変数が宣言されているクラス。

String modId

@Modで使用したものと同じmodidを指定する。

String name

MODの名前。
@Modで指定したものと同じでよい。

String version

MODのバージョン。
@Modで設定したものと併記される。
@Modで指定したものと同じでよい。

String description

MODの説明文。

String url

MODの配布場所のURL。

List authorList

作者名のリスト。

String credits

クレジット。
作者以外で記しておきたい人の名前などを指定する。(?)

String logoFile

ロゴ画像を指定する。
ここで指定した場所に画像を置いておけば、読み込んでくれる。

boolean autogenerated

falseにすることでmcmod.infoを使用せず、こちらを読み込んでくれる。

ModInfo

AluminiumModの情報を登録するためのクラス。

void loadInfo(ModMetadata meta)

AluminiumModの情報をmetaに指定するためのメソッド。

使用例

このチュートリアルに関係ない部分は省略した。

package nahama.ofalenmod;

/*略*/

/**@author Akasata Nahama*/
@Mod(modid = OfalenModCore.MODID, name = OfalenModCore.MODNAME, version = OfalenModCore.VERSION)
public class OfalenModCore {

	public static final String MODID = "OfalenMod";
	public static final String MODNAME = "Ofalen Mod";
	public static final String VERSION = "[1.7.10]1.0.0";

/*略*/

	/**Infoファイル作成用*/
	@Metadata(MODID)
	public static ModMetadata meta;

/*略*/

	/**最初に行われる処理。アイテム・ブロックの追加などを行う*/
	@EventHandler
	public void preInit(FMLPreInitializationEvent event) {
		//Infoファイルを読み込む
		OfalenModInfoCore.loadInfo(meta);
/*略*/
	}

/*略*/

}
package nahama.ofalenmod.core;

import nahama.ofalenmod.OfalenModCore;
import net.minecraft.util.StatCollector;
import cpw.mods.fml.common.ModMetadata;

public class OfalenModInfoCore {

	public static void loadInfo(ModMetadata meta) {
		meta.modId = OfalenModCore.MODID;
		meta.name = OfalenModCore.MODNAME;
		meta.description =StatCollector.translateToLocal("info.metadescription");
		meta.version =OfalenModCore.VERSION ;
		meta.url = "http://www63.atwiki.jp/akasatanahama/pages/15.html";
		meta.authorList.add("Akasata Nahama");
		meta.credits = "\"Takumi Craft\" is making by Tom Kate.";
		meta.logoFile ="assets/ofalenmod/logo.png";
		meta.autogenerated = false;
	}

}
Share this...

コメントはこちらです。(スパム対策の為コメントは手動承認になっています。未承認のコメントは表示されないので連投はお控え下さい。)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

[最終更新日]2017/11/21 20:00