17時44分]アイテム名を強引に書き出したアイテムの取引をするbukkitプラグインを製作するにあたり、アイテムの名前を取得したい。...が、どうやらbukkitにはアイテム名を取得するメソッドは無いらしい。GoogleでアイテムIDとアイテム名を結び付けている日本語のサイトを探すとかクライアントのminecraft.jarの中にあるja_JP.langファイルを直接読むとかいろいろ試行錯誤した結果、クライアントMODを作ってアイテム名を取り出すことにした。プログラムを読み進めると、プレイヤーが「アイテムを投げるキー(デフォルトでQ)」を押すと、MinecraftクラスのrunTick()メソッドが呼ばれるようなので、このタイミングでforループでアイテムIDを1ずつ増やしながらアイテムを作り、名前を取得していきたい。※以下の記載は非常に強引なアイテム名取得方法なので、もっとうまい方法があればそっちを使ったほうがいい。MinecraftをMCPでデコンパイルし、Client/src/net/minecraft/src/Minecraft.javaを開くと以下のようになっている。ここで、1672行目と次の行の間に以下のコードを追加する。thePlayer.sendChatMessage(filename.getCanonicalPath()+"にアイテム名一覧を出力しました。thePlayer.sendChatMessage("エラーが発生しました。//////////////////コンパイルして実行し、ゲームが始まったら適当なアイテムを一個投げると追加したコードが実行される。コンパイルされたminecraft.jarが実行されるワークディレクトリ(たぶんmcp\jars\bin\)に、itemname.csvというファイルが作成されるはず。試行錯誤して数日、ようやくアイテム名を取り出せた。こんなんですが欲しい方はテキスト版かHTML版をどうぞ。コードの前半から手作業っぷりがにじみ出てるけどここを自動化することはできるのかな?そして説明の3行目以降が英語になってしまうのはなぜなのだろう。試行錯誤したけどどうにもならなかった。values2013/8/10追記:デコンパイル時に2つのファイルを削除して実行したところ、アイテム名やアイテムの説明が英語になってしまう問題が解決した。アイテム一覧から色つき粘土のカラーバリエーションが抜け落ちていた。上記2つの理由で、アイテム一覧のテキスト版とHTML版を更新。ソースファイルにも色つき粘土に関する部分を追加、わかりにくかった部分を一部変更。2015/8/22追記:V1.8.8版を作成しました。RSS2.0最近のコメントおー、お役に立てたようでなによりです。再起...[9/11]この記事が非常の役立ちました。おかげさまで...[9/9]1.14.2のAPIで試しましたが、MapInitializeEv...[9/9]天晴れ!押したらポーションのモヤモヤでまし...[5/26]習うより慣れろって感じで。連絡不要でご自由に貼ってください。画像や添付ファイルへの直リンクはご遠慮願います。