Solved Random null error

Discussion in 'Plugin Help/Development/Requests' started by ForsakenRealmz, Apr 4, 2015.

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

    ForsakenRealmz

    So,

    I have two commands in my onCommand method. The first command works perfectly, with absolutely no errors. The second one works completely fine, except for my error check if there are 0 arguments. I've got it to say that you need to enter the command properly, but right after that I get an internal error.

    onCommand Method (open)

    Code:
        public boolean onCommand( CommandSender sender, Command cmd, String label, String[] args ) {
            if(!(sender instanceof Player ) ) {
                sender.sendMessage( ChatColor.DARK_RED + "Error: Cannot send from console!" );
                return true;
            }
            //Command HelpOp - Used by players to get help from Staff
            if( cmd.getName().equalsIgnoreCase( "helpop" ) ) {
                Player player = (Player) sender;
            
                if( player.hasPermission( "customs.send" ) ) {
                
                  if( args.length == 0 )
                      player.sendMessage( ChatColor.RED + "Error: Proper usage /helpop <Message>" );
                  else {
                      StringBuilder str = new StringBuilder();
                      for( int i = 0; i < args.length; i++ )
                          str.append(args[i] + " " );
                      player.sendMessage( ChatColor.GOLD + "Message sent!" );
                      for( Player p : Bukkit.getOnlinePlayers() ) {
                          if( p.hasPermission( "customs.receive" ) )
                              p.sendMessage( ChatColor.DARK_RED + "[Help] "+ ChatColor.GOLD + "[From]: "+ p.getName() + ": " + ChatColor.GREEN + str.toString().trim());
                      }
                  }
                }
                else
                    player.sendMessage( ChatColor.RED + "Error: You lack permissions to send Staff messages!" );
            }
            //Command StaffToPlayer - Used to respond to Players HelpOp messages
            if( cmd.getName().equalsIgnoreCase( "stafftoplayer") ) {
                Player player = (Player) sender;
            
                if( player.hasPermission( "customs.admin" )) {
                
                    if( args.length == 0 ) {
                        player.sendMessage( ChatColor.RED + "Error: Proper usage /StaffToPlayer <Player> <Message>" );
                    }
                
                  Player target = Bukkit.getServer().getPlayer(args[0]);
              
                    if( target == null ) {
                        player.sendMessage( ChatColor.RED + "Error: Player is offline!" );
                    }
                  else {
                      StringBuilder str = new StringBuilder();
                      for( int i = 1; i < args.length; i++ )
                          str.append(args[i] + " " );
                      player.sendMessage( ChatColor.GOLD + "Message sent!" );
                      target.sendMessage( ChatColor.DARK_RED + "[From Admin]: "+ ChatColor.GOLD + str.toString().trim());
                  }
                }
                else
                    player.sendMessage( ChatColor.RED + "Error: You lack permissions to send Admin messages!" );
            }
            return false;
        }
    


    Error message (open)

    [01:37:21 INFO]: ForsakenRealmz issued server command: /stafftoplayer
    [01:37:21 ERROR]: null
    org.bukkit.command.CommandException: Unhandled exception executing command 'staf
    ftoplayer' in plugin PlayerToStaff v1.0
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[cra
    ftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:18
    0) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
    at org.bukkit.craftbukkit.v1_7_R3.CraftServer.dispatchCommand(CraftServe
    r.java:701) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
    at net.minecraft.server.v1_7_R3.PlayerConnection.handleCommand(PlayerCon
    nection.java:956) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
    at net.minecraft.server.v1_7_R3.PlayerConnection.a(PlayerConnection.java
    :817) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
    at net.minecraft.server.v1_7_R3.PacketPlayInChat.a(PacketPlayInChat.java
    :28) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
    at net.minecraft.server.v1_7_R3.PacketPlayInChat.handle(PacketPlayInChat
    .java:47) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
    at net.minecraft.server.v1_7_R3.NetworkManager.a(NetworkManager.java:157
    ) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
    at net.minecraft.server.v1_7_R3.ServerConnection.c(SourceFile:134) [craf
    tbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
    at net.minecraft.server.v1_7_R3.MinecraftServer.v(MinecraftServer.java:6
    67) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
    at net.minecraft.server.v1_7_R3.DedicatedServer.v(DedicatedServer.java:2
    60) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
    at net.minecraft.server.v1_7_R3.MinecraftServer.u(MinecraftServer.java:5
    58) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
    at net.minecraft.server.v1_7_R3.MinecraftServer.run(MinecraftServer.java
    :469) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
    at net.minecraft.server.v1_7_R3.ThreadServerApplication.run(SourceFile:6
    28) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
    Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
    at net.forsakencraft.PlayerToStaff.PlayerToStaff.onCommand(PlayerToStaff
    .java:56) ~[?:?]
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[cra
    ftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
    ... 13 more

    In-game error message: http://gyazo.com/b035f7795b62f5e8cc0bb1b255288b05

    Ehh.. Got it to work by adding a "return true;" in the check if the args == 0... I understand now why it was broken.. I think? Haha
     
    Last edited by a moderator: Apr 4, 2015
  2. Offline

    nverdier

    Well your error was occurring because you were getting the object at index 0 but it didn't exist.
     
Thread Status:
Not open for further replies.

Share This Page