大家好,这可能是一个不起眼的问题。我知道如何打开别人库存并对其进行更改。但我想要的是打开库存而无法更改该玩家库存。只是预览它。
Player target = Bukkit.getPlayer(args[0]);
if (target != null) {
p.openInventory(target.getInventory());
}
有谁知道如何让别人看到库存而不让他们从中取出任何物品?
谢谢!
答案 0 :(得分:2)
你可以通过InventoryClickEvent
来做到这一点,正如Andrew Li在评论中指出的那样。
InventoryClick是一个可取消的事件,您只需要将点击的广告资源与目标广告资源进行比较,如下所示:
@EventHandler
public void onInventoryClick(InventoryClickEvent e) {
HumanEntity clicker = e.getWhoClicked();
Inventory inv = e.getClickedInventory();
if (/*inv is your saved inv*/) {
e.setCancelled(true);
}
通过这种方式,您可以取消库存点击,从而取消库存中发生的任何操作,例如拍摄或放置物品,但仍允许此人查看库存。