From 1ff92e5d0bf29efd06ee819e162d1d56fcec21ca Mon Sep 17 00:00:00 2001 From: Lixfel Date: Sun, 13 Mar 2022 20:59:11 +0100 Subject: [PATCH] Fix database insertion Signed-off-by: Lixfel --- src/de/steamwar/bungeecore/sql/SchemElo.java | 4 ++-- src/de/steamwar/bungeecore/sql/UserElo.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/de/steamwar/bungeecore/sql/SchemElo.java b/src/de/steamwar/bungeecore/sql/SchemElo.java index d14eaecb..55df604e 100644 --- a/src/de/steamwar/bungeecore/sql/SchemElo.java +++ b/src/de/steamwar/bungeecore/sql/SchemElo.java @@ -25,7 +25,7 @@ public class SchemElo { private SchemElo() {} private static final Statement elo = new Statement("SELECT Elo FROM SchemElo WHERE SchemID = ? AND Season = ?"); - private static final Statement setElo = new Statement("UPDATE SchemElo SET Elo = ? WHERE Season = ? AND SchemID = ?"); + private static final Statement setElo = new Statement("INSERT INTO SchemElo (Season, SchemID, Elo) VALUES (?, ?, ?) ON DUPLICATE KEY UPDATE Elo = VALUES(Elo)"); public static int getElo(int schemID) { return getElo(Season.getSeason(), schemID); @@ -44,6 +44,6 @@ public class SchemElo { } public static void setElo(int season, int schemID, int elo) { - setElo.update(elo, season, schemID); + setElo.update(season, schemID, elo); } } diff --git a/src/de/steamwar/bungeecore/sql/UserElo.java b/src/de/steamwar/bungeecore/sql/UserElo.java index a4367fa9..bf95b3c2 100644 --- a/src/de/steamwar/bungeecore/sql/UserElo.java +++ b/src/de/steamwar/bungeecore/sql/UserElo.java @@ -36,7 +36,7 @@ public class UserElo { private static final Map emblemCache = new HashMap<>(); private static final Statement elo = new Statement("SELECT Elo FROM UserElo WHERE UserID = ? AND GameMode = ? AND Season = ?"); - private static final Statement setElo = new Statement("UPDATE UserElo SET Elo = ? WHERE Season = ? AND UserID = ? AND GameMode = ?"); + private static final Statement setElo = new Statement("INSERT INTO UserElo (Season, GameMode, UserID, Elo) SET (?, ?, ?, ?) ON DUPLICATE KEY UPDATE Elo = VALUES(Elo)"); private static final Statement place = new Statement("SELECT COUNT(*) AS Place FROM UserElo WHERE GameMode = ? AND Elo > ? AND Season = ?"); private static final Statement maxElo = new Statement("SELECT MAX(Elo) AS MaxElo FROM UserElo WHERE Season = ? AND GameMode = ?"); private static final Statement fightsOfSeason = new Statement("SELECT COUNT(*) AS Fights FROM FightPlayer INNER JOIN Fight F on FightPlayer.FightID = F.FightID WHERE UserID = ? AND GameMode = ? AND UNIX_TIMESTAMP(StartTime) + Duration >= UNIX_TIMESTAMP(?)");