Advertisement
Guest User

Bakari's Hammer

a guest
Jan 31st, 2015
252
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.11 KB | None | 0 0
  1.  
  2. import java.awt.Desktop.Action;
  3. /***************************************
  4. * @GrumpyKnick
  5. * 29 January 2015
  6. * Version: 1.0
  7. * Bakari's Hammer plugin for Combatant Job
  8. ****************************************/
  9.  
  10. import java.security.Permission;
  11. import java.util.HashMap;
  12.  
  13. import javax.swing.text.html.parser.Entity;
  14.  
  15. import org.bukkit.Bukkit;
  16. import org.bukkit.ChatColor;
  17. import org.bukkit.Material;
  18. import org.bukkit.command.Command;
  19. import org.bukkit.command.CommandSender;
  20. import org.bukkit.entity.EntityType;
  21. import org.bukkit.entity.Player;
  22. import org.bukkit.entity.TNTPrimed;
  23. import org.bukkit.event.EventHandler;
  24. import org.bukkit.event.Listener;
  25. import org.bukkit.event.block.BlockPlaceEvent;
  26. import org.bukkit.event.entity.EntityExplodeEvent;
  27. import org.bukkit.event.player.PlayerInteractEvent;
  28. import org.bukkit.plugin.java.JavaPlugin;
  29. import org.bukkit.block.*;
  30.  
  31. public class Hammer extends JavaPlugin implements Listener {
  32. public HashMap<String, Long> cooldowns = new HashMap<String, Long>();
  33. /*******************************************************
  34. * Pre-Condition: Player is level 10+ Combatant
  35. * Post-Condition: TNT spawned when Right click sulphur
  36. * tnt spawn and kill surrounding mobs without damaging the
  37. * area around it
  38. *******************************************************/
  39. boolean activated = false;
  40. long cooldownLength = 1800;
  41.  
  42. @Override
  43. public void onEnable() {
  44. System.out.println("[Bakari's Hammer] is running");
  45. Bukkit.getServer().getPluginManager().registerEvents(this, this);}
  46.  
  47. @Override
  48. public void onDisable() {
  49. System.out.println("[Bakari's Hammer] is not running"); }
  50.  
  51. public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
  52. Player p = (Player)sender;
  53.  
  54. if (cmd.getName().equalsIgnoreCase("hammer") || cmd.getName().equalsIgnoreCase("tnt")) {
  55. if (p.hasPermission("Permission.hammer")) {
  56. if (activated == true) {
  57. p.sendMessage(ChatColor.DARK_PURPLE + "[Bakari]:" + ChatColor.WHITE + "You have deactivated the Bakari TnT wrath!");
  58. activated = false; }
  59. else {
  60. p.sendMessage(ChatColor.DARK_PURPLE + "[Bakari]:" + ChatColor.WHITE + "You have activated the Bakari TnT wrath!");
  61. activated = true;
  62. }
  63. }
  64. }
  65. return false;
  66. }
  67. public void addCooldown(Player p, int seconds) {
  68. cooldownLength = (System.currentTimeMillis() + seconds * 1000);
  69. }
  70.  
  71. public boolean hasCooldown(Player p) {
  72. return cooldownLength > System.currentTimeMillis();
  73. }
  74.  
  75. public String cooldownTimeLeft(Player p) {
  76. long left = (cooldownLength - System.currentTimeMillis()) / 1000L;
  77. if (left < 60) {
  78. return left + " seconds";
  79. }
  80. return left / 60 + " minute(s)";
  81. }
  82.  
  83. @EventHandler
  84. public void onClick(PlayerInteractEvent event) {
  85. Player p = event.getPlayer();
  86. int a = 2;
  87.  
  88. //CHECK THE PERMS BELOW PLEASE
  89. if (p.hasPermission("Lvl10Combatant") && p.hasPermission("towny.wild.item_use") && p.hasPermission("towny.town.item_use")){
  90. if (event.getAction().equals(Action.RIGHT_CLICK_BLOCK) || event.getAction().equals(Action.RIGHT_CLICK_AIR)) {
  91. if (p.getInventory().getItemInHand().getType().equals(Material.SULPHUR)) {
  92. //IM unsure about the whole cooldown system here. Please take a look
  93. //and edit it as needed please.
  94. if (hasCooldown(p)) {
  95. p.sendMessage(ChatColor.DARK_PURPLE + "[Bakari]: " + ChatColor.WHITE + " It is too soon to do this!" + cooldownTimeLeft(p));
  96. return;
  97. }
  98. else {
  99. p.sendMessage(ChatColor.DARK_PURPLE + "[Bakari]:" + ChatColor.WHITE + "You have awoken the TnT!");
  100. //Redefines the TnT as primed
  101. //CHECK THESE PERMS PT
  102. if (p.hasPermission("Lvl10Combatant"))
  103. a = 2;
  104. else if (p.hasPermission("Lvl15Combatant"))
  105. a = 4;
  106. else if (p.hasPermission("Lvl20Combatant"))
  107. a = 8;
  108. for (int i = 0; i <= a; i++) {
  109. TNTPrimed tnt_1 = event.getPlayer().getWorld().spawn(event.getClickedBlock().getLocation().add(-i,1,-i), TNTPrimed.class);
  110. TNTPrimed tnt_2 = event.getPlayer().getWorld().spawn(event.getClickedBlock().getLocation().add(i,1,i), TNTPrimed.class);
  111. TNTPrimed tnt_3 = event.getPlayer().getWorld().spawn(event.getClickedBlock().getLocation().add(-i,1,i), TNTPrimed.class);
  112. TNTPrimed tnt_4 = event.getPlayer().getWorld().spawn(event.getClickedBlock().getLocation().add(i,1,-i), TNTPrimed.class);
  113. ((TNTPrimed)tnt_1).setFuseTicks(15);
  114. ((TNTPrimed)tnt_2).setFuseTicks(15);
  115. ((TNTPrimed)tnt_3).setFuseTicks(15);
  116. ((TNTPrimed)tnt_4).setFuseTicks(15); }
  117. p.sendMessage(ChatColor.DARK_PURPLE + "[Bakari]:" + ChatColor.WHITE + " Here we go!");
  118. }
  119. }
  120. }
  121. }
  122. }
  123.  
  124. @EventHandler
  125. /**************************************
  126. * Makes sure blocks don;t get damaged
  127. * Not sure if this INCLUDES mobs.
  128. **************************************/
  129. public void onExplode(EntityExplodeEvent event) {
  130. if (event.getEntity().getType() == EntityType.PRIMED_TNT) {
  131. event.blockList().clear(); }
  132. }
  133. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement