内容
マイクラでインベントリ編集させたくない!って時に使えるものです。
例: 実績一覧などの編集すると不都合のある物など
コード
@EventHandler(priority = EventPriority.HIGHEST)
public void onInvClick(InventoryClickEvent e){
Player p = (Player)e.getWhoClicked();
e.setCancelled(true);
p.updateInventory();
}
動作環境
Minecraft 1.11.2の環境で動作を確認しています。
解説
ここでは以下の部分だけ書くことにします。
Player p = (Player)e.getWhoClicked();
e.setCancelled(true);
p.updateInventory();
Player p = (Player)e.getWhoClicked();
e.getWhoClicked()
で取得できるものは型HumanEntity
なので、
型Player
にキャストして格納しています。
e.setCancelled(true);
イベントをキャンセルします。
p.updateInventory();
重要です。
イベントを発生させた(インベントリをクリックした)プレイヤーのインベントリを強制的に更新します。
これを忘れると言葉では解説しにくい現象が発生します。
おわりに
ここに記したコードではGUI上での一切の操作を受け付けません。
キャンセルをif文で囲んで条件をつけるのがモテる使い方ですよ(多分)