禁止编辑库存的备忘录

论述

有时我们不想让玩家在我的世界中编辑物品栏!这个工具可以派上用场。
例如:像成就列表一类的编辑会导致不便的物品。

@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语句中并加上条件判断是一种酷的用法(大概)。

bannerAds