naxa_Kです。作者様ではない第三者の回答で失礼いたしますが、これは不具合であると考えます。ゲスト さんが書きました: ↑2022年1月07日(金) 20:10 いつもMOD使わせてもらっている者です。
今回ClassicGun's 1.16.5_1.0で起こった事象でお伺いしたく書き込みます。
該当MOD内にある手榴弾を投てき武器として使用した際に、
爆発することなく弓矢として判定されて矢が発射されました。
ClassicGun'sだけで起動した状態で動画を撮ってみましたので
この事象はバグなのか仕様なのかお答えいただけると幸いです。
よろしくお願いいたします。
以下バージョン情報
1.マイクラのバージョン:1.16.5(Forge36.2.2)
2.modのバージョン:ClassicGun's1.16.5_1.0
3.導入しているmod(発見時):LittleMaidReBirth、一括MOD一式
4.クラッシュレポート:クラッシュせず
5.クラッシュorバグが発生した状況:手榴弾を投擲した際に矢が発射される(爆発せず)
以上
添付されているソースコードから開発環境を構築し確認したところ、手榴弾を実装するItemGrenadeクラスはバニラの弓を実装するBowItemクラスを継承しており、そしてオーバーライドすべきメソッドをオーバーライドしていない事がわかりました。
本来ならば、少なくともBowItemクラスのreleaseUsing()とuse()をオーバーライドすべきですが、おそらく過去のバージョンのものを修正せず流用したためにオーバーライドできておらず、それが「手榴弾が弓として機能する」事象の原因となっております。
(このModのItemGrenadeクラスにはonPlayerStoppedUsing()とonItemRightClick()の2メソッドが存在するが、1.16.5のBowItemクラスではそれぞれreleaseUsing()とuse()に移行している模様)
問題箇所を変更して再ビルドしたもので検証した結果、当該事象の修正(手榴弾が手榴弾として扱われ、投擲物も爆発する)を確認しました。以下に、僭越ながら当方での修正点を示す画像を添付いたします。
余談ですが、ClassicGun's__1.16.5__1.0.jar添付のソースコードは、そのままではビルドが通らない状態です。
当該事象の原因箇所以外でも、上述のようにバニラのバージョンアップで改名され存在しなくなったメソッドを使用しており、再ビルドの際にはその修正も必要でした。
作者様におかれましては、この不具合の確認と修正、そしてビルドが可能な最新の状態のソースコードを添付して頂けると幸いです。
添付ソースコードが最新ではなく、修正なしにビルドできない問題は作者様の他のMODでも見られるため、これについても確認をお願いいたします。
(例 : Kettenkrad 1.18.1-1.0、ドルフロMOD 1.12.2-β.20.0など)