シンタックスハイライト

アイテムからonBlockActivatedを無効化させたい

onBlockActivatedは、よくBlockからGUIを開くときに利用される。
しかし、そういった効果が邪魔になるケースも有る。
それを解決する方法を見つけた(前からあるかもしれないが)のでここに書きたい。

まずはこのトピックで右クリック時の処理を調べる。(takanasayo氏に感謝)
すると、Item#onItemUseFirstというメソッドでtrueを返せば、onBlockActivatedを呼ぶことを防げる事がわかる。
しかしここでひとつの問題が生じる。
右クリック時に何らかの処理をしたい場合にonItemUseが使えないのだ。
これだけならどうってことないのだがどうやらonItemUseFirstはClientでしか呼ばれないらしい。
つまりServer側で処理する必要がある(EntityPlayerMPとか)ものはパケットを送ってやってIMessage#onMessageで処理しなければならないことを意味する。
パケットの送り方はここにあるので割愛させていただく。(A.K.氏に感謝)

※この投稿は1.7.10-MinecraftForge10.13.0.1180について書かれています。

0 件のコメント:

コメントを投稿