Closed yanang007 closed 2 years ago
arclight-1.18.2-1.0.7-SNAPSHOT-621c9499
openjdk 17 | Windows 10
plugins: 无 forge mods: veinmining-forge-1.18.2-0.19.jar
连锁挖矿附魔的实现包含两个要素:
forge的处理逻辑是在 popResource 时直接以实体加入到了世界中,因此不会受到影响。
感觉没必要存二次触发的事件,只要防止上下文捕获被意外清掉就好。 我有一个workaround是改用栈来存储事件,下面涉及捕获和重置的代码对应修改,在一次事件链中不重置 ArclightCaptures#blockDrops 来规避,但是我不是很清楚这会不会影响bukkit相关的逻辑,所以就不直接提pr了。 以下是部分workaround代码:
public class ArclightCaptures { // ... private static final Stack<BlockBreakEvent> blockBreakEvents = new Stack<>(); // ... public static void captureBlockBreakPlayer(BlockBreakEvent event) { if (blockBreakEvents.size() == 0) { blockDrops = new ArrayList<>(); } blockBreakEvents.push(event); blockBreakPlayerState = event.getBlock().getState(); } // ...
期望:掉落三个金矿石原矿
无报错信息 https://paste.ubuntu.com/p/fb33nXmnzv/
No response
等你Pr(狗头) ps: pr就对了,有啥我们会提出的(点头)
你们是住在github吗.jpg(狗头)
没有,因为有hook,第一时间会收到信息(戳手指
额,我用的是电子邮箱(
我说的是仓库的webhook
请确认您已完成以下几件事
Arclight 版本
arclight-1.18.2-1.0.7-SNAPSHOT-621c9499
Java 版本 | 操作系统
openjdk 17 | Windows 10
相关 Mod/插件 的名称及版本
错误描述
连锁挖矿附魔的实现包含两个要素:
forge的处理逻辑是在 popResource 时直接以实体加入到了世界中,因此不会受到影响。
感觉没必要存二次触发的事件,只要防止上下文捕获被意外清掉就好。
我有一个workaround是改用栈来存储事件,下面涉及捕获和重置的代码对应修改,在一次事件链中不重置 ArclightCaptures#blockDrops 来规避,但是我不是很清楚这会不会影响bukkit相关的逻辑,所以就不直接提pr了。以下是部分workaround代码:复现步骤
期望:掉落三个金矿石原矿
报错信息
无报错信息 https://paste.ubuntu.com/p/fb33nXmnzv/
复现用压缩包下载链接(可选)
No response