Hallo
ich habe ein Plugin geschrieben, in dem ein Scorboard ist, was anzeigt wie viel Tokens / Coins man hat. Dieses habe ich auf alle Server gepackt (RootServer). Nach einiger Zeit auf dem Server (Wenn man mal auf Lobby ist dann in SkyPvP usw.) verschwindet einfach in der MySQL der Token und Coins Wert vom Spieler. Woran könnte das liegen ?
Hier die Conection der MySQL-Datenbank
Und hier hole ich mit den Wert und kann auch ihn löschen usw.
ich habe ein Plugin geschrieben, in dem ein Scorboard ist, was anzeigt wie viel Tokens / Coins man hat. Dieses habe ich auf alle Server gepackt (RootServer). Nach einiger Zeit auf dem Server (Wenn man mal auf Lobby ist dann in SkyPvP usw.) verschwindet einfach in der MySQL der Token und Coins Wert vom Spieler. Woran könnte das liegen ?
Hier die Conection der MySQL-Datenbank
Code:
package MySQL;
import java.io.File;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import me.Mc_Techno.ScoreStats.main;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
public class MySQL {
public static String host;
public static String port;
public static String database;
public static String username;
public static String passwort;
public static Connection con;
public static void connect() {
if(!isConnected()) {
try {
con = DriverManager.getConnection("jdbc:mysql://" + host + ":" + port + "/" + database + "?autoReconnect=true",username,passwort);
System.out.println(main.prefix + "MySQL verbindung aufgebaut!");
} catch (SQLException e) {
e.printStackTrace();
System.out.println(main.prefix + "MySQL verbindung fehlgeschlagen.");
}
}
}
public static void disconnect() {
if(isConnected()) {
try {
con.close();
System.out.println(main.prefix + "MySQL verbindung geschlossen!");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static boolean isConnected() {
return (con == null ? false : true);
}
public static Connection getConnection() {
return con;
}
// File
public void setStandart() {
FileConfiguration cfg = getFileConfiguration();
cfg.options().copyDefaults(true);
cfg.addDefault("MySQL.host", "");
cfg.addDefault("MySQL.port", "");
cfg.addDefault("MySQL.database", "");
cfg.addDefault("MySQL.username", "");
cfg.addDefault("MySQL.passwort", "");
try {
cfg.save(getFile());
} catch (IOException e) {
e.printStackTrace();
}
}
private File getFile() {
return new File("plugins/ScoreStats", "config.yml");
}
private FileConfiguration getFileConfiguration() {
return YamlConfiguration.loadConfiguration(getFile());
}
public void readData() {
FileConfiguration cfg = getFileConfiguration();
host = cfg.getString("MySQL.host");
port = cfg.getString("MySQL.port");
database = cfg.getString("MySQL.database");
username = cfg.getString("MySQL.username");
passwort = cfg.getString("MySQL.passwort");
}
}
Und hier hole ich mit den Wert und kann auch ihn löschen usw.
Code:
package MySQL;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.UUID;
import me.Mc_Techno.ScoreStats.main;
public class Token {
public static boolean isUserExists(UUID uuid) {
try {
PreparedStatement ps = MySQL.getConnection().prepareStatement("SELECT Token FROM Tokens_Coins WHERE UUID = ?");
ps.setString(1, uuid.toString());
ResultSet rs = ps.executeQuery();
return rs.next();
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
public static void update(UUID uuid,int ammount) {
if(!isUserExists(uuid)) {
try {
PreparedStatement ps = MySQL.getConnection().prepareStatement("INSERT INTO Tokens_Coins(UUID,Token) VALUES (?,?)");
ps.setString(1, uuid.toString());
ps.setInt(2, ammount);
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
} else {
try {
PreparedStatement ps = MySQL.getConnection().prepareStatement("UPDATE Tokens_Coins SET Token = ? WHERE UUID = ?");
ps.setString(2, uuid.toString());
ps.setInt(1, ammount);
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void delete(UUID uuid) {
if(isUserExists(uuid)) {
try {
PreparedStatement ps = MySQL.getConnection().prepareStatement("DELETE * FROM Tokens_Coins WHERE UUID = ?");
ps.setString(1, uuid.toString());
} catch (SQLException e) {
e.printStackTrace();
}
} else {
System.err.print(main.prefix + "Der Spieler mit der UUID: " + uuid.toString() + " ist nicht in MySQL eingetragen.");
}
}
public static Integer getSpiele(UUID uuid) {
try {
PreparedStatement ps = MySQL.getConnection().prepareStatement("SELECT Token FROM Tokens_Coins WHERE UUID = ?");
ps.setString(1, uuid.toString());
ResultSet rs = ps.executeQuery();
while(rs.next()) {
return rs.getInt("Token");
}
} catch (SQLException e) {
e.printStackTrace();
}
return 0;
}
}