Making Spawned TNT Explode

Discussion in 'Plugin Development' started by KeybordPiano459, Sep 3, 2012.

Thread Status:
Not open for further replies.
  1. Offline

    KeybordPiano459

    How do I make this TNT explode? All it currently does is make the explosion effects, with no actual explosion.
    Code:
    package me.KeybordPiano459.MCGrenades.events;
     
    import org.bukkit.Location;
    import org.bukkit.OfflinePlayer;
    import org.bukkit.entity.Player;
    import org.bukkit.entity.Snowball;
    import org.bukkit.entity.TNTPrimed;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.EventPriority;
    import org.bukkit.event.Listener;
    import org.bukkit.event.entity.ProjectileHitEvent;
     
    public class SnowballGrenade implements Listener {
        @EventHandler(priority = EventPriority.HIGHEST)
        public void onSnowballThrow(ProjectileHitEvent event) {
            Player player = event.getPlayer(); // <-- THIS LINE
            if (player.hasPermission("MCGrenades.Snowball")) {
                if (event.getEntity() instanceof Snowball) {
                    Snowball snow = (Snowball) event.getEntity();
                    if (snow.getShooter() instanceof Player) {
                        final Location loc = event.getEntity().getLocation();
                        final TNTPrimed tnt = loc.getWorld().spawn(loc, TNTPrimed.class);
                        tnt.setFuseTicks(40);
                        tnt.setYield(0);
                    }
                }
            }
        }
    }
    
    Also, you'll see a comment in there, on getPlayer() that says 'The method getPlayer() is undefined for the type ProjectileHitEvent'. How do I fix that?

    Bump...

    Bump, can someone please help, I don't want to bump too much =/

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 28, 2016
  2. tnt.setYield(0);

    ^your know your setting the power of tnt to 0, where normal tnt = 0.4? (or 4.0)
     
  3. Offline

    kyle1320

    KeybordPiano459
    ProjectileHitEvent doesn't have a getPlayer() method, you should get the Snowball first then use snow.getShooter().
     
    puyttre likes this.
  4. Offline

    KeybordPiano459

    :confused: oops

    Sorry, not too sure what you mean by that.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 28, 2016
  5. Offline

    kyle1320

    Code:
    public class SnowballGrenade implements Listener {
        @EventHandler(priority = EventPriority.HIGHEST)
        public void onSnowballThrow(ProjectileHitEvent event) {
                if (event.getEntity() instanceof Snowball) {
                    Snowball snow = (Snowball) event.getEntity();
                    if (snow.getShooter() instanceof Player) {
                        Player player = (Player)snow.getShooter();
                        if (player.hasPermission("MCGrenades.Snowball")) {
                            final Location loc = event.getEntity().getLocation();
                            final TNTPrimed tnt = loc.getWorld().spawn(loc, TNTPrimed.class);
                            tnt.setFuseTicks(40);
                            tnt.setYield(0);
                        }
                    }
                }
            }
        }
    }
     
Thread Status:
Not open for further replies.

Share This Page