Greensky
本帖最后由 henry5041 于 2014-11-10 21:08 编辑
  1.         @EventHandler
  2.         public void onBlockDispenseEvent(BlockDispenseEvent event) {

  3.                 plugin.getLogger().info("Item dispensed");
  4.                 if (event.getItem().getType() == Material.GLASS) {
  5.                         event.setCancelled(true);
  6.                 }

  7.         }
复制代码

在这一段代码中,我希望注销掉所有玻璃的掉落,但是这个EventHandler即使是在方块掉落时也无法被调用,究竟是哪里有问题= =

天堂TT
没办法直接注销掉落?
必须要有事件响应?

I_am_fudge
撸主这类有没有implements Listener.还是不行的话是不是可以将event的掉落物改为空气

Wolverine
你能再说的详细一点吗?

Greensky
Wolverine 发表于 2014-11-7 03:28
你能再说的详细一点吗?

我希望能监听到方块掉落物品的BlockDispenseEvent,并对其进行处理

Greensky
I_am_fudge 发表于 2014-11-7 00:47
撸主这类有没有implements Listener.还是不行的话是不是可以将event的掉落物改为空气 ...

我的Listener里面还有其他的EventHandler,是可以使用的。接口实现这些肯定已经做到的了= =

Greensky
天堂TT 发表于 2014-11-6 21:59
没办法直接注销掉落?
必须要有事件响应?

我希望对单一一种物品的掉落进行注销,所以要监听然后进行判断

耗子
你没注册事件吧!

a8105
BlockBreakEvent e
e.getDrops().clear();
尝试下这个?
我也没接触过相关的

Greensky
810587921 发表于 2014-11-7 16:32
BlockBreakEvent e
e.getDrops().clear();
尝试下这个?

谢谢了,虽然没有起作用= =我准备试试通过注销方块破坏的事件,并直接将方块设置为空气来实现

a8105
henry5041 发表于 2014-11-10 18:38
谢谢了,虽然没有起作用= =我准备试试通过注销方块破坏的事件,并直接将方块设置为空气来实现 ...

BlockBreakEvent e
if(e.getBlock().getType==Material.GLASS)
{
    e.setCancelled(true);
    e.getBlock().setType(Material.AIR);
}

Top2001_1
810587921 发表于 2014-11-10 18:39
BlockBreakEvent e
if(e.getBlock().getType==Material.GLASS)
{

大触  我们做朋友吧{:10_512:}帮忙下解决用VisualStudio2013制作启动器问题

a8105
Top2001_1 发表于 2014-11-12 21:01
大触  我们做朋友吧帮忙下解决用VisualStudio2013制作启动器问题

不会启动器无压力