Merge branch 'dmitriymx/dev' into dev
This commit is contained in:
@@ -2,159 +2,97 @@ package ru.prisonlife.api.template;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import ru.prisonlife.api.PrisonAPI;
|
||||
import ru.prisonlife.api.PrisonAPI.Factions;
|
||||
import ru.prisonlife.api.store.AbstractCachedDao;
|
||||
import ru.prisonlife.api.store.DailyRespectTaskEntity;
|
||||
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class Faction {
|
||||
public class Faction extends AbstractApiData {
|
||||
|
||||
private Prisoner me;
|
||||
private WeakReference<DailyRespectTaskEntity> refDailyRespectTaskEntity;
|
||||
|
||||
Faction(Prisoner prisoner) {
|
||||
me = prisoner;
|
||||
private static final String[][] post = {
|
||||
{"Vakasu", "Tomadati", "So Honbute", "Vakagasira", "Kambu", "Kumite"},
|
||||
{"Novaro", "Amigo", "Latino", "Veterano", "Elite", "Padre"},
|
||||
{"Baby", "Cracker", "Little Nigga", "Big Nigga", "Star", "Daddy"}};
|
||||
|
||||
public Faction(Prisoner me) {
|
||||
super(me);
|
||||
}
|
||||
|
||||
public String getType() throws SQLException {
|
||||
try (PreparedStatement statement = PrisonAPI.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";
|
||||
}
|
||||
}
|
||||
private DailyRespectTaskEntity getDailyRespectTaskEntity() {
|
||||
DailyRespectTaskEntity entity;
|
||||
if (refDailyRespectTaskEntity != null && (entity = refDailyRespectTaskEntity.get()) != null) {
|
||||
return entity;
|
||||
} else {
|
||||
final AbstractCachedDao<DailyRespectTaskEntity> cachedDao = PrisonAPI.getDailyRespectTaskDao();
|
||||
entity = cachedDao.findByUuid(me.getPlayer().getUniqueId())
|
||||
.orElseThrow(() -> new RuntimeException(
|
||||
"no data in db by '" + me.getPlayer().getUniqueId().toString() + "'"));
|
||||
refDailyRespectTaskEntity = new WeakReference<>(entity);
|
||||
return entity;
|
||||
}
|
||||
}
|
||||
|
||||
public int getId() throws SQLException {
|
||||
try (PreparedStatement statement = PrisonAPI.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 PrisonAPI.Factions.valueOf(resultSet.getString(1)).getId();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
public String getType() {
|
||||
return getPlayerStatsEntity().getFaction().name();
|
||||
}
|
||||
|
||||
public int getRangId() throws SQLException {
|
||||
try (PreparedStatement statement = PrisonAPI.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;
|
||||
}
|
||||
}
|
||||
}
|
||||
public int getId() {
|
||||
return getPlayerStatsEntity().getFaction().getId();
|
||||
}
|
||||
|
||||
public String getRangType() throws SQLException {
|
||||
String[][] post = {
|
||||
{"Vakasu", "Tomadati", "So Honbute", "Vakagasira", "Kambu", "Kumite"},
|
||||
{"Novaro", "Amigo", "Latino", "Veterano", "Elite", "Padre"},
|
||||
{"Baby", "Cracker", "Little Nigga", "Big Nigga", "Star", "Daddy"}};
|
||||
public int getRangId() {
|
||||
return getPlayerStatsEntity().getRang();
|
||||
}
|
||||
|
||||
public String getRangType() {
|
||||
return post[getId() - 1][getRangId() - 1];
|
||||
}
|
||||
|
||||
public void addRang(int value) throws SQLException {
|
||||
public void addRang(int value) {
|
||||
setRang(getRangId() + value);
|
||||
}
|
||||
|
||||
public void setRang(int value) throws SQLException {
|
||||
try (PreparedStatement statement = PrisonAPI.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 setRang(int value) {
|
||||
getPlayerStatsEntity().setRang(value);
|
||||
}
|
||||
|
||||
public void setFaction(int id) throws SQLException {
|
||||
try (PreparedStatement statement = PrisonAPI.CONN.prepareStatement("UPDATE player_stats SET FACTION = ? WHERE UUID = ?")) {
|
||||
statement.setString(1, PrisonAPI.Factions.valueOf(id).name());
|
||||
statement.setString(2, me.getPlayer().getUniqueId().toString());
|
||||
|
||||
statement.executeUpdate();
|
||||
}
|
||||
public void setFaction(int id) {
|
||||
getPlayerStatsEntity().setFaction(Factions.valueOf(id));
|
||||
}
|
||||
|
||||
public int getRespect() throws SQLException {
|
||||
try (PreparedStatement statement = PrisonAPI.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;
|
||||
}
|
||||
}
|
||||
}
|
||||
public int getRespect() {
|
||||
return getPlayerStatsEntity().getRespect();
|
||||
}
|
||||
|
||||
public void addRespect(int value) throws SQLException {
|
||||
public void addRespect(int value) {
|
||||
setRespect(getRespect() + value);
|
||||
}
|
||||
|
||||
public void setRespect(int value) throws SQLException {
|
||||
try (PreparedStatement statement = PrisonAPI.CONN.prepareStatement("UPDATE player_stats SET RESPECT = ? WHERE UUID = ?")) {
|
||||
statement.setInt(1, value);
|
||||
statement.setString(2, me.getPlayer().getUniqueId().toString());
|
||||
|
||||
statement.executeUpdate();
|
||||
}
|
||||
public void setRespect(int value) {
|
||||
getPlayerStatsEntity().setRespect(value);
|
||||
}
|
||||
|
||||
public int getRespectDailyCooldown() throws SQLException {
|
||||
try (PreparedStatement statement = PrisonAPI.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 int getRespectDailyCooldown() {
|
||||
return getDailyRespectTaskEntity().getCooldownRespect();
|
||||
}
|
||||
|
||||
public void addRespectDailyCooldown(int value) throws SQLException {
|
||||
public void addRespectDailyCooldown(int value) {
|
||||
setRespectDailyCooldown(getRespectDailyCooldown() + value);
|
||||
}
|
||||
|
||||
public void setRespectDailyCooldown(int value) throws SQLException {
|
||||
try (PreparedStatement statement = PrisonAPI.CONN.prepareStatement("UPDATE daily_respect_task SET COOLDOWN = ? WHERE UUID = ?")) {
|
||||
statement.setInt(1, value);
|
||||
statement.setString(2, me.getPlayer().getUniqueId().toString());
|
||||
|
||||
statement.executeUpdate();
|
||||
}
|
||||
public void setRespectDailyCooldown(int value) {
|
||||
getDailyRespectTaskEntity().setCooldownRespect(value);
|
||||
}
|
||||
|
||||
public List<Prisoner> 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;
|
||||
}
|
||||
})
|
||||
.filter(prisoner -> prisoner.getFaction().getType().equals(me.getFaction().getType()))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user