阿易


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




代码.txt (3.24 KB, 下载次数: 5)
这是源码
有大佬愿意 看一眼是哪里写错了吗

大致原理就是 :

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

坐等大佬

美味的曲奇
GUI的操作是复杂的,如果单纯依靠匹配行为位置取消可能会有问题
比如对于shift 移动物品之类的
试试在玩家点击后检查物品格子是否合理,若不合理则取消玩家点击

Cavalry_仰望
动一下就变成拖拽事件了,可以参考我的代码,把拖拽事件处理下
https://github.com/Fireflyest/Cr ... wEventListener.java

阿易
Cavalry_仰望 发表于 2022-8-10 09:04
动一下就变成拖拽事件了,可以参考我的代码,把拖拽事件处理下
https://github.com/Fireflyest/CraftGUI/bl ...

我嫌麻烦 直接取消 拖拽事件了
我也是 才知道 原来还有拖拽事件

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

minghao233
你可以覆写替换MouseHelper试试

第一页 上一页 下一页 最后一页