diff --git a/src/main/java/ru/prisonlife/PrisonAPI/PrisonAPI.java b/src/main/java/ru/prisonlife/PrisonAPI/PrisonAPI.java index 7d70de0..5320324 100644 --- a/src/main/java/ru/prisonlife/PrisonAPI/PrisonAPI.java +++ b/src/main/java/ru/prisonlife/PrisonAPI/PrisonAPI.java @@ -2,4 +2,25 @@ package ru.prisonlife.PrisonAPI; import org.bukkit.plugin.java.JavaPlugin; -public class PrisonAPI extends JavaPlugin { public void onEnable() {} public void onDisable() {} } +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; + +public class PrisonAPI extends JavaPlugin { + public static Connection CONN; + + public void onEnable() { + try { + CONN = DriverManager.getConnection( + "jdbc:mysql://54.37.128.221:3306/prison", + "forsplay", "ay18qILi5z1RTwWi"); + } catch (SQLException e) { e.printStackTrace(); } + } + + public void onDisable() { + try { + if(!CONN.isClosed()) + CONN.close(); + } catch (SQLException e) { e.printStackTrace(); } + } +} diff --git a/src/main/java/ru/prisonlife/PrisonAPI/connect/DataBasePrison4Life.java b/src/main/java/ru/prisonlife/PrisonAPI/connect/DataBasePrison4Life.java deleted file mode 100644 index 94193e4..0000000 --- a/src/main/java/ru/prisonlife/PrisonAPI/connect/DataBasePrison4Life.java +++ /dev/null @@ -1,12 +0,0 @@ -package ru.prisonlife.PrisonAPI.connect; - -import java.sql.*; - -public class DataBasePrison4Life { - protected Connection connection; - { try { - connection = DriverManager.getConnection( - "jdbc:mysql://localhost:3306/prison4life", - "root", "root"); - } catch (SQLException e) { e.printStackTrace(); } } -} diff --git a/src/main/java/ru/prisonlife/PrisonAPI/template/Level.java b/src/main/java/ru/prisonlife/PrisonAPI/template/Level.java index 59a453b..2a91f75 100644 --- a/src/main/java/ru/prisonlife/PrisonAPI/template/Level.java +++ b/src/main/java/ru/prisonlife/PrisonAPI/template/Level.java @@ -1,12 +1,12 @@ package ru.prisonlife.PrisonAPI.template; -import ru.prisonlife.PrisonAPI.connect.DataBasePrison4Life; +import ru.prisonlife.PrisonAPI.PrisonAPI; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; -public class Level extends DataBasePrison4Life { +public class Level { private PreparedStatement state; private ResultSet r_set; private Prisoner me; @@ -46,7 +46,7 @@ public class Level extends DataBasePrison4Life { } private void setInResUUID() throws SQLException { - state = connection.prepareStatement("SELECT * UUID FROM player_stats WHERE UUID = ?;"); + state = PrisonAPI.CONN.prepareStatement("SELECT * UUID FROM player_stats WHERE UUID = ?;"); state.setString(1, me.getPlayer().getUniqueId().toString()); r_set = state.executeQuery("SELECT UUID FROM player_stats WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); } diff --git a/src/main/java/ru/prisonlife/PrisonAPI/template/Prisoner.java b/src/main/java/ru/prisonlife/PrisonAPI/template/Prisoner.java index 315aeeb..8672d9b 100644 --- a/src/main/java/ru/prisonlife/PrisonAPI/template/Prisoner.java +++ b/src/main/java/ru/prisonlife/PrisonAPI/template/Prisoner.java @@ -1,61 +1,48 @@ package ru.prisonlife.PrisonAPI.template; import org.bukkit.entity.Player; -import ru.prisonlife.PrisonAPI.connect.DataBasePrison4Life; +import ru.prisonlife.PrisonAPI.PrisonAPI; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; -public class Prisoner extends DataBasePrison4Life { +public class Prisoner { private Player me; - private Wallet wallet; private Level level; + private Stats stats; + private Wallet wallet; private PreparedStatement state; private ResultSet r_set; - public Prisoner(Player player) throws SQLException { + public Prisoner(Player player) { me = player; - setInResUUID(); - try { - if(r_set.next()) { - level = new Level(this); - wallet = new Wallet(this); - } - } catch(NullPointerException z) {} - disconnect(); + level = new Level(this); + stats = new Stats(this); + wallet = new Wallet(this); } public Player getPlayer() { return me; } + public Wallet getWallet() { return wallet; } + + public Stats getStats() { return stats; } + + public Level getPrisonLevel() throws SQLException { return this.level; } + public void register() throws SQLException { - setInResUUID(); - if(!r_set.next()) { - state.execute("INSERT INTO player_stats(NAME, UUID, LEVEL, POINTS, WALLET) VALUES (" + - "'" + getPlayer().getName() + "', '" + me.getUniqueId() + "', 1, 0, 0);"); - level = new Level(this); - wallet = new Wallet(this); - } - disconnect(); - } - - public Wallet getWallet() { return this.wallet; } - - public Level getPrisonLevel() throws SQLException { - setInResUUID(); - if(r_set.first()) - return this.level; - disconnect(); - return null; - } - - private void setInResUUID() throws SQLException { - state = connection.prepareStatement("SELECT * UUID FROM player_stats WHERE UUID = ?;"); + state = PrisonAPI.CONN.prepareStatement("SELECT * UUID FROM player_stats WHERE UUID = ?;"); state.setString(1, me.getUniqueId().toString()); r_set = state.executeQuery("SELECT UUID FROM player_stats WHERE UUID = '" + me.getUniqueId() + "'"); - } - - private void disconnect() throws SQLException { + if(!r_set.next()) { + state.execute( + "INSERT INTO player_stats(NAME, UUID, LEVEL, POINTS, G_TIME, D_BLOCKS, " + + "K_PLAYERS, K_MOBS, DEATHS, WALLET) VALUES (" +"'" + getPlayer().getName() + + "', '" + me.getUniqueId() + "', 1, 0, 0, 0, 0, 0, 0, 0);"); + level = new Level(this); + stats = new Stats(this); + wallet = new Wallet(this); + } r_set.close(); state.close(); } diff --git a/src/main/java/ru/prisonlife/PrisonAPI/template/Score.java b/src/main/java/ru/prisonlife/PrisonAPI/template/Score.java index 6e26800..a227330 100644 --- a/src/main/java/ru/prisonlife/PrisonAPI/template/Score.java +++ b/src/main/java/ru/prisonlife/PrisonAPI/template/Score.java @@ -1,12 +1,12 @@ package ru.prisonlife.PrisonAPI.template; -import ru.prisonlife.PrisonAPI.connect.DataBasePrison4Life; +import ru.prisonlife.PrisonAPI.PrisonAPI; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; -public class Score extends DataBasePrison4Life { +public class Score { private PreparedStatement state; private ResultSet r_set; private Prisoner me; @@ -39,7 +39,7 @@ public class Score extends DataBasePrison4Life { } private void setInResUUID() throws SQLException { - state = connection.prepareStatement("SELECT * UUID FROM player_stats WHERE UUID = ?;"); + state = PrisonAPI.CONN.prepareStatement("SELECT * UUID FROM player_stats WHERE UUID = ?;"); state.setString(1, me.getPlayer().getUniqueId().toString()); r_set = state.executeQuery("SELECT UUID FROM player_stats WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); } diff --git a/src/main/java/ru/prisonlife/PrisonAPI/template/Stats.java b/src/main/java/ru/prisonlife/PrisonAPI/template/Stats.java new file mode 100644 index 0000000..986c792 --- /dev/null +++ b/src/main/java/ru/prisonlife/PrisonAPI/template/Stats.java @@ -0,0 +1,150 @@ +package ru.prisonlife.PrisonAPI.template; + +import ru.prisonlife.PrisonAPI.PrisonAPI; + +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; + +public class Stats { + private PreparedStatement state; + private ResultSet r_set; + private Prisoner me; + Stats(Prisoner prisoner) { me = prisoner;} + + public void setServerTime(int value) throws SQLException { + setInResUUID(); + if(r_set.first()) + state.execute("UPDATE player_stats SET G_TIME = " + value + " WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); + disconnect(); + } + + public int getServerTime() throws SQLException { + setInResUUID(); + if(r_set.first()) { + r_set = state.executeQuery("SELECT G_TIME FROM player_stats WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); + if(r_set.first()) + return r_set.getInt(1); + } + disconnect(); + return NullPointerException.class.hashCode(); + } + + public void addServerTime(int value) throws SQLException { + setInResUUID(); + if(r_set.first()) + state.execute("UPDATE player_stats SET G_TIME = " + (getServerTime() + value) + " WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); + disconnect(); + } + + public void setBlocks(int value) throws SQLException { + setInResUUID(); + if(r_set.first()) + state.execute("UPDATE player_stats SET B = " + value + " WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); + disconnect(); + } + + public int getBlocks() throws SQLException { + setInResUUID(); + if(r_set.first()) { + r_set = state.executeQuery("SELECT D_BLOCKS FROM player_stats WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); + if(r_set.first()) + return r_set.getInt(1); + } + disconnect(); + return NullPointerException.class.hashCode(); + } + + public void addBlocks(int value) throws SQLException { + setInResUUID(); + if(r_set.first()) + state.execute("UPDATE player_stats SET D_BLOCKS = " + (getBlocks() + value) + " WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); + disconnect(); + } + + public void setPlayers(int value) throws SQLException { + setInResUUID(); + if(r_set.first()) + state.execute("UPDATE player_stats SET K_PLAYERS = " + value + " WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); + disconnect(); + } + + public int getPlayers() throws SQLException { + setInResUUID(); + if(r_set.first()) { + r_set = state.executeQuery("SELECT K_PLAYERS FROM player_stats WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); + if(r_set.first()) + return r_set.getInt(1); + } + disconnect(); + return NullPointerException.class.hashCode(); + } + + public void addPlayers(int value) throws SQLException { + setInResUUID(); + if(r_set.first()) + state.execute("UPDATE player_stats SET K_PLAYERS = " + (getPlayers() + value) + " WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); + disconnect(); + } + + public void setMobs(int value) throws SQLException { + setInResUUID(); + if(r_set.first()) + state.execute("UPDATE player_stats SET K_MOBS = " + value + " WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); + disconnect(); + } + + public int getMobs() throws SQLException { + setInResUUID(); + if(r_set.first()) { + r_set = state.executeQuery("SELECT K_MOBS FROM player_stats WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); + if(r_set.first()) + return r_set.getInt(1); + } + disconnect(); + return NullPointerException.class.hashCode(); + } + + public void addMobs(int value) throws SQLException { + setInResUUID(); + if(r_set.first()) + state.execute("UPDATE player_stats SET K_MOBS = " + (getMobs() + value) + " WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); + disconnect(); + } + + public void setDeaths(int value) throws SQLException { + setInResUUID(); + if(r_set.first()) + state.execute("UPDATE player_stats SET DEATHS = " + value + " WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); + disconnect(); + } + + public int getDeaths() throws SQLException { + setInResUUID(); + if(r_set.first()) { + r_set = state.executeQuery("SELECT DEATHS FROM player_stats WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); + if(r_set.first()) + return r_set.getInt(1); + } + disconnect(); + return NullPointerException.class.hashCode(); + } + + public void addDeaths(int value) throws SQLException { + setInResUUID(); + if(r_set.first()) + state.execute("UPDATE player_stats SET DEATHS = " + (getDeaths() + value) + " WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); + disconnect(); + } + + private void setInResUUID() throws SQLException { + state = PrisonAPI.CONN.prepareStatement("SELECT * UUID FROM player_stats WHERE UUID = ?;"); + state.setString(1, me.getPlayer().getUniqueId().toString()); + r_set = state.executeQuery("SELECT UUID FROM player_stats WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); + } + + private void disconnect() throws SQLException { + r_set.close(); + state.close(); + } +} diff --git a/src/main/java/ru/prisonlife/PrisonAPI/template/Wallet.java b/src/main/java/ru/prisonlife/PrisonAPI/template/Wallet.java index df72c2a..2887e42 100644 --- a/src/main/java/ru/prisonlife/PrisonAPI/template/Wallet.java +++ b/src/main/java/ru/prisonlife/PrisonAPI/template/Wallet.java @@ -1,12 +1,12 @@ package ru.prisonlife.PrisonAPI.template; -import ru.prisonlife.PrisonAPI.connect.DataBasePrison4Life; +import ru.prisonlife.PrisonAPI.PrisonAPI; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; -public class Wallet extends DataBasePrison4Life { +public class Wallet { private PreparedStatement state; private ResultSet r_set; private Prisoner me; @@ -48,7 +48,7 @@ public class Wallet extends DataBasePrison4Life { } private void setInResUUID() throws SQLException { - state = connection.prepareStatement("SELECT * UUID FROM player_stats WHERE UUID = ?;"); + state = PrisonAPI.CONN.prepareStatement("SELECT * UUID FROM player_stats WHERE UUID = ?;"); state.setString(1, me.getPlayer().getUniqueId().toString()); r_set = state.executeQuery("SELECT UUID FROM player_stats WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); }