
如图所示 这个格子是不允许放入此物品的
但是只要在 放置时 按住鼠标左键 然后稍微移动一下
在松开 就可以强行放入了


这是源码
有大佬愿意 看一眼是哪里写错了吗
大致原理就是 :
1. 一开始是不允许操作物品的 event.setCancelled(true); //不允许操作物品
2. 当玩家鼠标点击的格子是 4,10,16,29,33 的索引格子时
3. 就会允许玩家 操作这些格子的物品 ( 但前提是 手持部分物品时 或者 空手时 )
4. 比如 4 号格子 只能放入 物品lore里带有 §e部位: §e§l头冠 的物品
5. 如图所示 此物品不属于可以放入的物品 所以放不进去
6. 但是如果 点击物品 后 将鼠标划入这个格子里 然后按住鼠标左键
7. 移动一下鼠标再松开 就可以放进去了
坐等大佬

GUI的操作是复杂的,如果单纯依靠匹配行为位置取消可能会有问题
比如对于shift 移动物品之类的
试试在玩家点击后检查物品格子是否合理,若不合理则取消玩家点击
比如对于shift 移动物品之类的
试试在玩家点击后检查物品格子是否合理,若不合理则取消玩家点击
动一下就变成拖拽事件了,可以参考我的代码,把拖拽事件处理下
https://github.com/Fireflyest/Cr ... wEventListener.java
https://github.com/Fireflyest/Cr ... wEventListener.java
Cavalry_仰望 发表于 2022-8-10 09:04
动一下就变成拖拽事件了,可以参考我的代码,把拖拽事件处理下
https://github.com/Fireflyest/CraftGUI/bl ...
我嫌麻烦 直接取消 拖拽事件了
我也是 才知道 原来还有拖拽事件

PlayerClickEvent,首先判断是不是GUI,可以通过getOpenInventory来获取InventoryView,然后getTopInventory.getTitle()来判断,如果是GUI,直接取消掉事件,不用一个个去判断shiftclick还是numberKey
你可以覆写替换MouseHelper试试