ZockerBoysHD
Kuhfänger
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:
Die MYSQL verbidungs klasse:
Die Main Klasse:
Und die Stats Klasse (für die ganzen sachen zum abrufen)
Schonmal Danke im vorraus!!!!
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
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;
}
}
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)");
}
}
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!!!!