Error on args[0] equals null

Discussion in 'Plugin Development' started by Grovert11, Mar 11, 2012.

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

    Grovert11

    I want my plugin to give a message when no arguments are given. I did it like this:
    Code:
    if(args[0].equalsIgnoreCase(null)){
        sender.sendMessage("Spelernaam mist. Doe /ap <spelernaam>");
    return true;
    }
    But now it gives an error when I give no arguments.
    Code:
    2012-03-11 22:18:11 [SEVERE] null
    org.bukkit.command.CommandException: Unhandled exception executing command 'ap' in plugin AddPlayer v0.1
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:42)
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:166)
        at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:469)
        at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:906)
        at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:866)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:849)
        at net.minecraft.server.Packet3Chat.handle(Packet3Chat.java:33)
        at net.minecraft.server.NetworkManager.b(NetworkManager.java:229)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:116)
        at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78)
        at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:554)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:452)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:490)
    Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
        at me.Grovert11.AddPlayer.apcommand.onCommand(apcommand.java:30)
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:40)
        ... 12 more
    How to solve this?
     
  2. Offline

    theguynextdoor

    use
    Code:java
    1. if(args.length == 0){
    2. //they didn't type anything after
    3. }
     
  3. Offline

    SirTyler

    To explain why.
    Code:java
    1.  
    2. if(args[0].equalsIgnoreCase(null)){
    3. sender.sendMessage("Spelernaam mist. Doe /ap <spelernaam>");
    4. return true;
    5. }
    6.  

    What is happening here is args is null, you are trying to call a method to a null object. This is always going to throw an NPE if though in theory checking if null.equals(null) would work.
     
  4. Offline

    Grovert11

    Thank you both! It is now working :D
     
Thread Status:
Not open for further replies.

Share This Page