Archived
0

По просьбе Димона + mini-update 0.1.2

This commit is contained in:
Prot-CN
2019-02-24 21:31:42 +06:00
38 changed files with 2579 additions and 478 deletions

View File

@@ -0,0 +1,160 @@
package ru.prisonlife.api.template;
import org.bukkit.Bukkit;
import ru.prisonlife.api.PrisonAPI;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import java.util.stream.Collectors;
public class Faction {
private Prisoner me;
Faction(Prisoner prisoner) {
me = prisoner;
}
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";
}
}
}
}
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 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 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"}};
return post[getId() - 1][getRangId() - 1];
}
public void addRang(int value) throws SQLException {
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 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 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 void addRespect(int value) throws SQLException {
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 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 void addRespectDailyCooldown(int value) throws SQLException {
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 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;
}
})
.collect(Collectors.toList());
}
}