diff --git a/src/main/java/ru/prisonlife/api/store/PlayerStatsEntity.java b/src/main/java/ru/prisonlife/api/store/PlayerStatsEntity.java index 6e49730..ffcf6e6 100644 --- a/src/main/java/ru/prisonlife/api/store/PlayerStatsEntity.java +++ b/src/main/java/ru/prisonlife/api/store/PlayerStatsEntity.java @@ -17,6 +17,7 @@ public class PlayerStatsEntity { private Integer players; private Integer mobs; private Integer deaths; + private Integer suspect; public String getUuid() { return uuid; @@ -134,4 +135,12 @@ public class PlayerStatsEntity { public void setDeaths(Integer deaths) { this.deaths = deaths; } + + public Integer getSuspect() { + return suspect; + } + + public void setSuspect(Integer suspect) { + this.suspect = suspect; + } } diff --git a/src/main/java/ru/prisonlife/api/store/PlayersInCagesEntity.java b/src/main/java/ru/prisonlife/api/store/PlayersInCagesEntity.java new file mode 100644 index 0000000..3351e6b --- /dev/null +++ b/src/main/java/ru/prisonlife/api/store/PlayersInCagesEntity.java @@ -0,0 +1,56 @@ +package ru.prisonlife.api.store; + +import java.util.Objects; + +public class PlayersInCagesEntity { + + private String name; + private String uuid; + private Integer timeInCage; + private Integer blocksLeft; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getUuid() { + return uuid; + } + + public void setUuid(String uuid) { + this.uuid = uuid; + } + + public Integer getTimeInCage() { + return timeInCage; + } + + public void setTimeInCage(Integer timeInCage) { + this.timeInCage = timeInCage; + } + + public Integer getBlocksLeft() { + return blocksLeft; + } + + public void setBlocksLeft(Integer blocksLeft) { + this.blocksLeft = blocksLeft; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + PlayersInCagesEntity that = (PlayersInCagesEntity) o; + return Objects.equals(uuid, that.uuid); + } + + @Override + public int hashCode() { + return Objects.hash(uuid); + } +} diff --git a/src/main/java/ru/prisonlife/api/template/AbstractApiData.java b/src/main/java/ru/prisonlife/api/template/AbstractApiData.java index 05890d3..dc4df95 100644 --- a/src/main/java/ru/prisonlife/api/template/AbstractApiData.java +++ b/src/main/java/ru/prisonlife/api/template/AbstractApiData.java @@ -1,6 +1,7 @@ package ru.prisonlife.api.template; import org.apache.ibatis.session.SqlSession; +import org.bukkit.entity.Player; import ru.prisonlife.api.PrisonAPI; import ru.prisonlife.api.store.PlayerStatsEntity; @@ -8,24 +9,26 @@ import java.lang.ref.WeakReference; public abstract class AbstractApiData { - protected Prisoner me; + protected Player me; private WeakReference refPlayerStatsEntity; - public AbstractApiData(Prisoner me) { - this.me = me; + public AbstractApiData(Player player) { + this.me = player; } protected PlayerStatsEntity getPlayerStatsEntity() { PlayerStatsEntity entity; - if (refPlayerStatsEntity != null && (entity = refPlayerStatsEntity.get()) != null) { + + if (refPlayerStatsEntity != null && refPlayerStatsEntity.get() != null) { + entity = refPlayerStatsEntity.get(); return entity; } else { - final SqlSession session = PrisonAPI.getSqlStore().openSession(); - entity = session.selectOne("PlayerStats.selectOne", me.getPlayer().getUniqueId().toString()); - session.close(); + try (SqlSession session = PrisonAPI.getSqlStore().openSession()) { + entity = session.selectOne("PlayerStats.selectOne", me.getUniqueId().toString()); + } if (entity == null) { - throw new RuntimeException("no data in db by '" + me.getPlayer().getUniqueId().toString() + "'"); + throw new RuntimeException("no data in db by '" + me.getUniqueId().toString() + "'"); } refPlayerStatsEntity = new WeakReference<>(entity); diff --git a/src/main/java/ru/prisonlife/api/template/AbstractSubApiData.java b/src/main/java/ru/prisonlife/api/template/AbstractSubApiData.java new file mode 100644 index 0000000..98ac812 --- /dev/null +++ b/src/main/java/ru/prisonlife/api/template/AbstractSubApiData.java @@ -0,0 +1,10 @@ +package ru.prisonlife.api.template; + +public abstract class AbstractSubApiData { + + protected Prisoner me; + + public AbstractSubApiData(Prisoner me) { + this.me = me; + } +} diff --git a/src/main/java/ru/prisonlife/api/template/Faction.java b/src/main/java/ru/prisonlife/api/template/Faction.java index c1c8c4b..841bf1a 100644 --- a/src/main/java/ru/prisonlife/api/template/Faction.java +++ b/src/main/java/ru/prisonlife/api/template/Faction.java @@ -10,7 +10,7 @@ import java.lang.ref.WeakReference; import java.util.List; import java.util.stream.Collectors; -public class Faction extends AbstractApiData { +public class Faction extends AbstractSubApiData { private WeakReference refDailyRespectTaskEntity; @@ -42,15 +42,15 @@ public class Faction extends AbstractApiData { } public String getType() { - return Factions.valueOf(getPlayerStatsEntity().getFaction()).name(); + return Factions.valueOf(me.getPlayerStatsEntity().getFaction()).name(); } public int getId() { - return getPlayerStatsEntity().getFaction(); + return me.getPlayerStatsEntity().getFaction(); } public int getRangId() { - return getPlayerStatsEntity().getRang(); + return me.getPlayerStatsEntity().getRang(); } public String getRangType() { @@ -62,15 +62,15 @@ public class Faction extends AbstractApiData { } public void setRang(int value) { - getPlayerStatsEntity().setRang(value); + me.getPlayerStatsEntity().setRang(value); } public void setFaction(int id) { - getPlayerStatsEntity().setFaction(id); + me.getPlayerStatsEntity().setFaction(id); } public int getRespect() { - return getPlayerStatsEntity().getRespect(); + return me.getPlayerStatsEntity().getRespect(); } public void addRespect(int value) { @@ -78,7 +78,7 @@ public class Faction extends AbstractApiData { } public void setRespect(int value) { - getPlayerStatsEntity().setRespect(value); + me.getPlayerStatsEntity().setRespect(value); } public int getRespectDailyCooldown() { diff --git a/src/main/java/ru/prisonlife/api/template/Level.java b/src/main/java/ru/prisonlife/api/template/Level.java index b9a85c7..3e2864f 100644 --- a/src/main/java/ru/prisonlife/api/template/Level.java +++ b/src/main/java/ru/prisonlife/api/template/Level.java @@ -1,6 +1,6 @@ package ru.prisonlife.api.template; -public class Level extends AbstractApiData { +public class Level extends AbstractSubApiData { private Score score; @@ -14,7 +14,7 @@ public class Level extends AbstractApiData { } public double getLevel() { - return getPlayerStatsEntity().getLevel(); + return me.getPlayerStatsEntity().getLevel(); } public void addLevel(double value) { @@ -22,6 +22,6 @@ public class Level extends AbstractApiData { } public void setLevel(double value) { - getPlayerStatsEntity().setLevel(value); + me.getPlayerStatsEntity().setLevel(value); } } diff --git a/src/main/java/ru/prisonlife/api/template/Policeman.java b/src/main/java/ru/prisonlife/api/template/Policeman.java index 6f3146f..47beaf4 100644 --- a/src/main/java/ru/prisonlife/api/template/Policeman.java +++ b/src/main/java/ru/prisonlife/api/template/Policeman.java @@ -1,5 +1,6 @@ package ru.prisonlife.api.template; +import com.google.common.collect.ImmutableMap; import net.md_5.bungee.api.ChatMessageType; import net.md_5.bungee.api.chat.TextComponent; import org.apache.ibatis.session.SqlSession; @@ -11,10 +12,6 @@ import org.bukkit.scheduler.BukkitRunnable; import ru.prisonlife.api.PrisonAPI; import java.io.File; -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -30,30 +27,25 @@ public class Policeman extends Prisoner { super(player); } - public void arrestPrisoner(Prisoner prs) throws SQLException { + public void arrestPrisoner(Prisoner prs) { try (SqlSession session = getSqlStore().openSession()) { - final Connection connection = session.getConnection(); - if (prs.getPlayer().isOnline()) { Manager mng = new Manager(super.getPrison()); List all_cages = mng.getCages(); - PreparedStatement st = connection.prepareStatement("SELECT UUID FROM player_stats WHERE UUID = ?"); - st.setString(1, me.getUniqueId().toString()); - try (ResultSet resultSet = st.executeQuery()) { - if (!resultSet.next()) { - int su = prs.getSuspect(); - st.close(); - st = connection.prepareStatement( - "INSERT INTO players_in_cages(NAME, UUID, TIME_IN_CAGE, BLOCKS_LEFT) " + - "VALUES (?, ?, ?, ?)"); - st.setString(1, getPlayer().getName()); - st.setString(2, me.getUniqueId().toString()); - st.setInt(3, (su * 6)); - st.setInt(4, (su * 100)); - st.executeUpdate(); - } + + Integer result = session.selectOne("PlayerStats.countByUuid"); + if (result == null || result == 0) { + int su = prs.getSuspect(); + + session.insert("PlayersInCages.register", ImmutableMap.builder() + .put("name", getPlayer().getName()) + .put("uuid", getPlayer().getUniqueId().toString()) + .put("timeInCage", su * 6) + .put("blocksLeft", su * 100) + .build() + ); } - st.close(); + prs.setSuspect(0); mng.teleportInToCage(prs, all_cages.get(new Random().nextInt(all_cages.size()))); FileConfiguration configurationSuspect = YamlConfiguration.loadConfiguration(new File("plugins/PrisonSuspect/", "parameters.yml")); @@ -68,35 +60,27 @@ public class Policeman extends Prisoner { timeInCage.put(prs, new BukkitRunnable() { @Override public void run() { // Future = Пометить, что когда in Cage и вышел, то удалить поток, а если зашёл и in Cage - запустить ~ Optimize - try { - int time = 0; - String uuid = prs.getPlayer().getUniqueId().toString(); - PreparedStatement st = connection.prepareStatement( - "SELECT TIME_IN_CAGE FROM players_in_cages WHERE UUID = ?"); - st.setString(1, uuid); - try (ResultSet resultSet = st.executeQuery()) { - if (resultSet.next()) - time = resultSet.getInt(1); - } + try (SqlSession session = getSqlStore().openSession()) { + final String uuid = prs.getPlayer().getUniqueId().toString(); + + int time = session.selectOne("PlayersInCages.getTimeInCage", uuid); + if (time == 0) { prs.getPlayer().sendMessage(ChatColor.translateAlternateColorCodes('&', configurationSuspect.getString("MESSAGES.WHEN_PRISONER_CAN_EXIT_FROM_CAGE"))); actionBar.cancel(); cancel(); timeInCage.remove(prs); - st = connection.prepareStatement("DELETE FROM players_in_cages WHERE UUID = ?"); - st.setString(1, uuid); - st.execute(); + session.delete("PlayersInCages.deleteByUuid", uuid); } else { if (prs.getPlayer().isOnline()) { - st = connection.prepareStatement("UPDATE players_in_cages SET TIME_IN_CAGE = " + (time - 1) + " WHERE UUID = ?"); - st.setString(1, uuid); - st.execute(); + session.update("PlayersInCages.updateTimeInCage", ImmutableMap.builder() + .put("uuid", uuid) + .put("time", time - 1) + .build() + ); } } - st.close(); - } catch (SQLException e) { - e.printStackTrace(); } } }); diff --git a/src/main/java/ru/prisonlife/api/template/Prisoner.java b/src/main/java/ru/prisonlife/api/template/Prisoner.java index 0f8e0e1..850ec5c 100644 --- a/src/main/java/ru/prisonlife/api/template/Prisoner.java +++ b/src/main/java/ru/prisonlife/api/template/Prisoner.java @@ -1,5 +1,6 @@ package ru.prisonlife.api.template; +import com.google.common.collect.ImmutableMap; import org.apache.ibatis.session.SqlSession; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -7,11 +8,10 @@ import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; import ru.prisonlife.api.PrisonAPI; +import ru.prisonlife.api.store.PlayersInCagesEntity; import java.io.File; -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.ResultSet; +import java.lang.ref.WeakReference; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; @@ -19,16 +19,17 @@ import java.util.Objects; import static ru.prisonlife.api.PrisonAPI.getSqlStore; -public class Prisoner { +public class Prisoner extends AbstractApiData { + + private WeakReference refPlayersInCagesEntity; - protected Player me; protected Level level; protected Faction faction; protected Wallet wallet; protected Stats stats; public Prisoner(Player player) { - me = player; + super(player); level = new Level(this); wallet = new Wallet(this); faction = new Faction(this); @@ -120,115 +121,36 @@ public class Prisoner { } public int getSuspect() { - try (SqlSession session = getSqlStore().openSession()) { - try (PreparedStatement statement = session.getConnection().prepareStatement("SELECT SUSPECT FROM player_stats WHERE UUID = ?")) { - statement.setString(1, me.getPlayer().getUniqueId().toString()); - - try (ResultSet resultSet = statement.executeQuery()) { - if (resultSet.next()) { - return resultSet.getInt(1); - } - } - } catch (SQLException z) { - z.printStackTrace(); - } - } - return 0; + return getPlayerStatsEntity().getSuspect(); } public void setSuspect(int value) { - try (SqlSession session = getSqlStore().openSession()) { - try (PreparedStatement statement = session.getConnection().prepareStatement("UPDATE player_stats SET SUSPECT = ? WHERE UUID = ?")) { - statement.setInt(1, value); - statement.setString(2, me.getPlayer().getUniqueId().toString()); - - statement.executeUpdate(); - } catch (SQLException z) { - z.printStackTrace(); - } - } + getPlayerStatsEntity().setSuspect(value); } public void addSuspect(int value) { - int su = getSuspect() + value; - setSuspect(su); - if(su > 6) { - setSuspect(su - (su - 6)); + int newValue = getSuspect() + value; + if (newValue > 6) { + setSuspect(newValue - (newValue - 6)); + } else { + setSuspect(newValue); } } public int getTimeLeftInCage() { - try (SqlSession session = getSqlStore().openSession()) { - try (PreparedStatement statement = session.getConnection().prepareStatement("SELECT TIME_IN_CAGE FROM players_in_cages WHERE UUID = ?")) { - statement.setString(1, me.getUniqueId().toString()); - - try (ResultSet resultSet = statement.executeQuery()) { - if (resultSet.next()) { - return resultSet.getInt(1); - } - } - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; + return getPlayersInCagesEntity().getTimeInCage(); } public void setTimeLeftInCage(int value) { - try (SqlSession session = getSqlStore().openSession()) { - try { - PreparedStatement statement = session.getConnection().prepareStatement("SELECT TIME_IN_CAGE FROM players_in_cages WHERE UUID = ?"); - statement.setString(1, me.getUniqueId().toString()); - try (ResultSet resultSet = statement.executeQuery()) { - if (resultSet.next()) { - statement.close(); - - statement = session.getConnection().prepareStatement("UPDATE players_in_cages SET TIME_IN_CAGE = ? WHERE UUID = ?"); - statement.setInt(1, value); - statement.setString(2, me.getUniqueId().toString()); - statement.execute(); - - statement.close(); - } - } - } catch (SQLException z) { - z.printStackTrace(); - } - } + getPlayersInCagesEntity().setTimeInCage(value); } public int getBlocksLeftToBreak() { - try (SqlSession session = getSqlStore().openSession()) { - try (PreparedStatement statement = session.getConnection().prepareStatement("SELECT BLOCKS_LEFT FROM players_in_cages WHERE UUID = ?")) { - statement.setString(1, me.getUniqueId().toString()); - - try (ResultSet resultSet = statement.executeQuery()) { - if (resultSet.next()) { - return resultSet.getInt(1); - } - } - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; + return getPlayersInCagesEntity().getBlocksLeft(); } public boolean isLocateInCage() { - try (SqlSession session = getSqlStore().openSession()) { - try (PreparedStatement statement = session.getConnection().prepareStatement("SELECT UUID FROM players_in_cages WHERE UUID = ?")) { - statement.setString(1, me.getUniqueId().toString()); - - try (ResultSet resultSet = statement.executeQuery()) { - if (resultSet.next()) { - return true; - } - } - } catch (SQLException e) { - e.printStackTrace(); - } - } - return false; + return getPlayersInCagesEntity() != null; } public Faction getFaction() { @@ -244,39 +166,45 @@ public class Prisoner { } public void register() throws SQLException { - try (SqlSession session = getSqlStore().openSession()) { - final Connection connection = session.getConnection(); + try (SqlSession sqlSession = getSqlStore().openSession()) { + Integer result = sqlSession.selectOne("PlayerStats.countByUuid", getPlayer().getUniqueId().toString()); + if (result == null || result == 0) { + sqlSession.insert("PlayerStats.register", ImmutableMap.builder() + .put("name", getPlayer().getName()) + .put("uuid", getPlayer().getUniqueId().toString()) + .build() + ); - PreparedStatement statement = connection.prepareStatement("SELECT UUID FROM player_stats WHERE UUID = ?"); - statement.setString(1, me.getUniqueId().toString()); + sqlSession.insert("DailyRespectTask.register", ImmutableMap.builder() + .put("name", getPlayer().getName()) + .put("uuid", getPlayer().getUniqueId().toString()) + .put("cooldown", 3600 * 24) + .build() + ); - try (ResultSet resultSet = statement.executeQuery()) { - if (!resultSet.next()) { - statement.close(); - - statement = connection.prepareStatement( - "INSERT INTO player_stats(NAME, UUID, LEVEL, POINTS, FACTION, RESPECT, F_RANG, SUSPECT, WALLET, " + - "G_TIME, D_BLOCKS, K_PLAYERS, K_MOBS, DEATHS) " - + "VALUES (?, ?, 1, 0, 'NONE', 0, 0, 0, 0, 0, 0, 0, 0, 0)"); - statement.setString(1, getPlayer().getName()); - statement.setString(2, me.getUniqueId().toString()); - statement.executeUpdate(); - statement.close(); - - statement = connection.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); - } + level = new Level(this); + stats = new Stats(this); + wallet = new Wallet(this); } - statement.close(); + } + } + + private PlayersInCagesEntity getPlayersInCagesEntity() { + PlayersInCagesEntity entity; + if (refPlayersInCagesEntity != null) { + entity = refPlayersInCagesEntity.get(); + return entity; + } else { + try (SqlSession session = PrisonAPI.getSqlStore().openSession()) { + entity = session.selectOne("PlayersInCages.selectOne", me.getPlayer().getUniqueId().toString()); + } + + if (entity == null) { + throw new RuntimeException("no data in db by '" + me.getPlayer().getUniqueId().toString() + "'"); + } + + refPlayersInCagesEntity = new WeakReference<>(entity); + return entity; } } } \ No newline at end of file diff --git a/src/main/java/ru/prisonlife/api/template/Score.java b/src/main/java/ru/prisonlife/api/template/Score.java index 00cb62b..4aa399e 100644 --- a/src/main/java/ru/prisonlife/api/template/Score.java +++ b/src/main/java/ru/prisonlife/api/template/Score.java @@ -1,17 +1,17 @@ package ru.prisonlife.api.template; -public class Score extends AbstractApiData { +public class Score extends AbstractSubApiData { public Score(Prisoner me) { super(me); } public double getPoints() { - return getPlayerStatsEntity().getPoints(); + return me.getPlayerStatsEntity().getPoints(); } public void setPoints(double value) { - getPlayerStatsEntity().setPoints(value); + me.getPlayerStatsEntity().setPoints(value); } public void addPoints(double value) { diff --git a/src/main/java/ru/prisonlife/api/template/Stats.java b/src/main/java/ru/prisonlife/api/template/Stats.java index 9384091..3117afb 100644 --- a/src/main/java/ru/prisonlife/api/template/Stats.java +++ b/src/main/java/ru/prisonlife/api/template/Stats.java @@ -1,17 +1,17 @@ package ru.prisonlife.api.template; -public class Stats extends AbstractApiData { +public class Stats extends AbstractSubApiData { public Stats(Prisoner me) { super(me); } public void setServerTime(int value) { - getPlayerStatsEntity().setServerTime(value); + me.getPlayerStatsEntity().setServerTime(value); } public int getServerTime() { - return getPlayerStatsEntity().getServerTime(); + return me.getPlayerStatsEntity().getServerTime(); } public void addServerTime(int value) { @@ -19,11 +19,11 @@ public class Stats extends AbstractApiData { } public void setBlocks(int value) { - getPlayerStatsEntity().setBlocks(value); + me.getPlayerStatsEntity().setBlocks(value); } public int getBlocks() { - return getPlayerStatsEntity().getBlocks(); + return me.getPlayerStatsEntity().getBlocks(); } public void addBlocks(int value) { @@ -31,11 +31,11 @@ public class Stats extends AbstractApiData { } public void setPlayers(int value) { - getPlayerStatsEntity().setPlayers(value); + me.getPlayerStatsEntity().setPlayers(value); } public int getPlayers() { - return getPlayerStatsEntity().getPlayers(); + return me.getPlayerStatsEntity().getPlayers(); } public void addPlayers(int value) { @@ -43,11 +43,11 @@ public class Stats extends AbstractApiData { } public void setMobs(int value) { - getPlayerStatsEntity().setMobs(value); + me.getPlayerStatsEntity().setMobs(value); } public int getMobs() { - return getPlayerStatsEntity().getMobs(); + return me.getPlayerStatsEntity().getMobs(); } public void addMobs(int value) { @@ -55,11 +55,11 @@ public class Stats extends AbstractApiData { } public void setDeaths(int value) { - getPlayerStatsEntity().setDeaths(value); + me.getPlayerStatsEntity().setDeaths(value); } public int getDeaths() { - return getPlayerStatsEntity().getDeaths(); + return me.getPlayerStatsEntity().getDeaths(); } public void addDeaths(int value) { diff --git a/src/main/java/ru/prisonlife/api/template/Wallet.java b/src/main/java/ru/prisonlife/api/template/Wallet.java index eb74458..8969450 100644 --- a/src/main/java/ru/prisonlife/api/template/Wallet.java +++ b/src/main/java/ru/prisonlife/api/template/Wallet.java @@ -1,13 +1,13 @@ package ru.prisonlife.api.template; -public class Wallet extends AbstractApiData { +public class Wallet extends AbstractSubApiData { public Wallet(Prisoner me) { super(me); } public int getBalance() { - return getPlayerStatsEntity().getWallet(); + return me.getPlayerStatsEntity().getWallet(); } public void addBalance(int value) { @@ -19,6 +19,6 @@ public class Wallet extends AbstractApiData { } public void setBalance(int value) { - getPlayerStatsEntity().setWallet(value); + me.getPlayerStatsEntity().setWallet(value); } } diff --git a/src/main/resources/ru/prisonlife/api/store/DailyRespectTaskMapper.xml b/src/main/resources/ru/prisonlife/api/store/DailyRespectTaskMapper.xml index 2d2e0d2..3ba164d 100644 --- a/src/main/resources/ru/prisonlife/api/store/DailyRespectTaskMapper.xml +++ b/src/main/resources/ru/prisonlife/api/store/DailyRespectTaskMapper.xml @@ -11,6 +11,11 @@ SELECT COOLDOWN FROM daily_respect_task WHERE UUID = #{id} + + INSERT INTO daily_respect_task(NAME, UUID, COOLDOWN) + VALUES (#{name}, #{uuid}, #{cooldown}) + + UPDATE daily_respect_task SET COOLDOWN = #{cooldownRespect} diff --git a/src/main/resources/ru/prisonlife/api/store/PlayerStatsMapper.xml b/src/main/resources/ru/prisonlife/api/store/PlayerStatsMapper.xml index 02c0a4e..79a9a0f 100644 --- a/src/main/resources/ru/prisonlife/api/store/PlayerStatsMapper.xml +++ b/src/main/resources/ru/prisonlife/api/store/PlayerStatsMapper.xml @@ -16,12 +16,22 @@ + + + + + INSERT INTO player_stats (NAME, UUID, LEVEL, POINTS, FACTION, RESPECT, F_RANG, SUSPECT, WALLET, G_TIME, D_BLOCKS, K_PLAYERS, K_MOBS, DEATHS) + VALUES (#{name}, #{uuid}, 1, 0, 'NONE', 0, 0, 0, 0, 0, 0, 0, 0, 0) + + UPDATE player_stats SET WALLET = #{wallet}, diff --git a/src/main/resources/ru/prisonlife/api/store/PlayersInCagesMapper.xml b/src/main/resources/ru/prisonlife/api/store/PlayersInCagesMapper.xml new file mode 100644 index 0000000..082d764 --- /dev/null +++ b/src/main/resources/ru/prisonlife/api/store/PlayersInCagesMapper.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + INSERT INTO players_in_cages (NAME, UUID, TIME_IN_CAGE, BLOCKS_LEFT) + VALUES (#{name}, #{uuid}, #{timeInCage}, #{blocksLeft}) + + + + UPDATE players_in_cages SET TIME_IN_CAGE = #{time} WHERE UUID = #{uuid} + + + + DELETE FROM players_in_cages WHERE UUID = #{id} + + + \ No newline at end of file diff --git a/src/main/resources/ru/prisonlife/api/store/config.xml b/src/main/resources/ru/prisonlife/api/store/config.xml index 1661d9c..c0ace7b 100644 --- a/src/main/resources/ru/prisonlife/api/store/config.xml +++ b/src/main/resources/ru/prisonlife/api/store/config.xml @@ -17,6 +17,7 @@ + \ No newline at end of file