From 5086fb4a007925e4edc236d80211f4a0288dfa82 Mon Sep 17 00:00:00 2001 From: Tyler Murphy Date: Mon, 9 May 2022 16:19:24 -0400 Subject: refactor placeholders --- .../hideAndSeek/database/PlayerInfoTable.java | 42 +++++++++++++++++++--- 1 file changed, 37 insertions(+), 5 deletions(-) (limited to 'src/main/java/net/tylermurphy/hideAndSeek/database/PlayerInfoTable.java') diff --git a/src/main/java/net/tylermurphy/hideAndSeek/database/PlayerInfoTable.java b/src/main/java/net/tylermurphy/hideAndSeek/database/PlayerInfoTable.java index 06c036d..6948134 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/database/PlayerInfoTable.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/database/PlayerInfoTable.java @@ -44,11 +44,11 @@ public class PlayerInfoTable { + " uuid BINARY(16) PRIMARY KEY,\n" + " hider_wins int NOT NULL,\n" + " seeker_wins int NOT NULL,\n" - + " hider_games int NOT NULL\n" - + " seeker_games int NOT NULL\n" - + " hider_kills int NOT NULL\n" - + " seeker_kills int NOT NULL\n" - + " hider_deaths int NOT NULL\n" + + " hider_games int NOT NULL,\n" + + " seeker_games int NOT NULL,\n" + + " hider_kills int NOT NULL,\n" + + " seeker_kills int NOT NULL,\n" + + " hider_deaths int NOT NULL,\n" + " seeker_deaths int NOT NULL\n" + ");"; @@ -123,6 +123,38 @@ public class PlayerInfoTable { return new PlayerInfo(uuid, 0, 0, 0, 0, 0, 0, 0, 0); } + @Nullable + public PlayerInfo getInfoRanking(String order, int place){ + String sql = "SELECT * FROM hs_data ORDER BY "+order+" DESC LIMIT 1 OFFSET ?;"; + try(Connection connection = Database.connect(); PreparedStatement statement = connection.prepareStatement(sql)){ + statement.setInt(1, place-1); + ResultSet rs = statement.executeQuery(); + if(rs.next()){ + UUID uuid = decodeUUID(rs.getBytes("uuid")); + PlayerInfo info = new PlayerInfo( + uuid, + rs.getInt("hider_wins"), + rs.getInt("seeker_wins"), + rs.getInt("hider_games"), + rs.getInt("seeker_games"), + rs.getInt("hider_kills"), + rs.getInt("seeker_kills"), + rs.getInt("hider_deaths"), + rs.getInt("seeker_deaths") + ); + rs.close(); + connection.close(); + CACHE.put(uuid, info); + return info; + } + rs.close(); + } catch (SQLException e){ + Main.plugin.getLogger().severe("SQL Error: " + e.getMessage()); + e.printStackTrace(); + } + return null; + } + @Nullable public List getInfoPage(int page){ String sql = "SELECT * FROM hs_data ORDER BY (hider_wins + seeker_wins) DESC LIMIT 10 OFFSET ?;"; -- cgit v1.2.3-freya