MCAPI解析
MCAPIの使い方などが消失しているため、forgeプログラム方法など基本から、MCAPIの使い方、を紹介します
注意
これはチュートリアルではなく辞書的なものです
フォーマット
ファイル名
導入方法/クラスの説明など
フィールド
1.フィールド名
使い方
使い方
メソッド
1.メソッド名
使い方
2.メソッド名
使い方
使い方
2.メソッド名
使い方
※内部クラスの場合は別のファイル名に記載し、どのクラスの内部クラスかを明記すること
(例)Aクラス内のBクラスなら、ファイル名にA$B
(例)Aクラス内のBクラスなら、ファイル名にA$B
MCAPIの各クラス
MCAPI
基本的なstaticユーティリティクラス
マイクラのシステム関連、新要素追加の補助、拡張ローカライズ機能、Javaのリフレクション補助など使用方法は多岐にわたる
マイクラのシステム関連、新要素追加の補助、拡張ローカライズ機能、Javaのリフレクション補助など使用方法は多岐にわたる
フィールド
1.COLOR_KEYS
String型配列のFinalフィールド
16種類の色(羊毛やコンクリートブロックなどで使用)
String型配列のFinalフィールド
16種類の色(羊毛やコンクリートブロックなどで使用)
2.COLOR_NAMES
String型配列のFinalフィールド
16種類の色の文字列キー
String型配列のFinalフィールド
16種類の色の文字列キー
3.COLOR_NAMES_US
String型配列のFinalフィールド
16種類の色の名前(英語)
String型配列のFinalフィールド
16種類の色の名前(英語)
4.COLOR_NAMES_JP
String型配列のFinalフィールド
16種類の色の名前(日本語)
String型配列のFinalフィールド
16種類の色の名前(日本語)
5.TEXTURE_BLOCK
String型フィールド
バニラのブロック用テクスチャファイル名(修正済み)
String型フィールド
バニラのブロック用テクスチャファイル名(修正済み)
6.TEXTURE_BLOCK2
String型フィールド
MCAPI/ps125のブロック用テクスチャファイル名
String型フィールド
MCAPI/ps125のブロック用テクスチャファイル名
7.TEXTURE_ITEM
String型フィールド
バニラのアイテム用テクスチャファイル名(修正済み)
String型フィールド
バニラのアイテム用テクスチャファイル名(修正済み)
8.TEXTURE_ITEM2
String型フィールド
MCAPI/ps125のアイテム用テクスチャファイル名
String型フィールド
MCAPI/ps125のアイテム用テクスチャファイル名
9.TEXTURE_DEBUG
String型フィールド
デバッグ用テクスチャファイル名
String型フィールド
デバッグ用テクスチャファイル名
メソッド
1.getConfigDir
ConfigディレクトリをFile型で返す
ConfigディレクトリをFile型で返す
2.loadCfg/loadConfig
ModLoader式(ML式)ConfigをProperties型(java.util)で返す
ML式ConfigからMCAPI式Configへの移行時などに使用
ModLoader式(ML式)ConfigをProperties型(java.util)で返す
ML式ConfigからMCAPI式Configへの移行時などに使用
3.getProp
ML式Config内の様々な値をString型で返す
引数がProperties型とString型(Config項目のkey)
使用時は4の型別メソッドを使う
keyが不明な場合はクラッシュし、「指定された項目が存在しません。」とメッセージが出る
ML式Config内の様々な値をString型で返す
引数がProperties型とString型(Config項目のkey)
使用時は4の型別メソッドを使う
keyが不明な場合はクラッシュし、「指定された項目が存在しません。」とメッセージが出る
4.getString/getByte/getShort/getInt/getLong/getFloat/getDouble/getBoolean
get○○の○○型でML式Config内の値を返す
引数はProperties型とString型(Config項目のkey)
keyが不明な場合はクラッシュし、「指定された項目が存在しません。」とメッセージが出る
型変換ができない場合はNumberFormatExceptionなどの例外が発生する
リフレクションのフィールド用メソッドと混同しないよう注意
get○○の○○型でML式Config内の値を返す
引数はProperties型とString型(Config項目のkey)
keyが不明な場合はクラッシュし、「指定された項目が存在しません。」とメッセージが出る
型変換ができない場合はNumberFormatExceptionなどの例外が発生する
リフレクションのフィールド用メソッドと混同しないよう注意
6.existJarFile
引数においてString型で指定したJarファイルの有無をboolean型で返す
引数においてString型で指定したJarファイルの有無をboolean型で返す
7.isClassLoaded
引数においてString型で指定したクラスの有無をboolean型で返す
引数においてString型で指定したクラスの有無をboolean型で返す
8.addName
125フォーラム(閉鎖済み)において「拡張ローカライズ機能」と称されていたもの
様々なマイクラ内の文字列キー(.nameがつく)に英語名と日本語名をつける
戻り値はvoid
引数は
最初は設定したい物(任意の型)、後ろ2つは設定したい英語名と日本語名(String型)
設定できるものは
125フォーラム(閉鎖済み)において「拡張ローカライズ機能」と称されていたもの
様々なマイクラ内の文字列キー(.nameがつく)に英語名と日本語名をつける
戻り値はvoid
引数は
最初は設定したい物(任意の型)、後ろ2つは設定したい英語名と日本語名(String型)
設定できるものは
- String型の文字列キー
- ItemStack(ItemID,個数,メタデータを格納したクラス)
- Item型(アイテムの種類)
- Block型(ブロックの種類)
- Item型とint型(アイテムとメタデータ)
- Block型とint型(ブロックとメタデータ)
9.localize
拡張ローカライズ機能の1つ
引数においてString型で指定した物にString型の日本語名をつける
戻り値はvoid
拡張ローカライズ機能の1つ
引数においてString型で指定した物にString型の日本語名をつける
戻り値はvoid
10.registerLanguage
拡張ローカライズ機能の1つで新しい言語を登録する
引数は言語ファイルの形式で変わるが,
拡張ローカライズ機能の1つで新しい言語を登録する
引数は言語ファイルの形式で変わるが,
- BaseMod型(言語ファイルがModのzip内の場合)
- 任意型の言語ファイル(拡張子がlang)
- String型のマイクラの言語コード(例:英語は「en_US」日本語は「ja_JP」)
- String型のファイルのエンコーディングフォーマット(UTF-8など)
の4種類ある
言語ファイルは
言語ファイルは
- File型
- String型(BaseMod型の指定が必要)
- InputStream型(フォーマットの指定ができる)
言語ファイルの読み込みに失敗した場合クラッシュし、「registerLanguage: closeでI/Oエラーが発生しました。」または「registerLanguage: readでI/Oエラーが発生しました。」と表示される
文字コードがおかしい場合もクラッシュし、「registerLanguage: 文字コードが不正です。」と表示される
文字コードがおかしい場合もクラッシュし、「registerLanguage: 文字コードが不正です。」と表示される
11.getField
Javaのリフレクション補助用メソッド
他mod内のクラスを直接インポートしたくない場合に使える
指定したフィールドをjava.lang.reflectのField型で返す
フィールドの値を設定したい場合は、戻り値のフィールドインスタンス内のsetメソッドを使用
フィールドの値を得たい場合は、後述のgetterメソッド(12,13)を使用することをお勧めする
引数はString型のクラス名(必ずパッケージ名も入れること)とフィールド名
public以外のフィールドにはアクセスできないので注意(java.lang.Class内getDeclaredFieldでアクセスできる)
スーパークラス内のフィールドも取得できる
クラスが見つからない場合クラッシュし、「クラス(指定したクラス名)が存在しません」と表示される
また、フィールドが存在しないもしくはアクセスできない場合クラッシュし、「フィールド(指定したフィールド名)へアクセスできません」と表示される
Javaのリフレクション補助用メソッド
他mod内のクラスを直接インポートしたくない場合に使える
指定したフィールドをjava.lang.reflectのField型で返す
フィールドの値を設定したい場合は、戻り値のフィールドインスタンス内のsetメソッドを使用
フィールドの値を得たい場合は、後述のgetterメソッド(12,13)を使用することをお勧めする
引数はString型のクラス名(必ずパッケージ名も入れること)とフィールド名
public以外のフィールドにはアクセスできないので注意(java.lang.Class内getDeclaredFieldでアクセスできる)
スーパークラス内のフィールドも取得できる
クラスが見つからない場合クラッシュし、「クラス(指定したクラス名)が存在しません」と表示される
また、フィールドが存在しないもしくはアクセスできない場合クラッシュし、「フィールド(指定したフィールド名)へアクセスできません」と表示される
12.getObject
Javaのリフレクション補助用メソッド
他mod内のクラスを直接インポートしたくない場合に使える
指定したフィールドの任意型の値をObject型で返す
public以外のフィールドにはアクセスできないので注意
スーパークラス内のフィールドの値も取得できる
Javaのリフレクション補助用メソッド
他mod内のクラスを直接インポートしたくない場合に使える
指定したフィールドの任意型の値をObject型で返す
public以外のフィールドにはアクセスできないので注意
スーパークラス内のフィールドの値も取得できる
13.getString/getByte/getShort/getInt/getLong/getFloat/getDouble/getBoolean
Javaのリフレクション補助用メソッド
他mod内のクラスを直接インポートしたくない場合に使える
指定したフィールドの値をget○○の○○型で返す
ML式Configのgetterメソッドと混同しないよう注意すること
public以外のフィールドにはアクセスできないので注意
スーパークラス内のフィールドの値も取得できる
Javaのリフレクション補助用メソッド
他mod内のクラスを直接インポートしたくない場合に使える
指定したフィールドの値をget○○の○○型で返す
ML式Configのgetterメソッドと混同しないよう注意すること
public以外のフィールドにはアクセスできないので注意
スーパークラス内のフィールドの値も取得できる
14.getMethod
Javaのリフレクション補助用メソッド
他mod内のクラスを直接インポートしたくない場合に使える
指定したメソッドをjava.lang.reflectのMethod型で返す
引数はString型のクラス名(必ずパッケージ名も入れること)とメソッド名、そして指定したメソッドに引数がある場合はClass型で引数の型を入れる(可変長引数)
指定したメソッドを呼び出したい場合は戻り値内のinvokeメソッド使用することをお勧めする
public以外のメソッドにアクセスしたい場合は後述のDeclaredメソッドを使用することをお勧めする
スーパークラス内のメソッドも取得できる
クラスが見つからない場合クラッシュし、「クラス(指定したクラス名)が存在しません」と表示される
メソッドが見つからない場合クラッシュし、「メソッド(指定したクラス名)が存在しません」と表示される
メソッドにアクセスできない場合クラッシュし、「メソッド(指定したクラス名)へアクセスできません」と表示される
Javaのリフレクション補助用メソッド
他mod内のクラスを直接インポートしたくない場合に使える
指定したメソッドをjava.lang.reflectのMethod型で返す
引数はString型のクラス名(必ずパッケージ名も入れること)とメソッド名、そして指定したメソッドに引数がある場合はClass型で引数の型を入れる(可変長引数)
指定したメソッドを呼び出したい場合は戻り値内のinvokeメソッド使用することをお勧めする
public以外のメソッドにアクセスしたい場合は後述のDeclaredメソッドを使用することをお勧めする
スーパークラス内のメソッドも取得できる
クラスが見つからない場合クラッシュし、「クラス(指定したクラス名)が存在しません」と表示される
メソッドが見つからない場合クラッシュし、「メソッド(指定したクラス名)が存在しません」と表示される
メソッドにアクセスできない場合クラッシュし、「メソッド(指定したクラス名)へアクセスできません」と表示される
15.getDeclaredMethod
Javaのリフレクション補助用メソッド
他mod内のクラスを直接インポートしたくない場合に使える
指定したメソッドをjava.lang.reflectのMethod型で返す
引数はString型のクラス名(必ずパッケージ名も入れること)とメソッド名、そして指定したメソッドに引数がある場合はClass型で引数の型を入れる(可変長引数)
指定したメソッドを呼び出したい場合は戻り値内のinvokeメソッドを使用することをお勧めする
全てのアクセス修飾師のメソッドにアクセスできる
スーパークラス内のメソッドは取得できないので注意
クラスが見つからない場合クラッシュし、「クラス(指定したクラス名)が存在しません」と表示される
メソッドが見つからない場合クラッシュし、「メソッド(指定したクラス名)が存在しません」と表示される
メソッドにアクセスできない場合クラッシュし、「メソッド(指定したクラス名)へアクセスできません」と表示される
Javaのリフレクション補助用メソッド
他mod内のクラスを直接インポートしたくない場合に使える
指定したメソッドをjava.lang.reflectのMethod型で返す
引数はString型のクラス名(必ずパッケージ名も入れること)とメソッド名、そして指定したメソッドに引数がある場合はClass型で引数の型を入れる(可変長引数)
指定したメソッドを呼び出したい場合は戻り値内のinvokeメソッドを使用することをお勧めする
全てのアクセス修飾師のメソッドにアクセスできる
スーパークラス内のメソッドは取得できないので注意
クラスが見つからない場合クラッシュし、「クラス(指定したクラス名)が存在しません」と表示される
メソッドが見つからない場合クラッシュし、「メソッド(指定したクラス名)が存在しません」と表示される
メソッドにアクセスできない場合クラッシュし、「メソッド(指定したクラス名)へアクセスできません」と表示される
16.invokeMethod
Javaのリフレクション補助用メソッド
他mod内のクラスを直接インポートしたくない場合に使える
指定したメソッドを実行する
メソッドの指定に引数の型(可変長引数)が使えないので引数のないメソッドのみ使用できる
public以外のメソッドは実行できないので注意
Javaのリフレクション補助用メソッド
他mod内のクラスを直接インポートしたくない場合に使える
指定したメソッドを実行する
メソッドの指定に引数の型(可変長引数)が使えないので引数のないメソッドのみ使用できる
public以外のメソッドは実行できないので注意
17.killMinecraft
マイクラのシステムを強制終了し、クラッシュ画面を表示させる
ゲームの継続が難しいエラーの発生時に使用
引数には2つのString型(表示させるメッセージ)とException型を継承した例外を指定できる
クラッシュ画面に表示させるメッセージは
[1つ目のString型引数]:[2つ目のString型引数]
マイクラのシステムを強制終了し、クラッシュ画面を表示させる
ゲームの継続が難しいエラーの発生時に使用
引数には2つのString型(表示させるメッセージ)とException型を継承した例外を指定できる
クラッシュ画面に表示させるメッセージは
[1つ目のString型引数]:[2つ目のString型引数]
18.addChat/addTransChat/addDebugChat
マイクラのワールド内プレイ画面(インベントリGUIやメインメニュー画面ではない)にチャットを表示させる
引数はString型で表示させたいメッセージ(addTransChatの場合は文字列キー)と任意の型
デバッグモードのみ表示したい場合はaddDebugChatを使用
マイクラのワールド内プレイ画面(インベントリGUIやメインメニュー画面ではない)にチャットを表示させる
引数はString型で表示させたいメッセージ(addTransChatの場合は文字列キー)と任意の型
デバッグモードのみ表示したい場合はaddDebugChatを使用
19.registerBlock/registerTileBlock/registerDirectionBlock/registerColorBlock
Blockの登録用メソッド(Blockに対応したItemBlockの生成)
対応したItemBlockを返す
Blockの登録用メソッド(Blockに対応したItemBlockの生成)
対応したItemBlockを返す
メソッド名 | 説明 | 引数 | 戻り値型 |
registerBlock | メタデータのない単体ブロックを登録 | Block型 | ItemBlockBase |
registerTileBlock | メタデータのあるマルチブロックを登録 | Block型,int型(メタデータの数) | ItemTile |
registerDirectionBlock | 原木のような向のあるブロックを登録 | Block型 | ItemBlockDirection |
registerColorBlock | 羊毛のような16色のブロックを登録 | Block型,2つのString型(英語名,日本語名) | ItemColorBlock |
20.addRecipe/addShapedRecipe/addShapelessRecipe/addIRecipe
レシピの追加用メソッド
どのメソッドも戻り値がない
レシピの追加用メソッド
どのメソッドも戻り値がない
- addRecipe,addShapedRecipe,addShapelessRecipeの引数は完成品用のItemStack型とレシピの内容を表すObject型の可変長引数
メソッド名 | 説明 | レシピの内容の作り方 |
addShapedRecipe | アイテムの位置が定められたクラフトを登録 | new Object[]{クラフトの形(String型),スロット位置の指定(char型),ItemStackの指定} |
addShapelessRecipe | アイテムの位置が定められたクラフトを登録 | 必要なItemStackを羅列 |
addRecipe | ShapedとShapelessの両方を設定できる | 設定したいレシピの内容 |
※レシピの内容におけるItemStackはItem型及Block型で代用可能
※addShapedRecipeの登録例
木のツルハシ:
MCAPI.addShapedRecipe(new ItemStack(Item.pickaxeWood,1,0),new Object[] {"WWW", " S ", " S ", Character.valueOf('W'), new ItemStack(Block.wood), Character.valueOf('S'), new ItemStack(Item.stick,1,0)});
※addShapedRecipeの登録例
木のツルハシ:
MCAPI.addShapedRecipe(new ItemStack(Item.pickaxeWood,1,0),new Object[] {"WWW", " S ", " S ", Character.valueOf('W'), new ItemStack(Block.wood), Character.valueOf('S'), new ItemStack(Item.stick,1,0)});
- addIRecipeはIRecipeを実装した特殊なレシピの内容を引数に指定することで登録する
MathHelper2
数学的処理の補助をするStaticユーティリティクラス
使用法はバニラのMathHelperと同じ
バニラ1.3以降のMathHelper内のメソッドを一部移植
使用法はバニラのMathHelperと同じ
バニラ1.3以降のMathHelper内のメソッドを一部移植
メソッド
1.wrapAngleTo180_float/wrapAngleTo180_double
少なくともMC1.7.10には実装済み
引数はfloat/double型の角度(度数法)
もし引数の角度が-180から180ではない場合-180から180度にする
(例)引数が270の時->戻り値は-90
少なくともMC1.7.10には実装済み
引数はfloat/double型の角度(度数法)
もし引数の角度が-180から180ではない場合-180から180度にする
(例)引数が270の時->戻り値は-90
2.average
引数のlong型配列の平均値をdouble型で返す
(averageは名詞で日本語訳は平均)
引数のlong型配列の平均値をdouble型で返す
(averageは名詞で日本語訳は平均)
3.abs_int
引数に指定されたint型の絶対値をint型で返す
(absは「絶対」という意味を持つ副詞absoluteの略)
引数に指定されたint型の絶対値をint型で返す
(absは「絶対」という意味を持つ副詞absoluteの略)
EMCHelper
Equivalent Exchange(以後EE)が導入されてる環境、EEとEEAA(Advanced Alchemy)どちらも導入されてる環境の両方に対応できるEMC関連のAPI
フィールド
1.isEE
boolean型
EEが導入されているか
boolean型
EEが導入されているか
2.isEEAA
boolean型
EEAAが導入されているか
boolean型
EEAAが導入されているか
メソッド
1.getEMC
EMCの値を知りたいItemの情報を引数に入れることでEMCを得られる
引数はItemStack型、1つのint型(ItemID)、2つのint型(ItemIDとmeta)の3種類ある
戻り値はint型
EMCの値を知りたいItemの情報を引数に入れることでEMCを得られる
引数はItemStack型、1つのint型(ItemID)、2つのint型(ItemIDとmeta)の3種類ある
戻り値はint型
2.addEMC
EMCの値を設定する
戻り値はvoid
引数はItemStack型とint型(EMCの値)、2つのint型(ItemIDとEMCの値)、3つのint型(ItemIDとmetaとEMCの値)の3種類ある
EMCの値を設定する
戻り値はvoid
引数はItemStack型とint型(EMCの値)、2つのint型(ItemIDとEMCの値)、3つのint型(ItemIDとmetaとEMCの値)の3種類ある