Advertisement
Guest User

Untitled

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