ServerPlugin AuthDB eigene Variablen in MySQL einfügen

Dieses Thema im Forum "Programmierung" wurde erstellt von dezeyer23, 26. Oktober 2012.

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

    dezeyer23

    Registriert seit:
    14. Mai 2012
    Beiträge:
    41
    Hallo liebe Comunity

    Ich versuche schon seit einiger zeit in AuthDB eigene Variablen in die Datenbank zu schreiben. Was ich eigendlich will ist, dass beim registrieren auf dem server im phpBB ein Avatar gesetzt wird. Derzeit läuft die registration über die Website, da funktioniert es. Ich will jetzt aber einführen, dass man sich auf dem Server registrieren kann, aber der Avatar soll gesetzt werden.

    Ich hab aus der jar die PhpBB.class rausgenommen und sie editiert.
    Hier der Teil, wo die registration in die DB geschriben wird:
    Code (Text):
    1.  
    2. String hash = phpbb_hash(password);
    3.       long timestamp = System.currentTimeMillis() / 1000L;
    4.  
    5.       PreparedStatement ps = MySQL.mysql.prepareStatement("INSERT INTO `" + Config.script_tableprefix + "users" + "` (`username`, `username_clean`, `user_password`, `user_email`, `group_id`, `user_timezone`, `user_dst`, `user_lang`, `user_type`, `user_regdate`, `user_new`, `user_lastvisit`, `user_permissions`, `user_sig`, `user_occ`, `user_interests`, `user_ip`, `user_avatar`, `user_avatar_type`)  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", 1);
    6.       ps.setString(1, player);
    7.       ps.setString(2, player.toLowerCase());
    8.       ps.setString(3, hash);
    9.       ps.setString(4, email);
    10.       ps.setString(5, "2");
    11.       ps.setString(6, "0.00");
    12.       ps.setString(7, "0");
    13.       ps.setString(8, "en");
    14.       ps.setString(9, "0");
    15.       ps.setLong(10, timestamp);
    16.       ps.setString(11, "1");
    17.       ps.setLong(12, timestamp);
    18.  
    19.       ps.setString(13, "");
    20.       ps.setString(14, "");
    21.       ps.setString(15, "");
    22.       ps.setString(16, "");
    23.  
    24.       ps.setString(17, ipAddress);
    25.       ps.setString(18, "http://mag.racked.eu/tools/avatar/64/" + player + ".png");
    26.       ps.setString(19, "2");
    27.       Util.logging.mySQL(ps.toString());
    28.       ps.executeUpdate();
    29.       ps.close();
    30.  
    31.       int userid = MySQL.countitall(Config.script_tableprefix + "users");
    32.  

    aber wie grieg ich die class jetzt wieder in das Plugin hinein?
    also ich hab die Datei decompilt, und mit eclipse bearbeitet. Dafür ein neues java projekt erstellt und in src ein neues Package mit dem Namen "com.authdb.scripts.forum". Dort eine Class File mit dem Namen "PhpBB" und dort mein Code eingefügt (natürlich den Ganzen nicht nur oben den Schnipsel) Aber wenn ich dann exportiere denn kommt immer die fehlermeldung "Exported with compile errors: test/src/com/authdb/scripts/forum/PhpBB.java"
    Mit Notepad als .class speichern und dan einfach in die jar kopieren ergibt folgenden feher wenn ich den Server starte:

    Code (Text):
    1.  
    2. 2012-10-26 11:32:51 [SEVERE] Error occurred while enabling AuthDB v2.3.6.242 (Is it up to date?)
    3. java.lang.ClassFormatError: Incompatible magic value 1885430635 in class file com/authdb/scripts/forum/PhpBB
    4.     at java.lang.ClassLoader.defineClass1(Native Method)
    5.     at java.lang.ClassLoader.defineClass(Unknown Source)
    6.     at java.security.SecureClassLoader.defineClass(Unknown Source)
    7.     at java.net.URLClassLoader.defineClass(Unknown Source)
    8.     at java.net.URLClassLoader.access$100(Unknown Source)
    9.     at java.net.URLClassLoader$1.run(Unknown Source)
    10.     at java.net.URLClassLoader$1.run(Unknown Source)
    11.     at java.security.AccessController.doPrivileged(Native Method)
    12.     at java.net.URLClassLoader.findClass(Unknown Source)
    13.     at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:44)
    14.     at org.bukkit.plugin.java.JavaPluginLoader.getClassByName(JavaPluginLoader.java:239)
    15.     at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:40)
    16.     at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:29)
    17.     at java.lang.ClassLoader.loadClass(Unknown Source)
    18.     at java.lang.ClassLoader.loadClass(Unknown Source)
    19.     at com.authdb.util.Util.checkScript(Util.java:136)
    20.     at com.authdb.AuthDB.onEnable(AuthDB.java:237)
    21.     at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217)
    22.     at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:365)
    23.     at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:381)
    24.     at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:265)
    25.     at org.bukkit.craftbukkit.CraftServer.enablePlugins(CraftServer.java:247)
    26.     at org.bukkit.craftbukkit.CraftServer.<init>(CraftServer.java:199)
    27.     at net.minecraft.server.ServerConfigurationManagerAbstract.<init>(ServerConfigurationManagerAbstract.java:50)
    28.     at net.minecraft.server.ServerConfigurationManager.<init>(SourceFile:11)
    29.     at net.minecraft.server.DedicatedServer.init(DedicatedServer.java:105)
    30.     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:378)
    31.     at net.minecraft.server.ThreadServerApplication.run(SourceFile:539)
    32.  
    und
    Code (Text):
    1.  
    2.  
    3. 2012-10-26 11:33:52 [SEVERE] Could not pass event PlayerLoginEvent to AuthDB
    4. org.bukkit.event.EventException
    5.     at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:332)
    6.     at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
    7.     at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477)
    8.     at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462)
    9.     at net.minecraft.server.ServerConfigurationManagerAbstract.attemptLogin(ServerConfigurationManagerAbstract.java:273)
    10.     at net.minecraft.server.NetLoginHandler.d(NetLoginHandler.java:112)
    11.     at net.minecraft.server.NetLoginHandler.c(NetLoginHandler.java:41)
    12.     at net.minecraft.server.DedicatedServerConnectionThread.a(DedicatedServerConnectionThread.java:44)
    13.     at net.minecraft.server.DedicatedServerConnection.b(SourceFile:29)
    14.     at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:581)
    15.     at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:212)
    16.     at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:474)
    17.     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:406)
    18.     at net.minecraft.server.ThreadServerApplication.run(SourceFile:539)
    19. Caused by: java.lang.ClassFormatError: com/authdb/scripts/forum/PhpBB
    20.     at com.authdb.util.Util.checkScript(Util.java:136)
    21.     at com.authdb.util.databases.EBean.sync(EBean.java:100)
    22.     at com.authdb.util.databases.EBean.sync(EBean.java:85)
    23.     at com.authdb.listeners.AuthDBPlayerListener.onPlayerLogin(AuthDBPlayerListener.java:75)
    24.     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    25.     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    26.     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    27.     at java.lang.reflect.Method.invoke(Unknown Source)
    28.     at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:330)
    29.     ... 13 more
    30.  

    Kann mir jemand sagen wie ich das richtig mache es ist mir sehr wichtig.

    Lg
    Dez
     
    #1
  2. #Aktiviert
    ##Verschoben
     
    #2
  3. Exported with compile errors: test/src/com/authdb/scripts/forum/PhpBB.java"
    Dass heißt du musst erstmal alle Fehler beheben bevor du es exportieren kannst. Kein wunder dass ein Fehler kommt...

    Welcher Fehler kommt denn bei deiner IDE?
     
    #3
  4. dezeyer23
    Offline

    dezeyer23

    Registriert seit:
    14. Mai 2012
    Beiträge:
    41
    was meinst du mit IDE (=integrierte Entwicklungsumgebung Hab ich :D)? ich bin erst bei anfang :D alle feher beheben, heist ich muss auch die classes die includet werden erstellen, und in denen werden nochma includet, also das ganze plugin decompilen und neu einfügen?
     
    #4
  5. #5
  6. dezeyer23
    Offline

    dezeyer23

    Registriert seit:
    14. Mai 2012
    Beiträge:
    41
    ich hab jetzt noch ein paar fehlermeldungen:
    in der MySQL.java wird
    Code (Text):
    1.  import com.mysql.jdbc.Blob;
    angegeben, es existiert aber nirgens ein paket namens mysql.
    dadurch gibt es in der Util.java den fehler
    Code (Text):
    1. Blob hash = MySQL.getfromtableBlob(Config.script_tableprefix + "user_authenticate", "`data`", "user_id", userid);
    , also das blob ist unterstrichen.
    in der ZPermissions.java wird "PermissionHandler" unterstrichen, hier Beispiele:
    Code (Text):
    1.  
    2. public static PermissionHandler permissionsHandler;
    3. ... permissionsHandler.has(player, permission.permission ...
    4. ... permissionsHandler.has(player, pluginName + ".*") ...
    5.  

    und in der AuthDB.java wieder ein fehler mit ZPermissions und seinem PermissionHandler
    Code (Text):
    1.  ZPermissions.permissionsHandler = ((Permissions)Check1).getHandler();
    und wie weiter?

    lg Dez
     
    #6
  7. Du musst das ganze mit Maven machen, dann werden die entsprechenden Abhängigkeiten beim erstellen runtergeladen.
     
    #7
  8. dezeyer23
    Offline

    dezeyer23

    Registriert seit:
    14. Mai 2012
    Beiträge:
    41
    sry aber wie mach ich das?
     
    #8
  9. Benni1000
    Offline

    Benni1000 Ehem. Teammitglied

    Registriert seit:
    4. Mai 2012
    Beiträge:
    1.408
    Du initialisierst den git ordner. (git init)
    Dann pullst du mit git den Sourcecode runter.
    Und dann kannst du es mit maven compilen:
    Code (Text):
    1. [COLOR=#141414][FONT=Consolas]mvn clean install[/FONT][/COLOR]
     
    #9
  10. dezeyer23
    Offline

    dezeyer23

    Registriert seit:
    14. Mai 2012
    Beiträge:
    41
    Ich komme da nicht mit, auch wenn ich mich jetzt etwas dumm dranstelle, aber wie soll das gehen?
    mvn clean install sieht für mich wie ein Linuxbefehl aus.
    Ich hab auf http://maven.apache.org/download.html Maven 3 (apache-maven-3.0.4-bin.zip)
    runtergeladen, aber was soll ich damit machen?

    Wäre es ein problem, wenn mir das jemand machen könnte?

    oder mir eine brauchbare anleitung linken, ich hab den ganzen mittag gegoogelt aber nix grfunden

    wär echt net.
     
    #10
  11. Benni1000
    Offline

    Benni1000 Ehem. Teammitglied

    Registriert seit:
    4. Mai 2012
    Beiträge:
    1.408
    Du musst dir die Programme git und maven installieren.

    Wenn du kein Linux system hast, kann ich dir nicht helfen,
    aber ich glaube schon das es installer für Windows gibt.

    Du initialisierst git in dem ordner in dem du compilen möchtest. (git init)
    Dann holst du dir mit git die sourcecodes vom server. (git pull git://deinegiturl)
    Und dann compilst du es. (mvn clean install)
     
    #11
  12. dezeyer23
    Offline

    dezeyer23

    Registriert seit:
    14. Mai 2012
    Beiträge:
    41
    Ok, nach dem maven hab ich jetzt in meinem GitHub Ordner mehrere Unterordner,
    .git , src , traget
    und dann noch Dateien,
    .gitattributes .gitignore, HEADER.txt, LICENSE.txt, POM.xml, README.md

    jetzt ist aber in src ein ordner main, darin dann java und resources, und in java ist dann com, was ich ja für mein eclipse brauche, aber in traget ist im ordner classes das gleiche nochma, was brauch ich jetzt für mein eclipse und wie importier ich das?

    Ich weis ich stell mich grade voll doof an aber ich hab sowas eben noch nie gemacht
     
    #12
  13. Benni1000
    Offline

    Benni1000 Ehem. Teammitglied

    Registriert seit:
    4. Mai 2012
    Beiträge:
    1.408
    Du musst die files im src ordner umschreiben.
    Wenn du es mit maven kompilierst, dann werden die dateien im target ordner generiert.
     
    #13
  14. dezeyer23
    Offline

    dezeyer23

    Registriert seit:
    14. Mai 2012
    Beiträge:
    41
    Danke, das geht.
     
    #14
Status des Themas:
Es sind keine weiteren Antworten möglich.