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; }

}

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

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