我就来吃瓜
本帖最后由 我就来吃瓜 于 2020-5-5 11:30 编辑

怎样实现禁止拖动指定格子的物品
怎样检测指定格子内放入的物品(玩家放入)
怎样清除指定格子的物品


有没有大佬解答一下用代码实现



猫眼
本帖最后由 猫眼 于 2020-5-5 11:25 编辑

清除格子可以用/replaceitem

FaceTime
我不清楚

我就来吃瓜
猫眼 发表于 2020-5-5 11:23
淦(看到锭就来抢了)

是要用代码实现
应该是这个版块吧2333

William_Shi
禁止拖动的话
监听InventoryClickEvent
判断格子序号是不是某一个序号
如果是,取消事件

阿灬秋
本帖最后由 阿秋Minecraft 于 2020-5-5 11:29 编辑

我知道最后一个

/clear 指令

我是人1012
怎样实现禁止拖动指定格子的物品
菜单吧
怎样检测指定格子内放入的物品(玩家放入)
箱子
下面漏斗配红石检测器
漏斗里面装4份满的杂物和需要监测的东西一份

怎样清除指定格子的物品
清理指定物品倒是可以(不记得了
或者清理所有/clear 玩家名字

William_Shi
检测放入的话
同理
不过一般都是在物品栏里面做一个类似于按钮效果的物品
如果被点击就
ItemStack        getItem(int index)
返回在指定索引的物品堆.
得到某个格子里面是什么物品

William_Shi
清除物品
就是new一个ItemStack
其材质为AIR
然后setItem
把空气放进指定的格子

lliiooll
本帖最后由 lliiooll 于 2020-5-5 12:27 编辑

这是让指定格子拿不下来

  1. @EventHandler
  2.     public void onInv(InventoryClickEvent e) {
  3.         // 监听GUI点击事件
  4.         if (e.getClickedInventory().getName().equalsIgnoreCase("你的GUI标题")) {
  5.             if (e.getRawSlot() == 0) {// 吧0替换为你想禁止移动的物品插槽号
  6.                 e.setCancelled(true);
  7.             }
  8.         }

  9.     }
复制代码

这是清除指定格子物品
  1. e.getClickedInventory().setItem(0, new ItemStack(Material.AIR));// 设置指定格子为空气,0为你要设置的格子
复制代码