NPE on method from another class not working

Discussion in 'Plugin Development' started by malandrix_bunny, May 30, 2014.

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

    malandrix_bunny

    So I was trying to make a nickname command for my server and I just can't seem to use methods from another class. I tried to make constructors but saw no improvement. I have been able to do this in my other plugins but I can't seem to get it to work here.
    NPE:
    Code:
    [18:06:42] [Server thread/INFO]: malandrix_bunny issued server command: /nick mal Silly_goose
    [18:06:42] [Server thread/WARN]: java.lang.NullPointerException
    [18:06:42] [Server thread/WARN]:    at net.bunnehrealm.utilities.MainClass.loadPlayers(MainClass.java:49)
    [18:06:42] [Server thread/WARN]:    at net.bunnehrealm.utilities.commands.NickCommand.onCommand(NickCommand.java:36)
    [18:06:42] [Server thread/WARN]:    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
    [18:06:42] [Server thread/WARN]:    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:180)
    [18:06:42] [Server thread/WARN]:    at org.bukkit.craftbukkit.v1_7_R3.CraftServer.dispatchCommand(CraftServer.java:701)
    [18:06:42] [Server thread/WARN]:    at net.minecraft.server.v1_7_R3.PlayerConnection.handleCommand(PlayerConnection.java:956)
    [18:06:42] [Server thread/WARN]:    at net.minecraft.server.v1_7_R3.PlayerConnection.a(PlayerConnection.java:817)
    [18:06:42] [Server thread/WARN]:    at net.minecraft.server.v1_7_R3.PacketPlayInChat.a(PacketPlayInChat.java:28)
    [18:06:42] [Server thread/WARN]:    at net.minecraft.server.v1_7_R3.PacketPlayInChat.handle(PacketPlayInChat.java:47)
    [18:06:42] [Server thread/WARN]:    at net.minecraft.server.v1_7_R3.NetworkManager.a(NetworkManager.java:157)
    [18:06:42] [Server thread/WARN]:    at net.minecraft.server.v1_7_R3.ServerConnection.c(SourceFile:134)
    [18:06:42] [Server thread/WARN]:    at net.minecraft.server.v1_7_R3.MinecraftServer.v(MinecraftServer.java:667)
    [18:06:42] [Server thread/WARN]:    at net.minecraft.server.v1_7_R3.DedicatedServer.v(DedicatedServer.java:260)
    [18:06:42] [Server thread/WARN]:    at net.minecraft.server.v1_7_R3.MinecraftServer.u(MinecraftServer.java:558)
    [18:06:42] [Server thread/WARN]:    at net.minecraft.server.v1_7_R3.MinecraftServer.run(MinecraftServer.java:469)
    [18:06:42] [Server thread/WARN]:    at net.minecraft.server.v1_7_R3.ThreadServerApplication.run(SourceFile:628)
    [18:06:42] [Server thread/ERROR]: null
    org.bukkit.command.CommandException: Unhandled exception executing command 'nick' in plugin REALMUtilities v1.0
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[spigot.jar:git-Bukkit-1.7.9-R0.1-b3084jnks]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:180) ~[spigot.jar:git-Bukkit-1.7.9-R0.1-b3084jnks]
        at org.bukkit.craftbukkit.v1_7_R3.CraftServer.dispatchCommand(CraftServer.java:701) ~[spigot.jar:git-Bukkit-1.7.9-R0.1-b3084jnks]
        at net.minecraft.server.v1_7_R3.PlayerConnection.handleCommand(PlayerConnection.java:956) [spigot.jar:git-Bukkit-1.7.9-R0.1-b3084jnks]
        at net.minecraft.server.v1_7_R3.PlayerConnection.a(PlayerConnection.java:817) [spigot.jar:git-Bukkit-1.7.9-R0.1-b3084jnks]
        at net.minecraft.server.v1_7_R3.PacketPlayInChat.a(PacketPlayInChat.java:28) [spigot.jar:git-Bukkit-1.7.9-R0.1-b3084jnks]
        at net.minecraft.server.v1_7_R3.PacketPlayInChat.handle(PacketPlayInChat.java:47) [spigot.jar:git-Bukkit-1.7.9-R0.1-b3084jnks]
        at net.minecraft.server.v1_7_R3.NetworkManager.a(NetworkManager.java:157) [spigot.jar:git-Bukkit-1.7.9-R0.1-b3084jnks]
        at net.minecraft.server.v1_7_R3.ServerConnection.c(SourceFile:134) [spigot.jar:git-Bukkit-1.7.9-R0.1-b3084jnks]
        at net.minecraft.server.v1_7_R3.MinecraftServer.v(MinecraftServer.java:667) [spigot.jar:git-Bukkit-1.7.9-R0.1-b3084jnks]
        at net.minecraft.server.v1_7_R3.DedicatedServer.v(DedicatedServer.java:260) [spigot.jar:git-Bukkit-1.7.9-R0.1-b3084jnks]
        at net.minecraft.server.v1_7_R3.MinecraftServer.u(MinecraftServer.java:558) [spigot.jar:git-Bukkit-1.7.9-R0.1-b3084jnks]
        at net.minecraft.server.v1_7_R3.MinecraftServer.run(MinecraftServer.java:469) [spigot.jar:git-Bukkit-1.7.9-R0.1-b3084jnks]
        at net.minecraft.server.v1_7_R3.ThreadServerApplication.run(SourceFile:628) [spigot.jar:git-Bukkit-1.7.9-R0.1-b3084jnks]
    Caused by: java.lang.NullPointerException
        at net.bunnehrealm.utilities.tools.NameManager.setDisplayName(NameManager.java:23) ~[?:?]
        at net.bunnehrealm.utilities.commands.NickCommand.onCommand(NickCommand.java:38) ~[?:?]
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[spigot.jar:git-Bukkit-1.7.9-R0.1-b3084jnks]
        ... 13 more
    
    NameManager:
    Code:java
    1. package net.bunnehrealm.utilities.tools;
    2.  
    3. import org.bukkit.ChatColor;
    4. import org.bukkit.entity.Player;
    5. import org.bukkit.plugin.Plugin;
    6.  
    7. import net.bunnehrealm.utilities.MainClass;
    8. import net.bunnehrealm.utilities.commands.NickCommand;
    9. public class NameManager {
    10. public NameManager NameManager;
    11. public MainClass MainClass;
    12. public NameManager(MainClass MainClass){
    13. this.MainClass = MainClass;
    14. }
    15. public NickCommand NickCommand;
    16. public NameManager(NickCommand NickCommand){
    17. this.NickCommand = NickCommand;
    18. }
    19.  
    20. public void setDisplayName(Player p, String tabname){
    21. tabname = tabname + ChatColor.RESET;
    22. p.setDisplayName(tabname.replaceAll("&([0-9a-f])", "\u00A7$1"));
    23. MainClass.players.set(p.getUniqueId().toString() + ".tab-Name", tabname);
    24. }
    25. public void setTabName(Player p, String tabname){
    26. tabname = tabname + ChatColor.RESET;
    27. p.setPlayerListName(tabname.replaceAll("&([0-9a-f])", "\u00A7$1"));
    28. MainClass.players.set(p.getUniqueId().toString() + ".Tab-Name", tabname);
    29. }
    30. }

    NickCommand:
    Code:java
    1. package net.bunnehrealm.utilities.commands;
    2.  
    3. import net.bunnehrealm.utilities.tools.NameManager;
    4.  
    5. import org.bukkit.Bukkit;
    6. import org.bukkit.ChatColor;
    7. import org.bukkit.command.Command;
    8. import org.bukkit.command.CommandExecutor;
    9. import org.bukkit.command.CommandSender;
    10. import org.bukkit.entity.Player;
    11.  
    12. import net.bunnehrealm.utilities.MainClass;
    13.  
    14. public class NickCommand implements CommandExecutor{
    15. public MainClass MainClass;
    16. public NickCommand(MainClass MainClass){
    17. this.MainClass = MainClass;
    18. }
    19. public NickCommand(NameManager NameManager){
    20. this.nm = NameManager;
    21. }
    22. public NameManager nm = new NameManager(MainClass);
    23. @Override
    24. public boolean onCommand(CommandSender cs, Command command,
    25. String label, String[] args) {
    26.  
    27. if(label.equalsIgnoreCase("nick")){
    28. if(!(cs.hasPermission("realmutilities.commands.nick") || cs.isOp())){
    29. cs.sendMessage(ChatColor.RED + "You do not have permission to do this.");
    30. }
    31. else{
    32. if(args.length != 2){
    33. cs.sendMessage("Correct usage is /nick playername displayname");
    34. }
    35. else{
    36. MainClass.loadPlayers();
    37. Player p = Bukkit.getPlayer(args[0]);
    38. nm.setDisplayName(p, args[1]);
    39. nm.setTabName(p, args[1]);
    40. MainClass.savePlayers();
    41. }
    42. }
    43. }
    44. return false;
    45. }
    46.  
    47. }
    48.  

    MainClass:
    Code:java
    1. package net.bunnehrealm.utilities;
    2.  
    3. import java.io.File;
    4.  
    5.  
    6.  
    7.  
    8. import net.bunnehrealm.utilities.commands.NickCommand;
    9. import net.bunnehrealm.utilities.tools.NameManager;
    10.  
    11. import org.bukkit.configuration.file.FileConfiguration;
    12. import org.bukkit.plugin.Plugin;
    13. import org.bukkit.plugin.java.JavaPlugin;
    14.  
    15. public class MainClass extends JavaPlugin{
    16. public MainClass MainClass;
    17. public NameManager NameManager = new NameManager(this);
    18. public Plugin plugin = this;
    19. public File playersFile;
    20. public FileConfiguration players;
    21. public NickCommand nc = new NickCommand(this);
    22. public void onDisable(){
    23. getLogger().info("REALMUtilities has been disabled.");
    24. }
    25. public void onEnable(){
    26. MainClass = this;
    27. getLogger().info("REALMUtilities has been enabled.");
    28. try {
    29. firstPlayerRun();
    30. } catch (Exception e) {
    31. System.out.println("Could not run firstPlayerRun");
    32. e.printStackTrace();
    33. }
    34. loadPlayers();
    35. savePlayers();
    36. getCommand("nick").setExecutor(nc);
    37. }
    38. public void firstPlayerRun() throws Exception {
    39. if (!playersFile.exists()) {
    40. getLogger().info("Creating a bans.yml file");
    41. playersFile.getParentFile().mkdirs();
    42. playersFile.createNewFile();
    43.  
    44. }
    45. }
    46.  
    47. public void loadPlayers() {
    48. try {
    49. players.load(playersFile);
    50. } catch (Exception e) {
    51. e.printStackTrace();
    52. }
    53. }
    54. public void savePlayers() {
    55. try {
    56. players.save(playersFile);
    57. } catch (Exception e) {
    58. e.printStackTrace();
    59. }
    60. }
    61.  
    62. }

    Thanks for the cooperation
     
  2. Offline

    iTornado1234

    java.lang.NullPointerException <- Something in your main class is null, line 49. The loadplayers method.
     
  3. Offline

    malandrix_bunny

    iTornado1234 Fixed that but now a new error is here.
    Code:
    [18:34:53] [Server thread/ERROR]: null
    org.bukkit.command.CommandException: Unhandled exception executing command 'nick' in plugin REALMUtilities v1.0
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[spigot.jar:git-Bukkit-1.7.9-R0.1-b3084jnks]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:180) ~[spigot.jar:git-Bukkit-1.7.9-R0.1-b3084jnks]
        at org.bukkit.craftbukkit.v1_7_R3.CraftServer.dispatchCommand(CraftServer.java:701) ~[spigot.jar:git-Bukkit-1.7.9-R0.1-b3084jnks]
        at net.minecraft.server.v1_7_R3.PlayerConnection.handleCommand(PlayerConnection.java:956) [spigot.jar:git-Bukkit-1.7.9-R0.1-b3084jnks]
        at net.minecraft.server.v1_7_R3.PlayerConnection.a(PlayerConnection.java:817) [spigot.jar:git-Bukkit-1.7.9-R0.1-b3084jnks]
        at net.minecraft.server.v1_7_R3.PacketPlayInChat.a(PacketPlayInChat.java:28) [spigot.jar:git-Bukkit-1.7.9-R0.1-b3084jnks]
        at net.minecraft.server.v1_7_R3.PacketPlayInChat.handle(PacketPlayInChat.java:47) [spigot.jar:git-Bukkit-1.7.9-R0.1-b3084jnks]
        at net.minecraft.server.v1_7_R3.NetworkManager.a(NetworkManager.java:157) [spigot.jar:git-Bukkit-1.7.9-R0.1-b3084jnks]
        at net.minecraft.server.v1_7_R3.ServerConnection.c(SourceFile:134) [spigot.jar:git-Bukkit-1.7.9-R0.1-b3084jnks]
        at net.minecraft.server.v1_7_R3.MinecraftServer.v(MinecraftServer.java:667) [spigot.jar:git-Bukkit-1.7.9-R0.1-b3084jnks]
        at net.minecraft.server.v1_7_R3.DedicatedServer.v(DedicatedServer.java:260) [spigot.jar:git-Bukkit-1.7.9-R0.1-b3084jnks]
        at net.minecraft.server.v1_7_R3.MinecraftServer.u(MinecraftServer.java:558) [spigot.jar:git-Bukkit-1.7.9-R0.1-b3084jnks]
        at net.minecraft.server.v1_7_R3.MinecraftServer.run(MinecraftServer.java:469) [spigot.jar:git-Bukkit-1.7.9-R0.1-b3084jnks]
        at net.minecraft.server.v1_7_R3.ThreadServerApplication.run(SourceFile:628) [spigot.jar:git-Bukkit-1.7.9-R0.1-b3084jnks]
    Caused by: java.lang.NullPointerException
        at net.bunnehrealm.utilities.tools.NameManager.setDisplayName(NameManager.java:23) ~[?:?]
        at net.bunnehrealm.utilities.commands.NickCommand.onCommand(NickCommand.java:38) ~[?:?]
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[spigot.jar:git-Bukkit-1.7.9-R0.1-b3084jnks]
        ... 13 more
    
     
  4. Offline

    iTornado1234

    malandrix_bunny Still have a NullPointerException.
    Code:
    Caused by: java.lang.NullPointerException
        at net.bunnehrealm.utilities.tools.NameManager.setDisplayName(NameManager.java:23) ~[?:?]
        at net.bunnehrealm.utilities.commands.NickCommand.onCommand(NickCommand.java:38) ~[?:?]
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[spigot.jar:git-Bukkit-1.7.9-R0.1-b3084jnks]
        ... 13 more
     
  5. Offline

    fireblast709

    malandrix_bunny don't use MainClass in NickCommand before you initialized it, and don't create multiple instance of the same class, one in the main class should be enough (+ having it in the same class would be a bit redundant, wouldn't it)
     
  6. Offline

    JaguarJo

    Locked. Unfortunately it looks like you're not using our software. Please seek support from the makers of your server build.
     
Thread Status:
Not open for further replies.

Share This Page