Gelöst mySQL-Stats: Alles wird doppelt hinzugefügt

Dieses Thema im Forum "Programmierung" wurde erstellt von [Dev] Cynux, 22. Mai 2016.

  1. [Dev] Cynux
    Offline

    [Dev] Cynux

    Registriert seit:
    14. Mai 2016
    Beiträge:
    2
    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 (Text):
    1. public static void addKills(String uuid, Integer kills) {
    2. if(playere(uuid)) {
    3. setKills(uuid, Integer.valueOf(getKills(uuid).intValue() + kills.intValue()));
    4. }else{
    5. createPlayer(uuid);
    6. setKills(uuid, Integer.valueOf(getKills(uuid).intValue() + kills.intValue()));
    7. }
    8. }
    Code (Text):
    1. public static void addDeaths(String uuid, Integer deaths) {
    2. if(playere(uuid)) {
    3. setDeaths(uuid, Integer.valueOf(getDeaths(uuid).intValue() + deaths.intValue()));
    4. }else{
    5. createPlayer(uuid);
    6. setDeaths(uuid, Integer.valueOf(getDeaths(uuid).intValue() + deaths.intValue()));
    7. }
    8. }
    Dort wird es hinzugefügt:

    Code (Text):
    1. @EventHandler
    2. public void onDeath(PlayerDeathEvent e) {
    3. Player p = e.getEntity();
    4. if(p.getKiller() instanceof Player) {
    5. String uuid = p.getUniqueId().toString();
    6. SQLStats.addDeaths(uuid, 1);
    7. SQLStats.addKills(p.getKiller().getUniqueId().toString(), 1);
    8. } else {
    9. SQLStats.addDeaths(p.getUniqueId().toString(), 1);
    10. }
    11. }
    Hat jemand eine Idee, was falsch sein könnte? c:
     
    #1
  2. GPSforLEGENDS
    Offline

    GPSforLEGENDS

    Registriert seit:
    21. März 2014
    Beiträge:
    295
    Ort:
    Bürostuhl
    Minecraft:
    GPSforLEGENDS
    Code (Text):
    1. Codetag.use(true);
    Bitte den Codetag benutzen.
     
    #2
  3. GPSforLEGENDS
    Offline

    GPSforLEGENDS

    Registriert seit:
    21. März 2014
    Beiträge:
    295
    Ort:
    Bürostuhl
    Minecraft:
    GPSforLEGENDS
    1. Du hast ganz schön viel unnötigen code.
    Beispiel:
    Code (Text):
    1. 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?
     
    #3
  4. [Dev] Cynux
    Offline

    [Dev] Cynux

    Registriert seit:
    14. Mai 2016
    Beiträge:
    2
    Minecraft:
    Cynux
    Habe es jetzt selber hinbekommen, aber trotzdem danke. c:
     
    #4
  5. GPSforLEGENDS
    Offline

    GPSforLEGENDS

    Registriert seit:
    21. März 2014
    Beiträge:
    295
    Ort:
    Bürostuhl
    Minecraft:
    GPSforLEGENDS
    Bitte ^^
    Bitte berücksichtigte trotzdem die genannten Punkte und besonders Punkt 4
     
    #5