summaryrefslogtreewikicommitdiff
path: root/src/main/java/net/tylermurphy/hideAndSeek/database/PlayerInfoTable.java
diff options
context:
space:
mode:
authorTyler Murphy <tylermurphy534@gmail.com>2022-05-13 13:42:26 -0400
committerGitHub <noreply@github.com>2022-05-13 13:42:26 -0400
commit7d152668d753c611c2f1b553332e257283fadcd6 (patch)
tree3c8ae0fc7edfac96191d80a31d38e8afc57a6113 /src/main/java/net/tylermurphy/hideAndSeek/database/PlayerInfoTable.java
parentparallel change on master (diff)
parenttypos: fix typos in CONTRIBUTING.md (diff)
downloadkenshinshideandseek-7d152668d753c611c2f1b553332e257283fadcd6.tar.gz
kenshinshideandseek-7d152668d753c611c2f1b553332e257283fadcd6.tar.bz2
kenshinshideandseek-7d152668d753c611c2f1b553332e257283fadcd6.zip
Merge pull request #53 from bobby29831/1.4.3
Implement better coding practices
Diffstat (limited to 'src/main/java/net/tylermurphy/hideAndSeek/database/PlayerInfoTable.java')
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/database/PlayerInfoTable.java53
1 files changed, 26 insertions, 27 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/database/PlayerInfoTable.java b/src/main/java/net/tylermurphy/hideAndSeek/database/PlayerInfoTable.java
index 99ac614..9ad8adf 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/database/PlayerInfoTable.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/database/PlayerInfoTable.java
@@ -21,7 +21,6 @@ package net.tylermurphy.hideAndSeek.database;
import com.google.common.io.ByteStreams;
import net.tylermurphy.hideAndSeek.Main;
-import net.tylermurphy.hideAndSeek.configuration.Config;
import net.tylermurphy.hideAndSeek.game.Board;
import net.tylermurphy.hideAndSeek.util.WinType;
import org.jetbrains.annotations.NotNull;
@@ -38,7 +37,7 @@ public class PlayerInfoTable {
private static final Map<UUID, PlayerInfo> CACHE = new HashMap<>();
- protected PlayerInfoTable(){
+ protected PlayerInfoTable() {
String sql = "CREATE TABLE IF NOT EXISTS hs_data (\n"
+ " uuid BINARY(16) PRIMARY KEY,\n"
@@ -52,15 +51,15 @@ public class PlayerInfoTable {
+ " seeker_deaths int NOT NULL\n"
+ ");";
- try(Connection connection = Database.connect(); Statement statement = connection.createStatement()){
+ try(Connection connection = Database.connect(); Statement statement = connection.createStatement()) {
statement.executeUpdate(sql);
- } catch (SQLException e){
+ } catch (SQLException e) {
Main.plugin.getLogger().severe("SQL Error: " + e.getMessage());
e.printStackTrace();
}
}
- private byte[] encodeUUID(UUID uuid){
+ private byte[] encodeUUID(UUID uuid) {
try {
byte[] bytes = new byte[16];
ByteBuffer.wrap(bytes)
@@ -73,13 +72,13 @@ public class PlayerInfoTable {
return new byte[0];
}
return result;
- } catch (IOException e){
+ } catch (IOException e) {
Main.plugin.getLogger().severe("IO Error: " + e.getMessage());
return new byte[0];
}
}
- private UUID decodeUUID(byte[] bytes){
+ private UUID decodeUUID(byte[] bytes) {
InputStream is = new ByteArrayInputStream(bytes);
ByteBuffer buffer = ByteBuffer.allocate(16);
try {
@@ -93,12 +92,12 @@ public class PlayerInfoTable {
}
@NotNull
- public PlayerInfo getInfo(UUID uuid){
+ public PlayerInfo getInfo(UUID uuid) {
String sql = "SELECT * FROM hs_data WHERE uuid = ?;";
- try(Connection connection = Database.connect(); PreparedStatement statement = connection.prepareStatement(sql)){
+ try(Connection connection = Database.connect(); PreparedStatement statement = connection.prepareStatement(sql)) {
statement.setBytes(1, encodeUUID(uuid));
ResultSet rs = statement.executeQuery();
- if(rs.next()){
+ if (rs.next()) {
PlayerInfo info = new PlayerInfo(
uuid,
rs.getInt("hider_wins"),
@@ -116,7 +115,7 @@ public class PlayerInfoTable {
return info;
}
rs.close();
- } catch (SQLException e){
+ } catch (SQLException e) {
Main.plugin.getLogger().severe("SQL Error: " + e.getMessage());
e.printStackTrace();
}
@@ -124,12 +123,12 @@ public class PlayerInfoTable {
}
@Nullable
- public PlayerInfo getInfoRanking(String order, int place){
+ 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)){
+ try(Connection connection = Database.connect(); PreparedStatement statement = connection.prepareStatement(sql)) {
statement.setInt(1, place-1);
ResultSet rs = statement.executeQuery();
- if(rs.next()){
+ if (rs.next()) {
UUID uuid = decodeUUID(rs.getBytes("uuid"));
PlayerInfo info = new PlayerInfo(
uuid,
@@ -148,7 +147,7 @@ public class PlayerInfoTable {
return info;
}
rs.close();
- } catch (SQLException e){
+ } catch (SQLException e) {
Main.plugin.getLogger().severe("SQL Error: " + e.getMessage());
e.printStackTrace();
}
@@ -156,13 +155,13 @@ public class PlayerInfoTable {
}
@Nullable
- public List<PlayerInfo> getInfoPage(int page){
+ public List<PlayerInfo> getInfoPage(int page) {
String sql = "SELECT * FROM hs_data ORDER BY (hider_wins + seeker_wins) DESC LIMIT 10 OFFSET ?;";
- try(Connection connection = Database.connect(); PreparedStatement statement = connection.prepareStatement(sql)){
+ try(Connection connection = Database.connect(); PreparedStatement statement = connection.prepareStatement(sql)) {
statement.setInt(1, (page-1)*10);
ResultSet rs = statement.executeQuery();
List<PlayerInfo> infoList = new ArrayList<>();
- while(rs.next()){
+ while(rs.next()) {
PlayerInfo info = new PlayerInfo(
decodeUUID(rs.getBytes("uuid")),
rs.getInt("hider_wins"),
@@ -179,7 +178,7 @@ public class PlayerInfoTable {
rs.close();
connection.close();
return infoList;
- } catch (SQLException e){
+ } catch (SQLException e) {
Main.plugin.getLogger().severe("SQL Error: " + e.getMessage());
e.printStackTrace();
}
@@ -187,27 +186,27 @@ public class PlayerInfoTable {
}
@Nullable
- public Integer getRanking(String order, UUID uuid){
+ public Integer getRanking(String order, UUID uuid) {
String sql = "SELECT count(*) AS total FROM hs_data WHERE "+order+" >= (SELECT "+order+" FROM hs_data WHERE uuid = ?) AND "+order+" > 0;";
- try(Connection connection = Database.connect(); PreparedStatement statement = connection.prepareStatement(sql)){
+ try(Connection connection = Database.connect(); PreparedStatement statement = connection.prepareStatement(sql)) {
statement.setBytes(1, encodeUUID(uuid));
ResultSet rs = statement.executeQuery();
- if(rs.next()){
+ if (rs.next()) {
return rs.getInt("total");
}
rs.close();
- } catch (SQLException e){
+ } catch (SQLException e) {
Main.plugin.getLogger().severe("SQL Error: " + e.getMessage());
e.printStackTrace();
}
return null;
}
- public void addWins(List<UUID> uuids, List<UUID> winners, Map<String,Integer> hider_kills, Map<String,Integer> hider_deaths, Map<String,Integer> seeker_kills, Map<String,Integer> seeker_deaths, WinType type){
- for(UUID uuid : uuids){
+ public void addWins(List<UUID> uuids, List<UUID> winners, Map<String,Integer> hider_kills, Map<String,Integer> hider_deaths, Map<String,Integer> seeker_kills, Map<String,Integer> seeker_deaths, WinType type) {
+ for(UUID uuid : uuids) {
String sql = "INSERT OR REPLACE INTO hs_data (uuid, hider_wins, seeker_wins, hider_games, seeker_games, hider_kills, seeker_kills, hider_deaths, seeker_deaths) VALUES (?,?,?,?,?,?,?,?,?)";
PlayerInfo info = getInfo(uuid);
- try(Connection connection = Database.connect(); PreparedStatement statement = connection.prepareStatement(sql)){
+ try(Connection connection = Database.connect(); PreparedStatement statement = connection.prepareStatement(sql)) {
statement.setBytes(1, encodeUUID(uuid));
statement.setInt(2, info.hider_wins + (winners.contains(uuid) && type == WinType.HIDER_WIN ? 1 : 0));
statement.setInt(3, info.seeker_wins + (winners.contains(uuid) && type == WinType.SEEKER_WIN ? 1 : 0));
@@ -218,7 +217,7 @@ public class PlayerInfoTable {
statement.setInt(8, info.hider_deaths + hider_deaths.getOrDefault(uuid.toString(), 0));
statement.setInt(9, info.seeker_deaths + seeker_deaths.getOrDefault(uuid.toString(), 0));
statement.execute();
- } catch (SQLException e){
+ } catch (SQLException e) {
Main.plugin.getLogger().severe("SQL Error: " + e.getMessage());
e.printStackTrace();
return;