Brauche Hilfe: SQLibrary [@Benni1000]

Dieses Thema im Forum "Programmierung" wurde erstellt von Lanzettlich, 21. September 2012.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Lanzettlich
    Offline

    Lanzettlich

    Registriert seit:
    11. September 2012
    Beiträge:
    19
    Hallo!

    Ich hab mir auf youtube das video von benni1000games angeschaut mit sqlibrary.
    Ich habe den code genau so abgetippt wie benni das gemacht hat aber bei /show (hab ich statt /get genommen) kommt: an internal error occoured while attempting to perform this command.
    Die db-file in meinem Pluginordner ist leider auch leer
    ich habe den ordner sqlibrary leider nicht importieren können bei properties (sondern nur sqlibrary.jar) weil ich nicht wusste wo ich den ordner herbekomme

    Fehlermeldung in der console:
    2012-09-21 20:15:03 [INFO] Lanzettlich issued server command: /show
    2012-09-21 20:15:03 [SEVERE] null
    org.bukkit.command.CommandException: Unhandled exception executing command 'show' in plugin sqliteplugin v1.0
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:42)
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:168)
    at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:492)
    at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:880)
    at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:826)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:808)
    at net.minecraft.server.Packet3Chat.handle(Packet3Chat.java:44)
    at net.minecraft.server.NetworkManager.b(NetworkManager.java:276)
    at net.minecraft.server.NetServerHandler.d(NetServerHandler.java:109)
    at net.minecraft.server.ServerConnection.b(SourceFile:35)
    at net.minecraft.server.DedicatedServerConnection.b(SourceFile:30)
    at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:578)
    at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:213)
    at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:474)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:406)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:539)
    Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
    at me.Lanzettlich.sqliteplugin.sqliteplugin.onCommand(sqliteplugin.java:63)
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:40)
    ... 15 more

    Der pluginsourcecode
    static final Logger log = Bukkit.getLogger();
    private SQLite sqlite;
    public void onEnable()
    {
    System.out.println("[SQLITETESTPLUGIN] Aktiviert");
    sqlite = new SQLite(log, "SQLITETESTPLUGIN", "sqlitetestplugindb", "plugins/sqlitetestplugin");
    if(!sqlite.checkTable("test"))
    {
    sqlite.createTable("CREATE TABLE IF NOT EXISTS test (id INTEGER PRIMARY KEY AUTOINCREMENT,userText TEXT;)");
    }
    log.info("Sqlitetestplugin enabled.");
    }

    public void onDisable()
    {
    System.out.println("[sqlitetestplugin] Deaktiviert");
    log.info("sqlitetestplugin disabled.");
    }

    public boolean onCommand(CommandSender sender, Command cmd, String CommandLabel, String[] args)
    {
    if(cmd.getName().equalsIgnoreCase("add"))
    {
    if(args.length == 0)
    {
    sender.sendMessage("Falsche Benutzung! /add [Text]");
    } else {
    String message = "";
    for (String s : args)
    {
    message = message + s + " ";
    }
    message = message.replace("'", "");
    sqlite.query("INSERT INTO test (userText) VALUES ('"+message+"')");
    sender.sendMessage("$aDanke für deinen Eintrag!");


    }
    }

    if(cmd.getName().equalsIgnoreCase("show"))
    {
    try
    {
    int id = Integer.parseInt(args[0]);
    ResultSet result = sqlite.query("SELECT * FROM test WHERE id = "+id);
    if(result != null)
    {
    try {
    result.next();
    String text = result.getString("userText");
    sender.sendMessage("Inhalt von " + id + " ist " + text);
    result.close();
    return true;
    } catch (SQLException e) {
    Logger.getLogger(sqliteplugin.class.getName()).log(Level.SEVERE, null, e);
    }

    }

    } catch(java.lang.NumberFormatException ex)
    {
    sender.sendMessage("$4Das ist keine gültige Nummer!");
    }
    }
    return true;
    }

    ich hoffe um hilfe
    mfg lanzettlich
     
    #1
  2. if(cmd.getName().equalsIgnoreCase("show"))
    {

    füg danach mal ein
    if(args.length == 0)
    {
    sender.sendMessage("Falsche Benutzung! /show [id]");
    }else{
    //try..... -> catch(){}
    }

    PS: Du solltest vielleicht erstmal Java Lernen, und den code verstehen..
     
    #2
  3. Lanzettlich
    Offline

    Lanzettlich

    Registriert seit:
    11. September 2012
    Beiträge:
    19
    Wo liegt denn jetzt der Fehler ? :eek:
    wenn ich /show oder /show 1 oder so mache kommt auch der fehler
    liegt nicht an der argument-länge
     
    #3
  4. Smuil
    Offline

    Smuil

    Lerne bitte erstmal die grundlagen von Java bevor du mit Bukkitplugins anfängst. Es bringt nichts mit dem Kopf durch die Wand zu gehen, wenn du die Möglichkeiten zum Hammer hast...
     
    #4
  5. Lanzettlich
    Offline

    Lanzettlich

    Registriert seit:
    11. September 2012
    Beiträge:
    19
    sehr hilfreiche beiträge...
    ich möchte einfach nur wissen, wo der fehler liegt und bin nicht neugierig auf deine ach so hilfreichen beiträge - kann ich gut drauf verzichten.
    wenn du selbst keine ahnung hast, dann brauchst du erst garnicht zu posten.
     
    #5
  6. ChristianG
    Offline

    ChristianG

    Mir scheint es, dass alle die in diesem Thread Ahnung von der Materie haben (oder zumindest wissen, wie man mit solchen Situation umzugehen hat) bis auf du!

    Es bringt DIR nichts aus YouTube Videos Code abzukupfern, wenn du nichts davon verstehst!
    Weißt du über haupt, wass ein if(){} Statement ist? Oder gar eine Methode?
    Lern erstmal Java und wage dich dann an Bukkit.

    Du lernst ja auch nicht zuerst, wie man einen englischen Text interpretieren und erweitern kann, bevor du Englisch selbst lernst.
    Du musst erst die Grundlage verstehen, um dann "Erweiterungen" zu erlernen!
     
    #6
  7. Davon mal abgesehen, dass Benni einen funktionierenden Code hat und du zu unfähig warst diesen zu kopieren. Ich habe es sogar, so nett wie ich war, getestet mit meiner Ergänzung und ich habe keine Probleme. Aber du scheinst ja auch unfähig zu sein Kritik aufzunehmen, daher lern erstmal dies, dann lese z.B. die Javainsel und dann wage dich nochmal an Bukkit heran.
     
    #7
Status des Themas:
Es sind keine weiteren Antworten möglich.