Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.prodigyx.database.impl;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.util.Date;
- import com.mysql.jdbc.PreparedStatement;
- import com.prodigyx.database.DatabaseHandler;
- import com.prodigyx.game.model.player.Player;
- import com.prodigyx.game.model.player.Skills;
- public class PlayerDataHandler extends DatabaseHandler {
- public PlayerDataHandler() {
- super(true);
- }
- @Override
- public String[] properties() {
- String[] properties = new String[4];
- return properties;
- }
- @SuppressWarnings("resource")
- @Override
- public void execute(Object... params) throws SQLException {
- Player player = (Player) params[0];
- if (player == null)
- return;
- String username = player.getUsername().toLowerCase().replaceAll(" ", "_");
- String clanName = (player.getClanManager() != null ? player.getClanName() : "null");
- String gender = (player.getAppearence().isMale() ? "Male" : "Female");
- String adventureLog = "None";
- Date logout_date = new Date();
- player.getSkills();
- String selectStatement = "SELECT username FROM characters WHERE username=?";
- String insertStatement = "INSERT INTO characters (username, level, gender, last_logout, clanName, adventureLog, overall_xp, overall_level, " + "attack_xp, strength_xp, defence_xp, constitution_xp, ranged_xp, prayer_xp, magic_xp, cooking_xp, woodcutting_xp, fletching_xp, fishing_xp, " + "firemaking_xp, crafting_xp, smithing_xp, mining_xp, herblore_xp, agility_xp, thieving_xp, slayer_xp, farming_xp, runecrafting_xp, construction_xp, " + "hunter_xp, summoning_xp, dungeoneering_xp, equipment_auraId, equipment_weaponId, equipment_capeId, equipment_glovesId, equipment_helmId, equipment_amuletId, " + "equipment_bodyId, equipment_legsId, equipment_bootsId, equipment_shieldId, equipment_ringId, equipment_arrowId, equipment_arrowAmount) " + "values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
- String updateStatement = "UPDATE characters SET username=?, level=?, gender=?, last_logout=?, clanName=?, adventureLog=?, overall_xp=?, overall_level=?, " + "attack_xp=?, strength_xp=?, defence_xp=?, constitution_xp=?, ranged_xp=?, prayer_xp=?, magic_xp=?, cooking_xp=?, woodcutting_xp=?, fletching_xp=?, fishing_xp=?, " + "firemaking_xp=?, crafting_xp=?, smithing_xp=?, mining_xp=?, herblore_xp=?, agility_xp=?, thieving_xp=?, slayer_xp=?, farming_xp=?, runecrafting_xp=?, construction_xp=?, " + "hunter_xp=?, summoning_xp=?, dungeoneering_xp=?, equipment_auraId=?, equipment_weaponId=?, equipment_capeId=?, equipment_glovesId=?, equipment_helmId=?, equipment_amuletId=?, " + "equipment_bodyId=?, equipment_legsId=?, equipment_bootsId=?, equipment_shieldId=?, equipment_ringId=?, equipment_arrowId=?, equipment_arrowAmount=? WHERE username=?";
- PreparedStatement preparedSelect = (PreparedStatement) connection.prepareStatement(selectStatement);
- PreparedStatement preparedInsert = (PreparedStatement) connection.prepareStatement(insertStatement);
- PreparedStatement preparedUpdate = (PreparedStatement) connection.prepareStatement(updateStatement);
- /* Select character */
- preparedSelect.setString(1, username);
- try (ResultSet resultSet = preparedSelect.executeQuery()) {
- /* Insert character */
- preparedInsert.setString(1, username);
- preparedInsert.setInt(2, player.getSkills().getCombatLevelWithSummoning());
- preparedInsert.setString(3, gender);
- preparedInsert.setLong(4, System.currentTimeMillis() / 1000L);
- preparedInsert.setString(5, clanName);
- preparedInsert.setString(6, adventureLog);
- preparedInsert.setLong(7, player.getSkills().getTotalExp());
- preparedInsert.setInt(8, player.getSkills().getTotalLevel());
- preparedInsert.setInt(9, Skills.getXPForLevel(Skills.ATTACK));
- preparedInsert.setInt(10, Skills.getXPForLevel(Skills.STRENGTH));
- preparedInsert.setInt(11, Skills.getXPForLevel(Skills.DEFENCE));
- preparedInsert.setInt(12, Skills.getXPForLevel(Skills.HITPOINTS));
- preparedInsert.setInt(13, Skills.getXPForLevel(Skills.RANGE));
- preparedInsert.setInt(14, Skills.getXPForLevel(Skills.PRAYER));
- preparedInsert.setInt(15, Skills.getXPForLevel(Skills.MAGIC));
- preparedInsert.setInt(16, Skills.getXPForLevel(Skills.COOKING));
- preparedInsert.setInt(17, Skills.getXPForLevel(Skills.WOODCUTTING));
- preparedInsert.setInt(18, Skills.getXPForLevel(Skills.FLETCHING));
- preparedInsert.setInt(19, Skills.getXPForLevel(Skills.FISHING));
- preparedInsert.setInt(20, Skills.getXPForLevel(Skills.FIREMAKING));
- preparedInsert.setInt(21, Skills.getXPForLevel(Skills.CRAFTING));
- preparedInsert.setInt(22, Skills.getXPForLevel(Skills.SMITHING));
- preparedInsert.setInt(23, Skills.getXPForLevel(Skills.MINING));
- preparedInsert.setInt(24, Skills.getXPForLevel(Skills.HERBLORE));
- preparedInsert.setInt(25, Skills.getXPForLevel(Skills.AGILITY));
- preparedInsert.setInt(26, Skills.getXPForLevel(Skills.THIEVING));
- preparedInsert.setInt(27, Skills.getXPForLevel(Skills.SLAYER));
- preparedInsert.setInt(28, Skills.getXPForLevel(Skills.FARMING));
- preparedInsert.setInt(29, Skills.getXPForLevel(Skills.RUNECRAFTING));
- preparedInsert.setInt(30, Skills.getXPForLevel(Skills.CONSTRUCTION));
- preparedInsert.setInt(31, Skills.getXPForLevel(Skills.HUNTER));
- preparedInsert.setInt(32, Skills.getXPForLevel(Skills.SUMMONING));
- preparedInsert.setInt(33, Skills.getXPForLevel(Skills.DUNGEONEERING));
- preparedInsert.setInt(34, player.getEquipment().getAuraId());
- preparedInsert.setInt(35, player.getEquipment().getWeaponId());
- preparedInsert.setInt(36, player.getEquipment().getCapeId());
- preparedInsert.setInt(37, player.getEquipment().getGlovesId());
- preparedInsert.setInt(38, player.getEquipment().getHatId());
- preparedInsert.setInt(39, player.getEquipment().getAmuletId());
- preparedInsert.setInt(40, player.getEquipment().getChestId());
- preparedInsert.setInt(41, player.getEquipment().getLegsId());
- preparedInsert.setInt(42, player.getEquipment().getBootsId());
- preparedInsert.setInt(43, player.getEquipment().getShieldId());
- preparedInsert.setInt(44, player.getEquipment().getRingId());
- preparedInsert.setInt(45, player.getEquipment().getAmmoId());
- preparedInsert.setInt(46, player.getEquipment().getAmmoAmount());
- /* Update Character */
- preparedUpdate.setString(1, username);
- preparedUpdate.setInt(2, player.getSkills().getCombatLevelWithSummoning());
- preparedUpdate.setString(3, gender);
- preparedUpdate.setLong(4, System.currentTimeMillis() / 1000L);
- preparedUpdate.setString(5, clanName);
- preparedUpdate.setString(6, adventureLog);
- preparedUpdate.setLong(7, player.getSkills().getTotalExp());
- preparedUpdate.setInt(8, player.getSkills().getTotalLevel());
- preparedUpdate.setInt(9, Skills.getXPForLevel(Skills.ATTACK));
- preparedUpdate.setInt(10, Skills.getXPForLevel(Skills.STRENGTH));
- preparedUpdate.setInt(11, Skills.getXPForLevel(Skills.DEFENCE));
- preparedUpdate.setInt(12, Skills.getXPForLevel(Skills.HITPOINTS));
- preparedUpdate.setInt(13, Skills.getXPForLevel(Skills.RANGE));
- preparedUpdate.setInt(14, Skills.getXPForLevel(Skills.PRAYER));
- preparedUpdate.setInt(15, Skills.getXPForLevel(Skills.MAGIC));
- preparedUpdate.setInt(16, Skills.getXPForLevel(Skills.COOKING));
- preparedUpdate.setInt(17, Skills.getXPForLevel(Skills.WOODCUTTING));
- preparedUpdate.setInt(18, Skills.getXPForLevel(Skills.FLETCHING));
- preparedUpdate.setInt(19, Skills.getXPForLevel(Skills.FISHING));
- preparedUpdate.setInt(20, Skills.getXPForLevel(Skills.FIREMAKING));
- preparedUpdate.setInt(21, Skills.getXPForLevel(Skills.CRAFTING));
- preparedUpdate.setInt(22, Skills.getXPForLevel(Skills.SMITHING));
- preparedUpdate.setInt(23, Skills.getXPForLevel(Skills.MINING));
- preparedUpdate.setInt(24, Skills.getXPForLevel(Skills.HERBLORE));
- preparedUpdate.setInt(25, Skills.getXPForLevel(Skills.AGILITY));
- preparedUpdate.setInt(26, Skills.getXPForLevel(Skills.THIEVING));
- preparedUpdate.setInt(27, Skills.getXPForLevel(Skills.SLAYER));
- preparedUpdate.setInt(28, Skills.getXPForLevel(Skills.FARMING));
- preparedUpdate.setInt(29, Skills.getXPForLevel(Skills.RUNECRAFTING));
- preparedUpdate.setInt(30, Skills.getXPForLevel(Skills.CONSTRUCTION));
- preparedUpdate.setInt(31, Skills.getXPForLevel(Skills.HUNTER));
- preparedUpdate.setInt(32, Skills.getXPForLevel(Skills.SUMMONING));
- preparedUpdate.setInt(33, Skills.getXPForLevel(Skills.DUNGEONEERING));
- preparedUpdate.setInt(34, player.getEquipment().getAuraId());
- preparedUpdate.setInt(35, player.getEquipment().getWeaponId());
- preparedUpdate.setInt(36, player.getEquipment().getCapeId());
- preparedUpdate.setInt(37, player.getEquipment().getGlovesId());
- preparedUpdate.setInt(38, player.getEquipment().getHatId());
- preparedUpdate.setInt(39, player.getEquipment().getAmuletId());
- preparedUpdate.setInt(40, player.getEquipment().getChestId());
- preparedUpdate.setInt(41, player.getEquipment().getLegsId());
- preparedUpdate.setInt(42, player.getEquipment().getBootsId());
- preparedUpdate.setInt(43, player.getEquipment().getShieldId());
- preparedUpdate.setInt(44, player.getEquipment().getRingId());
- preparedUpdate.setInt(45, player.getEquipment().getAmmoId());
- preparedUpdate.setInt(46, player.getEquipment().getAmmoAmount());
- if (!resultSet.next()) {
- preparedInsert.executeUpdate();
- } else {
- preparedUpdate.executeUpdate();
- }
- } catch (SQLException e) {
- System.out.println(e.getMessage());
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement