提供: Minecraft Modding Wiki
この編集を取り消せます。
下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
41行目: | 41行目: | ||
// ここに処理を書きます... | // ここに処理を書きます... | ||
}</source> | }</source> | ||
+ | |||
+ | ==== イベントのキャンセル ==== | ||
+ | イベントがCancelableな場合は、イベントをキャンセルできます。<br> | ||
+ | スキップできる処理はイベントによって異なりますが、バニラの処理と後述するreceiveCanceledがtrueのハンドラの処理が対象になります。<br> | ||
+ | 詳しくはそれぞれのEventのドキュメントを参照しています。 | ||
+ | |||
+ | ==== イベントの結果 ==== | ||
+ | イベントがHasResultな場合は、イベントに結果を持たせられます。<br> | ||
+ | ResultはDENY,DEFAULT,ALLOWの三値をとります。<br> | ||
+ | 各イベントで若干意味は異なりますが、基本的には | ||
+ | それぞれ、 | ||
+ | ; DENY | ||
+ | : 否定。不成功。イベントをキャンセルするのによく似る。 | ||
+ | ; DEFAULT | ||
+ | : 判定をバニラと同様にする。結果への不介入。処理は挟むが、その後の処理については別に干渉したくない場合に用いる。 | ||
+ | ; ALLOW | ||
+ | : 強制。成功。バニラがどんな判定をしようが、構いなくこちら側で動作を強制する。 | ||
==== イベントハンドラの設定 ==== | ==== イベントハンドラの設定 ==== | ||
85行目: | 102行目: | ||
HIGHESTなど高い優先度のハンドラでイベントがキャンセルされると、それ以下の優先度かつreceiveCanceledがtrueの場合ハンドラの処理がスキップされるということです。 | HIGHESTなど高い優先度のハンドラでイベントがキャンセルされると、それ以下の優先度かつreceiveCanceledがtrueの場合ハンドラの処理がスキップされるということです。 | ||
− | + | == イベントハンドラの登録 == | |
以上のようにメソッドを記述した上で、EventBusにそのメソッドを記述したクラスやそのインスタンスを登録しなければなりません。<br> | 以上のようにメソッドを記述した上で、EventBusにそのメソッドを記述したクラスやそのインスタンスを登録しなければなりません。<br> | ||
114行目: | 131行目: | ||
以前はFMLCommonHandler.instance().bus()という物もありましたが、MinecraftForge.EVENT_BUSに統合されました。 | 以前はFMLCommonHandler.instance().bus()という物もありましたが、MinecraftForge.EVENT_BUSに統合されました。 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== イベントの自作 == | == イベントの自作 == |