Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package server.database.util;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Timestamp;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.function.Consumer;
- import com.google.gson.Gson;
- import server.Config;
- import server.Server;
- import server.content.Lottery;
- import server.content.Lottery.LotteryEntry;
- import server.content.ReaperCollection.ReaperCollectionItem;
- import server.content.ShopSale.SaleType;
- import server.content.ShopSale.ShopSaleItem;
- import server.content.VoteContest;
- import server.content.VoteContest.ContestWinners;
- import server.content.VoteLottery;
- import server.database.GameDatabase;
- import server.database.model.RequestModel;
- import server.database.model.RequestModel.QueryType;
- import server.database.model.impl.PremiumExtractDAO;
- import server.database.model.impl.PremiumExtractDAO.ExtractType;
- import server.database.passive.PassiveDatabaseWorker;
- import server.database.pooled.DatabaseConnection;
- import server.model.client.interfaces.InterfaceHandler;
- import server.model.client.interfaces.TextScroll;
- import server.model.dialogue.DialogueChat;
- import server.model.dialogue.DialogueManager;
- import server.model.items.GameItem;
- import server.model.items.ItemHandler;
- import server.model.items.bank.BankConstants;
- import server.model.items.bank.BankWrapper;
- import server.model.players.Client;
- import server.model.players.Player;
- import server.model.players.PlayerHandler;
- import server.model.players.moderation.PlayerPunishment;
- import server.model.players.moderation.PlayerPunishment.PunishmentType;
- import server.model.players.moderation.PunishHandler;
- import server.refactor.StreamHandler;
- import server.util.BCrypt;
- import server.util.Misc;
- import server.util.Tuple;
- public class PlayerDatabase {
- private static String credentialQuery, credentialOldQuery,
- accountDeleteQuery, nameChangeQuery, playerIDGatheringQuery,
- supportGroupQuery;
- /**
- * Prepare statements to be used in a later time.
- */
- public static void prepareStatements() {
- credentialQuery = "select connectedFrom, regSerial, playerMacAdress from clients where playerName = ?;";
- credentialOldQuery = "select connectedFrom, regSerial, playerMacAdress from clients_old where playerName = ?;";
- accountDeleteQuery = "delete from clients where playerName = ?;";
- nameChangeQuery = "update clients set playerName = ? where playerName = ?;";
- playerIDGatheringQuery = "select dbid from clients where playerName = ?;";
- supportGroupQuery = "select count(*) from supportgroup s left join clients c on s.playerName = c.playerName where c.regSerial = ? || s.playerName = ?;";
- }
- public static String insertToLottery(Client c, int entryFee) {
- String resultMessage = null;
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "52");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return "Sorry, we were unable to insert you into the lottery.";
- }
- PreparedStatement registerStatement = databaseConnection.prepareStatement("insert lottery (playerID, entryFee) values(?, ?);");
- try {
- registerStatement.setInt(1, c.accountID);
- registerStatement.setInt(2, entryFee);
- registerStatement.execute();
- return "Your entry was submited, good luck!";
- } catch (SQLException e) {
- if (e.getErrorCode() == 1062) {
- resultMessage = "You're already betting at lottery.";
- } else {
- resultMessage = "Failed to bet.";
- e.printStackTrace();
- }
- } finally {
- databaseConnection.close(registerStatement);
- databaseConnection.release();
- }
- return resultMessage;
- }
- public static int getLotteryEntryCount() {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "83");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return -1;
- }
- PreparedStatement totalEntryCheck = null;
- try {
- totalEntryCheck = databaseConnection.prepareStatement("select count(*) from lottery;");
- ResultSet rs = totalEntryCheck.executeQuery();
- if (rs.next()) {
- return rs.getInt(1);
- }
- } catch (SQLException ex) {
- ex.printStackTrace();
- } finally {
- databaseConnection.close(totalEntryCheck);
- databaseConnection.release();
- }
- return 0;
- }
- public static long getTotalLotteryEntry() {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "105");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return -1;
- }
- PreparedStatement totalEntryCheck = null;
- try {
- totalEntryCheck = databaseConnection.prepareStatement("select sum(entryFee) from lottery;");
- ResultSet rs = totalEntryCheck.executeQuery();
- if (rs.next()) {
- return rs.getLong(1);
- }
- } catch (SQLException ex) {
- ex.printStackTrace();
- } finally {
- databaseConnection.close(totalEntryCheck);
- databaseConnection.release();
- }
- return 0;
- }
- public static ArrayList<String> checkLotteryHistory() {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "105");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return null;
- }
- ArrayList<String> history = new ArrayList<String>();
- PreparedStatement historyStatement = databaseConnection.prepareStatement("select playerName, winnerEntry, winnerReward, updateTime from lotteryhistory join clients on dbid = winnerID order by updateTime desc limit 15;");
- ResultSet rs = null;
- try {
- rs = historyStatement.executeQuery();
- while (rs.next()) {
- String playerName = rs.getString(1);
- long rewardValue = rs.getLong(3);
- history.add(Misc.capitalize(playerName) + " - " + Misc.getShopPrice(rewardValue) + " coins.");
- }
- return history;
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(historyStatement);
- databaseConnection.close(rs);
- databaseConnection.release();
- }
- return null;
- }
- public static LotteryEntry getRandomLotteryWinner() {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "83");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return null;
- }
- PreparedStatement sortStatement = databaseConnection.prepareStatement("select playerID, playerName, entryFee from lottery join clients c on c.dbid = playerID order by rand() limit 0, 1;");
- ResultSet rs = null;
- try {
- rs = sortStatement.executeQuery();
- if (rs.next()) {
- int playerID = rs.getInt(1);
- String playerName = rs.getString(2);
- int entryFee = rs.getInt(3);
- return new Lottery.LotteryEntry(playerID, entryFee, playerName);
- }
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(sortStatement);
- databaseConnection.close(rs);
- databaseConnection.release();
- }
- return null;
- }
- public static int getLotteryEntryCount(Client c) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "163");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return 0;
- }
- PreparedStatement entryCheck = null;
- ResultSet rs = null;
- try {
- entryCheck = databaseConnection.prepareStatement("select count(*) from lottery where playerID = ?;");
- entryCheck.setInt(1, c.accountID);
- rs = entryCheck.executeQuery();
- if (rs.next()) {
- int count = rs.getInt(1);
- return count;
- }
- } catch (SQLException ex) {
- ex.printStackTrace();
- } finally {
- databaseConnection.close(entryCheck);
- databaseConnection.close(rs);
- databaseConnection.release();
- }
- return 0;
- }
- public static boolean finishLottery(LotteryEntry winner) {
- if (winner == null) {
- return false;
- }
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "163");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return false;
- }
- PreparedStatement clearStatement = null;
- PreparedStatement historyInsert = null;
- try {
- clearStatement = databaseConnection.prepareStatement("truncate lottery;");
- historyInsert = databaseConnection.prepareStatement("insert into lotteryhistory (winnerID, winnerEntry, winnerReward, totalEntry) values (?, ?, ?, ?);");
- long totalEntry = winner.getTotalEntry();
- int winnerID = winner.getPlayerID();
- long winnerFee = winner.getEntryFee();
- long winnerReward = winner.getLotteryReward();
- historyInsert.setInt(1, winnerID);
- historyInsert.setInt(2, (int) winnerFee);
- historyInsert.setLong(3, winnerReward);
- historyInsert.setLong(4, totalEntry);
- historyInsert.executeUpdate();
- clearStatement.executeUpdate();
- } catch (SQLException ex) {
- ex.printStackTrace();
- } finally {
- databaseConnection.close(clearStatement);
- databaseConnection.close(historyInsert);
- databaseConnection.release();
- }
- return false;
- }
- public static int deletePlayer(String playerName) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "163");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return -1;
- }
- PreparedStatement deleteStatement = databaseConnection.prepareStatement(accountDeleteQuery);
- try {
- deleteStatement.setString(1, playerName);
- int rowsAffected = deleteStatement.executeUpdate();
- return rowsAffected;
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(deleteStatement);
- databaseConnection.release();
- }
- return 0;
- }
- public static int updateName(String playerName, String newName) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "183");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return -1;
- }
- PreparedStatement updateStatement = databaseConnection.prepareStatement(nameChangeQuery);
- try {
- updateStatement.setString(1, newName);
- updateStatement.setString(2, playerName);
- int rowsAffected = updateStatement.executeUpdate();
- return rowsAffected;
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(updateStatement);
- databaseConnection.release();
- }
- return 0;
- }
- public static int getPlayerID(String playerName) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "205");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return -2;
- }
- ResultSet rs = null;
- PreparedStatement credentialStatement = databaseConnection.prepareStatement("select dbid from clients where playerName = ?;");
- try {
- credentialStatement.setString(1, playerName);
- rs = credentialStatement.executeQuery();
- // boolean found = rs.next();
- // if (!found) {
- // rs.close();
- // credentialStatement =
- // databaseConnection.prepareStatement(credentialOldQuery);
- // credentialStatement.setString(1, playerName);
- // rs = credentialStatement.executeQuery();
- // found = rs.next();
- // }
- if (rs.next()) {
- int playerID = rs.getInt(1);
- return playerID;
- }
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(credentialStatement);
- databaseConnection.close(rs);
- databaseConnection.release();
- }
- return -1;
- }
- public static PlayerCredentials getPlayerCredentials(String playerName) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "240");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return null;
- }
- ResultSet rs = null;
- PreparedStatement credentialStatement = databaseConnection.prepareStatement(credentialQuery);
- try {
- credentialStatement.setString(1, playerName);
- rs = credentialStatement.executeQuery();
- boolean found = rs.next();
- if (!found) {
- rs.close();
- credentialStatement = databaseConnection.prepareStatement(credentialOldQuery);
- credentialStatement.setString(1, playerName);
- rs = credentialStatement.executeQuery();
- found = rs.next();
- }
- if (found) {
- String connectedFrom = rs.getString(1);
- String regSerial = rs.getString(2);
- String playerMacAddress = rs.getString(3);
- return new PlayerCredentials(playerName, connectedFrom, regSerial, playerMacAddress);
- }
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(credentialStatement);
- databaseConnection.close(rs);
- databaseConnection.release();
- }
- return null;
- }
- public static void comparePlayers(final Client c, final Player p, final String player, final String other) {
- RequestModel requestModel = new RequestModel(c, QueryType.SELECT) {
- @Override
- public PreparedStatement prepareStatement(DatabaseConnection databaseConnection) {
- if (databaseConnection != null) {
- PreparedStatement preparedStatement = databaseConnection.prepareStatement("select `regSerial`, `playerMacAdress`, `connectedFrom`, `bankPin`, `dbid`, 'systemName' from clients where playerName = ? limit 1");
- try {
- preparedStatement.setString(1, other);
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return preparedStatement;
- }
- return null;
- }
- @Override
- public void future() {
- ResultSet rs = getResults();
- if (p == null || c == null) {
- return;
- }
- if (rs != null) {
- try {
- if (rs.next()) {
- /** Start **/
- int ownershipPercent = 0;
- String regSerial = rs.getString(1);
- String macAdress = rs.getString(2);
- String connectedFrom = rs.getString(3);
- int bankPin = rs.getInt(4);
- final int databaseID = rs.getInt(5);
- String systemName = rs.getString(6);
- boolean sameComputer = false;
- boolean sameIP = false;
- boolean sameClient = false;
- boolean sameSystem = false;
- if (p.connectedFrom.equalsIgnoreCase(connectedFrom)) {
- ownershipPercent += 25;
- sameIP = true;
- }
- if (p.playerMacAdress.equalsIgnoreCase(macAdress)) {
- ownershipPercent += 25;
- sameComputer = true;
- }
- if (p.regSerial.equalsIgnoreCase(regSerial)) {
- ownershipPercent += 25;
- sameClient = true;
- }
- if (systemName != null && !systemName.isEmpty() && !systemName.equals("admin") && !systemName.equals("user")) {
- if (p.systemName.equalsIgnoreCase(systemName)) {
- ownershipPercent += 25;
- sameSystem = true;
- }
- }
- c.sendMessage("<img=4><col=" + 0x00ff00 + ">Shallow ownership probability: " + ownershipPercent + "%");
- c.sendMessage("<img=4>@gre@Account details:");
- c.sendMessage("<img=4><col=" + 0x00ff00 + ">Account " + (sameComputer ? "was" : "@red@wasn't@gre@") + " created at same computer.");
- c.sendMessage("<img=4><col=" + 0x00ff00 + ">Account " + (sameIP ? "was" : "@red@wasn't@gre@") + " lastly logged in using same IP.");
- c.sendMessage("<img=4><col=" + 0x00ff00 + ">Account " + (sameClient ? "was" : "@red@wasn't@gre@") + " lastly logged in using same Client.");
- c.sendMessage("<img=4><col=" + 0x00ff00 + ">Account " + (sameSystem ? "was" : "@red@wasn't@gre@") + " lastly logged in using same System.");
- if (bankPin >= 0) {
- c.sendMessage("<img=4>@gre@Bank pin: " + bankPin);
- } else {
- c.sendMessage("<img=4>@gre@User has no pin.");
- }
- c.sendMessage("<img=4>Checking login history...");
- RequestModel requestModel = new RequestModel(c, QueryType.SELECT) {
- @Override
- public PreparedStatement prepareStatement(DatabaseConnection databaseConnection) {
- if (databaseConnection != null) {
- PreparedStatement loginStatement = databaseConnection.prepareStatement("select `regSerial`, `macAdress`, `connectedFrom` from loginlogs where dbid = ? order by `date` desc limit 300");
- try {
- loginStatement.setInt(1, databaseID);
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return loginStatement;
- }
- return null;
- }
- @Override
- public void future() {
- ResultSet logResult = getResults();
- float ipLogs = 0;
- float computerLogs = 0;
- float clientLogs = 0;
- float totalLogs = 0;
- try {
- while (logResult.next()) {
- totalLogs++;
- String regSerial = logResult.getString(1);
- String macAdress = logResult.getString(2);
- String connectedFrom = logResult.getString(3);
- if (p.connectedFrom.equalsIgnoreCase(connectedFrom)) {
- ipLogs++;
- }
- if (p.playerMacAdress.equalsIgnoreCase(macAdress)) {
- computerLogs++;
- }
- if (p.regSerial.equalsIgnoreCase(regSerial)) {
- clientLogs++;
- }
- }
- } catch (SQLException e) {
- e.printStackTrace();
- }
- int ipPercent = (int) ((ipLogs * 100f) / totalLogs);
- int computerPercent = (int) ((computerLogs * 100f) / totalLogs);
- int clientPercent = (int) ((clientLogs * 100f) / totalLogs);
- c.sendMessage("<img=4><col=" + 0x00ff00 + ">Account \"" + other + "\" " + " logged in " + computerPercent + "% of times using same computer as account \"" + player + "\"");
- c.sendMessage("<img=4><col=" + 0x00ff00 + ">Account \"" + other + "\" " + " logged in " + ipPercent + "% of times using same IP as account \"" + player + "\"");
- c.sendMessage("<img=4><col=" + 0x00ff00 + ">Account \"" + other + "\" " + " logged in " + clientPercent + "% of times using same Client as account \"" + player + "\"");
- }
- };
- Server.asyncDatabaseWorker.submitModel(requestModel);
- /** End **/
- } else {
- c.sendMessage("<img=4>Player not found...");
- }
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
- };
- Server.asyncDatabaseWorker.submitModel(requestModel);
- }
- public static ArrayList<String> searchTrades(Client c, String player1, String player2) {
- RequestModel requestModel = new RequestModel(c, QueryType.SELECT) {
- @Override
- public PreparedStatement prepareStatement(DatabaseConnection databaseConnection) {
- StringBuilder sb = new StringBuilder("?");
- if (player2 != null) {
- sb.append(", ?");
- }
- String query = null;
- if (player2 != null) {
- query = "select sender, receiver, `date` from tradelogs where sender in(?, ?) && receiver in(?, ?) group by `date` order by `date` desc ;";
- } else {
- query = "select sender, receiver, `date` from tradelogs where sender in(?) || receiver in(?) group by `date` order by `date` desc ;";
- }
- if (databaseConnection != null) {
- PreparedStatement credentialStatement = databaseConnection.prepareStatement(query);
- try {
- if (player2 != null) {
- credentialStatement.setString(1, player1);
- credentialStatement.setString(2, player2);
- credentialStatement.setString(3, player1);
- credentialStatement.setString(4, player2);
- } else {
- credentialStatement.setString(1, player1);
- credentialStatement.setString(2, player1);
- }
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return credentialStatement;
- }
- return null;
- }
- @Override
- public void future() {
- ResultSet rs = getResults();
- try {
- int index = 0;
- while (rs.next()) {
- String sender = rs.getString(1);
- String receiver = rs.getString(2);
- Timestamp date = rs.getTimestamp(3);
- InterfaceHandler.setComponentText(c, 19, 3, index++, "\'" + Misc.capitalize(sender) + "' and '" + Misc.capitalize(receiver) + "\'");
- InterfaceHandler.setComponentText(c, 19, 3, index++, date.toString());
- if (index > 380)
- break;
- System.out.println("Sender: " + sender + ", Receiver: " + receiver + ", Date: " + date);
- }
- InterfaceHandler.setComponentText(c, 19, 2, "Trade History");
- int size = (index * 15) + 10;
- InterfaceHandler.setScrollBarSize(c, 19, 3, size + 5, size > 276 ? 276 : size + 5);
- InterfaceHandler.openScreenInterface(c, 19);
- // c.getPA().openOverlayInterface(45450, 3321);
- } catch (SQLException e) {
- c.sendMessage("Couldn't view trade.");
- }
- }
- };
- Server.asyncDatabaseWorker.submitModel(requestModel);
- return null;
- }
- public static void displayTrade(final Client c, final String date) {
- RequestModel requestModel = new RequestModel(c, QueryType.SELECT) {
- @Override
- public PreparedStatement prepareStatement(DatabaseConnection databaseConnection) {
- if (databaseConnection != null) {
- PreparedStatement credentialStatement = databaseConnection.prepareStatement("select sender, itemID, itemAmount from tradelogs where `date` = ?");
- try {
- credentialStatement.setString(1, date);
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return credentialStatement;
- }
- return null;
- }
- @Override
- public void future() {
- ResultSet rs = getResults();
- String playerOne = null;
- String playerTwo = null;
- ArrayList<GameItem> playerOneItems = new ArrayList<GameItem>();
- ArrayList<GameItem> playerTwoItems = new ArrayList<GameItem>();
- try {
- while (rs.next()) {
- String sender = rs.getString(1);
- int itemID = rs.getInt(2);
- int itemAmount = rs.getInt(3);
- if (playerOne == null) {
- playerOne = sender;
- } else if (!playerOne.equalsIgnoreCase(sender)) {
- playerTwo = sender;
- }
- if (sender.equals(playerOne)) {
- playerOneItems.add(new GameItem(itemID, itemAmount));
- } else {
- playerTwoItems.add(new GameItem(itemID, itemAmount));
- }
- }
- StreamHandler.sendFrame126(c, "-", 45459);
- StreamHandler.sendFrame126(c, "-", 45460);
- StreamHandler.resetTItems(c, playerOneItems, 3415);
- StreamHandler.resetTItems(c, playerTwoItems, 3416);
- StreamHandler.sendFrame126(c, "Trade between " + playerOne + " and " + playerTwo, 45458);
- c.getPA().openOverlayInterface(45450, 3321);
- } catch (SQLException e) {
- c.sendMessage("Couldn't view trade.");
- }
- }
- };
- Server.asyncDatabaseWorker.submitModel(requestModel);
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "540");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return;
- }
- }
- public static class PlayerCredentials {
- private final String playerName;
- private final String connectedFrom;
- private final String regSerial;
- private final String playerMacAddress;
- /**
- * @param connectedFrom
- * : Network address used last time.
- * @param regSerial
- * : Serial Used last time.
- * @param playerMacAddress
- * : Mac Address that registered this account.
- */
- public PlayerCredentials(String playerName, String connectedFrom, String regSerial, String playerMacAddress) {
- this.playerName = playerName;
- this.connectedFrom = connectedFrom;
- this.regSerial = regSerial;
- this.playerMacAddress = playerMacAddress;
- }
- public String getConnectedFrom() {
- return connectedFrom;
- }
- public String getRegSerial() {
- return regSerial;
- }
- public String getPlayerMacAddress() {
- return playerMacAddress;
- }
- @Override
- public String toString() {
- return "PlayerCredentials [connectedFrom=" + connectedFrom + ", regSerial=" + regSerial + ", playerMacAddress=" + playerMacAddress + "]";
- }
- public String getPlayerName() {
- return playerName;
- }
- }
- public static void randomizeAccountPassword(final Client c, final String playerName) {
- final StringBuffer sb = new StringBuffer();
- for (int i = 0; i < 4; i++) {
- sb.append(Misc.random(9));
- }
- RequestModel requestModel = new RequestModel(c, QueryType.UPDATE) {
- @Override
- public PreparedStatement prepareStatement(DatabaseConnection databaseConnection) {
- if (databaseConnection != null) {
- PreparedStatement loginStatement = databaseConnection.prepareStatement("update clients set encryptedPass = ? where playerName = ?");
- try {
- loginStatement.setString(1, BCrypt.hashpw(Misc.saltPass(sb.toString()), BCrypt.gensalt(Config.SALT_STRENGTH)));
- loginStatement.setString(2, playerName);
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return loginStatement;
- }
- return null;
- }
- @Override
- public void future() {
- int updatedRows = getUpdatedRows();
- if (updatedRows > 0) {
- c.sendMessage("<img=4>@gre@Account " + Misc.capitalizeFirstLetter(playerName) + " password: " + sb.toString());
- } else {
- c.sendMessage("Couldn't change account password.");
- }
- }
- };
- Server.asyncDatabaseWorker.submitModel(requestModel);
- }
- static {
- prepareStatements();
- }
- public static void clearAccount(final Client c, final String playerName) {
- RequestModel requestModel = new RequestModel(c, QueryType.UPDATE) {
- @Override
- public PreparedStatement prepareStatement(DatabaseConnection databaseConnection) {
- if (databaseConnection != null) {
- PreparedStatement clearStatement = databaseConnection.prepareStatement("update clients set playerEquipment = '-1:0:-1:0:-1:0:-1:0:-1:0:-1:0:-1:0:-1:0:-1:0:-1:0:-1:0:-1:0:-1:0:-1:0:', playerItems = '', bankItems = '' where playerName = ? limit 1");
- try {
- clearStatement.clearParameters();
- clearStatement.setString(1, playerName);
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return clearStatement;
- }
- return null;
- }
- @Override
- public void future() {
- if (getUpdatedRows() > 0) {
- c.sendMessage("<img=4>Deleted all items from off-line account: \"" + playerName + "\"");
- } else {
- c.sendMessage("<img=4>Couldn't delete player items.");
- }
- }
- };
- Server.asyncDatabaseWorker.submitModel(requestModel);
- }
- public static void displayOtherItems(final Client c, final String playerName) {
- RequestModel requestModel = new RequestModel(c, QueryType.SELECT) {
- @Override
- public PreparedStatement prepareStatement(DatabaseConnection databaseConnection) {
- if (databaseConnection != null) {
- PreparedStatement selectStatement = databaseConnection.prepareStatement("select `playerItems`, `playerBank` from clients where playerName = ? limit 1");
- try {
- selectStatement.setString(1, playerName);
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return selectStatement;
- }
- return null;
- }
- @Override
- public void future() {
- ResultSet rs = getResults();
- try {
- boolean found = rs.next();
- if (found) {
- String playerItemsString = rs.getString(1);
- String bankDocument = rs.getString(2);
- int playerItems[] = new int[28];
- int playerItemsN[] = new int[28];
- String[] itemsArray = playerItemsString.split(":");
- for (int id = 0; id < itemsArray.length / 3; id++) {
- int n = Integer.valueOf(itemsArray[id * 3]).intValue();
- int itemID = Integer.valueOf(itemsArray[id * 3 + 1]).intValue();
- int itemAmount = Integer.valueOf(itemsArray[id * 3 + 2]).intValue();
- playerItems[n] = itemID;
- playerItemsN[n] = itemAmount;
- }
- BankWrapper bankWrapper = new Gson().fromJson(bankDocument, BankWrapper.class);
- if (bankWrapper != null && bankWrapper.getItems() != null) {
- c.getBank().renderBank(bankWrapper);
- }
- List<GameItem> gameItems = new ArrayList<GameItem>();
- for (int i = 0; i < playerItems.length; i++) {
- int itemID = playerItems[i] - 1;
- int amount = playerItemsN[i];
- gameItems.add(new GameItem(itemID, amount));
- }
- InterfaceHandler.resetInventoryItems(c, BankConstants.INVENTORY_ID, 0, gameItems);
- playerItems = null;
- playerItemsN = null;
- } else {
- c.sendMessage("<img=4>Player not found!");
- }
- } catch (Exception e) {
- c.sendMessage("<img=4>Error checking player bank.");
- }
- }
- };
- Server.asyncDatabaseWorker.submitModel(requestModel);
- }
- public static void displayOtherItemsOld(final Client c, final String playerName) {
- RequestModel requestModel = new RequestModel(c, QueryType.SELECT) {
- @Override
- public PreparedStatement prepareStatement(DatabaseConnection databaseConnection) {
- if (databaseConnection != null) {
- PreparedStatement selectStatement = databaseConnection.prepareStatement("select `playerItems`, `bankItems` from clients_old where playerName = ? limit 1");
- try {
- selectStatement.setString(1, playerName);
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return selectStatement;
- }
- return null;
- }
- @Override
- public void future() {
- ResultSet rs = getResults();
- try {
- boolean found = rs.next();
- if (found) {
- String playerItemsString = rs.getString(1);
- String bankItemsString = rs.getString(2);
- int playerItems[] = new int[28];
- int playerItemsN[] = new int[28];
- int bankItems[] = new int[Config.BANK_SIZE + 28 + 20];
- int bankItemsN[] = new int[Config.BANK_SIZE + 28 + 20];
- String[] itemsArray = playerItemsString.split(":");
- for (int id = 0; id < itemsArray.length / 3; id++) {
- int n = Integer.valueOf(itemsArray[id * 3]).intValue();
- int itemID = Integer.valueOf(itemsArray[id * 3 + 1]).intValue();
- int itemAmount = Integer.valueOf(itemsArray[id * 3 + 2]).intValue();
- playerItems[n] = itemID;
- playerItemsN[n] = itemAmount;
- }
- String[] banksArray = bankItemsString.split(":");
- int len = banksArray.length;
- for (int id = 0; id < banksArray.length / 3; id++) {
- if (len <= id * 3 || len <= (id * 3 + 1) || len <= (id * 3 + 2))
- continue;
- int n = Integer.valueOf(banksArray[id * 3]).intValue();
- int itemID = Integer.valueOf(banksArray[id * 3 + 1]).intValue();
- int itemAmount = Integer.valueOf(banksArray[id * 3 + 2]).intValue();
- bankItems[n] = itemID;
- bankItemsN[n] = itemAmount;
- }
- StreamHandler.displayInventory(c, 5064, playerItems, playerItemsN);
- StreamHandler.openBank(c);
- bankItems = null;
- bankItemsN = null;
- playerItems = null;
- playerItemsN = null;
- } else {
- c.sendMessage("<img=4>Player not found!");
- }
- } catch (Exception e) {
- c.sendMessage("<img=4>Error checking player bank.");
- }
- }
- };
- Server.asyncDatabaseWorker.submitModel(requestModel);
- }
- public static void copyFromHighscores(Client p) {
- RequestModel requestModel = new RequestModel(p, QueryType.SELECT, GameDatabase.getWebsiteDatabaseManager()) {
- @Override
- public PreparedStatement prepareStatement(DatabaseConnection databaseConnection) {
- if (databaseConnection != null) {
- PreparedStatement selectStatement = databaseConnection.prepareStatement("select playerID, skillID, skillLevel, skillExperience from highscores where playerID = (select playerID from overall where playerName = ? order by playerID asc limit 1);");
- try {
- selectStatement.setString(1, p.playerName);
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return selectStatement;
- }
- return null;
- }
- @Override
- public void future() {
- ResultSet rs = getResults();
- try {
- while (rs.next()) {
- int skillID = rs.getInt(1);
- int level = rs.getInt(2);
- int exp = rs.getInt(3);
- p.playerLevel[skillID] = level;
- p.playerXP[skillID] = exp;
- p.getPA().refreshSkill(skillID);
- }
- p.sendMessage("Your stats were restored successfully.");
- } catch (Exception e) {
- p.sendMessage("<img=4>Error checking player rank.");
- }
- }
- };
- Server.asyncDatabaseWorker.submitModel(requestModel);
- }
- public static boolean isDevelopementSupporter(String playerName, String regSerial) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "932");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return false;
- }
- ResultSet rs = null;
- PreparedStatement credentialStatement = databaseConnection.prepareStatement("select count(*) from supportgroup where playerName = ?;");
- try {
- credentialStatement.setString(1, playerName);
- // credentialStatement.setString(2, regSerial);
- rs = credentialStatement.executeQuery();
- if (rs.next()) {
- return rs.getInt(1) >= 1;
- }
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(credentialStatement);
- databaseConnection.close(rs);
- databaseConnection.release();
- }
- return false;
- }
- public static ArrayList<PlayerPunishment> getPunishments(PlayerCredentials playerCredentials, PunishmentType punishmentType) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getPriorityConnection(1500, null);
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return null;
- }
- if (playerCredentials == null) {
- return null;
- }
- ArrayList<PlayerPunishment> playerBans = new ArrayList<PlayerPunishment>();
- String playerName = playerCredentials.getPlayerName();
- String macAddress = playerCredentials.getPlayerMacAddress();
- String hostAddress = playerCredentials.getConnectedFrom();
- String serial = playerCredentials.getRegSerial();
- String query = "select `index`, playerName, agent, expireDate, duration, type, reason, punishment from punishment where ";
- query += "(";
- if (punishmentType != PunishmentType.JAIL) {
- boolean searchMacAddress = !PunishHandler.ignoreMacAdress(macAddress);
- boolean searchHostAddress = !PunishHandler.ignoreHost(hostAddress);
- boolean searchSerial = !PunishHandler.ignoreSerial(hostAddress);
- if (searchMacAddress || searchHostAddress || searchSerial) {
- if (searchMacAddress) {
- query += "macAddress = '" + macAddress + "' or ";
- }
- if (searchHostAddress) {
- query += "hostAddress = '" + hostAddress + "' or ";
- }
- if (searchSerial) {
- query += "serial = '" + serial + "' or ";
- }
- }
- }
- if (punishmentType == null) {
- query += "playerName = '" + playerName + "');";
- } else {
- query += "playerName = '" + playerName + "') and punishment = '" + punishmentType.name() + "';";
- }
- ResultSet rs = null;
- try {
- rs = databaseConnection.executeQuery(query);
- while (rs.next()) {
- int index = rs.getInt(1);
- String name = rs.getString(2);
- String agent = rs.getString(3);
- long expireDate = rs.getLong(4);
- String duration = rs.getString(5);
- String type = rs.getString(6);
- String reason = rs.getString(7);
- PunishmentType punishType = PunishmentType.valueOf(rs.getString(8));
- PlayerPunishment playerBan = new PlayerPunishment(index, name, agent, expireDate, duration, type, reason, macAddress, hostAddress, serial, punishType);
- playerBans.add(playerBan);
- }
- } catch (Exception ex) {
- ex.printStackTrace();
- } finally {
- databaseConnection.close(rs);
- databaseConnection.release();
- }
- return playerBans;
- }
- public static boolean addPunishment(PlayerPunishment playerPunishment) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "1147");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return false;
- }
- PreparedStatement insertStatement = databaseConnection.prepareStatement("insert into punishment (playerName, agent, expireDate, duration, type, reason, macAddress, hostAddress, serial, punishment) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
- try {
- insertStatement.setString(1, playerPunishment.getPlayerName());
- insertStatement.setString(2, playerPunishment.getAgent());
- insertStatement.setLong(3, playerPunishment.getExpireDate());
- insertStatement.setString(4, playerPunishment.getDuration());
- insertStatement.setString(5, playerPunishment.getType());
- insertStatement.setString(6, playerPunishment.getReason());
- insertStatement.setString(7, playerPunishment.getMacAddress());
- insertStatement.setString(8, playerPunishment.getHostAddress());
- insertStatement.setString(9, playerPunishment.getSerial());
- insertStatement.setString(10, playerPunishment.getPunishmentType().name());
- return insertStatement.executeUpdate() > 0;
- } catch (Exception ex) {
- ex.printStackTrace();
- } finally {
- databaseConnection.close(insertStatement);
- databaseConnection.release();
- }
- return false;
- }
- public static int removePunishment(int index) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "1084");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return 0;
- }
- PreparedStatement deletestatement = databaseConnection.prepareStatement("delete from punishment where `index` = ?;");
- int deletedPunishments = 0;
- try {
- deletestatement.setInt(1, index);
- deletedPunishments = deletestatement.executeUpdate();
- } catch (Exception ex) {
- ex.printStackTrace();
- } finally {
- databaseConnection.close(deletestatement);
- databaseConnection.release();
- }
- return deletedPunishments;
- }
- public static int removePunishments(String playerName, PunishmentType punishmentType) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "1105");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return 0;
- }
- PreparedStatement deletestatement = databaseConnection.prepareStatement("delete from punishment where playerName = ? and punishment = ?;");
- int deletedPunishments = 0;
- try {
- deletestatement.setString(1, playerName);
- deletestatement.setString(2, punishmentType.name());
- deletedPunishments = deletestatement.executeUpdate();
- } catch (Exception ex) {
- ex.printStackTrace();
- } finally {
- databaseConnection.close(deletestatement);
- databaseConnection.release();
- }
- return deletedPunishments;
- }
- public static PlayerPunishment getPunishment(int index) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "1217");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return null;
- }
- PreparedStatement searchStatement = databaseConnection.prepareStatement("select playerName, agent, expireDate, duration, type, reason, punishment from punishment where `index` = ?;");
- ResultSet rs = null;
- try {
- searchStatement.setInt(1, index);
- rs = searchStatement.executeQuery();
- while (rs.next()) {
- String name = rs.getString(1);
- String agent = rs.getString(2);
- long expireDate = rs.getLong(3);
- String duration = rs.getString(4);
- String type = rs.getString(5);
- String reason = rs.getString(6);
- PunishmentType punishType = PunishmentType.valueOf(rs.getString(7));
- PlayerPunishment playerBan = new PlayerPunishment(index, name, agent, expireDate, duration, type, reason, null, null, null, punishType);
- return playerBan;
- }
- } catch (Exception ex) {
- ex.printStackTrace();
- } finally {
- databaseConnection.close(rs);
- databaseConnection.close(searchStatement);
- databaseConnection.release();
- }
- return null;
- }
- public static String addMiddleman(String playerName) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "1254");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return "Database error";
- }
- int playerID = getPlayerID(playerName);
- playerName = Misc.capitalizeFirstLetter(playerName);
- PreparedStatement insertStatement = null;
- try {
- if (playerID < 0) {
- return "<img=4>The player '" + playerName + "' was not found.";
- }
- insertStatement = databaseConnection.prepareStatement("insert into middleman(playerID) values(?);");
- insertStatement.setInt(1, playerID);
- int inserted = insertStatement.executeUpdate();
- return inserted > 0 ? "<img=4>" + playerName + " was successfully added to middlemen list." : "<img=4>" + playerName + " couldn't be inserted to middleman list.";
- } catch (SQLException e) {
- if (e.getErrorCode() == 1062) {
- return "<img=4>" + playerName + " is already in the middlemen list";
- } else {
- e.printStackTrace();
- return "<img=4>Unknown error: " + e.getErrorCode();
- }
- } finally {
- databaseConnection.close(insertStatement);
- databaseConnection.release();
- }
- }
- public static String removeMiddleman(String playerName) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "1286");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return "<img=4>Database error";
- }
- int playerID = getPlayerID(playerName);
- playerName = Misc.capitalizeFirstLetter(playerName);
- PreparedStatement removeStatement = null;
- try {
- if (playerID < 0) {
- return "<img=4>The player '" + playerName + "' was not found.";
- }
- removeStatement = databaseConnection.prepareStatement("delete from middleman where playerID = ?;");
- removeStatement.setInt(1, playerID);
- int inserted = removeStatement.executeUpdate();
- return inserted > 0 ? "<img=4>" + playerName + " was successfully removed from middlemen list." : "<img=4>" + playerName + " couldn't be removed from middleman list.";
- } catch (SQLException e) {
- e.printStackTrace();
- return "<img=4>Unknown error: " + e.getErrorCode();
- } finally {
- databaseConnection.close(removeStatement);
- databaseConnection.release();
- }
- }
- public static void checkMiddlemans(Client p) {
- RequestModel requestModel = new RequestModel(p, QueryType.SELECT, GameDatabase.getActionManager()) {
- @Override
- public PreparedStatement prepareStatement(DatabaseConnection databaseConnection) {
- if (databaseConnection != null) {
- return databaseConnection.prepareStatement("select playerID, playerName from middleman left join clients on playerID = dbid;");
- }
- return null;
- }
- @Override
- public void future() {
- ResultSet rs = getResults();
- ArrayList<String> onlineMiddlemen = new ArrayList<String>();
- ArrayList<String> offlineMiddlemen = new ArrayList<String>();
- try {
- while (rs.next()) {
- int playerID = rs.getInt(1);
- String playerName = rs.getString(2);
- boolean online = PlayerHandler.getClient(playerID) != null;
- if (online) {
- onlineMiddlemen.add(Misc.capitalizeFirstLetter(playerName) + " - @gre@Online");
- } else {
- offlineMiddlemen.add(Misc.capitalizeFirstLetter(playerName) + " - @red@Offline");
- }
- }
- } catch (SQLException e) {
- e.printStackTrace();
- }
- ArrayList<String> middlemenList = new ArrayList<String>();
- middlemenList.addAll(onlineMiddlemen);
- middlemenList.addAll(offlineMiddlemen);
- TextScroll.displayText(p, "Official Middlemen", middlemenList);
- }
- };
- Server.asyncDatabaseWorker.submitModel(requestModel);
- }
- public static void checkPremiumExtract(Client p, int playerID, boolean staffView) {
- RequestModel requestModel = new RequestModel(p, QueryType.SELECT, GameDatabase.getActionManager()) {
- @Override
- public PreparedStatement prepareStatement(DatabaseConnection databaseConnection) {
- if (databaseConnection != null) {
- try {
- PreparedStatement statement = databaseConnection.prepareStatement("select extractType, source, value, itemID, itemAmount, balance, dateTime, host from premiumextract where playerID = ? order by dateTime desc;");
- statement.setInt(1, playerID);
- return statement;
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- return null;
- }
- @Override
- public void future() {
- ResultSet rs = getResults();
- ArrayList<String> extract = new ArrayList<String>();
- try {
- while (rs.next()) {
- ExtractType extractType = ExtractType.valueOf(rs.getString(1));
- String source = rs.getString(2);
- int value = rs.getInt(3);
- int itemID = rs.getInt(4);
- int itemAmount = rs.getInt(5);
- int balance = rs.getInt(6);
- Timestamp dateTime = rs.getTimestamp(7);
- String host = rs.getString(8);
- if (extractType == ExtractType.OUTCOME) {
- extract.add("@red@-----------------" + Misc.formatTimeStamp(dateTime) + " GMT -----------------");
- extract.add(source);
- if (itemID > 0)
- extract.add(Misc.format(itemAmount) + " x " + ItemHandler.getItemName(itemID));
- extract.add("Balance: <col=0xdfdfdf>" + Misc.format(balance) + "</col> point(s) (<col=0xFF0000>-" + Misc.format(value) + "</col>)");
- if (staffView) {
- extract.add("Host: @whi@" + host);
- }
- extract.add("");
- } else if (extractType == ExtractType.INCOME) {
- extract.add("@gr3@-----------------" + Misc.formatTimeStamp(dateTime) + " GMT -----------------");
- extract.add(source);
- extract.add("Balance: <col=0xdfdfdf>" + Misc.format(balance) + "</col> point(s) (<col=0x00FF00>+" + Misc.format(value) + "</col>)");
- if (staffView) {
- extract.add("Host: @whi@" + host);
- }
- extract.add("");
- }
- }
- } catch (SQLException e) {
- e.printStackTrace();
- }
- if (extract.size() <= 0) {
- if (!staffView) {
- DialogueManager.sendChat(p, new DialogueChat("You don't have any history of premium points transactions.").setStatementDialogue());
- } else {
- p.sendMessage("This player doesn't have any premium points transaction.");
- }
- } else {
- TextScroll.displayText(p, "Premium points history", extract);
- }
- }
- };
- Server.asyncDatabaseWorker.submitModel(requestModel);
- }
- public static String getPlayerName(int playerID) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "1424");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return null;
- }
- ResultSet rs = null;
- PreparedStatement credentialStatement = null;
- try {
- credentialStatement = databaseConnection.prepareStatement("select playerName from clients where dbid = ?;");
- credentialStatement.setInt(1, playerID);
- rs = credentialStatement.executeQuery();
- if (rs.next()) {
- String playerName = rs.getString(1);
- return playerName;
- }
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(credentialStatement);
- databaseConnection.close(rs);
- databaseConnection.release();
- }
- return null;
- }
- public static Map<Integer, String> getPlayesNames(int... playersIDs) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "1451");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return null;
- }
- ResultSet rs = null;
- PreparedStatement credentialStatement = null;
- String parameter = Misc.buildArrayString(playersIDs, true);
- try {
- if (parameter.trim().isEmpty()) {
- return null;
- }
- Map<Integer, String> nameMap = new HashMap<Integer, String>();
- credentialStatement = databaseConnection.prepareStatement("SELECT dbid, playerName FROM clients WHERE dbid IN(" + parameter + ");");
- rs = credentialStatement.executeQuery();
- while (rs.next()) {
- int playerID = rs.getInt(1);
- String playerName = rs.getString(2);
- nameMap.put(playerID, playerName);
- }
- return nameMap;
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(credentialStatement);
- databaseConnection.close(rs);
- databaseConnection.release();
- }
- return null;
- }
- public static void getAccountEmail(Client c, String playerName) {
- RequestModel requestModel = new RequestModel(c, QueryType.SELECT, GameDatabase.getActionManager()) {
- @Override
- public PreparedStatement prepareStatement(DatabaseConnection databaseConnection) {
- if (databaseConnection != null) {
- try {
- PreparedStatement statement = databaseConnection.prepareStatement("select playerEmail from clients where playerName = ?;");
- statement.setString(1, playerName);
- return statement;
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- return null;
- }
- @Override
- public void future() {
- ResultSet rs = getResults();
- try {
- if (rs.next()) {
- String email = rs.getString(1);
- if (email != null) {
- c.sendMessage("<img=4>@gr3@The '" + playerName + "' email is: '" + email + "'");
- } else {
- c.sendMessage("<img=4>@red@There's no e-mail registered on that account.");
- }
- } else {
- c.sendMessage("<img=4>Record not found.");
- }
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- };
- Server.asyncDatabaseWorker.submitModel(requestModel);
- }
- public static void searchPasswordHistory(Client c, String playerName, String password) {
- RequestModel requestModel = new RequestModel(c, QueryType.SELECT, GameDatabase.getActionManager()) {
- @Override
- public PreparedStatement prepareStatement(DatabaseConnection databaseConnection) {
- if (databaseConnection != null) {
- try {
- PreparedStatement statement = databaseConnection.prepareStatement("select count(*) from passchangelogs where playerName = ? and oldpassword = ?;");
- statement.setString(1, playerName);
- statement.setString(2, password);
- return statement;
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- return null;
- }
- @Override
- public void future() {
- ResultSet rs = getResults();
- try {
- while (rs.next()) {
- int foundResults = rs.getInt(1);
- if (foundResults > 0) {
- c.sendMessage("<img=4>@gr3@Identified this password on the account history.");
- } else {
- c.sendMessage("<img=4>@red@This password was not found on the account history.");
- }
- }
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- };
- Server.asyncDatabaseWorker.submitModel(requestModel);
- }
- public static String addDevSupporter(Client c, String playerName, String skype, int GMT) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "1524");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return "Database error";
- }
- PreparedStatement insertStatement = null;
- try {
- insertStatement = databaseConnection.prepareStatement("insert into supportGroup (playerName, skype, gmt) values (?, ?, ?);");
- insertStatement.setString(1, playerName);
- insertStatement.setString(2, skype);
- insertStatement.setInt(3, GMT);
- int inserted = insertStatement.executeUpdate();
- return inserted > 0 ? "<img=4>" + playerName + " was successfully added to supporters list." : "<img=4>" + playerName + " couldn't be inserted to supporters list.";
- } catch (SQLException e) {
- if (e.getErrorCode() == 1062) {
- return "<img=4>" + playerName + " is already in the supporters list";
- } else {
- e.printStackTrace();
- return "<img=4>Unknown error: " + e.getErrorCode();
- }
- }
- }
- public static void addVoteRecord(Client player, int points) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "1528");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return;
- }
- int playerID = player.accountID;
- String playerName = player.getFormattedName();
- PreparedStatement insertStatement = null;
- try {
- insertStatement = databaseConnection.prepareStatement("insert into votes_record (playerID, playerName, connectedFrom, serial, points) VALUES(?, ?, ?, ?, ?);");
- insertStatement.setInt(1, playerID);
- insertStatement.setString(2, playerName);
- insertStatement.setString(3, player.connectedFrom);
- insertStatement.setString(4, player.regSerial);
- insertStatement.setInt(5, points);
- insertStatement.executeUpdate();
- VoteContest.update();
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(insertStatement);
- databaseConnection.release();
- }
- }
- public static ArrayList<ContestWinners> getTopVoters(int maxPosition) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "1558");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return null;
- }
- ArrayList<ContestWinners> topVoters = new ArrayList<ContestWinners>();
- PreparedStatement searchStatement = null;
- ResultSet rs = null;
- try {
- searchStatement = databaseConnection.prepareStatement("select vr.playerID, vr.playerName, sum(points) totalPoints, c.voteStreaks from votes_record vr left join clients c on vr.playerID = c.dbid group by vr.playerID order by totalPoints desc, c.voteStreaks desc limit ?;");
- searchStatement.setInt(1, maxPosition);
- rs = searchStatement.executeQuery();
- while (rs.next()) {
- int playerID = rs.getInt(1);
- String playerName = rs.getString(2);
- int totalPoints = rs.getInt(3);
- float voteStreaks = rs.getFloat(4);
- if (totalPoints > 0)
- topVoters.add(new ContestWinners(playerID, playerName, totalPoints, voteStreaks));
- }
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(searchStatement);
- databaseConnection.close(rs);
- databaseConnection.release();
- }
- return topVoters;
- }
- public static void truncateTable(String tableName) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "1590");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return;
- }
- PreparedStatement insertStatement = null;
- try {
- insertStatement = databaseConnection.prepareStatement("TRUNCATE " + tableName + ";");
- insertStatement.executeUpdate();
- VoteContest.update();
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(insertStatement);
- databaseConnection.release();
- }
- }
- public static String removeDevSupporter(Client c, String playerName) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "1553");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return "Database error";
- }
- PreparedStatement insertStatement = null;
- try {
- insertStatement = databaseConnection.prepareStatement("delete from supportGroup where playerName = ?;");
- insertStatement.setString(1, playerName);
- int deleted = insertStatement.executeUpdate();
- return deleted > 0 ? "<img=4>" + playerName + " was successfully removed from supporters list." : "<img=4>" + playerName + " couldn't be removed from supporters list.";
- } catch (SQLException e) {
- e.printStackTrace();
- return "<img=4>Unknown error: " + e.getErrorCode();
- }
- }
- public static void registerVoteContestWinner(ContestWinners contestWinner) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "1622");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return;
- }
- PreparedStatement insertStatement = null;
- int playerID = contestWinner.getPlayerID();
- String playerName = contestWinner.getPlayerName();
- int position = contestWinner.getPosition();
- int points = contestWinner.getTotalPoints();
- float voteStreaks = contestWinner.getVoteStreaks();
- try {
- insertStatement = databaseConnection.prepareStatement("INSERT INTO votes_winners (playerID, playerName, position, points, voteStreaks) VALUES (?, ?, ?, ?, ?);");
- insertStatement.setInt(1, playerID);
- insertStatement.setString(2, playerName);
- insertStatement.setInt(3, position);
- insertStatement.setInt(4, points);
- insertStatement.setFloat(5, voteStreaks);
- insertStatement.executeUpdate();
- VoteContest.update();
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(insertStatement);
- databaseConnection.release();
- }
- }
- public static ArrayList<ContestWinners> getLatestWinners(int maxResults) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "1642");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return null;
- }
- ArrayList<ContestWinners> topVoters = new ArrayList<ContestWinners>();
- PreparedStatement searchStatement = null;
- ResultSet rs = null;
- try {
- searchStatement = databaseConnection.prepareStatement("select playerID, playerName, position, points, voteStreaks, dateTime from votes_winners order by dateTime desc, position asc limit ?;");
- searchStatement.setInt(1, maxResults);
- rs = searchStatement.executeQuery();
- while (rs.next()) {
- int playerID = rs.getInt(1);
- String playerName = rs.getString(2);
- int position = rs.getInt(3);
- int totalPoints = rs.getInt(4);
- float voteStreaks = rs.getFloat(5);
- Timestamp dateTime = rs.getTimestamp(6);
- topVoters.add(new ContestWinners(playerID, playerName, totalPoints, position, voteStreaks, dateTime));
- }
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(searchStatement);
- databaseConnection.close(rs);
- databaseConnection.release();
- }
- return topVoters;
- }
- public static void addVotingLotteryEntry(VoteLottery.LotteryEntry lotteryEntry) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "1675");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return;
- }
- PreparedStatement insertStatement = null;
- try {
- insertStatement = databaseConnection.prepareStatement("INSERT INTO voting_lottery (playerID, playerName) VALUES (?, ?);");
- insertStatement.setInt(1, lotteryEntry.getPlayerID());
- insertStatement.setString(2, lotteryEntry.getPlayerName());
- insertStatement.executeUpdate();
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(insertStatement);
- databaseConnection.release();
- }
- }
- public static VoteLottery.LotteryEntry sortVotingLoteryWinner() {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "1697");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return null;
- }
- PreparedStatement searchStatement = null;
- ResultSet rs = null;
- try {
- searchStatement = databaseConnection.prepareStatement("SELECT playerID, playerName FROM voting_lottery ORDER BY RAND() LIMIT 0, 1;");
- rs = searchStatement.executeQuery();
- while (rs.next()) {
- int playerID = rs.getInt(1);
- String playerName = rs.getString(2);
- return new VoteLottery.LotteryEntry(playerID, playerName);
- }
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(searchStatement);
- databaseConnection.close(rs);
- databaseConnection.release();
- }
- return null;
- }
- public static void addVotingLotteryWinner(VoteLottery.LotteryEntry lotteryEntry, GameItem gameItem) {
- if (gameItem == null) {
- return;
- }
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "1724");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return;
- }
- PreparedStatement insertStatement = null;
- try {
- insertStatement = databaseConnection.prepareStatement("INSERT INTO votes_lottery_winners (playerID, playerName, itemID, itemAmount) VALUES (?, ?, ?, ?);");
- insertStatement.setInt(1, lotteryEntry.getPlayerID());
- insertStatement.setString(2, lotteryEntry.getPlayerName());
- insertStatement.setInt(3, gameItem.getItemID());
- insertStatement.setInt(4, gameItem.getItemAmount());
- insertStatement.executeUpdate();
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(insertStatement);
- databaseConnection.release();
- }
- }
- public static ArrayList<SaleType> selectAvailableSales() {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "1744");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return null;
- }
- ArrayList<SaleType> availableSales = new ArrayList<SaleType>();
- PreparedStatement searchStatement = null;
- ResultSet rs = null;
- try {
- searchStatement = databaseConnection.prepareStatement("select s.saleID, s.announcement, s.expireTime from sale s join sale_item si on s.saleID = si.saleID and s.expireTime != 0;");
- rs = searchStatement.executeQuery();
- while (rs.next()) {
- int saleID = rs.getInt(1);
- String announcement = rs.getString(2);
- long expireTime = rs.getLong(3);
- availableSales.add(new SaleType(saleID, announcement, expireTime));
- }
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(searchStatement);
- databaseConnection.close(rs);
- databaseConnection.release();
- }
- return availableSales;
- }
- public static void deleteSales(String saleIDs) {
- if (saleIDs == null || saleIDs.isEmpty()) {
- return;
- }
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "1777");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return;
- }
- PreparedStatement deleteStatement = null;
- try {
- deleteStatement = databaseConnection.prepareStatement("DELETE `sale`, `sale_item` from `sale` left join `sale_item` on `sale`.`saleID` = `sale_item`.`saleID` where sale.saleID in (" + saleIDs + ");");
- deleteStatement.executeUpdate();
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(deleteStatement);
- databaseConnection.release();
- }
- }
- public static void deleteSale(int saleID) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "1796");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return;
- }
- PreparedStatement deleteStatement = null;
- try {
- deleteStatement = databaseConnection.prepareStatement("DELETE `sale`, `sale_item` from `sale` left join `sale_item` on `sale`.`saleID` = `sale_item`.`saleID` where sale.saleID = ?;");
- deleteStatement.setInt(1, saleID);
- deleteStatement.executeUpdate();
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(deleteStatement);
- databaseConnection.release();
- }
- }
- public static ArrayList<ShopSaleItem> selectSaleItems() {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "1816");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return null;
- }
- ArrayList<ShopSaleItem> availableSales = new ArrayList<ShopSaleItem>();
- PreparedStatement searchStatement = null;
- ResultSet rs = null;
- try {
- searchStatement = databaseConnection.prepareStatement("select sale_item.`index`, sale.saleID, itemID, itemAmount, itemPrice, rankType, expireTime from sale_item join sale on sale_item.saleID = sale.saleID and sale_item.itemAmount != 0 && sale_item.itemPrice > 0 and (sale.expireTime = -1 || UNIX_TIMESTAMP(NOW()) < (sale.expireTime / 1000));");
- rs = searchStatement.executeQuery();
- while (rs.next()) {
- int index = rs.getInt(1);
- int saleID = rs.getInt(2);
- int itemID = rs.getInt(3);
- int itemAmount = rs.getInt(4);
- int itemPrice = rs.getInt(5);
- int rankType = rs.getInt(6);
- long expireTime = rs.getLong(7);
- availableSales.add(new ShopSaleItem(index, saleID, itemID, itemAmount, itemPrice, expireTime, rankType));
- }
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(searchStatement);
- databaseConnection.close(rs);
- databaseConnection.release();
- }
- return availableSales;
- }
- public static int getAvailableSaleItem(int itemIndex) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "1850");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return 0;
- }
- PreparedStatement searchStatement = null;
- ResultSet rs = null;
- try {
- searchStatement = databaseConnection.prepareStatement("select itemAmount from sale_item where `index` = ?;");
- searchStatement.setInt(1, itemIndex);
- rs = searchStatement.executeQuery();
- if (rs.next()) {
- int itemAmount = rs.getInt(1);
- return itemAmount;
- }
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(searchStatement);
- databaseConnection.close(rs);
- databaseConnection.release();
- }
- return 0;
- }
- public static boolean reduceAvailableItem(int itemIndex, int reduceAmount) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "1877");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return false;
- }
- PreparedStatement reduceStatement = null;
- ResultSet rs = null;
- try {
- reduceStatement = databaseConnection.prepareStatement("UPDATE sale_item set itemAmount = itemAmount - ? where `index` = ?;");
- reduceStatement.setInt(1, reduceAmount);
- reduceStatement.setInt(2, itemIndex);
- return reduceStatement.executeUpdate() > 0;
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(reduceStatement);
- databaseConnection.close(rs);
- databaseConnection.release();
- }
- return false;
- }
- public static void insertOnlineTime(int accountID, int loginHash, long onlineTime) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(1000, PlayerDatabase.class.getSimpleName() + ":" + "1900");
- if (databaseConnection == null) {
- return;
- }
- PreparedStatement updateStatement = null;
- try {
- updateStatement = databaseConnection.prepareStatement("replace into time_online_log (playerID, loginHash, onlineTime) values (?, ?, ?);");
- updateStatement.setInt(1, accountID);
- updateStatement.setInt(2, loginHash);
- updateStatement.setLong(3, onlineTime);
- updateStatement.executeUpdate();
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(updateStatement);
- databaseConnection.release();
- }
- }
- public static void setMiddleManStatus(String playerName, boolean middleman) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(1000, PlayerDatabase.class.getSimpleName() + ":" + "1920");
- if (databaseConnection == null) {
- return;
- }
- PreparedStatement updateStatement = null;
- try {
- updateStatement = databaseConnection.prepareStatement("update clients set middleman = ? where playerName = ?;");
- updateStatement.setBoolean(1, middleman);
- updateStatement.setString(2, playerName);
- updateStatement.executeUpdate();
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(updateStatement);
- databaseConnection.release();
- }
- }
- public static boolean hasPreviousPasswords(int accountID, String password) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "1940");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return false;
- }
- PreparedStatement matchesCount = null;
- ResultSet rs = null;
- try {
- matchesCount = databaseConnection.prepareStatement("SELECT COUNT(*) FROM passchangelogs WHERE dbid = ? AND oldPassword = ?;");
- matchesCount.setInt(1, accountID);
- matchesCount.setString(2, password);
- rs = matchesCount.executeQuery();
- if (rs.next()) {
- int count = rs.getInt(1);
- return count > 0;
- }
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(matchesCount);
- databaseConnection.release();
- }
- return false;
- }
- public static SaleType selectSale(int saleID) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "1966");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return null;
- }
- PreparedStatement searchStatement = null;
- ResultSet rs = null;
- try {
- searchStatement = databaseConnection.prepareStatement("select s.saleID, s.announcement, s.expireTime from sale s join sale_item si on s.saleID = si.saleID and s.expireTime != 0 and s.saleID = ?;");
- searchStatement.setInt(1, saleID);
- rs = searchStatement.executeQuery();
- if (rs.next()) {
- saleID = rs.getInt(1);
- String announcement = rs.getString(2);
- long expireTime = rs.getLong(3);
- return new SaleType(saleID, announcement, expireTime);
- }
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(searchStatement);
- databaseConnection.close(rs);
- databaseConnection.release();
- }
- return null;
- }
- public static void insertSaleHistory(int accountID, int itemID, int itemAmount, int totalPaid) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(1000, PlayerDatabase.class.getSimpleName() + ":" + "1995");
- if (databaseConnection == null) {
- return;
- }
- PreparedStatement updateStatement = null;
- try {
- updateStatement = databaseConnection.prepareStatement("INSERT INTO sale_deals (playerID, itemID, itemAmount, totalPrice) VALUES(?, ?, ?, ?);");
- updateStatement.setInt(1, accountID);
- updateStatement.setInt(2, itemID);
- updateStatement.setInt(3, itemAmount);
- updateStatement.setInt(4, totalPaid);
- updateStatement.executeUpdate();
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(updateStatement);
- databaseConnection.release();
- }
- }
- public static boolean changePassword(int accountID, String newPassword) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(1000, PlayerDatabase.class.getSimpleName() + ":" + "2016");
- if (databaseConnection == null) {
- return false;
- }
- PreparedStatement updateStatement = null;
- try {
- String encryptedPassword = BCrypt.hashpw(Config.SALT_PRE + newPassword + Config.SALT_POST, BCrypt.gensalt(Config.SALT_STRENGTH));
- updateStatement = databaseConnection.prepareStatement("UPDATE clients SET encryptedPass = ? where dbid = ?;");
- updateStatement.setString(1, encryptedPassword);
- updateStatement.setInt(2, accountID);
- return updateStatement.executeUpdate() > 0;
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(updateStatement);
- databaseConnection.release();
- }
- return false;
- }
- public static boolean removeEmail(String playerName) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(1000, PlayerDatabase.class.getSimpleName() + ":" + "2038");
- if (databaseConnection == null) {
- return false;
- }
- PreparedStatement updateStatement = null;
- try {
- updateStatement = databaseConnection.prepareStatement("UPDATE clients SET playerEmail = NULL where playerName = ?;");
- updateStatement.setString(1, playerName);
- return updateStatement.executeUpdate() > 0;
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(updateStatement);
- databaseConnection.release();
- }
- return false;
- }
- public static ArrayList<ReaperCollectionItem> getReaperCollectionItems(Client c) {
- ArrayList<ReaperCollectionItem> collectionItems = new ArrayList<ReaperCollectionItem>();
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "2055");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return null;
- }
- PreparedStatement searchStatement = null;
- ResultSet rs = null;
- try {
- searchStatement = databaseConnection.prepareStatement("select itemIndex, itemID, itemAmount, lostTime from reaper_collection where playerID = ? order by lostTime desc;");
- searchStatement.setInt(1, c.accountID);
- rs = searchStatement.executeQuery();
- while (rs.next()) {
- int itemIndex = rs.getInt(1);
- int itemID = rs.getInt(2);
- int itemAmount = rs.getInt(3);
- Timestamp lostTime = rs.getTimestamp(4);
- collectionItems.add(new ReaperCollectionItem(itemIndex, new GameItem(itemID, itemAmount), lostTime.getTime()));
- }
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(searchStatement);
- databaseConnection.close(rs);
- databaseConnection.release();
- }
- return collectionItems;
- }
- public static boolean removeReaperCollectionItem(int itemIndex) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(1000, PlayerDatabase.class.getSimpleName() + ":" + "2086");
- if (databaseConnection == null) {
- return false;
- }
- PreparedStatement updateStatement = null;
- try {
- updateStatement = databaseConnection.prepareStatement("DELETE FROM reaper_collection WHERE itemIndex = ?;");
- updateStatement.setInt(1, itemIndex);
- return updateStatement.executeUpdate() > 0;
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(updateStatement);
- databaseConnection.release();
- }
- return false;
- }
- public static void insertIntoReaperCollection(GameItem gameItem, int accountOwner) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(1000, PlayerDatabase.class.getSimpleName() + ":" + "2105");
- if (databaseConnection == null) {
- return;
- }
- if (gameItem == null) {
- return;
- }
- PreparedStatement updateStatement = null;
- try {
- updateStatement = databaseConnection.prepareStatement("INSERT INTO reaper_collection (playerID, itemID, itemAmount) VALUES(?, ?, ?);");
- updateStatement.setInt(1, accountOwner);
- updateStatement.setInt(2, gameItem.getItemID());
- updateStatement.setInt(3, gameItem.getItemAmount());
- updateStatement.executeUpdate();
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(updateStatement);
- databaseConnection.release();
- }
- }
- public static boolean hasRedemeedInvoice(int invoiceID) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "2166");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return true;
- }
- PreparedStatement searchStatement = null;
- ResultSet rs = null;
- try {
- searchStatement = databaseConnection.prepareStatement("SELECT * FROM donationlogs WHERE invoice = ? LIMIT 1;");
- searchStatement.setInt(1, invoiceID);
- rs = searchStatement.executeQuery();
- return rs.next();
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(searchStatement);
- databaseConnection.close(rs);
- databaseConnection.release();
- }
- return false;
- }
- public static boolean clearCollectBox(int playerID) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(1000, PlayerDatabase.class.getSimpleName() + ":" + "2128");
- if (databaseConnection == null) {
- return false;
- }
- PreparedStatement updateStatement = null;
- try {
- updateStatement = databaseConnection.prepareStatement("delete from collect where player =?;");
- updateStatement.setInt(1, playerID);
- return updateStatement.executeUpdate() > 0;
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(updateStatement);
- databaseConnection.release();
- }
- return false;
- }
- public static int hasAppAccess(String user, String password, String device) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(PlayerDatabase.class.getSimpleName() + ":" + "2209");
- if (databaseConnection == null) {
- GameDatabase.getActionManager().reportUnavailableConnection();
- return 4;
- }
- PreparedStatement searchStatement = null;
- ResultSet rs = null;
- try {
- searchStatement = databaseConnection.prepareStatement("SELECT password, device FROM app_access WHERE user = ? LIMIT 1;");
- searchStatement.setString(1, user);
- rs = searchStatement.executeQuery();
- if (rs.next()) {
- String accountPassword = rs.getString(1);
- String accountDevice = rs.getString(2);
- if (!accountPassword.equals(password)) {
- return 2;
- }
- if (!accountDevice.equals(device)) {
- return 3;
- }
- return 1;
- } else {
- return 2;
- }
- } catch (SQLException e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(searchStatement);
- databaseConnection.close(rs);
- databaseConnection.release();
- }
- return 4;
- }
- public static void insertPremiumExtract(String playerName, int value, String source) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(1000, PlayerDatabase.class.getSimpleName() + ":" + "2038");
- if (databaseConnection == null) {
- return;
- }
- PreparedStatement selectStatement = null;
- try {
- selectStatement = databaseConnection.prepareStatement("Select dbid, donorpoints, connectedFrom, regSerial, playerMacAdress from clients where playerName = ?;");
- selectStatement.setString(1, playerName);
- ResultSet rs = selectStatement.executeQuery();
- if (rs.next()) {
- int accountID = rs.getInt(1);
- int balance = rs.getInt(2);
- String host = rs.getString(3);
- String serial = rs.getString(4);
- String macAddress = rs.getString(5);
- PremiumExtractDAO premiumExtract = new PremiumExtractDAO(accountID, balance, host, serial, macAddress, ExtractType.INCOME, source, value, 0, 0);
- PassiveDatabaseWorker.addRequest(premiumExtract);
- }
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(selectStatement);
- databaseConnection.release();
- }
- }
- public static int rewardPremiumPoints(int points, String playerName) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(1000, PlayerDatabase.class.getSimpleName() + ":" + "2038");
- if (databaseConnection == null) {
- return -1;
- }
- PreparedStatement updateStatement = null;
- try {
- updateStatement = databaseConnection.prepareStatement("UPDATE clients SET donorPoints = donorPoints + ? WHERE playerName = ?;");
- updateStatement.setInt(1, points);
- updateStatement.setString(2, playerName);
- return updateStatement.executeUpdate();
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(updateStatement);
- databaseConnection.release();
- }
- return 0;
- }
- public static void updatePvPScores(Client c, int pvpScores) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(1000, PlayerDatabase.class.getSimpleName() + ":" + "2296");
- if (databaseConnection == null) {
- return;
- }
- PreparedStatement updateStatement = null;
- try {
- updateStatement = databaseConnection.prepareStatement("INSERT INTO player_killing_score (player_id, pk_score) VALUES(?, ?) ON DUPLICATE KEY UPDATE pk_score = VALUES(pk_score);");
- updateStatement.setInt(1, c.accountID);
- updateStatement.setInt(2, pvpScores);
- updateStatement.executeUpdate();
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(updateStatement);
- databaseConnection.release();
- }
- }
- public static boolean callRoutine(String routineName) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(1000, PlayerDatabase.class.getSimpleName() + ":" + "2317");
- if (databaseConnection == null) {
- return false;
- }
- try {
- databaseConnection.executeQuery("CALL `" + routineName + "`();");
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- databaseConnection.release();
- }
- return false;
- }
- public static int getPvPRank(Client c) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(1000, PlayerDatabase.class.getSimpleName() + ":" + "2333");
- if (databaseConnection == null) {
- return 0;
- }
- PreparedStatement updateStatement = null;
- try {
- updateStatement = databaseConnection.prepareStatement("SELECT rank FROM player_killing_rank WHERE player_id = ?;");
- updateStatement.setInt(1, c.accountID);
- ResultSet rs = updateStatement.executeQuery();
- return rs != null && rs.next() ? rs.getInt(1) : 0;
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(updateStatement);
- databaseConnection.release();
- }
- return 0;
- }
- public static int getPvPScores(Client c, DatabaseConnection databaseConnection) {
- if (databaseConnection == null) {
- databaseConnection = GameDatabase.getActionManager().getConnection(1000, PlayerDatabase.class.getSimpleName() + ":" + "2318");
- }
- if (databaseConnection == null) {
- return 0;
- }
- PreparedStatement updateStatement = null;
- try {
- updateStatement = databaseConnection.prepareStatement("SELECT pk_score FROM player_killing_score WHERE player_id = ?;");
- updateStatement.setInt(1, c.accountID);
- ResultSet rs = updateStatement.executeQuery();
- return rs != null && rs.next() ? rs.getInt(1) : 0;
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(updateStatement);
- databaseConnection.release();
- }
- return 0;
- }
- public static void registerAccountCreation(int playerID, String playerName, long creationTime, String connectedFrom, String playerMacAdress, String regSerial, String systemName) {
- RequestModel requestModel = new RequestModel(null, QueryType.UPDATE, GameDatabase.getActionManager()) {
- @Override
- public PreparedStatement prepareStatement(DatabaseConnection databaseConnection) {
- if (databaseConnection != null) {
- try {
- PreparedStatement statement = databaseConnection.prepareStatement("INSERT INTO account_registration (playerID, playerName, registerDateTime, hostAddress, macAddress, regSerial, systemName) VALUES(?, ?, ?, ?, ?, ?, ?);");
- statement.setInt(1, playerID);
- statement.setString(2, playerName);
- statement.setTimestamp(3, new Timestamp(creationTime));
- statement.setString(4, connectedFrom);
- statement.setString(5, playerMacAdress);
- statement.setString(6, regSerial);
- statement.setString(7, systemName);
- return statement;
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- return null;
- }
- @Override
- public void future() {
- }
- };
- Server.asyncDatabaseWorker.submitModel(requestModel);
- }
- public static void addMoney(int playerID, int amount) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(1000, PlayerDatabase.class.getSimpleName() + ":" + "2444");
- if (databaseConnection == null) {
- return;
- }
- PreparedStatement updateStatement = null;
- try {
- updateStatement = databaseConnection.prepareStatement("INSERT INTO player_definitions (player_id, cash_reward) VALUES(?, ?) ON DUPLICATE KEY UPDATE cash_reward = cash_reward + VALUES(cash_reward);");
- updateStatement.setInt(1, playerID);
- updateStatement.setInt(2, amount);
- updateStatement.executeUpdate();
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(updateStatement);
- databaseConnection.release();
- }
- }
- public static void addPlayerKillingPoints(int playerID, int amount) {
- Client player = PlayerHandler.getClient(playerID);
- if (player != null) {
- player.pkingPoints += amount;
- return;
- }
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(1000, PlayerDatabase.class.getSimpleName() + ":" + "2469");
- if (databaseConnection == null) {
- return;
- }
- PreparedStatement updateStatement = null;
- try {
- updateStatement = databaseConnection.prepareStatement("UPDATE clients c SET pkingPoints = c.pkingPoints + ? WHERE dbid = ?;");
- updateStatement.setInt(1, amount);
- updateStatement.setInt(2, playerID);
- updateStatement.executeUpdate();
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(updateStatement);
- databaseConnection.release();
- }
- }
- public static void addTournamentPoints(int playerID, int amount) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(1000, PlayerDatabase.class.getSimpleName() + ":" + "2488");
- if (databaseConnection == null) {
- return;
- }
- PreparedStatement updateStatement = null;
- try {
- updateStatement = databaseConnection.prepareStatement("INSERT INTO player_definitions (player_id, tournament_points) VALUES(?, ?) ON DUPLICATE KEY UPDATE tournament_points = tournament_points + VALUES(tournament_points);");
- updateStatement.setInt(1, playerID);
- updateStatement.setInt(2, amount);
- updateStatement.executeUpdate();
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(updateStatement);
- databaseConnection.release();
- }
- }
- public static void addPendingAction(int playerID, String actionType, long dateTime) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(1000, PlayerDatabase.class.getSimpleName() + ":" + "2512");
- if (databaseConnection == null) {
- return;
- }
- PreparedStatement updateStatement = null;
- try {
- updateStatement = databaseConnection.prepareStatement("INSERT INTO player_pending_action(player_id, type, date_time) VALUES(?, ?, ?);");
- updateStatement.setInt(1, playerID);
- updateStatement.setString(2, actionType);
- updateStatement.setTimestamp(3, new Timestamp(dateTime));
- updateStatement.executeUpdate();
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(updateStatement);
- databaseConnection.release();
- }
- }
- public static void getPendingActions(Client c, Consumer<List<Tuple<Integer, String>>> dataConsumer) {
- RequestModel requestModel = new RequestModel(c, QueryType.SELECT);
- requestModel.setStatementSupplier(databaseConnection -> {
- PreparedStatement statement = databaseConnection.prepareStatement("SELECT action_id, type FROM player_pending_action WHERE player_id = ? AND date_time <= ?;");
- try {
- statement.setInt(1, c.accountID);
- statement.setTimestamp(2, new Timestamp(System.currentTimeMillis()));
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return statement;
- });
- requestModel.setFuture(rs -> {
- List<Tuple<Integer, String>> pendingActions = new ArrayList<Tuple<Integer, String>>();
- try {
- while (rs.next()) {
- int actionID = rs.getInt(1);
- String actionType = rs.getString(2);
- pendingActions.add(Tuple.of(actionID, actionType));
- }
- } catch (SQLException e) {
- e.printStackTrace();
- }
- if (!pendingActions.isEmpty())
- dataConsumer.accept(pendingActions);
- });
- Server.asyncDatabaseWorker.submitModel(requestModel);
- }
- public static void removePendingActions(List<Integer> actionsID) {
- RequestModel requestModel = new RequestModel(QueryType.UPDATE);
- requestModel.setStatementSupplier(databaseConnection -> {
- String actionTypes = Misc.buildString(actionsID, '\0', ", ");
- return databaseConnection.prepareStatement("DELETE FROM player_pending_action WHERE action_id IN(" + actionTypes + ");");
- });
- Server.asyncDatabaseWorker.submitModel(requestModel);
- }
- public static int getAccountsCreationCount(String playerName, String regSerial, String hostAddress) {
- DatabaseConnection databaseConnection = GameDatabase.getActionManager().getConnection(1000, PlayerDatabase.class.getSimpleName() + ":" + "2575");
- PreparedStatement updateStatement = null;
- try {
- updateStatement = databaseConnection.prepareStatement("SELECT count(*) FROM account_registration WHERE (regSerial = ? || hostAddress = ?) AND playerName != ? AND TIMESTAMPDIFF(HOUR, registerDateTime, NOW()) <= 24;");
- updateStatement.setString(1, regSerial);
- updateStatement.setString(2, hostAddress);
- updateStatement.setString(3, playerName);
- ResultSet rs = updateStatement.executeQuery();
- return rs != null && rs.next() ? rs.getInt(1) : 0;
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- databaseConnection.close(updateStatement);
- databaseConnection.release();
- }
- return 0;
- }
- }
Add Comment
Please, Sign In to add comment