spigotプラグイン講座3-3(イベントをキャンセルしよう)

どうも! プラグインティーチャー、Mr_IKです!
初心者向けマイクラspigotプラグイン講座、第三回(3限目)始めます!

前回、全体メッセージを送信するプラグインを作りましたね。
今回はその続きからです。

第三回すべてのメニュー

  • コマンドを打ったらメッセージを送信 done
  • コマンドを打ったら全体にメッセージを送信 done
  • OP以外のブロックの破壊をすべてキャンセル ←今回はこれ
  • パスワードを入力したらOPになれるコマンド
  • [おまけ]経済との連携

OP以外のブロックの破壊をすべてキャンセル

今回はそこそこ使えるプラグインを作っていきます
前回のプロジェクトを開きましょう。

今回行こなうのは、『ブロック破壊イベントの取得』と『そのイベントをキャンセルし、メッセージ』です。

まず、

public final class Hello_world extends JavaPlugin {

public final class Hello_world extends JavaPlugin implements Listener {

に変えましょう。
これは、イベントを取得するために必要なものと思ってください。

次に、OnEnable()に

getServer().getPluginManager().registerEvents(this, this);

を追記してください。 これもイベントの取得に必要なものです。

この2つがないとエラーが出ずに反応しないので注意してください!

今の時点でコードが
https://gyazo.com/26ec8a7fb84e4d947afffc81915c5383
となってればOKです。

では、処理の部分を書いていきましょう。

下のコードを下の写真通りに書いてください

@EventHandler
public void BlockBreakCancel(BlockBreakEvent e) {
if(!e.getPlayer().isOp()){
e.getPlayer().sendMessage(“§c§lおっと!君はOPじゃないネ!”);
e.setCancelled(true);
}
}

https://gyazo.com/7fc32707f0f799e05fc7480ff538a677

赤線が出たら、ALT+ENTERでインポートです。

これを上の写真通りコピペできたら、ビルド->pluginsに入れ,reload,再起しましょう

reload・再起動が終わったら、自分の権限を黒い画面で

deop [MCID]

と入力して取り
適当なところでブロックを壊してみましょう。

ここで、ブロックが壊せたら もう一度この記事を見直し、間違えたところがないか、自分にOPがついてないかを確認しましょう。

ブロックが壊せないけどメッセージが出ない場合は、スポーンプロテクションがかかってる可能性があるので
別の場所でブロックを壊してみましょう。

このようにメッセージが出て、ブロックが壊せなかったら成功です!
https://gyazo.com/80962ce149e8532c8411b9906c16c514

後で、黒い画面で自分にOPを与えておきましょう。

op [MCID]

次回は、パスワード入力で OPをゲットできるプラグイン作成です!
乞うご期待!

コメントする