Grappling Hook Plugin Not Working

Discussion in 'Plugin Development' started by mkezar, Apr 24, 2014.

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

    mkezar

    Hi. I have this plugin that with a fishing rod you can use it as a grappling hook. It dosnt do it at all. Here is my Plugin:
    Code:java
    1. package me.mkezar.VariousProjects;
    2.  
    3. import java.util.ArrayList;
    4.  
    5. import org.bukkit.Bukkit;
    6. import org.bukkit.Location;
    7. import org.bukkit.Material;
    8. import org.bukkit.block.Block;
    9. import org.bukkit.entity.EntityType;
    10. import org.bukkit.entity.Player;
    11. import org.bukkit.event.EventHandler;
    12. import org.bukkit.event.Listener;
    13. import org.bukkit.event.entity.EntityDamageEvent;
    14. import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
    15. import org.bukkit.event.entity.ProjectileLaunchEvent;
    16. import org.bukkit.plugin.java.JavaPlugin;
    17. import org.bukkit.util.Vector;
    18.  
    19. public class Wand extends JavaPlugin implements Listener {
    20.  
    21. public void onEnable() {
    22. Bukkit.getServer().getPluginManager().registerEvents(this, this);
    23. }
    24.  
    25. private ArrayList<Player> cooldown = new ArrayList<Player>(), nofall = new ArrayList<Player>();
    26.  
    27. @SuppressWarnings("deprecation")
    28. @EventHandler
    29. public void onGrappleThrow(ProjectileLaunchEvent e) {
    30. if (!e.getEntityType().equals(EntityType.FISHING_HOOK)) return;
    31. if (!(e.getEntity().getShooter() instanceof Player)) return;
    32.  
    33. final Player p = (Player) e.getEntity().getShooter();
    34.  
    35. if (cooldown.contains(p)) {
    36. e.setCancelled(true);
    37. return;
    38. }
    39.  
    40. Location target = null;
    41.  
    42. for (Block block : p.getLineOfSight(null, 100)) {
    43. if (!block.getType().equals(Material.AIR)) {
    44. target = block.getLocation();
    45. break;
    46. }
    47. }
    48.  
    49. if (target == null) {
    50. e.setCancelled(true);
    51. return;
    52. }
    53.  
    54. p.teleport(p.getLocation().add(0, 0.5, 0));
    55.  
    56. final Vector v = getVectorForPoints(p.getLocation(), target);
    57.  
    58. e.getEntity().setVelocity(v);
    59.  
    60. if (!nofall.contains(p)) nofall.add(p);
    61.  
    62. Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
    63. public void run() {
    64. p.setVelocity(v);
    65. }
    66. }, 5);
    67.  
    68. cooldown.add(p);
    69.  
    70. Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
    71. public void run() {
    72. cooldown.remove(p);
    73. }
    74. }, 15);
    75. }
    76.  
    77. @EventHandler
    78. public void onEntityDamage(EntityDamageEvent e) {
    79. if (!(e.getEntity() instanceof Player)) return;
    80. if (!e.getCause().equals(DamageCause.FALL)) return;
    81.  
    82. Player p = (Player) e.getEntity();
    83.  
    84. if (nofall.contains(p)) {
    85. e.setCancelled(true);
    86. nofall.remove(p);
    87. }
    88. }
    89.  
    90. private Vector getVectorForPoints(Location l1, Location l2) {
    91. double g = -0.08;
    92. double d = l2.distance(l1);
    93. double t = d;
    94. double vX = (1.0+0.07*t) * (l2.getX() - l1.getX())/t;
    95. double vY = (1.0+0.03*t) * (l2.getY() - l1.getY())/t - 0.5*g*t;
    96. double vZ = (1.0+0.07*t) * (l2.getZ() - l1.getZ())/t;
    97. return new Vector(vX, vY, vZ);
    98. }
    99. }

    For some reason it dosnt work for 1.7 Please help!!! Thanks!
    -mkezar

    OHQCraft

    I have absolutly no idea why it dosnt work

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 7, 2016
  2. Offline

    RawCode

    zero debug messages?
     
  3. Offline

    mkezar

    I guess Remote Entities dosnt work for 1.7 :(

    bump

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 7, 2016
Thread Status:
Not open for further replies.

Share This Page