Handicap Newb Bug

Discussion in 'Plugin Development' started by kuzi117, Jun 17, 2011.

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

    kuzi117

    So ya, I can't even get it to load. I don't know what I'm doing wrong -.-
    Code:
    [SEVERE] Could not load 'plugins\Splosion.jar' in folder 'plugins':
    java.lang.NoClassDefFoundError: Skycraft/Splosion/bin/com/kuzi117/splosion/Splosion (wrong name: com/kuzi117/splosion/Splosion)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(Unknown Source)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$000(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:36)
        at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:24)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Unknown Source)
        at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:167)
        at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:194)
        at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:117)
        at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:101)
        at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:218)
        at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:205)
        at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:145)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:265)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:394)
     
  2. Offline

    Jako

    Well, it says in the 2nd line "Wrong name :... " Try making sure the name is right, it looks as if your class is not being found. Make sure your plugin.yml is right, it should be like so:

    Code:
    name: Splosion
    main: com.kuzi117.splosion.Splosion
    version: 1.0
    ##Commands: (if you are using them)
    Also make sure your class is called Splosion, the file name and the class line inside.
     
  3. Offline

    kuzi117

    I fixed that error, but now there's this new one. Ask me for other info if you need more stuff from me.
    Code:
    [SEVERE] Could not load 'plugins\Splosion.jar' in folder 'plugins':
    java.lang.ClassNotFoundException: com.kuzi117.splosion.Splosion
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:36)
        at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:24)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Unknown Source)
        at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:167)
        at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:194)
        at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:117)
        at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:101)
        at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:218)
        at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:205)
        at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:145)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:265)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:394)
     
  4. Offline

    Jako

    Could I see your plugin.yml file and your main class (Splosion.java)?
     
  5. Offline

    kuzi117

    I pm'd you.

    Fixed, thanks Jako

    New bug, and I feel like this one's even dumber than the last.

    When executed from player

    Code:
    [SEVERE] null
    org.bukkit.command.CommandException: Unhandled exception executing command 'splode' in plugin Splosion v0.1
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:37)
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:128)
        at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:287)
        at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:712)
        at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:678)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:671)
        at net.minecraft.server.Packet3Chat.a(Packet3Chat.java:32)
        at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:75)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:399)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:309)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
        at com.kuzi117.splosion.Splosion.onCommand(Splosion.java:35)
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:35)
        ... 12 more
    When executed from console

    Code:
    [WARNING] Unexpected exception while parsing console command
    org.bukkit.command.CommandException: Unhandled exception executing command 'splode' in plugin Splosion v0.1
     at org.bukkit.command.PluginCommand.execute(PluginCommand.java:37)
     at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:128)
     at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:279)
     at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:428)
     at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:413)
     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:309)
     at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
     at com.kuzi117.splosion.Splosion.onCommand(Splosion.java:35)
     at org.bukkit.command.PluginCommand.execute(PluginCommand.java:35)
     ... 6 more
    Any ideas?

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

    Lolmewn

    It seems you want to excecute a command, in which you are using args[0]'s. but since these args are null, it gives an error.
     
    kuzi117 likes this.
  7. Offline

    kuzi117

    I totally am. And I did not know that.
    Thank you.

    EDIT:
    Still broken with these errors:

    From console:
    Code:
    [WARNING] Unexpected exception while parsing console command
    org.bukkit.command.CommandException: Unhandled exception executing command 'splode' in plugin Splosion v0.1
     at org.bukkit.command.PluginCommand.execute(PluginCommand.java:37)
     at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:128)
     at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:279)
     at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:428)
     at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:413)
     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:309)
     at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    Caused by: java.lang.ArrayIndexOutOfBoundsException: 1
     at com.kuzi117.splosion.Splosion.onCommand(Splosion.java:35)
     at org.bukkit.command.PluginCommand.execute(PluginCommand.java:35)
     ... 6 more
    From player:
    Code:
    [SEVERE] null
    org.bukkit.command.CommandException: Unhandled exception executing command 'splode' in plugin Splosion v0.1
     at org.bukkit.command.PluginCommand.execute(PluginCommand.java:37)
     at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:128)
     at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:287)
     at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:712)
     at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:678)
     at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:671)
     at net.minecraft.server.Packet3Chat.a(Packet3Chat.java:32)
     at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
     at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:75)
     at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
     at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:399)
     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:309)
     at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    Caused by: java.lang.ArrayIndexOutOfBoundsException: 1
     at com.kuzi117.splosion.Splosion.onCommand(Splosion.java:35)
     at org.bukkit.command.PluginCommand.execute(PluginCommand.java:35)
     ... 12 more
     
  8. Offline

    Lolmewn

    Same problem, although you now are using args[1] instead of args[0]
     
  9. Offline

    Paah

    You should really check if the args are there before trying to read them.

    In layman's terms, you are asking your plugin to read a note and tell you what is says, and your plugin is getting quite confused because there is no note.
     
  10. Offline

    Jako

    Yes, to prevent this, you are going to want to check your args.length.

    Code:
    public void onCommand(blah)
    {
        if (args.length() == 0)
        {
            //sender.sendMessage will send a message to the player if that is the sender or the console.
            sender.sendMessage(ChatColor.RED + "To correctly dance, type /dance now, or /dance at noon");
        }
        if (args.length() == 1)
        {
            //Do something taking 1 argument ("/dance now")
        }
        if (args.length() == 2)
        {
            //Do something taking 2 arguments ("/dance at noon")
        }
    }
    Hope that helps,
    -Jako
     
  11. Offline

    kuzi117

    Could I do:

    Code:
    if(args.length >= 1) {
        List<Player> matchedPlayers = server.matchPlayer(args[1]);
        if(matchedPlayers.get(0).toString().length() > 0) {
    
            //Do stuff
    
            }
        else {
            sender.sendMessage("A player with a name containing" + args[1] + "could not be found.");
    
            }
        }
    }
    else {
        sender.sendMessage("Learn to use it right.");
        return true;
    }
    EDIT:
    The onCommand puts the first argument like, "/command [argument]", in args[1]? Is that what I'm supposed to get out of this?
     
  12. Offline

    Paah

    First argument is args[0], second is args[1], third is..
     
  13. Offline

    kuzi117

    That's what I thought, I misunderstood @Lolmewn and thought that args[0] was always assinged null. That's why I was surprised.
    Anyways, I get it to work fine now for executing with an argument after I basically rewrote the whole thing since I had written it so messly, but now despite having this code:
    Code:
    if (args == null) {
        sender.sendMessage("Welcome to splode");
        sender.sendMessage("Usage is /splode [playername]");
        return true;
    }
    I generate this error:
    Code:
    [SEVERE] null
    org.bukkit.command.CommandException: Unhandled exception executing command 'splode' in plugin Splosion v0.2
     at org.bukkit.command.PluginCommand.execute(PluginCommand.java:37)
     at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:128)
     at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:287)
     at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:712)
     at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:678)
     at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:671)
     at net.minecraft.server.Packet3Chat.a(Packet3Chat.java:32)
     at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
     at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:75)
     at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
     at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:399)
     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:309)
     at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
     at com.kuzi117.splosion.Splosion.onCommand(Splosion.java:39)
     at org.bukkit.command.PluginCommand.execute(PluginCommand.java:35)
     ... 12 more
    
     
  14. Offline

    Shamebot

    Code:java
    1. if(args.length == 0)
    2. {
    3. sender.sendMessage("....");
    4. //....
    5. return false;
    6. }
     
  15. Offline

    kuzi117

    How do I check if a command is being sent from the console?
     
  16. Offline

    Shamebot

    Code:java
    1. if(sender instanceof ConsoleCommandSender)
    2. {
    3. //from console
    4. }
    5. else
    6. {
    7. //from player or other CommandSender, could be from other plugin
    8. }

    or
    Code:java
    1. if(!(sender instanceof Player))
    2. {
    3. //not from Player
    4. }
    5. else
    6. {
    7. //from Player
    8. }
     
Thread Status:
Not open for further replies.

Share This Page