提供: Minecraft Modding Wiki
移動先: 案内検索

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 編集中の文章
1行目: 1行目:
このページは、ASMの利用方法をサンプルを通じて察してもらうことを目的としている。<br/>
+
このページは、ASMの利用方法をサンプルを通じて察してもらうことを目的としている。
そのため[[Coremodsの基礎]]に含まれている解説はここでは省略する。
 
 
==メソッドの単純な書き換え==
 
==メソッドの単純な書き換え==
 
ここでは、TileEntityFurnaceの書き換えをサンプルとして、メソッドの書き換えを解説する。<br/>
 
ここでは、TileEntityFurnaceの書き換えをサンプルとして、メソッドの書き換えを解説する。<br/>
 +
ただし[[Coremodsの基礎]]や[[1.7のクラス書き換え]]に含まれている解説はここでは省略する。<br/>
 
今回の例ではかまどで焼きあがるまでの時間を200(棒2つ分)から400(棒4つ分)に変更する。
 
今回の例ではかまどで焼きあがるまでの時間を200(棒2つ分)から400(棒4つ分)に変更する。
 
===ソースコード===
 
===ソースコード===
239行目: 239行目:
 
</source>
 
</source>
 
; super.visitVarInsn(ALOAD, 1);
 
; super.visitVarInsn(ALOAD, 1);
: スタックに引数1を積む。(静的でないメソッドの場合、ALOAD 0はthisである。)
+
: スタックに引数1を積む。(ALOAD 0はthisが入っている。)
 
; super.visitMethodInsn(INVOKESTATIC, "SampleHooks", "totalCookTime", SampleTransformer.toDesc(int.class, "net.minecraft.item.ItemStack"), false);
 
; super.visitMethodInsn(INVOKESTATIC, "SampleHooks", "totalCookTime", SampleTransformer.toDesc(int.class, "net.minecraft.item.ItemStack"), false);
 
: 用意したメソッドを呼ぶ。
 
: 用意したメソッドを呼ぶ。
251行目: 251行目:
 
(書いている途中ですが、上で説明したのを応用すればなんとかなると思います。)
 
(書いている途中ですが、上で説明したのを応用すればなんとかなると思います。)
 
==その他==
 
==その他==
ASM Bytecode Outlineというプラグインを使うと、バイトコードを見れる
 
 
メソッドやフィールドのMCPは以下のディレクトリ
 
C:\Users\ユーザー名\.gradle\caches\minecraft\de\oceanlabs\mcp\mcp_snapshot
 
 
 
==参考==
 
==参考==
 
[http://asm.ow2.org/ ASM公式]
 
[http://asm.ow2.org/ ASM公式]
 
[https://ja.wikipedia.org/wiki/Java%E3%83%90%E3%82%A4%E3%83%88%E3%82%B3%E3%83%BC%E3%83%89 Javaバイトコード]
 
[https://ja.wikipedia.org/wiki/Java%E3%83%90%E3%82%A4%E3%83%88%E3%82%B3%E3%83%BC%E3%83%89 Javaバイトコード]

Minecraft Modding Wikiへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細はMinecraft Modding Wiki:著作権を参照)。 著作権保護されている作品は、許諾なしに投稿しないでください!

このページを編集するには、下記の確認用の質問に回答してください (詳細):

取り消し 編集の仕方 (新しいウィンドウで開きます)