• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

SQL Stats für FFA

ZockerBoysHD

Kuhfänger
Registriert
15 August 2014
Beiträge
56
Diamanten
0
Minecraft
ZockerBoysHD
Hallo.
Ich woltle heute meine statistiken auf einer MySQL speichern lassen.
Das Problem ist abber:

Der server gibt immer inenen error aus, wenn man joint (wegen scoreboard) und und und
Error Report:
Code:
nual that corresponds to your MySQL server version for the right syntax to use near ''8627a6cd-6991-3145-85b8-b58d2cc6e805'' at line 1
[11:59:08 ERROR]: Could not pass event PlayerJoinEvent to KillTimePvP-FFA-System vBETA 0.1
org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:305) ~[server.jar:git-Spigot-4b89e7b-7d0f836]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[server.jar:git-Spigot-4b89e7b-7d0f836]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [server.jar:git-Spigot-4b89e7b-7d0f836]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [server.jar:git-Spigot-4b89e7b-7d0f836]
        at net.minecraft.server.v1_8_R2.PlayerList.onPlayerJoin(PlayerList.java:296) [server.jar:git-Spigot-4b89e7b-7d0f836]
        at net.minecraft.server.v1_8_R2.PlayerList.a(PlayerList.java:156) [server.jar:git-Spigot-4b89e7b-7d0f836]
        at net.minecraft.server.v1_8_R2.LoginListener.b(LoginListener.java:144) [server.jar:git-Spigot-4b89e7b-7d0f836]
        at net.minecraft.server.v1_8_R2.LoginListener.c(LoginListener.java:54) [server.jar:git-Spigot-4b89e7b-7d0f836]
        at net.minecraft.server.v1_8_R2.NetworkManager.a(NetworkManager.java:231) [server.jar:git-Spigot-4b89e7b-7d0f836]
        at net.minecraft.server.v1_8_R2.ServerConnection.c(ServerConnection.java:148) [server.jar:git-Spigot-4b89e7b-7d0f836]
        at net.minecraft.server.v1_8_R2.MinecraftServer.A(MinecraftServer.java:809) [server.jar:git-Spigot-4b89e7b-7d0f836]
        at net.minecraft.server.v1_8_R2.DedicatedServer.A(DedicatedServer.java:368) [server.jar:git-Spigot-4b89e7b-7d0f836]
        at net.minecraft.server.v1_8_R2.MinecraftServer.z(MinecraftServer.java:651) [server.jar:git-Spigot-4b89e7b-7d0f836]
        at net.minecraft.server.v1_8_R2.MinecraftServer.run(MinecraftServer.java:554) [server.jar:git-Spigot-4b89e7b-7d0f836]
        at java.lang.Thread.run(Thread.java:745) [?:1.8.0_101]
Caused by: java.lang.NullPointerException
        at de.ktpvp.de.FFA.mysql.Stats.pExists(Stats.java:21) ~[?:?]
        at de.ktpvp.de.FFA.mysql.Stats.gettode(Stats.java:97) ~[?:?]
        at de.ktpvp.de.FFA.system.Scoreboard.setboard(Scoreboard.java:26) ~[?:?]
        at de.ktpvp.de.FFA.Events.joinleavemsgs.PlayerJoinMessage(joinleavemsgs.java:27) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_101]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_101]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_101]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_101]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:301) ~[server.jar:git-Spigot-4b89e7b-7d0f836]
        ... 14 more
Die MYSQL verbidungs klasse:
Javascript:
package de.ktpvp.de.FFA.mysql;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.bukkit.event.Listener;
public class MYSQL implements Listener{    
        private String HOST = "";
        private String DATABASE = "";
        private String USER = "";
        private String PASSWORD = "";
      
        private Connection con;
      
        public MYSQL(String host, String database, String user, String password) {
                this.HOST = host;
                this.DATABASE = database;
                this.USER = user;
                this.PASSWORD = password;
              
                connect();
        }
        public void connect() {
                try {
                        con = DriverManager.getConnection("jdbc:mysql://" + HOST + ":3306/" + DATABASE + "?autoReconnect=true", USER, PASSWORD);
                        System.out.println("[MySQL] Die Verbindung zur MySQL wurde hergestellt!");
                } catch (SQLException e) {
                        System.out.println("[MySQL] Die Verbindung zur MySQL ist fehlgeschlagen! Fehler: " + e.getMessage());
                }
        }
      
        public void close() {
                try {
                        if(con != null) {
                                con.close();
                                System.out.println("[MySQL] Die Verbindung zur MySQL wurde Erfolgreich beendet!");
                        }
                } catch (SQLException e) {
                        System.out.println("[MySQL] Fehler beim beenden der Verbindung zur MySQL! Fehler: " + e.getMessage());
                }
        }
      
        public void update(String qry) {
                try {
                        Statement st = con.createStatement();
                        st.executeUpdate(qry);
                        st.close();
                } catch (SQLException e) {
                        connect();
                        System.err.println(e);
                }
        }
      
        public ResultSet query(String qry) {
                ResultSet rs = null;
              
                try {
                        Statement st = con.createStatement();
                        rs = st.executeQuery(qry);
                } catch (SQLException e) {
                        connect();
                        System.err.println(e);
                }
                return rs;
        }
}
Die Main Klasse:
Javascript:
package de.ktpvp.de.FFA.system;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import org.bukkit.Bukkit;
import org.bukkit.World;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.inventory.Inventory;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitTask;
import org.bukkit.scoreboard.Scoreboard;
import de.ktpvp.de.FFA.CMDS.GREIFERALERT;
import de.ktpvp.de.FFA.CMDS.bau;
import de.ktpvp.de.FFA.CMDS.clear;
import de.ktpvp.de.FFA.CMDS.fix;
import de.ktpvp.de.FFA.CMDS.help;
import de.ktpvp.de.FFA.CMDS.kit;
import de.ktpvp.de.FFA.CMDS.map;
import de.ktpvp.de.FFA.CMDS.setspawn;
import de.ktpvp.de.FFA.CMDS.shop;
import de.ktpvp.de.FFA.CMDS.spawn;
import de.ktpvp.de.FFA.CMDS.wasistdas;
import de.ktpvp.de.FFA.Events.AntiREgenuNacht;
import de.ktpvp.de.FFA.Events.Event_Tab_ALT;
import de.ktpvp.de.FFA.Events.FSigns;
import de.ktpvp.de.FFA.Events.Tod;
import de.ktpvp.de.FFA.Events.VIPJoin;
import de.ktpvp.de.FFA.Events.anticmd;
import de.ktpvp.de.FFA.Events.aps;
import de.ktpvp.de.FFA.Events.chat;
import de.ktpvp.de.FFA.Events.joinleavemsgs;
import de.ktpvp.de.FFA.Inventare.Confirmen;
import de.ktpvp.de.FFA.Inventare.Maps;
import de.ktpvp.de.FFA.Inventare.kitauswahl;
import de.ktpvp.de.FFA.mysql.MYSQL;
import de.ktpvp.de.FFA.mysql.Stats;

public class KilltimeMain extends JavaPlugin implements Listener {

    public static KilltimeMain ffa;
   
    public static MYSQL mysql;

    static File CFGFile = new File("plugins/FFA", "Player.yml");
    public static FileConfiguration CFG = YamlConfiguration.loadConfiguration(CFGFile);

    static File SPAWNF = new File("plugins/FFA", "Spawn.yml");
    public static FileConfiguration SPAWN = YamlConfiguration.loadConfiguration(SPAWNF);

    public static HashMap<String, BukkitTask> tp = new HashMap<String, BukkitTask>();
   
    public static ArrayList<Player> kit = new ArrayList<Player>();

    static Scoreboard sb;

    public static int suche = 0;

    public static int griefer = 0;
   
    public static final String prwichtig = "§eSystem §7»§7 ";
    public static final String prausrufe = "§eSystem §7»§7 ";
    public static final String prfrage = "§eSystem §7»§7 ";
    public static final String prplus = "§eSystem §7»§7 ";

    public Inventory shop = null;

    @Override
    public void onDisable() {
        System.out.println("[SYSTEM]System Gestoppt");
    }

    @Override
    public void onEnable() {
        ffa = this;
        sb = Bukkit.getScoreboardManager().getNewScoreboard();

        sb.registerNewTeam("00000Admin");
        sb.registerNewTeam("00001Dev");
        sb.registerNewTeam("00002Mod");
        sb.registerNewTeam("00003Sup");
        sb.registerNewTeam("00004Builder");
        sb.registerNewTeam("00005Youtuber");
        sb.registerNewTeam("00006VIP");
        sb.registerNewTeam("00007Spieler");

        sb.getTeam("00000Admin").setPrefix("§cAdmin §7| §c");
        sb.getTeam("00001Dev").setPrefix("§bDev §7| §b");
        sb.getTeam("00002Mod").setPrefix("§9Mod §7| §9");
        sb.getTeam("00003Sup").setPrefix("§dSup §7| §d");
        sb.getTeam("00004Builder").setPrefix("§aBuilder §7| §a");
        sb.getTeam("00005Youtuber").setPrefix("§5");
        sb.getTeam("00006VIP").setPrefix("§6");
        sb.getTeam("00007Spieler").setPrefix("§7");

        ConnectMYSQL();

        createConfig();
        loadList();

        createSConfig();
        loadSList();

        loadServer();

        Bukkit.getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
        System.out.println("[SYSTEM]System Geladen");

        List<World> world = getServer().getWorlds();
        for (int i = 0; i < world.size(); i++) {
            world.get(i).setStorm(false);
            world.get(i).setThundering(false);
        }
        Bukkit.getServer().getWorld("i").setGameRuleValue("doDaylightCycle", "false");
        Bukkit.getServer().getWorld("i").setTime(6000L);
    }
    public void loadServer() {
        PluginManager pm = Bukkit.getPluginManager();

        pm.registerEvents(new Methoden(), this);
        pm.registerEvents(new de.ktpvp.de.FFA.system.Scoreboard(), this);
        pm.registerEvents(new CoinSystem(), this);

        pm.registerEvents(new kitauswahl(), this);
        pm.registerEvents(new Maps(), this);
        pm.registerEvents(new Confirmen(), this);

        pm.registerEvents(new AntiREgenuNacht(), this);
        pm.registerEvents(new aps(), this);
        pm.registerEvents(new chat(), this);
        pm.registerEvents(new joinleavemsgs(), this);
        pm.registerEvents(new Tod(), this);
        pm.registerEvents(new VIPJoin(), this);
        pm.registerEvents(new Event_Tab_ALT(), this);
        pm.registerEvents(new FSigns(), this);
        pm.registerEvents(new spawn(this), this);
        pm.registerEvents(new anticmd(), this);
        pm.registerEvents(new GREIFERALERT(), this);
       
        pm.registerEvents(new Stats(), this);
       
        getCommand("bau").setExecutor(new bau());
        getCommand("kit").setExecutor(new kit());
        getCommand("map").setExecutor(new map());
        getCommand("wid").setExecutor(new wasistdas());
        getCommand("fix").setExecutor(new fix());
        getCommand("coins").setExecutor(new CoinSystem());
        getCommand("kits").setExecutor(new kit());
        getCommand("shop").setExecutor(new shop(this));
        getCommand("stats").setExecutor(new Statsbefehl());
        getCommand("spawn").setExecutor(new spawn(this));
        getCommand("setspawn").setExecutor(new setspawn());
        getCommand("help").setExecutor(new help());
        getCommand("hilfe").setExecutor(new help());
        getCommand("clear").setExecutor(new clear());
        getCommand("griefer").setExecutor(new GREIFERALERT());
    }
    public static KilltimeMain getInstance() {
        return ffa;
    }
    public static void saveList() {
        try {
            CFG.save(CFGFile);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public static void loadList() {
        try {
            CFG.load(CFGFile);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public static void createConfig() {

        if (!CFG.contains("Spieler")) {

            CFG.set("Spieler", Arrays.asList());
            saveList();
        }
    }
    public static void saveSList() {
        try {
            SPAWN.save(SPAWNF);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public static void loadSList() {
        try {
            SPAWN.load(SPAWNF);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public static void createSConfig() {

        if (!SPAWN.contains("Spawn")) {

            CFG.set("Spawn", "");
            saveSList();
        }
    }
   
    private void ConnectMYSQL(){
       
        mysql = new MYSQL("localhost", "FFA", "FFA", "FFA");
        mysql.update("CREATE TABLE IF NOT EXISTS (UUID varchart(64), KILLS int, DEATHS int,COINS int)");
       
    }
}
Und die Stats Klasse (für die ganzen sachen zum abrufen)
Javascript:
package de.ktpvp.de.FFA.mysql;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import de.ktpvp.de.FFA.system.KilltimeMain;
public class Stats implements Listener {
   
    public static boolean pExists(String uuid){
       
        boolean exists = false;
        try {
           
            ResultSet rs = KilltimeMain.mysql.query("SELECT * FROM Stats WHERE UUID '"+ uuid +"'");
   
            if(rs.getString("UUID") == uuid ){
                exists = true;
                return exists;
            }else{
                exists = false;
                CreateP(uuid);
            }
   
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return false;
    }
public static void CreateP(String uuid){
   
    if(pExists(uuid) == false){
        KilltimeMain.mysql.update("INSERT INTO Stats(UUID, KILLS, DEATHS, COINS) VALUES('"+uuid+"','0', '0', '0');");
    }   
}
public static Integer getkills(String uuid){ 
    int kill = 0; 
    if(pExists(uuid) ==  true){   
        try {   
            ResultSet rs = KilltimeMain.mysql.query("SELECT * FROM Stats WHERE UUID '"+ uuid +"'");
           
            if(!rs.next() || (Integer.valueOf(rs.getInt("KILLS")) == null));     
            kill = rs.getInt("KILLS");       
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }else{
        CreateP(uuid);
        getkills(uuid);
    }   
    return kill;
}
public  static Integer getCoins(String uuid){
   
    int coins = 0;
   
    if(pExists(uuid) == true ){   
        try {   
            ResultSet rs = KilltimeMain.mysql.query("SELECT * FROM Stats WHERE UUID '"+ uuid +"'");
           
            if(!rs.next() || (Integer.valueOf(rs.getInt("COINS")) == null));
           
            coins = rs.getInt("COINS");       
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }else{
        CreateP(uuid);
        getCoins(uuid);
    }   
    return coins;
}
public  static Integer gettode(String uuid, Player p){
   
    int tode = 0;
   
    if(pExists(p.getUniqueId().toString()) == true){   
        try {   
            ResultSet rs = KilltimeMain.mysql.query("SELECT * FROM Stats WHERE UUID '"+ uuid +"'");
            tode = rs.getInt("DEATHS");       
           
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }else{
        CreateP(uuid);
        getCoins(uuid);
    }   
    return tode;
}
public static void setkills(String uuid, Integer kills){
    if(pExists(uuid) == true){
        KilltimeMain.mysql.update("UPDATE Stats SET KILLS= '"+ kills+"' WHERE UUID= '"+uuid+"';");
       
    }else{
        CreateP(uuid);
        setkills(uuid, kills);
    }
}
    public static void setDEATHS(String uuid, Integer DEATHS){
        if(pExists(uuid) == true){
            KilltimeMain.mysql.update("UPDATE Stats SET DEATHS= '"+ DEATHS+"' WHERE UUID= '"+uuid+"';");
           
        }else{
            CreateP(uuid);
            setDEATHS(uuid, DEATHS);
        }
    }
        public static void setCoins(String uuid, Integer coins){
            if(pExists(uuid) == true){
                KilltimeMain.mysql.update("UPDATE Stats SET COINS= '"+ coins+"' WHERE UUID= '"+uuid+"';");
               
            }else{
                CreateP(uuid);
                setCoins(uuid, coins);
            }
        }
        public static void addDEATHSs(String uuid, Integer deaths, Player p){
            if(pExists(uuid)){
                setDEATHS(uuid, Integer.valueOf(gettode(uuid, p).intValue() + deaths.intValue()));
               
            }else{
                CreateP(uuid);
                addDEATHSs(uuid, deaths, p);
            }
        }
       
            public static void addkills(String uuid, Integer kills){
                if(pExists(uuid)){
                    setkills(uuid, Integer.valueOf(getkills(uuid).intValue() + kills.intValue()));
                   
                }else{
                    CreateP(uuid);
                    addkills(uuid, kills);
                }
            }
         
                public static void addcoins(String uuid, Integer coins){
                    if(pExists(uuid)){
                        setCoins(uuid, Integer.valueOf(getCoins(uuid).intValue() + coins.intValue()));
                       
                    }else{
                        CreateP(uuid);
                        addcoins(uuid, coins);
}
}

}


Schonmal Danke im vorraus!!!!
 

TheSimufreak

Kuhfänger
Registriert
28 Juni 2012
Beiträge
78
Diamanten
0
Entweder formatiert das Forum den Quellcode etwas anders oder der Code passt nicht zur gegebenen Fehlermeldung:

at de.ktpvp.de.FFA.mysql.Stats.pExists(Stats.java:21) ~[?:?]
Ergibt nach deinem Quellcode
CreateP ( uuid ) ;
und
at de.ktpvp.de.FFA.mysql.Stats.gettode(Stats.java:97) ~[?:?]
ergibt

Zum Problem:
Ein Objekt, mit du arbeitest, existiert nicht, deshalb die NullPointerException. Da kann ne simple Null-Abfrage helfen, vlt musst du aber auch an anderer Stelle was ändern, kann das mit deinen Angaben nicht sagen.
 

ZockerBoysHD

Kuhfänger
Registriert
15 August 2014
Beiträge
56
Diamanten
0
Minecraft
ZockerBoysHD
Entweder formatiert das Forum den Quellcode etwas anders oder der Code passt nicht zur gegebenen Fehlermeldung:


Ergibt nach deinem Quellcode
und

ergibt

Zum Problem:
Ein Objekt, mit du arbeitest, existiert nicht, deshalb die NullPointerException. Da kann ne simple Null-Abfrage helfen, vlt musst du aber auch an anderer Stelle was ändern, kann das mit deinen Angaben nicht sagen.

Abebr wie mache ich denn dan das objekt richtigg? habe in den jeweiligen klassen, qo da was passieren soll, dann gemacht z.b. im join event: e.getplayer().getUniqueID().tostring() oder was braucht man denn noch für angaben?
 

TheSimufreak

Kuhfänger
Registriert
28 Juni 2012
Beiträge
78
Diamanten
0
Mit den Angaben meine ich folgendes:
In der Fehlermeldung stehen nach dem Caused by: java.lang.NullPointerException alle Klassen, die was mit dem Fehler zu tun haben, folglich kann aus der ersten Zeile (at de.ktpvp.de.FFA.mysql.Stats.pExists(Stats.java:21) ~[?:?]) entnommen werde, wo der Fehle genau auftritt. Bei der Fehlermeldung die du angegeben hast ist das Zeile 21 aus der Klasse Stats, in der Methode pExists. Schaue ich mir nun aber den gegebenen Quellcode an finde ich CreateP(uuid); , da dort aber keine NullpointerException auftreten kann passt die Fehlermeldung nicht zu dem Quellcode.

Ich bitte dich also deinen aktuellen Quellcode zu kompilieren, auszuführen und der Fehler der dann geworfen wird zusammen mit dem Quellcode, am besten die Klassen Stats, Scoreboard und Events, hier zu posten, vorher kann ich dir da nicht weiterhelfen.

PS: Bitte gewöhne dir an deinen Quellcode anständig zu formatieren, dann ist das Lesen auch etwas angenehmer.
 

ZockerBoysHD

Kuhfänger
Registriert
15 August 2014
Beiträge
56
Diamanten
0
Minecraft
ZockerBoysHD
Also:
Meine Klassen, Die Etwas mit der MYSQL zu tun Haben:

MYSQL-Verbindugs Klasse: http://pastebin.com/KnJhruka
Die Main-Klasse : http://pastebin.com/25E73s6P

die Scoreboard Klasse: http://pastebin.com/umSDLTCP Übrigens: Die alten methoden da waren von früpher, als noch alels lokal war :D
Die Join Event Klasse: http://pastebin.com/k7x0rEv3
Die Stats klasse vom MYSQL: http://pastebin.com/eQYQePC6

Komplette Server-LOG: http://pastebin.com/aEJV6EiM

PS: Laut Dem Server-LOG was ich so gresehen habe, sagt der, Dass da irgendwo bei

Code:
        KilltimeMain.mysql.update("INSERT INTO Stats(UUID, KILLS, DEATHS, COINS) VALUES("+uuid+",'0', '0', '0');");

DEr Fehler ist irgend was da, wo die UUID als value festgelegt wird...
 

TheSimufreak

Kuhfänger
Registriert
28 Juni 2012
Beiträge
78
Diamanten
0
Also:
Meine Klassen, Die Etwas mit der MYSQL zu tun Haben:

MYSQL-Verbindugs Klasse: http://pastebin.com/KnJhruka
Die Main-Klasse : http://pastebin.com/25E73s6P

die Scoreboard Klasse: http://pastebin.com/umSDLTCP Übrigens: Die alten methoden da waren von früpher, als noch alels lokal war :D
Die Join Event Klasse: http://pastebin.com/k7x0rEv3
Die Stats klasse vom MYSQL: http://pastebin.com/eQYQePC6

Komplette Server-LOG: http://pastebin.com/aEJV6EiM

PS: Laut Dem Server-LOG was ich so gresehen habe, sagt der, Dass da irgendwo bei

Code:
        KilltimeMain.mysql.update("INSERT INTO Stats(UUID, KILLS, DEATHS, COINS) VALUES("+uuid+",'0', '0', '0');");

DEr Fehler ist irgend was da, wo die UUID als value festgelegt wird...
Genau so muss das aussehen!


Code (Text):
  1. KilltimeMain.mysql.update("INSERT INTO Stats(UUID, KILLS, DEATHS, COINS) VALUES("+uuid+",'0', '0', '0');");
Da hast du vollkommen recht. Das ResultSet ist Null, entsprechend kann darauf keine Funktionen aufgerufen werden. Schaust du in der Log etwas weiter oben findest du
Code:
[06:37:41] [Server thread/WARN]: com.mysql.jdbc.exceptions.jdbc4.Communication***ception: The last packet successfully received from the server was 64,056,183 milliseconds ago.  The last packet sent successfully to the server was 64,056,183 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.
Das bedeutet dass die Verbindung zu deinem MySQL-Server nicht aufgebaut werden kann, entsprechend ist das Resultat der SQL-Abfrage Null.
 

TheSimufreak

Kuhfänger
Registriert
28 Juni 2012
Beiträge
78
Diamanten
0
Den neuen Fehler bekommst du weil die neue Connector-Klasse nicht richtig funktioniert. Ich kann auch nicht nachvollziehen wieso du die ersetzt hast, die alte sah meines Erachtens ganz solide aus. Dein Ursprünglicher Fehler liegt nicht an dem Quellcode selber, sondern wahrscheinlich an den Daten mit denen die du dich mit deinem MySQL-Server verbindest, sprich Passwort, Username etc.
Wenn die soweit korrekt sind kann es daran liegen, dass du in deiner Mainklasse 'localhost' anstelle von '127.0.0.1' angibst.
 

ZockerBoysHD

Kuhfänger
Registriert
15 August 2014
Beiträge
56
Diamanten
0
Minecraft
ZockerBoysHD
Den neuen Fehler bekommst du weil die neue Connector-Klasse nicht richtig funktioniert. Ich kann auch nicht nachvollziehen wieso du die ersetzt hast, die alte sah meines Erachtens ganz solide aus. Dein Ursprünglicher Fehler liegt nicht an dem Quellcode selber, sondern wahrscheinlich an den Daten mit denen die du dich mit deinem MySQL-Server verbindest, sprich Passwort, Username etc.
Wenn die soweit korrekt sind kann es daran liegen, dass du in deiner Mainklasse 'localhost' anstelle von '127.0.0.1' angibst.

Abber das mit dem ip ding habe ich ja auch getetstet... geht nicht..... Und dnan wollte ich halt probieren die klasse mal neu zu machen... Abebr nun sagt der ja, die Datenbank gibt es garnicht... abebr verbinden so tut er nun!!! Nur es gibt nen fheler mti der Datenbank.
 

TheSimufreak

Kuhfänger
Registriert
28 Juni 2012
Beiträge
78
Diamanten
0
Hab mich nochmal durch deinen Code gewühlt, sieht soweit alles richtig aus. Die Log ergibt folgenden Fehler:
Code:
[03:59:01] [Server thread/INFO]: [MySQL] Die Verbindung zur MySQL ist fehlgeschlagen! Fehler: Could not create connection to database server. Attempted 
reconnect 3 times. Giving up.

Der wohl von deiner Connector-Klasse geworfen wird
Javascript:
    public static void connect(){
        if(!isConnected()){
            try {
                con = DriverManager.getConnection("jdbc:mysql//"+host+":"+port+"/"+database,username,password);
                System.out.println("[MySQL] Verbindung aufgebaut!");
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

Entweder ist deine MySQL-DB falsch eingestellt oder deine Verbindungsdaten sind falsch. Bist du dir sicher dass dein MySQL-Server über Port 3306 läuft?

EDIT:
Javascript:
    public static String host = "localhost";
    public static String port = "3306";
    public static String database = "FFA";
    public static String username = "localhost";
    public static String password = "ZockerBoysHD1";
Soll der Nutzer localhost heißen?
 

ZockerBoysHD

Kuhfänger
Registriert
15 August 2014
Beiträge
56
Diamanten
0
Minecraft
ZockerBoysHD
Hab mich nochmal durch deinen Code gewühlt, sieht soweit alles richtig aus. Die Log ergibt folgenden Fehler:
Code:
[03:59:01] [Server thread/INFO]: [MySQL] Die Verbindung zur MySQL ist fehlgeschlagen! Fehler: Could not create connection to database server. Attempted
reconnect 3 times. Giving up.

Der wohl von deiner Connector-Klasse geworfen wird
Javascript:
    public static void connect(){
        if(!isConnected()){
            try {
                con = DriverManager.getConnection("jdbc:mysql//"+host+":"+port+"/"+database,username,password);
                System.out.println("[MySQL] Verbindung aufgebaut!");
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

Entweder ist deine MySQL-DB falsch eingestellt oder deine Verbindungsdaten sind falsch. Bist du dir sicher dass dein MySQL-Server über Port 3306 läuft?

EDIT:
Javascript:
    public static String host = "localhost";
    public static String port = "3306";
    public static String database = "FFA";
    public static String username = "localhost";
    public static String password = "ZockerBoysHD1";
Soll der Nutzer localhost heißen?


Das mit dem Nutzer: Das war nur etst und ja. der heist aktuell aus testzwecken so.

Und iwe finde ich denn den Port raus?!?!? Weil ich habe eig. alles bei der installation richtig eingestellt.
 

TheSimufreak

Kuhfänger
Registriert
28 Juni 2012
Beiträge
78
Diamanten
0
Weil ich habe eig. alles bei der installation richtig eingestellt.
Heißt du hostest die Datenbank selber? Wenn ja, auf welchen System.
Der Port steht in der Config von deinem SQL-Server, wo genau die liegt kann ich dir ohne weiteres nicht sagen.
Hat der Datenbankbenutzer auch die erforderlichen Rechte?
Alternativ kannst du dir hier eine Testdatenbank anlegen und damit ausprobieren ob's funktioniert.
 

ZockerBoysHD

Kuhfänger
Registriert
15 August 2014
Beiträge
56
Diamanten
0
Minecraft
ZockerBoysHD
Dann wirst du wohl deinen MySQL-Server falsch eingestellt haben. Funktioniert dein Plugin denn mit anderen Servern?
Davon ausgehend dass auf deinem VServer Ubuntu/Debian läuft:

Nope ist nicht so. Egal. Ich habe eh KillTimePvP hingeschmissen. ich ahbe jz EgoPvP und da brauche ich nicht umbedingt mysql drin :D

Trotzdem danke!!
 

Bolver

Minecrafter
Registriert
9 Juni 2014
Beiträge
8
Alter
29
Diamanten
53
Minecraft
Bolver
Versuch mal das:
ResultSet rs = KilltimeMain.mysql.query("SELECT * FROM Stats WHERE UUID='"+ uuid +"');

Und bitte benutz nie mehr SELECT * benutz lieber

SELECT UUID FROM Stats

oder

SELECT COINS FROM Stats

SELECT UUID, COINS FROM Stats

geht auch, nur diese Abfragen sind schneller da sie weniger Daten zurückgeben :)
 

EGPVP

Minecrafter
Registriert
28 Juni 2017
Beiträge
7
Alter
25
Diamanten
0
Versuch mal das:
ResultSet rs = KilltimeMain.mysql.query("SELECT * FROM Stats WHERE UUID='"+ uuid +"');

Und bitte benutz nie mehr SELECT * benutz lieber

SELECT UUID FROM Stats

oder

SELECT COINS FROM Stats

SELECT UUID, COINS FROM Stats

geht auch, nur diese Abfragen sind schneller da sie weniger Daten zurückgeben :)
DAnke, Habe deinen Post heute erst gesehen, aber habe inzwischen MYSQL usw Alles Längst Laufen. Sogar mit Auto Reconnect :D Ich bin aktuell eher an Spielmodi dran wegen meinem Netzwerk. Neue Post zu anderem Problem:
https://minecraft-server.eu/forum/t...ibt-beim-abbauen-der-truhe.43577/#post-258493
 
Oben