I am trying to set a delayed task for an explosion but i'm not sure if the instance of my listener is being recognised Code: public class GrenadeListener implements Listener { public static GrenadeListener plugin; public void Grenade(GrenadeListener instance){ plugin = instance; } private static final PlayerEggThrowEvent PlayerEggThrowEvent = null; PlayerEggThrowEvent event = PlayerEggThrowEvent; TNTPrimed TNT = null; @EventHandler() public void eggThrow(PlayerEggThrowEvent event){ Player p = event.getPlayer(); event.setHatching(false); final Item grenade = event.getPlayer().getWorld().dropItem(event.getEgg().getLocation(), new ItemStack(Material.EGG)); grenade.setVelocity(event.getPlayer().getEyeLocation().getDirection()); p.getInventory().removeItem(grenade.getItemStack()); grenade.getWorld().createExplosion(grenade.getLocation(), 4); plugin.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() { public void run() { grenade.getServer().broadcastMessage("This message is broadcast after 3 seconds"); } }, 60L); } } I have been stuck on this for some time. Any help is appreciated
@EventHandler() should be @EventHandler Put a debug message in, something like this Code: @EventHandler() public void eggThrow(PlayerEggThrowEvent event){ Player p = event.getPlayer(); p.sendMessage("This is the eggthrow event!"); event.setHatching(false); final Item grenade = event.getPlayer().getWorld().dropItem(event.getEgg().getLocation(), new ItemStack(Material.EGG)); EDIT by Moderator: merged posts, please use the edit button instead of double posting.