• 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!

mySQL-Stats: Alles wird doppelt hinzugefügt

[Dev] Cynux

Minecrafter
Registriert
14 Mai 2016
Beiträge
2
Diamanten
300
Minecraft
Cynux
Hallo,
ich habe ein Stats-System, welches auf MySQL basiert, programmiert. Nun habe ich aber den Fehler, dass man bei jedem Kill bzw. bei jedem Tod immer 2 Kills bzw Tode hinzugefügt bekommt. Sprich: Du stirbst, und bekommst 2 Tode hinzugefügt.

Die Methoden:
(playere fragt ab, ob der Spieler mit der UUID bereits existiert)

Code:
public static void addKills(String uuid, Integer kills) {
if(playere(uuid)) {
setKills(uuid, Integer.valueOf(getKills(uuid).intValue() + kills.intValue()));
}else{
createPlayer(uuid);
setKills(uuid, Integer.valueOf(getKills(uuid).intValue() + kills.intValue()));
}
}
Code:
public static void addDeaths(String uuid, Integer deaths) {
if(playere(uuid)) {
setDeaths(uuid, Integer.valueOf(getDeaths(uuid).intValue() + deaths.intValue()));
}else{
createPlayer(uuid);
setDeaths(uuid, Integer.valueOf(getDeaths(uuid).intValue() + deaths.intValue()));
}
}
Dort wird es hinzugefügt:

Code:
@EventHandler
public void onDeath(PlayerDeathEvent e) {
Player p = e.getEntity();
if(p.getKiller() instanceof Player) {
String uuid = p.getUniqueId().toString();
SQLStats.addDeaths(uuid, 1);
SQLStats.addKills(p.getKiller().getUniqueId().toString(), 1);
} else {
SQLStats.addDeaths(p.getUniqueId().toString(), 1);
}
}
Hat jemand eine Idee, was falsch sein könnte? c:
 
Zuletzt bearbeitet:

GPSforLEGENDS

Vorarbeiter
Registriert
21 März 2014
Beiträge
289
Alter
85
Diamanten
300
Minecraft
GPSforLEGENDS
1. Du hast ganz schön viel unnötigen code.
Beispiel:
Code:
Integer.valueOf(getKills(uuid).intValue() + kills.intValue())
2. Kann ich nicht hellsehen was für ein Code in den Methoden setKills() und setDeaths() steht.
3. Beachtest du bei deinem playerdeathevent listener nicht das ein Spieler durch ein Projektiel sterben kann das ja von irgendjemanden abgeschossen wurde.
4. Hoffe ich das du Netzwerk Aufgaben über einen asynchronen Thread laufen lässt, was aber nicht danach aussieht.
5. Warum benutzt du jedes mal die Wrapper class vom Datentyp int?
 
Zuletzt bearbeitet:
Oben