Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package mafia;
- import java.sql.*;
- import java.util.*;
- import com.google.gson.Gson;
- import com.google.gson.reflect.TypeToken;
- public class MafiaStorage
- {
- public static void insertMafia(Mafia mafia) {
- try {
- PreparedStatement sql = Main.getConnection().prepareStatement("INSERT INTO `pvp_mafias` (`name`,`tag`,`leader`,`members`, `kills`, `deaths`) VALUES (?,?,?,?,?,?);", 1);
- sql.setString(1, mafia.getName());
- sql.setString(2, mafia.getTag());
- sql.setString(3, mafia.getLeader());
- sql.setNull(4, 0);
- sql.setInt(5, 0);
- sql.setInt(6, 0);
- sql.executeUpdate();
- ResultSet result = sql.getGeneratedKeys();
- result.next();
- int id = result.getInt(1);
- result.close();
- mafia.setId(id);
- sql.close();
- }
- catch (SQLException ex) {
- ex.printStackTrace();
- }
- }
- @SuppressWarnings("unchecked")
- public static void downloadMafias() {
- Gson gson = Main.getGson();
- try {
- PreparedStatement sql = Main.getConnection().prepareStatement("SELECT * FROM `pvp_mafias`");
- ResultSet result = sql.executeQuery();
- while (result.next()) {
- String name = result.getString("name");
- String tag = result.getString("tag");
- String leader = result.getString("leader");
- String membersJson = result.getString("members");
- List<Integer> members = new ArrayList<Integer>();
- if (membersJson != null && membersJson.length() > 0) {
- members = (List<Integer>)gson.fromJson(membersJson, new TypeToken<List<Integer>>() {}.getType());
- }
- new Mafia(result.getInt("id"), name, tag, leader, members, result.getInt("kills"), result.getInt("deaths"));
- }
- result.close();
- sql.close();
- }
- catch (SQLException ex) {
- ex.printStackTrace();
- }
- }
- public static void exportMafias() {
- Gson gson = Main.getGson();
- Set<Mafia> trash = Mafia.TRASHCAN;
- if (!trash.isEmpty()) {
- StringBuilder trashIds = new StringBuilder("(");
- for (Mafia mafia : trash) {
- trashIds.append(mafia.getId() + ",");
- }
- String out = trashIds.toString();
- out = out.substring(0, out.length() - 1);
- out += ")";
- try {
- PreparedStatement sql = Main.getConnection().prepareStatement("DELETE FROM `pvp_mafias` WHERE `id` in " + out);
- sql.execute();
- sql.close();
- }
- catch (SQLException ex) {
- ex.printStackTrace();
- }
- Mafia.TRASHCAN.clear();
- }
- StringBuilder values = new StringBuilder("UPDATE `pvp_mafias` SET ");
- boolean empty = true;
- StringBuilder ids = new StringBuilder("(");
- String queryMembers = "`members` = CASE `id` ";
- String queryKills = "`kills` = CASE `id` ";
- String queryDeaths = "`deaths` = CASE `id` ";
- for (Mafia mafia2 : Mafia.getMafias()) {
- if (mafia2.changed) {
- empty = false;
- ids.append(mafia2.getId() + ",");
- queryMembers = queryMembers + " WHEN '" + mafia2.getId() + "' THEN '" + ((mafia2.getMembers() == null || mafia2.getMembers().isEmpty()) ? "NULL" : gson.toJson((Object)mafia2.getMembers())) + "'";
- queryKills = queryKills + " WHEN '" + mafia2.getId() + "' THEN '" + mafia2.getKills() + "'";
- queryDeaths = queryDeaths + " WHEN '" + mafia2.getId() + "' THEN '" + mafia2.getDeaths() + "'";
- mafia2.changed = false;
- }
- }
- if (empty) {
- return;
- }
- String out2 = ids.toString();
- out2 = out2.substring(0, out2.length() - 1);
- out2 += ")";
- queryMembers += "END, ";
- queryKills += "END, ";
- queryDeaths += "END ";
- values.append(queryMembers + queryKills + queryDeaths);
- values.append("WHERE `id` in " + out2);
- try {
- PreparedStatement sql2 = Main.getConnection().prepareStatement(values.toString());
- sql2.execute();
- sql2.close();
- }
- catch (SQLException ex2) {
- ex2.printStackTrace();
- }
- }
- }
Add Comment
Please, Sign In to add comment