本帖最后由 henry5041 于 2014-11-10 21:08 编辑 
复制代码
在这一段代码中,我希望注销掉所有玻璃的掉落,但是这个EventHandler即使是在方块掉落时也无法被调用,究竟是哪里有问题= =
-         @EventHandler
 
-         public void onBlockDispenseEvent(BlockDispenseEvent event) {
 
 
-                 plugin.getLogger().info("Item dispensed");
 
-                 if (event.getItem().getType() == Material.GLASS) {
 
-                         event.setCancelled(true);
 
-                 }
 
 
-         }
 
在这一段代码中,我希望注销掉所有玻璃的掉落,但是这个EventHandler即使是在方块掉落时也无法被调用,究竟是哪里有问题= =
没办法直接注销掉落?
必须要有事件响应?
必须要有事件响应?
撸主这类有没有implements Listener.还是不行的话是不是可以将event的掉落物改为空气
你能再说的详细一点吗?
Wolverine 发表于 2014-11-7 03:28
你能再说的详细一点吗?
我希望能监听到方块掉落物品的BlockDispenseEvent,并对其进行处理
I_am_fudge 发表于 2014-11-7 00:47
撸主这类有没有implements Listener.还是不行的话是不是可以将event的掉落物改为空气 ...
我的Listener里面还有其他的EventHandler,是可以使用的。接口实现这些肯定已经做到的了= =
天堂TT 发表于 2014-11-6 21:59
没办法直接注销掉落?
必须要有事件响应?
我希望对单一一种物品的掉落进行注销,所以要监听然后进行判断
你没注册事件吧!
BlockBreakEvent e
e.getDrops().clear();
尝试下这个?
我也没接触过相关的
e.getDrops().clear();
尝试下这个?
我也没接触过相关的
810587921 发表于 2014-11-7 16:32
BlockBreakEvent e
e.getDrops().clear();
尝试下这个?
谢谢了,虽然没有起作用= =我准备试试通过注销方块破坏的事件,并直接将方块设置为空气来实现
henry5041 发表于 2014-11-10 18:38
谢谢了,虽然没有起作用= =我准备试试通过注销方块破坏的事件,并直接将方块设置为空气来实现 ...
BlockBreakEvent e
if(e.getBlock().getType==Material.GLASS)
{
e.setCancelled(true);
e.getBlock().setType(Material.AIR);
}
810587921 发表于 2014-11-10 18:39
BlockBreakEvent e
if(e.getBlock().getType==Material.GLASS)
{
大触 我们做朋友吧{:10_512:}帮忙下解决用VisualStudio2013制作启动器问题
Top2001_1 发表于 2014-11-12 21:01
大触 我们做朋友吧帮忙下解决用VisualStudio2013制作启动器问题
不会启动器无压力