LoginSignup
0
0

More than 5 years have passed since last update.

インベントリを編集できなくするためのメモ

Posted at

内容

マイクラでインベントリ編集させたくない!って時に使えるものです。
例: 実績一覧などの編集すると不都合のある物など

コード

@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文で囲んで条件をつけるのがモテる使い方ですよ(多分)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0