【问题标题】:View Inventory without editing无需编辑即可查看库存
【发布时间】:2017-03-20 22:07:47
【问题描述】:

大家好,可能是一个小白问题。我知道如何打开别人的库存并对其进行更改。但我想要的是只打开库存,而无需更改该玩家库存。只是预览。

Player target = Bukkit.getPlayer(args[0]);
      if (target != null) {
        p.openInventory(target.getInventory());
      }

有谁知道如何只让其他人看到库存而不让他们从中取出任何物品?

谢谢!

【问题讨论】:

  • 你大概可以使用InventoryClickEvent,检查物品栏是不是目标物品栏,点击的是执行命令的玩家,然后取消。

标签: java minecraft bukkit inventory


【解决方案1】:

正如 Andrew Li 在 cmets 中指出的那样,您可以通过 InventoryClickEvent 进行操作。

InventoryClick 是一个可取消的事件,您只需将点击的广告资源与您的目标广告资源进行比较,如下所示:

@EventHandler
public void onInventoryClick(InventoryClickEvent e) {
HumanEntity clicker = e.getWhoClicked();
Inventory inv = e.getClickedInventory();
if (/*inv is your saved inv*/) {
e.setCancelled(true);
}

通过这种方式,您可以取消点击库存,从而取消库存中发生的任何操作,例如拿取或放置物品,但仍允许该人查看库存。

【讨论】:

  • 您好,我正在尝试按照您的解释进行操作,但无法使用“getClickedInventory”方法...
  • 有什么问题?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-15
  • 1970-01-01
  • 1970-01-01
  • 2014-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多