ページ 11

[解決済み][plugin]クリックしたら反応するイベント(PlayerInteractEvent)が反応しない

投稿記事Posted: 2017年9月10日(日) 11:37
by mira_gfx
サーバ構成
サーババージョン:minecraft1.8 spgot
サーバに割り当てたメモリ:1GB

ソースコード:
コード: 全て選択
@EventHandler
public void onInteract (PlayerInteractEvent e){
   Action action = e.getAction();
   Player p = e.getPlayer();
   Block block = e.getClickedBlock();
   if(action.equals(Action.LEFT_CLICK_BLOCK)){
      if(block.getType().equals(Material.CHEST)){
         p.sendMessage("開発中!楽しみにしててね!");
      }
}
}

初心者な部分もあるのでよろしくお願いします :fre:

Re: [plugin]クリックしたら反応するイベント(PlayerInteractEvent)が反応しない

投稿記事Posted: 2017年9月18日(月) 02:18
by ヤドカリ
恐らくonInteractメソッドをPlayerInteracteventメソッドに変更すれば動作すると思います

Re: [plugin]クリックしたら反応するイベント(PlayerInteractEvent)が反応しない

投稿記事Posted: 2017年9月19日(火) 21:36
by ゲスト
エラーが出ていないならデバッグしましょう。
全部の分岐にログ吐くようにしてみてください。
どこの判定で弾かれているかわかるはずです。

onInteractの名前かえろってのは関係ないです

Re: [plugin]クリックしたら反応するイベント(PlayerInteractEvent)が反応しない

投稿記事Posted: 2017年9月20日(水) 15:51
by ヤドカリ
メソッドはどちらでもいいようです、すいません
というか自分の環境ではこれをそのままコピペしたら動きました
他に考えられることは/reloadをしていないかymlの方が間違っているかだと思うので/plで読み込まれていないのならymlが間違っていると思われます

Re: [plugin]クリックしたら反応するイベント(PlayerInteractEvent)が反応しない

投稿記事Posted: 2017年9月30日(土) 05:47
by King(qpwakaba)
ぱっと思いつくのは
  • registerEvents忘れ
  • ロード時エラー (registerEvents前にエラー)
  • LEFT_CLICK_BLOCKのifが通っていない or Material.CHESTのifが通っていない
あたり? チェックしてみては。

イベントはメソッド名特に関係なくて、
  • EventHandlerが付いている
  • 引数が1つである
  • 引数がorg.bukkit.event.Eventを継承しているクラスである
が条件だったはず

Re: [plugin]クリックしたら反応するイベント(PlayerInteractEvent)が反応しない

投稿記事Posted: 2017年10月23日(月) 00:33
by ゲスト
質問しておいて返事しないの無責任じゃない?

Re: [plugin]クリックしたら反応するイベント(PlayerInteractEvent)が反応しない

投稿記事Posted: 2017年11月01日(水) 16:50
by ゲスト
皆さんありがとうございます。
筆問した後にPCを触れない状況が長くなってしまったので返信が遅れました。本当に申し訳ありませんでした。
原因は「registerEvents忘れ」でした。
皆さま、本当にありがとうございました。返事が遅くなってしまいごめんなさい。