Solved Getting errors? D:

Discussion in 'Plugin Development' started by ZygoZ, Apr 7, 2014.

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

    ZygoZ

    I've created a little plugin (in danish) that flashes a player, to another player.
    But I'm getting errors, I hoped that you guys could help me out..

    ERROR LOG

    Code:java
    1. package me.ZygoZ;
    2.  
    3. import org.bukkit.ChatColor;
    4. import org.bukkit.Location;
    5. import org.bukkit.command.Command;
    6. import org.bukkit.command.CommandSender;
    7. import org.bukkit.entity.Player;
    8. import org.bukkit.plugin.PluginManager;
    9. import org.bukkit.plugin.java.JavaPlugin;
    10.  
    11. @SuppressWarnings("unused")
    12. public class Flash extends JavaPlugin {
    13.  
    14. @Override
    15. public void onDisable() {
    16.  
    17. }
    18.  
    19. @Override
    20. public void onEnable() {
    21.  
    22. }
    23.  
    24. public boolean onCommand (CommandSender sender, Command cmd, String label, String[] args) {
    25. Player player = (Player) sender;
    26. if(label.equalsIgnoreCase("flash")) {
    27. if (args.length == 0) {
    28. player.sendMessage(ChatColor.DARK_RED + "Forkert! Brug:" + ChatColor.GOLD + ChatColor.BOLD + " '/flash <Navn>'");
    29. }if(args.length == 1){
    30. Player targetPlayer = player.getServer().getPlayer(args[0]);
    31. Location location1 = player.getLocation();
    32. player.sendMessage(ChatColor.GREEN + "Du er blevet flashed hen til " + ChatColor.AQUA + ChatColor.BOLD + targetPlayer.getName() + ChatColor.RESET + ChatColor.GREEN + "!");
    33. targetPlayer.sendMessage(ChatColor.BOLD + player.getName() + ChatColor.RESET + ChatColor.GREEN + " har flashed sig hen til dig!");
    34. }if(args.length > 1){
    35. player.sendMessage(ChatColor.DARK_RED + "Forkert! Brug:" + ChatColor.GOLD + ChatColor.BOLD + " '/flash <Navn>'");
    36. }else if(args.length == 1) {
    37. if (player.getServer().getPlayer(args[1]) != null) {
    38. Player targetPlayer = player.getServer().getPlayer(args[0]);
    39. player.sendMessage(ChatColor.DARK_RED + "Spilleren er ikke online!");
    40. }
    41.  
    42. }
    43.  
    44. }
    45. return false;
    46. }
    47.  
    48. }
    49.  


    ~ Thanks in Advance!
     
  2. Offline

    Zethariel

    You're not checking if a player exists before teleporting to him. In your error log, the "this" player doesn't exist.

    Make sure you check if a player exists before teleporting
     
  3. Offline

    xJeremyCx

    You should check if the player is online by Player p = Bukkit.getPlayer("name");
    if(p==null)
    {
    //player not online!
    }
     
  4. Offline

    ZygoZ

    Where should I put the
    Code:java
    1. Player p = Bukkit.getPlayer("name");
    2. if(p==null)
    3. {
    4. //player not online!
    5. }

    ?
     
  5. Offline

    Code0

    First of all, you should use "Bukkit" instead of the player. Example: Instead of player.getServer().getPlayer(args[0]), use Bukkit.getServer().getPlayer(args[0])

    So lets jump to the stack trace (the error message). You can see that the error occurs in your "Flash" class at line 32 and 37. So I checked these lines and found out that you didn't check if the player actually is online. Thus you get the NullPointerException.

    Just simply add the following code after line 29. So your code from there should look like this:


    Code:java
    1. if(args.length == 1) {
    2. if(targetPlayer != null) {
    3. Player targetPlayer = Bukkit.getServer().getPlayer(args[0]);
    4. Location location1 = Bukkit.getLocation();
    5. player.sendMessage(ChatColor.GREEN + "Du er blevet flashed hen til " + ChatColor.AQUA+ChatColor.BOLD+targetPlayer.getName() + ChatColor.RESET + ChatColor.GREEN + "!");
    6. targetPlayer.sendMessage(ChatColor.BOLD + player.getName() + ChatColor.RESET + ChatColor.GREEN + " har flashed sig hen til dig!");
    7. }
    8. // else is assigned to: if the targetPlayer IS null
    9. else {
    10. player.sendMessage("Could not find player (in danish)")


    I hope this helped. If not, just tag me.

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

    ZygoZ

    Code0 Should I delete the rest after
    Code:java
    1. player.sendMessage("Could not find player (in danish)")
    ?
    I'm doing this wrong.. Screenshot
     
  7. Offline

    Code0

    No no. Just keep the rest of your code. Just add that if(targetPlayer !=null) an the else statement.

    I'm currently writing your full code that should work. If what I gave you doesn't work, just hold on a minute.

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

    ZygoZ

  9. Offline

    Code0

    Could you send me the whole code through PasteBin?

    ZygoZ
     
  10. Offline

    ZygoZ

    Code0 The previous code? or the Screenshot (code)?

    Pastebin Code0

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

    Code0

    Code:java
    1. package me.ZygoZ;
    2.  
    3. import org.bukkit.ChatColor;
    4. import org.bukkit.Location;
    5. import org.bukkit.World;
    6. import org.bukkit.command.Command;
    7. import org.bukkit.command.CommandSender;
    8. import org.bukkit.entity.Player;
    9. import org.bukkit.event.world.WorldEvent;
    10. import org.bukkit.plugin.PluginManager;
    11. import org.bukkit.plugin.java.JavaPlugin;
    12.  
    13. @SuppressWarnings("unused")
    14. public class Flash extends JavaPlugin {
    15.  
    16. @Override
    17. public void onDisable() {
    18.  
    19. }
    20.  
    21. @Override
    22. public void onEnable() {
    23.  
    24. }
    25.  
    26. public boolean onCommand (CommandSender sender, Command cmd, String label, String[] args) {
    27. Player player = (Player) sender;
    28. if(label.equalsIgnoreCase("flash")) {
    29. if (args.length == 0) {
    30. player.sendMessage(ChatColor.DARK_RED + "Forkert! Brug:" + ChatColor.GOLD + ChatColor.BOLD + " '/flash <Navn>'");
    31. }if(args.length == 1){
    32. Player targetPlayer = player.getServer().getPlayer(args[0]);
    33. Location location1 = player.getLocation();
    34. if(targetPlayer != null) {
    35. player.sendMessage(ChatColor.GREEN + "Du er blevet flashed hen til " + ChatColor.AQUA + ChatColor.BOLD + targetPlayer.getName() + ChatColor.RESET + ChatColor.GREEN + "!");
    36. targetPlayer.sendMessage(ChatColor.BOLD + player.getName() + ChatColor.RESET + ChatColor.GREEN + " har flashed sig hen til dig!");
    37. if(targetPlayer !=null)
    38. player.sendMessage(ChatColor.DARK_RED + "Forkert! Brug:" + ChatColor.GOLD + ChatColor.BOLD + " '/flash <Navn>'");
    39. }
    40. else {
    41. player.sendMessage(ChatColor.RED+"Could not find Player!");
    42. }
    43. }
    44. }
    45. return true;
    46. }
    47. }


    Try that! ZygoZ
     
  12. Offline

    ZygoZ

  13. Offline

    Code0

    Code:java
    1. package me.ZygoZ;
    2.  
    3.  
    4.  
    5. import org.bukkit.ChatColor;
    6.  
    7. import org.bukkit.Location;
    8.  
    9. import org.bukkit.World;
    10.  
    11. import org.bukkit.command.Command;
    12.  
    13. import org.bukkit.command.CommandSender;
    14.  
    15. import org.bukkit.entity.Player;
    16.  
    17. import org.bukkit.event.world.WorldEvent;
    18.  
    19. import org.bukkit.plugin.PluginManager;
    20.  
    21. import org.bukkit.plugin.java.JavaPlugin;
    22.  
    23.  
    24.  
    25. @SuppressWarnings("unused")
    26.  
    27. public class Flash extends JavaPlugin {
    28.  
    29.  
    30.  
    31. @Override
    32.  
    33. public void onDisable() {
    34.  
    35.  
    36.  
    37. }
    38.  
    39.  
    40.  
    41. @Override
    42.  
    43. public void onEnable() {
    44.  
    45.  
    46.  
    47. }
    48.  
    49.  
    50.  
    51. public boolean onCommand (CommandSender sender, Command cmd, String label, String[] args) {
    52.  
    53. Player player = (Player) sender;
    54.  
    55. if(label.equalsIgnoreCase("flash")) {
    56.  
    57. if (args.length == 0) {
    58.  
    59. player.sendMessage(ChatColor.DARK_RED + "Forkert! Brug:" + ChatColor.GOLD + ChatColor.BOLD + " '/flash <Navn>'");
    60.  
    61. }else if(args.length == 1){
    62.  
    63. Player targetPlayer = player.getServer().getPlayer(args[0]);
    64.  
    65. Location location1 = player.getLocation();
    66.  
    67. if(targetPlayer != null) {
    68.  
    69. player.sendMessage(ChatColor.GREEN + "Du er blevet flashed hen til " + ChatColor.AQUA + ChatColor.BOLD + targetPlayer.getName() + ChatColor.RESET + ChatColor.GREEN + "!");
    70.  
    71. targetPlayer.sendMessage(ChatColor.BOLD + player.getName() + ChatColor.RESET + ChatColor.GREEN + " har flashed sig hen til dig!");
    72.  
    73. if(targetPlayer !=null)
    74.  
    75. player.sendMessage(ChatColor.DARK_RED + "Forkert! Brug:" + ChatColor.GOLD + ChatColor.BOLD + " '/flash <Navn>'");
    76.  
    77. }
    78.  
    79. else {
    80.  
    81. player.sendMessage(ChatColor.RED+"Could not find Player!");
    82.  
    83. }
    84.  
    85. }
    86.  
    87. }
    88.  
    89. return true;
    90.  
    91. }
    92.  
    93. }


    Maybe this?
     
  14. Offline

    ZygoZ

  15. Offline

    Code0

    Okay, I'll look into this. You'll receive a response soon ZygoZ

    ZygoZ

    All fixed. This works 100%:

    Code:java
    1. package me.ZygoZ;
    2.  
    3. import org.bukkit.ChatColor;
    4. import org.bukkit.Location;
    5. import org.bukkit.World;
    6. import org.bukkit.command.Command;
    7. import org.bukkit.command.CommandSender;
    8. import org.bukkit.entity.Player;
    9. import org.bukkit.event.world.WorldEvent;
    10. import org.bukkit.plugin.PluginManager;
    11. import org.bukkit.plugin.java.JavaPlugin;
    12.  
    13. @SuppressWarnings("unused")
    14. public class Flash extends JavaPlugin {
    15.  
    16. @Override
    17. public void onDisable() {
    18.  
    19. }
    20.  
    21. @Override
    22. public void onEnable() {
    23.  
    24. }
    25.  
    26. @SuppressWarnings("deprecation")
    27. public boolean onCommand (CommandSender sender, Command cmd, String label, String[] args) {
    28. Player player = (Player) sender;
    29. if(label.equalsIgnoreCase("flash")) {
    30. if (args.length == 0) {
    31. player.sendMessage(ChatColor.DARK_RED + "Forkert! Brug:" + ChatColor.GOLD + ChatColor.BOLD + " '/flash <Navn>'");
    32. }if(args.length == 1){
    33. Player targetPlayer = player.getServer().getPlayer(args[0]);
    34. Location location1 = player.getLocation();
    35. if(targetPlayer != null) {
    36. player.sendMessage(ChatColor.GREEN + "Du er blevet flashed hen til " + ChatColor.AQUA + ChatColor.BOLD + targetPlayer.getName() + ChatColor.RESET + ChatColor.GREEN + "!");
    37. targetPlayer.sendMessage(ChatColor.BOLD + player.getName() + ChatColor.RESET + ChatColor.GREEN + " har flashed sig hen til dig!");
    38. }
    39. else {
    40. player.sendMessage(ChatColor.RED+"Could not find Player!");
    41. }
    42. }
    43. }
    44. return true;
    45. }
    46. }


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

    ZygoZ

    It won't let me convert it into a .jar file..
    It gives a yellow warning on "deprecation", don't know why..
    Code0
     
  17. Offline

    Code0

    the depracation doesn't matter. As for the doesn't let you convert, could you give me a screenshot?
    ZygoZ
     
  18. Offline

    ZygoZ

  19. Offline

    Code0

    ZygoZ You set up your plugin.yml wrong.

    Right click on the "flash" project and select new > file
     
  20. Offline

    ZygoZ

    Then what?
     
  21. Offline

    Code0

    You should have a file called plugin.yml at the very bottom. ZygoZ

    Correct?
     
  22. Offline

    ZygoZ

    Erh.. yeah?
     
  23. Offline

    Code0

    Now right click it and chose "Text Editor" and insert the following:

    Code:
    name: flash
    version: 1.0
    main: me.ZygoZ.flash
    description: Flash Plugin by ZygoZ
    commands:
      flash:
    ZygoZ
     
  24. Offline

    ZygoZ

  25. Offline

    Code0

  26. Offline

    ZygoZ

    It still won't work..
    Code0
     
  27. Offline

    Code0

    Really strange. Click details and send me a screenshot?

    (I'm sorry if this is annoying you. Just tell me).
     
  28. Offline

    ZygoZ

  29. Offline

    Code0

    I am currently trying to create a project "flash". It just told me that I can't use flash. I have to use Flash (capital L)

    Try changing the project name to Flash ZygoZ
     
  30. Offline

    ZygoZ

    Capital L? I tried "Flash", didn't work..
    Code0
     
Thread Status:
Not open for further replies.

Share This Page