マイクラ1.2.5wiki

MCAPI解析

最終更新:

Bot(ページ名リンク)

- view
だれでも歓迎! 編集

MCAPI解析

MCAPIの使い方などが消失しているため、forgeプログラム方法など基本から、MCAPIの使い方、を紹介します

注意

これはチュートリアルではなく辞書的なものです

フォーマット

ファイル名

導入方法/クラスの説明など
フィールド
1.フィールド名
使い方
メソッド
1.メソッド名
使い方
2.メソッド名
使い方

※内部クラスの場合は別のファイル名に記載し、どのクラスの内部クラスかを明記すること
(例)Aクラス内のBクラスなら、ファイル名にA$B

MCAPIの各クラス

MCAPI

基本的なstaticユーティリティクラス
マイクラのシステム関連、新要素追加の補助、拡張ローカライズ機能、Javaのリフレクション補助など使用方法は多岐にわたる
フィールド
1.COLOR_KEYS
String型配列のFinalフィールド
16種類の色(羊毛やコンクリートブロックなどで使用)

2.COLOR_NAMES
String型配列のFinalフィールド
16種類の色の文字列キー

3.COLOR_NAMES_US
String型配列のFinalフィールド
16種類の色の名前(英語)

4.COLOR_NAMES_JP
String型配列のFinalフィールド
16種類の色の名前(日本語)

5.TEXTURE_BLOCK
String型フィールド
バニラのブロック用テクスチャファイル名(修正済み)

6.TEXTURE_BLOCK2
String型フィールド
MCAPI/ps125のブロック用テクスチャファイル名

7.TEXTURE_ITEM
String型フィールド
バニラのアイテム用テクスチャファイル名(修正済み)

8.TEXTURE_ITEM2
String型フィールド
MCAPI/ps125のアイテム用テクスチャファイル名

9.TEXTURE_DEBUG
String型フィールド
デバッグ用テクスチャファイル名
メソッド
1.getConfigDir
ConfigディレクトリをFile型で返す

2.loadCfg/loadConfig
ModLoader式(ML式)ConfigをProperties型(java.util)で返す
ML式ConfigからMCAPI式Configへの移行時などに使用

3.getProp
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などの例外が発生する
リフレクションのフィールド用メソッドと混同しないよう注意

5.isModLoaded/existMod
boolean型で指定したModが導入されているかを返す
String型の引数でModを指定(「mod_」で始まるMod名)

6.existJarFile
引数においてString型で指定したJarファイルの有無をboolean型で返す

7.isClassLoaded
引数においてString型で指定したクラスの有無をboolean型で返す

8.addName
125フォーラム(閉鎖済み)において「拡張ローカライズ機能」と称されていたもの
様々なマイクラ内の文字列キー(.nameがつく)に英語名と日本語名をつける
戻り値はvoid
引数は
最初は設定したい物(任意の型)、後ろ2つは設定したい英語名と日本語名(String型)
設定できるものは
  • String型の文字列キー
  • ItemStack(ItemID,個数,メタデータを格納したクラス)
  • Item型(アイテムの種類)
  • Block型(ブロックの種類)
  • Item型とint型(アイテムとメタデータ)
  • Block型とint型(ブロックとメタデータ)

9.localize
拡張ローカライズ機能の1つ
引数においてString型で指定した物にString型の日本語名をつける
戻り値はvoid

10.registerLanguage
拡張ローカライズ機能の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: 文字コードが不正です。」と表示される

11.getField
Javaのリフレクション補助用メソッド
他mod内のクラスを直接インポートしたくない場合に使える
指定したフィールドをjava.lang.reflectのField型で返す
フィールドの値を設定したい場合は、戻り値のフィールドインスタンス内のsetメソッドを使用
フィールドの値を得たい場合は、後述のgetterメソッド(12,13)を使用することをお勧めする
引数はString型のクラス名(必ずパッケージ名も入れること)とフィールド名
public以外のフィールドにはアクセスできないので注意(java.lang.Class内getDeclaredFieldでアクセスできる)
スーパークラス内のフィールドも取得できる
クラスが見つからない場合クラッシュし、「クラス(指定したクラス名)が存在しません」と表示される
また、フィールドが存在しないもしくはアクセスできない場合クラッシュし、「フィールド(指定したフィールド名)へアクセスできません」と表示される

12.getObject
Javaのリフレクション補助用メソッド
他mod内のクラスを直接インポートしたくない場合に使える
指定したフィールドの任意型の値をObject型で返す
public以外のフィールドにはアクセスできないので注意
スーパークラス内のフィールドの値も取得できる

13.getString/getByte/getShort/getInt/getLong/getFloat/getDouble/getBoolean
Javaのリフレクション補助用メソッド
他mod内のクラスを直接インポートしたくない場合に使える
指定したフィールドの値をget○○の○○型で返す
ML式Configのgetterメソッドと混同しないよう注意すること
public以外のフィールドにはアクセスできないので注意
スーパークラス内のフィールドの値も取得できる

14.getMethod
Javaのリフレクション補助用メソッド
他mod内のクラスを直接インポートしたくない場合に使える
指定したメソッドをjava.lang.reflectのMethod型で返す
引数はString型のクラス名(必ずパッケージ名も入れること)とメソッド名、そして指定したメソッドに引数がある場合はClass型で引数の型を入れる(可変長引数)
指定したメソッドを呼び出したい場合は戻り値内のinvokeメソッド使用することをお勧めする
public以外のメソッドにアクセスしたい場合は後述のDeclaredメソッドを使用することをお勧めする
スーパークラス内のメソッドも取得できる
クラスが見つからない場合クラッシュし、「クラス(指定したクラス名)が存在しません」と表示される
メソッドが見つからない場合クラッシュし、「メソッド(指定したクラス名)が存在しません」と表示される
メソッドにアクセスできない場合クラッシュし、「メソッド(指定したクラス名)へアクセスできません」と表示される

15.getDeclaredMethod
Javaのリフレクション補助用メソッド
他mod内のクラスを直接インポートしたくない場合に使える
指定したメソッドをjava.lang.reflectのMethod型で返す
引数はString型のクラス名(必ずパッケージ名も入れること)とメソッド名、そして指定したメソッドに引数がある場合はClass型で引数の型を入れる(可変長引数)
指定したメソッドを呼び出したい場合は戻り値内のinvokeメソッドを使用することをお勧めする
全てのアクセス修飾師のメソッドにアクセスできる
スーパークラス内のメソッドは取得できないので注意
クラスが見つからない場合クラッシュし、「クラス(指定したクラス名)が存在しません」と表示される
メソッドが見つからない場合クラッシュし、「メソッド(指定したクラス名)が存在しません」と表示される
メソッドにアクセスできない場合クラッシュし、「メソッド(指定したクラス名)へアクセスできません」と表示される

16.invokeMethod
Javaのリフレクション補助用メソッド
他mod内のクラスを直接インポートしたくない場合に使える
指定したメソッドを実行する
メソッドの指定に引数の型(可変長引数)が使えないので引数のないメソッドのみ使用できる
public以外のメソッドは実行できないので注意

17.killMinecraft
マイクラのシステムを強制終了し、クラッシュ画面を表示させる
ゲームの継続が難しいエラーの発生時に使用
引数には2つのString型(表示させるメッセージ)とException型を継承した例外を指定できる
クラッシュ画面に表示させるメッセージは
[1つ目のString型引数]:[2つ目のString型引数]

18.addChat/addTransChat/addDebugChat
マイクラのワールド内プレイ画面(インベントリGUIやメインメニュー画面ではない)にチャットを表示させる
引数はString型で表示させたいメッセージ(addTransChatの場合は文字列キー)と任意の型
デバッグモードのみ表示したい場合はaddDebugChatを使用

19.registerBlock/registerTileBlock/registerDirectionBlock/registerColorBlock
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)});
  • addIRecipeはIRecipeを実装した特殊なレシピの内容を引数に指定することで登録する

MathHelper2

数学的処理の補助をするStaticユーティリティクラス
使用法はバニラのMathHelperと同じ
バニラ1.3以降のMathHelper内のメソッドを一部移植
メソッド
1.wrapAngleTo180_float/wrapAngleTo180_double
少なくともMC1.7.10には実装済み
引数はfloat/double型の角度(度数法)
もし引数の角度が-180から180ではない場合-180から180度にする
(例)引数が270の時->戻り値は-90

2.average
引数のlong型配列の平均値をdouble型で返す
(averageは名詞で日本語訳は平均)

3.abs_int
引数に指定されたint型の絶対値をint型で返す
(absは「絶対」という意味を持つ副詞absoluteの略)

EMCHelper

Equivalent Exchange(以後EE)が導入されてる環境、EEとEEAA(Advanced Alchemy)どちらも導入されてる環境の両方に対応できるEMC関連のAPI
フィールド
1.isEE
boolean型
EEが導入されているか

2.isEEAA
boolean型
EEAAが導入されているか
メソッド
1.getEMC
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種類ある
+ タグ編集
  • タグ:
  • MCAPI
  • EMCHelper
  • Java
  • reflection
  • リフレクション
  • Equivalent Exchange
  • 1.2.5
  • minecraft
ウィキ募集バナー