Messed up vector

Discussion in 'Plugin Development' started by justin_393, Aug 24, 2014.

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

    justin_393

    So I'm trying to create a fireball like Essential's /fireball command, but for some reason, whenever you cast it, it goes straight for about 5 blocks and then curves left, here is the code.
    Code:java
    1. package jjbat_000.legendaryrealms.spells;
    2.  
    3. import org.bukkit.ChatColor;
    4. import org.bukkit.Location;
    5. import org.bukkit.Material;
    6. import org.bukkit.entity.EntityType;
    7. import org.bukkit.entity.Player;
    8. import org.bukkit.event.EventHandler;
    9. import org.bukkit.event.Listener;
    10. import org.bukkit.event.player.PlayerInteractEvent;
    11. import org.bukkit.inventory.ItemStack;
    12. import org.bukkit.inventory.meta.ItemMeta;
    13. import org.bukkit.util.Vector;
    14.  
    15. import jjbat_000.legendaryrealms.Core;
    16. import jjbat_000.legendaryrealms.LRPlayer;
    17.  
    18. public class Fireball implements Listener {
    19. private final Core core;
    20.  
    21. public Fireball(Core core) {
    22. this.core = core;
    23. core.getServer().getPluginManager().registerEvents(this, core);
    24. }
    25.  
    26. @EventHandler
    27. public void onPlayerInteractEvent(PlayerInteractEvent event) {
    28. Player player = event.getPlayer();
    29. Vector vector = player.getEyeLocation().getDirection().multiply(2);
    30. Location SpawnAt = player.getEyeLocation().toVector()
    31. .add(player.getLocation().getDirection())
    32. .toLocation(player.getWorld());
    33. LRPlayer lrPlayer = core.getLRPlayer(player.getUniqueId());
    34. if (player.getItemInHand() != null
    35. && player.getItemInHand().hasItemMeta()
    36. && player.getItemInHand().getItemMeta().hasDisplayName()
    37. && player
    38. .getItemInHand()
    39. .getItemMeta()
    40. .getDisplayName()
    41. .equalsIgnoreCase(
    42. core.getConfig().getString("FireballStick"))) {
    43. if (player.hasPermission("legendaryrealms.spell.fireball")) {
    44. if (lrPlayer.getMana() >= core.getConfig().getInt(
    45. "Fireball-Mana")) {
    46. lrPlayer.removeMana(core.getConfig()
    47. .getInt("Fireball-Mana"));
    48. player.getWorld().spawnEntity(SpawnAt, EntityType.FIREBALL)
    49. .setVelocity(vector);
    50.  
    51. } else {
    52. player.sendMessage(ChatColor.RED
    53. + "You don't have enough mana for that spell! It requires "
    54. + core.getConfig().getInt("Fireball-Mana")
    55. + ChatColor.RED + " you only have "
    56. + lrPlayer.getMana());
    57. }
    58. } else {
    59. player.sendMessage(ChatColor.RED
    60. + "You do not have permission to use this skill!");
    61. }
    62. }
    63. String Fireball = "FireballStick";
    64.  
    65. ItemStack fireBall = new ItemStack(Material.STICK);
    66. ItemMeta im = fireBall.getItemMeta();
    67. im.setDisplayName(Fireball);
    68. fireBall.setItemMeta(im);
    69.  
    70. }
    71.  
    72. }
     
  2. Offline

    justin_393

    No one has any ideas?
     
  3. Offline

    Gater12

    justin_393
    You could use launchProjectile method that Player has to launch the Fireball
     
Thread Status:
Not open for further replies.

Share This Page