CreateExplosion help!

Discussion in 'Plugin Development' started by Jimfutsu, Feb 26, 2014.

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

    Jimfutsu

    Hi, I have been making a plugin called exploding eggs, it basically explodes eggs when they touch the ground. I always thought that world.createExplosion(egg.getLocation(), 4F, false); would disable block breaking, but it still breaks blocks, how do I disable it?

    Code:
    Code:java
    1. package me.jimfutsu.explodingeggs;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.ChatColor;
    5. import org.bukkit.Material;
    6. import org.bukkit.World;
    7. import org.bukkit.command.Command;
    8. import org.bukkit.command.CommandSender;
    9. import org.bukkit.entity.Egg;
    10. import org.bukkit.entity.Player;
    11. import org.bukkit.event.EventHandler;
    12. import org.bukkit.event.Listener;
    13. import org.bukkit.event.entity.ProjectileHitEvent;
    14. import org.bukkit.inventory.ItemStack;
    15. import org.bukkit.inventory.meta.ItemMeta;
    16. import org.bukkit.plugin.java.JavaPlugin;
    17.  
    18. public class explodingeggs extends JavaPlugin implements Listener{
    19.  
    20. public void onEnable() {
    21. getServer().getPluginManager().registerEvents(this, this);
    22. }
    23.  
    24. public void OnDisable() {
    25. }
    26.  
    27.  
    28. public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args)
    29. {
    30. if (cmd.getName().equalsIgnoreCase("eggs")) {
    31. if (args.length == 1){
    32. if (args[0].equalsIgnoreCase("give")) {
    33. ItemStack iegg = new ItemStack(Material.EGG);
    34. Player player = (Player)sender;
    35. ItemMeta meta = iegg.getItemMeta();
    36. meta.setDisplayName(ChatColor.RED + "Exploding Egg");
    37. iegg.setItemMeta(meta);
    38. player.getInventory().addItem(new ItemStack(iegg));
    39. }
    40. }
    41. return true;
    42. }
    43. return true;
    44. }
    45.  
    46.  
    47. @EventHandler
    48. public void onProjectileHit(ProjectileHitEvent event) {
    49. if (event.getEntity() instanceof Egg) {
    50. Egg egg = (Egg) event.getEntity();
    51. World world = event.getEntity().getWorld();
    52. world.createExplosion(egg.getLocation(), 4F, false);
    53. Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
    54. public void run() {
    55. Bukkit.getServer().broadcastMessage(ChatColor.RED + "BOOM! BOOM! BOOM!");
    56. }
    57. }, 40L);
    58.  
    59. }
    60.  
    61.  
    62. }
    63. }


    Thanks
     
  2. Jimfutsu
    The boolean in the method constructor is used to determine whether the explosion should set blocks on fire or not. Either set the power to 0f (should cause a normal sized explosion, but not break blocks), or cancel some event that handles this type of explosions.
     
  3. Offline

    TryB4

    Jimfutsu
    boolean createExplosion(double x,
    double y,
    double z,
    float power,
    boolean setFire,
    boolean breakBlocks)
     
    Jimfutsu likes this.
  4. Offline

    c0mp

    Moved to Plugin Development!
     
  5. Offline

    CoderRyan

    @EventHandler
    public void onExplodeEvent(EntityExplodeEvent e) {
    e.blockList().clear();
    Entity entity = e.getEntity();
    if (entity instanceof Creeper)
    e.setCancelled(true);
    }
     
  6. Offline

    Jimfutsu


    Sorry, I didn't see plugin development tab.
     
Thread Status:
Not open for further replies.

Share This Page