Advertisement
Guest User

Untitled

a guest
Mar 8th, 2015
17
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.89 KB | None | 0 0
  1. package me.walking.Habilidades;
  2.  
  3. import java.util.HashMap;
  4. import java.util.Map;
  5.  
  6. import org.bukkit.Material;
  7. import org.bukkit.craftbukkit.v1_7_R1.entity.CraftPlayer;
  8. import org.bukkit.entity.Player;
  9. import org.bukkit.event.EventHandler;
  10. import org.bukkit.event.Listener;
  11. import org.bukkit.event.block.Action;
  12. import org.bukkit.event.entity.PlayerLeashEntityEvent;
  13. import org.bukkit.event.player.PlayerInteractEvent;
  14. import org.bukkit.event.player.PlayerItemHeldEvent;
  15. import org.bukkit.event.player.PlayerMoveEvent;
  16. import org.bukkit.util.Vector;
  17.  
  18. public class Grappler implements Listener {
  19. @SuppressWarnings({ "unchecked", "rawtypes" })
  20. Map<Player, CopyOfFishingHook> hooks = new HashMap();
  21.  
  22. @EventHandler
  23. public void onSlot(PlayerItemHeldEvent e) {
  24. if (this.hooks.containsKey(e.getPlayer())) {
  25. ((CopyOfFishingHook) this.hooks.get(e.getPlayer())).remove();
  26. this.hooks.remove(e.getPlayer());
  27. }
  28. }
  29.  
  30. @EventHandler
  31. public void onMove(PlayerMoveEvent e) {
  32. if ((this.hooks.containsKey(e.getPlayer()))
  33. && ((!e.getPlayer().getItemInHand().getType()
  34. .equals(Material.LEASH))
  35. || (!e.getPlayer().getItemInHand().hasItemMeta())
  36. || (!e.getPlayer().getItemInHand().getItemMeta()
  37. .hasDisplayName()) || (!e.getPlayer()
  38. .getItemInHand().getItemMeta().getDisplayName()
  39. .equals("§cGrappler")))) {
  40. ((CopyOfFishingHook) this.hooks.get(e.getPlayer())).remove();
  41. this.hooks.remove(e.getPlayer());
  42. }
  43. }
  44.  
  45. @SuppressWarnings("deprecation")
  46. @EventHandler
  47. public void onLeash(PlayerLeashEntityEvent e) {
  48. Player p = e.getPlayer();
  49. if ((e.getPlayer().getItemInHand().getType().equals(Material.LEASH))
  50. && (p.getItemInHand().hasItemMeta())
  51. && (p.getItemInHand().getItemMeta().hasDisplayName())
  52. && (p.getItemInHand().getItemMeta().getDisplayName()
  53. .equals("§cGrappler"))) {
  54. e.setCancelled(true);
  55. e.getPlayer().updateInventory();
  56. e.setCancelled(true);
  57. if (!this.hooks.containsKey(p)) {
  58. return;
  59. }
  60. if (!((CopyOfFishingHook) this.hooks.get(p)).isHooked()) {
  61. return;
  62. }
  63. double d = ((CopyOfFishingHook) this.hooks.get(p))
  64. .getBukkitEntity().getLocation().distance(p.getLocation());
  65. double t = d;
  66. double v_x = (1.0D + 0.07000000000000001D * t)
  67. * (((CopyOfFishingHook) this.hooks.get(p))
  68. .getBukkitEntity().getLocation().getX() - p
  69. .getLocation().getX()) / t;
  70. double v_y = (1.0D + 0.03D * t)
  71. * (((CopyOfFishingHook) this.hooks.get(p))
  72. .getBukkitEntity().getLocation().getY() - p
  73. .getLocation().getY()) / t;
  74. double v_z = (1.0D + 0.07000000000000001D * t)
  75. * (((CopyOfFishingHook) this.hooks.get(p))
  76. .getBukkitEntity().getLocation().getZ() - p
  77. .getLocation().getZ()) / t;
  78.  
  79. Vector v = p.getVelocity();
  80. v.setX(v_x);
  81. v.setY(v_y);
  82. v.setZ(v_z);
  83. p.setVelocity(v);
  84. }
  85. }
  86.  
  87. @EventHandler
  88. public void onClick(PlayerInteractEvent e) {
  89. Player p = e.getPlayer();
  90. if ((e.getPlayer().getItemInHand().getType().equals(Material.LEASH))
  91. && (p.getItemInHand().hasItemMeta())
  92. && (p.getItemInHand().getItemMeta().hasDisplayName())
  93. && (p.getItemInHand().getItemMeta().getDisplayName()
  94. .equals("§cGrappler"))) {
  95. e.setCancelled(true);
  96. if ((e.getAction() == Action.LEFT_CLICK_AIR)
  97. || (e.getAction() == Action.LEFT_CLICK_BLOCK)) {
  98. if (this.hooks.containsKey(p)) {
  99. ((CopyOfFishingHook) this.hooks.get(p)).remove();
  100. }
  101. CopyOfFishingHook nmsHook = new CopyOfFishingHook(p.getWorld(),
  102. ((CraftPlayer) p).getHandle());
  103. nmsHook.spawn(p.getEyeLocation().add(
  104. p.getLocation().getDirection().getX(),
  105. p.getLocation().getDirection().getY(),
  106. p.getLocation().getDirection().getZ()));
  107. nmsHook.move(p.getLocation().getDirection().getX() * 5.0D, p
  108. .getLocation().getDirection().getY() * 5.0D, p
  109. .getLocation().getDirection().getZ() * 5.0D);
  110. this.hooks.put(p, nmsHook);
  111. } else {
  112. if (!this.hooks.containsKey(p)) {
  113. return;
  114. }
  115. if (!((CopyOfFishingHook) this.hooks.get(p)).isHooked()) {
  116. return;
  117. }
  118. double d = ((CopyOfFishingHook) this.hooks.get(p))
  119. .getBukkitEntity().getLocation()
  120. .distance(p.getLocation());
  121. double t = d;
  122. double v_x = (1.0D + 0.07000000000000001D * t)
  123. * (((CopyOfFishingHook) this.hooks.get(p))
  124. .getBukkitEntity().getLocation().getX() - p
  125. .getLocation().getX()) / t;
  126. double v_y = (1.0D + 0.03D * t)
  127. * (((CopyOfFishingHook) this.hooks.get(p))
  128. .getBukkitEntity().getLocation().getY() - p
  129. .getLocation().getY()) / t;
  130. double v_z = (1.0D + 0.07000000000000001D * t)
  131. * (((CopyOfFishingHook) this.hooks.get(p))
  132. .getBukkitEntity().getLocation().getZ() - p
  133. .getLocation().getZ()) / t;
  134.  
  135. Vector v = p.getVelocity();
  136. v.setX(v_x);
  137. v.setY(v_y);
  138. v.setZ(v_z);
  139. p.setVelocity(v);
  140. }
  141. }
  142. }
  143. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement