diff --git a/.gitignore b/.gitignore index 4bfa550..4b82ef1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,10 @@ +## IDEA ## .idea/ +out/ *.iml +*.ipr +*.iws +*.ids + +## MAVEN ## target/ diff --git a/pom.xml b/pom.xml index 095c64b..f3681f5 100644 --- a/pom.xml +++ b/pom.xml @@ -5,8 +5,14 @@ 4.0.0 ru.prisonlife - PrisonAPI - 0.0.4 + prison-api + 0.1.0.4 + + + UTF-8 + 1.8 + 1.12-R0.1 + @@ -14,12 +20,43 @@ https://hub.spigotmc.org/nexus/content/repositories/snapshots/ + org.spigotmc spigot-api - 1.12-R0.1-SNAPSHOT + ${bukkit.version}-SNAPSHOT provided + + + + + src/main/resources + true + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.0 + + ${java.version} + ${java.version} + ${java.encoding} + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.22.0 + + -Dfile.encoding=${java.encoding} + + + + \ No newline at end of file diff --git a/src/main/java/ru/prisonlife/PrisonAPI/PrisonAPI.java b/src/main/java/ru/prisonlife/PrisonAPI/PrisonAPI.java index e45bf41..fa629cf 100644 --- a/src/main/java/ru/prisonlife/PrisonAPI/PrisonAPI.java +++ b/src/main/java/ru/prisonlife/PrisonAPI/PrisonAPI.java @@ -1,4 +1,4 @@ -package ru.prisonlife.PrisonAPI; +package ru.prisonlife.prisonapi; import org.bukkit.plugin.java.JavaPlugin; @@ -7,23 +7,52 @@ import java.sql.DriverManager; import java.sql.SQLException; public class PrisonAPI extends JavaPlugin { - public static Connection CONN; + + public static final String PLUGIN_PATH = "plugins/PrisonManager"; + public enum Factions { - NONE, ASIANS, LATINOS, NIGGAZ, POLICE + NONE(0), ASIANS(1), LATINOS(2), NIGGAZ(3), POLICE(4); + + public static Factions valueOf(int id) { + for (Factions factions : Factions.values()) { + if (factions.id == id) { + return factions; + } + } + + throw new IllegalArgumentException("Factions id " + id + " not defined!"); + } + + private int id; + + Factions(int id) { + this.id = id; + } + + public int getId() { + return id; + } } + public static Connection CONN; + public void onEnable() { try { CONN = DriverManager.getConnection( "jdbc:mysql://localhost:3306/prison4life", "root", "root"); - } catch (SQLException e) { e.printStackTrace(); } + } catch (SQLException e) { + e.printStackTrace(); + } } public void onDisable() { try { - if(!CONN.isClosed()) + if (!CONN.isClosed()) { CONN.close(); - } catch (SQLException e) { e.printStackTrace(); } + } + } catch (SQLException e) { + e.printStackTrace(); + } } } diff --git a/src/main/java/ru/prisonlife/PrisonAPI/template/Faction.java b/src/main/java/ru/prisonlife/PrisonAPI/template/Faction.java index 6e7c610..78d4dbb 100644 --- a/src/main/java/ru/prisonlife/PrisonAPI/template/Faction.java +++ b/src/main/java/ru/prisonlife/PrisonAPI/template/Faction.java @@ -1,57 +1,64 @@ -package ru.prisonlife.PrisonAPI.template; +package ru.prisonlife.prisonapi.template; import org.bukkit.Bukkit; -import org.bukkit.entity.Player; -import ru.prisonlife.PrisonAPI.PrisonAPI; +import ru.prisonlife.prisonapi.PrisonAPI.Factions; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Iterator; import java.util.List; +import java.util.stream.Collectors; + +import static ru.prisonlife.prisonapi.PrisonAPI.CONN; public class Faction { - private PreparedStatement state; - private ResultSet r_set; + private Prisoner me; + Faction(Prisoner prisoner) { me = prisoner; } public String getType() throws SQLException { - con_t(); - if(r_set.first()) { - r_set = state.executeQuery("SELECT FACTION FROM player_stats WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); - if(r_set.first()) - return r_set.getString(1); + try (PreparedStatement statement = CONN.prepareStatement("SELECT FACTION FROM player_stats WHERE UUID = ?")) { + statement.setString(1, me.getPlayer().getUniqueId().toString()); + + try (ResultSet resultSet = statement.executeQuery()) { + if (resultSet.next()) { + return resultSet.getString(1); + } else { + return "null"; + } + } } - dis_t(); - return "null"; } public int getId() throws SQLException { - con_t(); - if(r_set.first()) { - r_set = state.executeQuery("SELECT FACTION FROM player_stats WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); - if(r_set.first()) - for(int i = 0; i < PrisonAPI.Factions.values().length; i++) - if(PrisonAPI.Factions.values()[i].name().equals(r_set.getString(1))) - return i; + try (PreparedStatement statement = CONN.prepareStatement("SELECT FACTION FROM player_stats WHERE UUID = ?")) { + statement.setString(1, me.getPlayer().getUniqueId().toString()); + + try (ResultSet resultSet = statement.executeQuery()) { + if (resultSet.next()) { + return Factions.valueOf(resultSet.getString(1)).getId(); + } + } } - dis_t(); + return 0; } public int getRangId() throws SQLException { - con_t(); - if(r_set.first()) { - r_set = state.executeQuery("SELECT F_RANG FROM player_stats WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); - if(r_set.first()) - return r_set.getInt(1); + try (PreparedStatement statement = CONN.prepareStatement("SELECT F_RANG FROM player_stats WHERE UUID = ?")) { + statement.setString(1, me.getPlayer().getUniqueId().toString()); + + try (ResultSet resultSet = statement.executeQuery()) { + if (resultSet.next()) { + return resultSet.getInt(1); + } else { + return 0; + } + } } - dis_t(); - return 0; } public String getRangType() throws SQLException { @@ -64,93 +71,92 @@ public class Faction { } public void addRang(int value) throws SQLException { - con_t(); - if(r_set.first()) - state.execute("UPDATE player_stats SET F_RANG = " + (getRangId() + value) + " WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); - dis_t(); + setRang(getRangId() + value); } public void setRang(int value) throws SQLException { - con_t(); - if(r_set.first()) - state.execute("UPDATE player_stats SET F_RANG = " + value + " WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); - dis_t(); + try (PreparedStatement statement = CONN.prepareStatement("UPDATE player_stats SET F_RANG = ? WHERE UUID = ?")) { + statement.setInt(1, value); + statement.setString(2, me.getPlayer().getUniqueId().toString()); + + statement.executeUpdate(); + } } public void setFaction(int id) throws SQLException { - con_t(); - if(r_set.first()) - state.execute("UPDATE player_stats SET FACTION = '" + PrisonAPI.Factions.values()[id].name() + "' WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); - dis_t(); + try (PreparedStatement statement = CONN.prepareStatement("UPDATE player_stats SET FACTION = ? WHERE UUID = ?")) { + statement.setInt(1, Factions.valueOf(id).getId()); + statement.setString(2, me.getPlayer().getUniqueId().toString()); + + statement.executeUpdate(); + } } public int getRespect() throws SQLException { - con_t(); - if(r_set.first()) { - r_set = state.executeQuery("SELECT RESPECT FROM prison4life.player_stats WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); - if(r_set.first()) - return r_set.getInt(1); + try (PreparedStatement statement = CONN.prepareStatement("SELECT RESPECT FROM prison4life.player_stats WHERE UUID = ?")) { + statement.setString(1, me.getPlayer().getUniqueId().toString()); + + try (ResultSet resultSet = statement.executeQuery()) { + if (resultSet.next()) { + return resultSet.getInt(1); + } else { + return 0; + } + } } - dis_t(); - return 0; } public void addRespect(int value) throws SQLException { - con_t(); - if(r_set.first()) - state.execute("UPDATE player_stats SET RESPECT = " + (getRespect() + value) + " WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); - dis_t(); + setRespect(getRespect() + value); } public void setRespect(int value) throws SQLException { - con_t(); - if(r_set.first()) - state.execute("UPDATE player_stats SET RESPECT = " + value + " WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); - dis_t(); + try (PreparedStatement statement = CONN.prepareStatement("UPDATE player_stats SET RESPECT = ? WHERE UUID = ?")) { + statement.setInt(1, value); + statement.setString(2, me.getPlayer().getUniqueId().toString()); + + statement.executeUpdate(); + } } public int getRespectDailyCooldown() throws SQLException { - con_t(); - if(r_set.first()) - r_set = state.executeQuery("SELECT COOLDOWN FROM daily_respect_task WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); - if(r_set.first()) - return r_set.getInt(1); - dis_t(); - return 0; + try (PreparedStatement statement = CONN.prepareStatement("SELECT COOLDOWN FROM daily_respect_task WHERE UUID = ?")) { + statement.setString(1, me.getPlayer().getUniqueId().toString()); + + try (ResultSet resultSet = statement.executeQuery()) { + if (resultSet.next()) { + return resultSet.getInt(1); + } else { + return 0; + } + } + } } public void addRespectDailyCooldown(int value) throws SQLException { - con_t(); - if(r_set.first()) - state.execute("UPDATE daily_respect_task SET COOLDOWN = " + (getRespectDailyCooldown() + value) - + " WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); + setRespectDailyCooldown(getRespectDailyCooldown() + value); } public void setRespectDailyCooldown(int value) throws SQLException { - con_t(); - if(r_set.first()) - state.execute("UPDATE daily_respect_task SET COOLDOWN = " + value + " WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); - } + try (PreparedStatement statement = CONN.prepareStatement("UPDATE daily_respect_task SET COOLDOWN = ? WHERE UUID = ?")) { + statement.setInt(1, value); + statement.setString(2, me.getPlayer().getUniqueId().toString()); - public List getOnlineList() throws SQLException { - List list = new ArrayList<>(); - Iterator itr = Bukkit.getOnlinePlayers().iterator(); - while(itr.hasNext()) { - Prisoner m = new Prisoner((Player) itr.next()); - if(m.getFaction().getType().equals(me.getFaction().getType())) - list.add(m); + statement.executeUpdate(); } - return list; } - private void con_t() 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 dis_t() throws SQLException { - r_set.close(); - state.close(); + public List getOnlineList() { + return Bukkit.getOnlinePlayers().stream() + .map(Prisoner::new) + .filter(prisoner -> { + try { + return prisoner.getFaction().getType().equals(me.getFaction().getType()); + } catch (SQLException e) { + e.printStackTrace(); + return false; + } + }) + .collect(Collectors.toList()); } } diff --git a/src/main/java/ru/prisonlife/PrisonAPI/template/Level.java b/src/main/java/ru/prisonlife/PrisonAPI/template/Level.java index f3c1d72..87a3f1b 100644 --- a/src/main/java/ru/prisonlife/PrisonAPI/template/Level.java +++ b/src/main/java/ru/prisonlife/PrisonAPI/template/Level.java @@ -1,59 +1,57 @@ -package ru.prisonlife.PrisonAPI.template; - -import ru.prisonlife.PrisonAPI.PrisonAPI; +package ru.prisonlife.prisonapi.template; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import static ru.prisonlife.prisonapi.PrisonAPI.CONN; + public class Level { - private PreparedStatement state; - private ResultSet r_set; + private Prisoner me; private Score score; - Level(Prisoner prisoner) { me = prisoner; score = new Score(me); } + + Level(Prisoner prisoner) { + me = prisoner; + score = new Score(me); + } public Score getScore() throws SQLException { - con_t(); - if(r_set.first()) + //FIXME приведи в порядок метод + /* + connect(); + if (resultSet.first()) { return this.score; - dis_t(); + } + disconnect(); + */ return null; } public double getLevel() throws SQLException, NullPointerException { - con_t(); - if(r_set.first()) { - r_set = state.executeQuery("SELECT LEVEL FROM player_stats WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); - if(r_set.first()) - return r_set.getDouble(1); + try (PreparedStatement statement = CONN.prepareStatement("SELECT LEVEL FROM player_stats WHERE UUID = ?")) { + statement.setString(1, me.getPlayer().getUniqueId().toString()); + + try (ResultSet resultSet = statement.executeQuery()) { + if (resultSet.next()) { + return resultSet.getDouble(1); + } else { + return 1d; //TODO нужно или default значение, или exception + } + } } - dis_t(); - return NullPointerException.class.hashCode(); } public void addLevel(double value) throws SQLException, NullPointerException { - con_t(); - if(r_set.first()) - state.execute("UPDATE player_stats SET LEVEL = " + (getLevel() + value) + " WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); - dis_t(); + setLevel(getLevel() + value); } public void setLevel(double value) throws SQLException, NullPointerException { - con_t(); - if(r_set.first()) - state.execute("UPDATE player_stats SET LEVEL = " + value + " WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); - dis_t(); - } + try (PreparedStatement statement = CONN.prepareStatement("UPDATE player_stats SET LEVEL = ? WHERE UUID = ?")) { + statement.setDouble(1, getLevel() + value); + statement.setString(2, me.getPlayer().getUniqueId().toString()); - private void con_t() 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 dis_t() throws SQLException { - r_set.close(); - state.close(); + statement.executeUpdate(); + } } } diff --git a/src/main/java/ru/prisonlife/PrisonAPI/template/Manager.java b/src/main/java/ru/prisonlife/PrisonAPI/template/Manager.java index 5dc64f5..5d314f0 100644 --- a/src/main/java/ru/prisonlife/PrisonAPI/template/Manager.java +++ b/src/main/java/ru/prisonlife/PrisonAPI/template/Manager.java @@ -1,9 +1,8 @@ -package ru.prisonlife.PrisonAPI.template; +package ru.prisonlife.prisonapi.template; -import com.sun.media.sound.InvalidDataException; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; -import ru.prisonlife.PrisonAPI.PrisonAPI; +import ru.prisonlife.prisonapi.PrisonAPI; import java.io.File; import java.io.IOException; @@ -11,89 +10,87 @@ import java.util.ArrayList; import java.util.List; import java.util.Objects; -public class Manager { - private File fi; - private FileConfiguration cf; +import static ru.prisonlife.prisonapi.PrisonAPI.PLUGIN_PATH; +public class Manager { + + private File file; + private FileConfiguration fileConfiguration; public Manager(String id) { - fi = new File("plugins/PrisonManager/", id); - cf = YamlConfiguration.loadConfiguration(fi); + file = new File(PLUGIN_PATH + "/", id); + fileConfiguration = YamlConfiguration.loadConfiguration(file); } public boolean contains() { - return fi.exists(); + return file.exists(); } public String getWorld() { - return cf.getString("WORLD"); + return fileConfiguration.getString("WORLD"); } public void setWorld(String name) { String p = "WORLD"; - cf.set(p, null); - cf.set(p, name); + fileConfiguration.set(p, null); + fileConfiguration.set(p, name); try { - cf.save(fi); + fileConfiguration.save(file); } catch (IOException e) { e.printStackTrace(); } } public boolean getRebootStatus() { - return cf.getBoolean("REBOOT_STATUS"); + return fileConfiguration.getBoolean("REBOOT_STATUS"); } public void setRebootStatus(boolean status) { - cf.set("REBOOT_STATUS", status); + fileConfiguration.set("REBOOT_STATUS", status); try { - cf.save(fi); + fileConfiguration.save(file); } catch (IOException e) { e.printStackTrace(); } } public List getSpawnCords(int faction) { - return cf.getIntegerList("FACTIONS." + __selectFactType__(faction) + ".CORDS"); + return fileConfiguration.getIntegerList("FACTIONS." + selectFactType(faction) + ".CORDS"); } public void setSpawnCords(int faction, List data) { - String p = "FACTIONS." + __selectFactType__(faction) + ".CORDS"; - cf.set(p, null); - cf.set(p, data); + String p = "FACTIONS." + selectFactType(faction) + ".CORDS"; + fileConfiguration.set(p, null); + fileConfiguration.set(p, data); try { - cf.save(fi); + fileConfiguration.save(file); } catch (IOException e) { e.printStackTrace(); } } public List getDiagonal() { - return cf.getIntegerList("DIAGONAL_POINTS"); + return fileConfiguration.getIntegerList("DIAGONAL_POINTS"); } public void setDiagonal(List data) { - if(data.size() == 6) { + if (data.size() == 6) { String dp = "DIAGONAL_POINTS"; - cf.set(dp, null); - cf.set(dp, data); + fileConfiguration.set(dp, null); + fileConfiguration.set(dp, data); try { - cf.save(fi); + fileConfiguration.save(file); } catch (IOException e) { e.printStackTrace(); } } else { - try { - throw new InvalidDataException(); - } catch (InvalidDataException e) { - e.printStackTrace(); - } + throw new RuntimeException("data.size() != 6"); } } public int getGlobalNumTerr(int faction) { int num = 0; - for(File prison : Objects.requireNonNull(fi.getParentFile().listFiles())) { + for (File prison : Objects.requireNonNull(file.getParentFile().listFiles())) { Manager mng = new Manager(prison.getName()); num += mng.getNumTerr(faction); } @@ -101,55 +98,55 @@ public class Manager { } public int getNumTerr(int faction) { - return cf.getInt("FACTIONS." + __selectFactType__(faction) + ".NUM_TERR"); + return fileConfiguration.getInt("FACTIONS." + selectFactType(faction) + ".NUM_TERR"); } public void setNumTerr(int faction, int value) { - String p = "FACTIONS." + __selectFactType__(faction) + ".NUM_TERR"; - cf.set(p, null); - cf.set(p, value); + String p = "FACTIONS." + selectFactType(faction) + ".NUM_TERR"; + fileConfiguration.set(p, null); + fileConfiguration.set(p, value); try { - cf.save(fi); + fileConfiguration.save(file); } catch (IOException e) { e.printStackTrace(); } } public String getTerrOwner(String name) { - return cf.getString("TERRITORIES." + name + ".OWNER"); + return fileConfiguration.getString("TERRITORIES." + name + ".OWNER"); } public void setTerrOwner(String name, String owner) { - cf.set("TERRITORIES." + name + ".OWNER", owner); + fileConfiguration.set("TERRITORIES." + name + ".OWNER", owner); try { - cf.save(fi); + fileConfiguration.save(file); } catch (IOException e) { e.printStackTrace(); } } public String getTerrConqurer(String name) { - return cf.getString("TERRITORIES." + name + ".CAPTURED"); + return fileConfiguration.getString("TERRITORIES." + name + ".CAPTURED"); } public void setTerrConqurer(String name, String status) { - cf.set("TERRITORIES." + name + ".CAPTURED", status); + fileConfiguration.set("TERRITORIES." + name + ".CAPTURED", status); try { - cf.save(fi); + fileConfiguration.save(file); } catch (IOException e) { e.printStackTrace(); } } public List getAllTerrs() { - return new ArrayList<>(cf.getConfigurationSection("TERRITORIES").getKeys(false)); + return new ArrayList<>(fileConfiguration.getConfigurationSection("TERRITORIES").getKeys(false)); } - public String __selectFactType__(int id) { + public String selectFactType(int id) { return PrisonAPI.Factions.values()[id].name(); } - public int __selectFactId__(String faction) { + public int selectFactId(String faction) { return PrisonAPI.Factions.valueOf(faction).ordinal(); } } diff --git a/src/main/java/ru/prisonlife/PrisonAPI/template/Prisoner.java b/src/main/java/ru/prisonlife/PrisonAPI/template/Prisoner.java index c15cb04..5b2bd9c 100644 --- a/src/main/java/ru/prisonlife/PrisonAPI/template/Prisoner.java +++ b/src/main/java/ru/prisonlife/PrisonAPI/template/Prisoner.java @@ -1,10 +1,9 @@ -package ru.prisonlife.PrisonAPI.template; +package ru.prisonlife.prisonapi.template; import org.bukkit.Location; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; -import ru.prisonlife.PrisonAPI.PrisonAPI; import java.io.File; import java.sql.PreparedStatement; @@ -14,15 +13,16 @@ import java.util.ArrayList; import java.util.List; import java.util.Objects; +import static ru.prisonlife.prisonapi.PrisonAPI.CONN; +import static ru.prisonlife.prisonapi.PrisonAPI.PLUGIN_PATH; + public class Prisoner { - private static final String PLUGIN_PATH = "plugins/PrisonManager"; + private Player me; private Level level; private Faction faction; private Wallet wallet; private Stats stats; - private PreparedStatement state; - private ResultSet r_set; public Prisoner(Player player) { me = player; @@ -32,91 +32,123 @@ public class Prisoner { stats = new Stats(this); } - public Player getPlayer() { return me; } + public Player getPlayer() { + return me; + } - public Level getPrisonLevel() throws SQLException { return this.level; } + public Level getPrisonLevel() throws SQLException { + return this.level; + } public String getPrison() { Location loc = me.getLocation(); - for(File file : Objects.requireNonNull(new File(PLUGIN_PATH).listFiles())) { - FileConfiguration c_ti = YamlConfiguration.loadConfiguration(file); + for (File file : Objects.requireNonNull(new File(PLUGIN_PATH).listFiles())) { + FileConfiguration fileConfiguration = YamlConfiguration.loadConfiguration(file); List> data = new ArrayList<>(); - List from_cfg = c_ti.getIntegerList("DIAGONAL_POINTS"), + List fromConfig = fileConfiguration.getIntegerList("DIAGONAL_POINTS"), min = new ArrayList<>(), max = new ArrayList<>(); int[] loc_n = {loc.getBlockX(), loc.getBlockY() - 1, loc.getBlockZ()}; - data.add(from_cfg.subList(0, 3)); - data.add(from_cfg.subList(3, 6)); - for(int i = 0; i < 3; i++) { + data.add(fromConfig.subList(0, 3)); + data.add(fromConfig.subList(3, 6)); + for (int i = 0; i < 3; i++) { min.add(Math.min(data.get(0).get(i), data.get(1).get(i))); max.add(Math.max(data.get(0).get(i), data.get(1).get(i))); } int c = 0; - for(int k : loc_n) { - for(int n = 0; n < 3; n++) - if(k >= min.get(n) && k <= max.get(n)) + for (int k : loc_n) { + for (int n = 0; n < 3; n++) { + if (k >= min.get(n) && k <= max.get(n)) { ++c; + } + } } - if(c == 3) + if (c == 3) { return file.getName().replace("PRISON_", "").replace(".yml", ""); + } } return "Not Prison"; } public String getTerritory(String type) { - String prs = getPrison(); - if(!prs.equals("Not Prison") && (type.equals("name") || type.equals("owner"))) { + String prison = getPrison(); + if (!prison.equals("Not Prison") && (type.equals("name") || type.equals("owner"))) { Location loc = me.getLocation(); - FileConfiguration c_ti = YamlConfiguration.loadConfiguration(new File(PLUGIN_PATH, "PRISON_" + prs + ".yml")); + FileConfiguration fileConfiguration = YamlConfiguration.loadConfiguration(new File(PLUGIN_PATH, "PRISON_" + prison + ".yml")); try { - if(c_ti.getConfigurationSection("TERRITORIES").getKeys(false).size() != 0) { - for(String terr : c_ti.getConfigurationSection("TERRITORIES").getKeys(false)) { + if (fileConfiguration.getConfigurationSection("TERRITORIES").getKeys(false).size() != 0) { + for (String terr : fileConfiguration.getConfigurationSection("TERRITORIES").getKeys(false)) { List> data = new ArrayList<>(); - List from_cfg = c_ti.getIntegerList("TERRITORIES." + terr + ".DIAGONAL_POINTS"), + List fromConfig = fileConfiguration.getIntegerList("TERRITORIES." + terr + ".DIAGONAL_POINTS"), min = new ArrayList<>(), max = new ArrayList<>(); int[] loc_n = {loc.getBlockX(), loc.getBlockY() - 1, loc.getBlockZ()}; - data.add(from_cfg.subList(0, 3)); - data.add(from_cfg.subList(3, 6)); - for(int i = 0; i < 3; i++) { + data.add(fromConfig.subList(0, 3)); + data.add(fromConfig.subList(3, 6)); + for (int i = 0; i < 3; i++) { min.add(Math.min(data.get(0).get(i), data.get(1).get(i))); max.add(Math.max(data.get(0).get(i), data.get(1).get(i))); } int c = 0; - for(int k : loc_n) { - for (int n = 0; n < 3; n++) - if (k >= min.get(n) && k <= max.get(n)) + for (int k : loc_n) { + for (int n = 0; n < 3; n++) { + if (k >= min.get(n) && k <= max.get(n)) { ++c; + } + } + } + if (c == 3) { + return type.equals("name") ? fileConfiguration.getString("TERRITORIES." + terr + ".NAME") : + (type.equals("owner") ? fileConfiguration.getString("TERRITORIES." + terr + ".OWNER") : null); } - if(c == 3) - return type.equals("name") ? c_ti.getString("TERRITORIES." + terr + ".NAME") : - (type.equals("owner") ? c_ti.getString("TERRITORIES." + terr + ".OWNER") : null); } } - } catch(NullPointerException z) {} + } catch (NullPointerException z) { + } } return "Not Territory"; } - public Faction getFaction() { return faction; } + public Faction getFaction() { + return faction; + } - public Wallet getWallet() { return wallet; } + public Wallet getWallet() { + return wallet; + } - public Stats getStats() { return stats; } + public Stats getStats() { + return stats; + } public void register() throws SQLException { - 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() + "'"); - if(!r_set.next()) { - state.execute( - "INSERT INTO player_stats(NAME, UUID, LEVEL, POINTS, FACTION, RESPECT, F_RANG, WALLET, G_TIME, D_BLOCKS, " + - "K_PLAYERS, K_MOBS, DEATHS) VALUES (" +"'" + getPlayer().getName() - + "', '" + me.getUniqueId() + "', 1, 0, 'NONE', 0, 0, 0, 0, 0, 0, 0, 0);"); - state.execute("INSERT INTO daily_respect_task(NAME, UUID, COOLDOWN) VALUES ('" + me.getName() + "', '" + me.getUniqueId() + "', (3600 * 24));"); - level = new Level(this); - stats = new Stats(this); - wallet = new Wallet(this); + PreparedStatement statement = CONN.prepareStatement("SELECT UUID FROM player_stats WHERE UUID = ?"); + statement.setString(1, me.getUniqueId().toString()); + + try (ResultSet resultSet = statement.executeQuery()) { + if (!resultSet.next()) { + statement.close(); + + statement = CONN.prepareStatement( + "INSERT INTO player_stats(NAME, UUID, LEVEL, POINTS, FACTION, RESPECT, F_RANG, WALLET, " + + "G_TIME, D_BLOCKS, K_PLAYERS, K_MOBS, DEATHS) " + + "VALUES (?, ?, 1, 0, 'NONE', 0, 0, 0, 0, 0, 0, 0, 0)"); + statement.setString(1, getPlayer().getName()); + statement.setString(2, me.getUniqueId().toString()); + statement.executeUpdate(); + statement.close(); + + statement = CONN.prepareStatement( + "INSERT INTO daily_respect_task(NAME, UUID, COOLDOWN) " + + "VALUES (?, ?, ?)"); + statement.setString(1, getPlayer().getName()); + statement.setString(2, me.getUniqueId().toString()); + statement.setInt(3, (3600 * 24)); + statement.executeUpdate(); + + level = new Level(this); + stats = new Stats(this); + wallet = new Wallet(this); + } } - r_set.close(); - state.close(); + statement.close(); } } \ No newline at end of file diff --git a/src/main/java/ru/prisonlife/PrisonAPI/template/Score.java b/src/main/java/ru/prisonlife/PrisonAPI/template/Score.java index 3a7edf6..59ebf47 100644 --- a/src/main/java/ru/prisonlife/PrisonAPI/template/Score.java +++ b/src/main/java/ru/prisonlife/PrisonAPI/template/Score.java @@ -1,51 +1,43 @@ -package ru.prisonlife.PrisonAPI.template; - -import ru.prisonlife.PrisonAPI.PrisonAPI; +package ru.prisonlife.prisonapi.template; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import static ru.prisonlife.prisonapi.PrisonAPI.CONN; + public class Score { - private PreparedStatement state; - private ResultSet r_set; + private Prisoner me; - Score(Prisoner prisoner) { me = prisoner; } + + Score(Prisoner prisoner) { + me = prisoner; + } public double getPoints() throws SQLException { - con_t(); - if(r_set.first()) { - r_set = state.executeQuery("SELECT POINTS FROM player_stats WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); - if(r_set.first()) { - return r_set.getDouble(1); + try (PreparedStatement statement = CONN.prepareStatement("SELECT POINTS FROM player_stats WHERE UUID = ?")) { + statement.setString(1, me.getPlayer().getUniqueId().toString()); + + try (ResultSet resultSet = statement.executeQuery()) { + if (resultSet.next()) { + return resultSet.getDouble(1); + } else { + return 0d; //TODO нужно или default значение, или exception + } } } - dis_t(); - return NullPointerException.class.hashCode(); } public void setPoints(double value) throws SQLException { - con_t(); - if(r_set.first()) - state.execute("UPDATE player_stats SET POINTS = " + value + " WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); - dis_t(); + try (PreparedStatement statement = CONN.prepareStatement("UPDATE player_stats SET POINTS = ? WHERE UUID = ?")) { + statement.setDouble(1, value); + statement.setString(2, me.getPlayer().getUniqueId().toString()); + + statement.executeUpdate(); + } } public void addPoints(double value) throws SQLException { - con_t(); - if(r_set.first()) - state.execute("UPDATE player_stats SET POINTS = " + (getPoints() + value) + " WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); - dis_t(); - } - - private void con_t() 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 dis_t() throws SQLException { - r_set.close(); - state.close(); + setPoints(getPoints() + value); } } diff --git a/src/main/java/ru/prisonlife/PrisonAPI/template/Stats.java b/src/main/java/ru/prisonlife/PrisonAPI/template/Stats.java index a9816bc..cad3e4b 100644 --- a/src/main/java/ru/prisonlife/PrisonAPI/template/Stats.java +++ b/src/main/java/ru/prisonlife/PrisonAPI/template/Stats.java @@ -1,150 +1,151 @@ -package ru.prisonlife.PrisonAPI.template; - -import ru.prisonlife.PrisonAPI.PrisonAPI; +package ru.prisonlife.prisonapi.template; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import static ru.prisonlife.prisonapi.PrisonAPI.CONN; + public class Stats { - private PreparedStatement state; - private ResultSet r_set; + private Prisoner me; - Stats(Prisoner prisoner) { me = prisoner;} + + Stats(Prisoner prisoner) { + me = prisoner; + } public void setServerTime(int value) throws SQLException { - con_t(); - if(r_set.first()) - state.execute("UPDATE player_stats SET G_TIME = " + value + " WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); - dis_t(); + try (PreparedStatement statement = CONN.prepareStatement("UPDATE player_stats SET G_TIME = ? WHERE UUID = ?")) { + statement.setDouble(1, value); + statement.setString(2, me.getPlayer().getUniqueId().toString()); + + statement.executeUpdate(); + } } public int getServerTime() throws SQLException { - con_t(); - 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); + try (PreparedStatement statement = CONN.prepareStatement("SELECT G_TIME FROM player_stats WHERE UUID = ?")) { + statement.setString(1, me.getPlayer().getUniqueId().toString()); + + try (ResultSet resultSet = statement.executeQuery()) { + if (resultSet.next()) { + return resultSet.getInt(1); + } else { + return 0; //TODO нужно или default значение, или exception + } + } } - dis_t(); - return NullPointerException.class.hashCode(); } public void addServerTime(int value) throws SQLException { - con_t(); - if(r_set.first()) - state.execute("UPDATE player_stats SET G_TIME = " + (getServerTime() + value) + " WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); - dis_t(); + setServerTime(getServerTime() + value); } public void setBlocks(int value) throws SQLException { - con_t(); - if(r_set.first()) - state.execute("UPDATE player_stats SET B = " + value + " WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); - dis_t(); + try (PreparedStatement statement = CONN.prepareStatement("UPDATE player_stats SET B = ? WHERE UUID = ?")) { + statement.setDouble(1, value); + statement.setString(2, me.getPlayer().getUniqueId().toString()); + + statement.executeUpdate(); + } } public int getBlocks() throws SQLException { - con_t(); - 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); + try (PreparedStatement statement = CONN.prepareStatement("SELECT D_BLOCKS FROM player_stats WHERE UUID = ?")) { + statement.setString(1, me.getPlayer().getUniqueId().toString()); + + try (ResultSet resultSet = statement.executeQuery()) { + if (resultSet.next()) { + return resultSet.getInt(1); + } else { + return 0; //TODO нужно или default значение, или exception + } + } } - dis_t(); - return NullPointerException.class.hashCode(); } public void addBlocks(int value) throws SQLException { - con_t(); - if(r_set.first()) - state.execute("UPDATE player_stats SET D_BLOCKS = " + (getBlocks() + value) + " WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); - dis_t(); + setBlocks(getBlocks() + value); } public void setPlayers(int value) throws SQLException { - con_t(); - if(r_set.first()) - state.execute("UPDATE player_stats SET K_PLAYERS = " + value + " WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); - dis_t(); + try (PreparedStatement statement = CONN.prepareStatement("UPDATE player_stats SET K_PLAYERS = ? WHERE UUID = ?")) { + statement.setDouble(1, value); + statement.setString(2, me.getPlayer().getUniqueId().toString()); + + statement.executeUpdate(); + } } public int getPlayers() throws SQLException { - con_t(); - 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); + try (PreparedStatement statement = CONN.prepareStatement("SELECT K_PLAYERS FROM player_stats WHERE UUID = ?")) { + statement.setString(1, me.getPlayer().getUniqueId().toString()); + + try (ResultSet resultSet = statement.executeQuery()) { + if (resultSet.next()) { + return resultSet.getInt(1); + } else { + return 0; //TODO нужно или default значение, или exception + } + } } - dis_t(); - return NullPointerException.class.hashCode(); } public void addPlayers(int value) throws SQLException { - con_t(); - if(r_set.first()) - state.execute("UPDATE player_stats SET K_PLAYERS = " + (getPlayers() + value) + " WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); - dis_t(); + setPlayers(getPlayers() + value); } public void setMobs(int value) throws SQLException { - con_t(); - if(r_set.first()) - state.execute("UPDATE player_stats SET K_MOBS = " + value + " WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); - dis_t(); + try (PreparedStatement statement = CONN.prepareStatement("UPDATE player_stats SET K_MOBS = ? WHERE UUID = ?")) { + statement.setDouble(1, value); + statement.setString(2, me.getPlayer().getUniqueId().toString()); + + statement.executeUpdate(); + } } public int getMobs() throws SQLException { - con_t(); - 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); + try (PreparedStatement statement = CONN.prepareStatement("SELECT K_MOBS FROM player_stats WHERE UUID = ?")) { + statement.setString(1, me.getPlayer().getUniqueId().toString()); + + try (ResultSet resultSet = statement.executeQuery()) { + if (resultSet.next()) { + return resultSet.getInt(1); + } else { + return 0; //TODO нужно или default значение, или exception + } + } } - dis_t(); - return NullPointerException.class.hashCode(); } public void addMobs(int value) throws SQLException { - con_t(); - if(r_set.first()) - state.execute("UPDATE player_stats SET K_MOBS = " + (getMobs() + value) + " WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); - dis_t(); + setMobs(getMobs() + value); } public void setDeaths(int value) throws SQLException { - con_t(); - if(r_set.first()) - state.execute("UPDATE player_stats SET DEATHS = " + value + " WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); - dis_t(); + try (PreparedStatement statement = CONN.prepareStatement("UPDATE player_stats SET DEATHS = ? WHERE UUID = ?")) { + statement.setDouble(1, value); + statement.setString(2, me.getPlayer().getUniqueId().toString()); + + statement.executeUpdate(); + } } public int getDeaths() throws SQLException { - con_t(); - 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); + try (PreparedStatement statement = CONN.prepareStatement("SELECT DEATHS FROM player_stats WHERE UUID = ?")) { + statement.setString(1, me.getPlayer().getUniqueId().toString()); + + try (ResultSet resultSet = statement.executeQuery()) { + if (resultSet.next()) { + return resultSet.getInt(1); + } else { + return 0; //TODO нужно или default значение, или exception + } + } } - dis_t(); - return NullPointerException.class.hashCode(); } public void addDeaths(int value) throws SQLException { - con_t(); - if(r_set.first()) - state.execute("UPDATE player_stats SET DEATHS = " + (getDeaths() + value) + " WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); - dis_t(); - } - - private void con_t() 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 dis_t() throws SQLException { - r_set.close(); - state.close(); + setDeaths(getDeaths() + value); } } diff --git a/src/main/java/ru/prisonlife/PrisonAPI/template/Wallet.java b/src/main/java/ru/prisonlife/PrisonAPI/template/Wallet.java index 4836a6d..cc9fd9d 100644 --- a/src/main/java/ru/prisonlife/PrisonAPI/template/Wallet.java +++ b/src/main/java/ru/prisonlife/PrisonAPI/template/Wallet.java @@ -1,57 +1,47 @@ -package ru.prisonlife.PrisonAPI.template; - -import ru.prisonlife.PrisonAPI.PrisonAPI; +package ru.prisonlife.prisonapi.template; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import static ru.prisonlife.prisonapi.PrisonAPI.CONN; + public class Wallet { - private PreparedStatement state; - private ResultSet r_set; + private Prisoner me; - Wallet(Prisoner prisoner) { me = prisoner; } + + Wallet(Prisoner prisoner) { + me = prisoner; + } public int getBalance() throws SQLException { - con_t(); - if(r_set.first()) { - r_set = state.executeQuery("SELECT WALLET FROM player_stats WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); - if(r_set.first()) - return r_set.getInt(1); + try (PreparedStatement statement = CONN.prepareStatement("SELECT WALLET FROM player_stats WHERE UUID = ?")) { + statement.setString(1, me.getPlayer().getUniqueId().toString()); + + try (ResultSet resultSet = statement.executeQuery()) { + if (resultSet.next()) { + return resultSet.getInt(1); + } else { + return 0; //TODO нужно или default значение, или exception + } + } } - dis_t(); - return NullPointerException.class.hashCode(); } public void addBalance(int value) throws SQLException { - con_t(); - if(r_set.first()) - state.execute("UPDATE player_stats SET WALLET = " + (getBalance() + value) + " WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); - dis_t(); + setBalance(getBalance() + value); } public void deposit(int value) throws SQLException { - con_t(); - if(r_set.first()) - state.execute("UPDATE player_stats SET WALLET = " + (getBalance() - value) + " WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); - dis_t(); + setBalance(getBalance() - value); } public void setBalance(int value) throws SQLException { - con_t(); - if(r_set.first()) - state.execute("UPDATE player_stats SET WALLET = " + value + " WHERE UUID = '" + me.getPlayer().getUniqueId() + "'"); - dis_t(); - } + try (PreparedStatement statement = CONN.prepareStatement("UPDATE player_stats SET WALLET = ? WHERE UUID = ?")) { + statement.setDouble(1, value); + statement.setString(2, me.getPlayer().getUniqueId().toString()); - private void con_t() 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 dis_t() throws SQLException { - r_set.close(); - state.close(); + statement.executeUpdate(); + } } } diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 4f61709..ac4901f 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,4 +1,4 @@ name: PrisonAPI -version: 0.1.0.4 -authors: [Overlord_S, Prot_CN, Wani4ka] -main: ru.prisonlife.PrisonAPI.PrisonAPI \ No newline at end of file +version: ${project.version} +authors: [Overlord_S, Prot_CN, Wani4ka, DmitriyMX] +main: ru.prisonlife.prisonapi.PrisonAPI \ No newline at end of file