Advertisement
Guest User

33

a guest
Oct 30th, 2014
344
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.75 KB | None | 0 0
  1. package org.npc.exp;
  2.  
  3. import java.util.List;
  4. import org.bukkit.Location;
  5. import org.bukkit.Material;
  6. import org.bukkit.World;
  7. import org.bukkit.block.Block;
  8. import org.bukkit.entity.Entity;
  9. import org.bukkit.entity.Player;
  10. import org.bukkit.event.EventHandler;
  11. import org.bukkit.event.Listener;
  12. import org.bukkit.event.block.BlockBreakEvent;
  13. import org.bukkit.event.entity.EntityDamageEvent;
  14. import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
  15. import org.bukkit.inventory.ItemStack;
  16. import org.bukkit.inventory.meta.ItemMeta;
  17.  
  18. public class EventListener
  19. implements Listener
  20. {
  21. private ExplosivePickaxe main; <--- Explosive pickaxe is a another class
  22.  
  23. public EventListener(ExplosivePickaxe main)
  24. {
  25. this.main = main;
  26. }
  27.  
  28. @EventHandler
  29. public void onEntityDamage(EntityDamageEvent evt) {
  30. Entity damaged = evt.getEntity();
  31. if ((evt.getCause() == EntityDamageEvent.DamageCause.BLOCK_EXPLOSION) &&
  32. ((damaged instanceof Player))) {
  33. Player player = (Player)damaged;
  34. ItemStack item = player.getItemInHand();
  35. if ((this.main.isPickaxe(item)) && (item.hasItemMeta()) &&
  36. (((String)item.getItemMeta().getLore().get(0)).equalsIgnoreCase(this.main.getLore())))
  37. evt.setCancelled(true);
  38. }
  39. }
  40.  
  41. @EventHandler
  42. public void onBlockBroken(BlockBreakEvent evt)
  43. {
  44. Player player = evt.getPlayer();
  45. if (player.hasPermission("ep.explode")) {
  46. Block block = evt.getBlock();
  47. ItemStack item = player.getItemInHand();
  48. if ((this.main.isPickaxe(item)) &&
  49. (item.hasItemMeta()) &&
  50. (((String)item.getItemMeta().getLore().get(0)).equalsIgnoreCase(this.main.getLore()))) {
  51. Location loc = block.getLocation();
  52. double X = loc.getBlockX();
  53. double Y = loc.getBlockY();
  54. double Z = loc.getBlockZ();
  55. if (!this.main.getNatural()) {
  56. int radius = this.main.getRadius() - 2;
  57. player.getWorld().createExplosion(loc, 0.0F);
  58. double minX = X - radius;
  59. double maxX = X + radius + 1.0D;
  60. double minY = Y - radius;
  61. double maxY = Y + radius + 1.0D;
  62. double minZ = Z - radius;
  63. double maxZ = Z + radius + 1.0D;
  64. for (double x = minX; x < maxX; x += 1.0D) {
  65. for (double y = minY; y < maxY; y += 1.0D)
  66. for (double z = minZ; z < maxZ; z += 1.0D) {
  67. Location location = new Location(block.getWorld(), x, y, z);
  68. if (location.getBlock().getType() != Material.BEDROCK)
  69. location.getBlock().breakNaturally();
  70. }
  71. }
  72. }
  73. else
  74. {
  75. player.getWorld().createExplosion(loc, this.main.getRadius());
  76. }
  77. }
  78. }
  79. }
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement