本帖最后由 wangmcptr 于 2018-3-29 14:44 编辑
比如我用稿子挖钻石原矿掉落1个钻石,怎么设置成2个。我只研究出来要监听BlockBreakEvent事件,好像不能直接修改数量,是不是要原地创建一个钻石?请大神支招。
比如我用稿子挖钻石原矿掉落1个钻石,怎么设置成2个。我只研究出来要监听BlockBreakEvent事件,好像不能直接修改数量,是不是要原地创建一个钻石?请大神支招。
本帖最后由 woshilaji 于 2018-3-29 19:24 编辑
应该这样就没问题了
应该这样就没问题了
C盘图片看不到的。详见水楼
ling_NPC 发表于 2018-3-29 19:21
C盘图片看不到的。详见水楼
欸,还没编辑呢,恢复速度有点快哦(或许是我的速度有点慢)
woshilaji 发表于 2018-3-29 19:20
应该这样就没问题了
真是太感谢你了,我何时才能成为你这样的大神
- @EventHandler
- public void RainIFunS(BlockBreakEvent e) {
- if (e.getBlock().getType().equals(Material.DIAMOND_ORE)) {
- e.setCancelled(true);
- e.getBlock().setType(Material.AIR);
- e.getBlock().getLocation().getWorld().dropItem(e.getBlock().getLocation(), new ItemStack(Material.DIAMOND,2));
- }
- }
楼主也可以这样哦
RainIFunS 发表于 2018-3-29 21:54
楼主也可以这样哦
感谢大神指点,不过setCancelled函数我没搞懂,这不是设定这个事件无效吗,怎么下面的代码还会执行。
wangmcptr 发表于 2018-4-1 18:20
感谢大神指点,不过setCancelled函数我没搞懂,这不是设定这个事件无效吗,怎么下面的代码还会执行。 ...
设定无效,只是把原来的挖掘事件取消了吧……但是代码又没有return或者break之类的点,当然继续执行下一行代码啊……
事件是游戏事件,代码是代码啊……
原来的事件,是挖钻石矿,掉一个钻石
现在监听到这个事件了,就把这个事件取消掉,也就是说钻石矿还在,钻石也没掉
接下来再设定一个自己的事件,把这个钻石矿,设置成空气方块,再设置掉落2个钻石,看起来就像是挖了一个钻石矿,掉了2个钻石
顺带一提,你可能还需要提前判断一下,挖掘工具有没有时运,或者有没有精准……
wdmywm 发表于 2018-4-2 14:17
设定无效,只是把原来的挖掘事件取消了吧……但是代码又没有return或者break之类的点,当然继续执行下一 ...
感谢指点,我何时才能成为你这样的大神。