Advertisement
Guest User

Untitled

a guest
Mar 3rd, 2015
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 9.50 KB | None | 0 0
  1. package com.prodigyx.database.impl;
  2.  
  3. import java.sql.ResultSet;
  4. import java.sql.SQLException;
  5. import java.util.Date;
  6.  
  7. import com.mysql.jdbc.PreparedStatement;
  8. import com.prodigyx.database.DatabaseHandler;
  9. import com.prodigyx.game.model.player.Player;
  10. import com.prodigyx.game.model.player.Skills;
  11.  
  12. public class PlayerDataHandler extends DatabaseHandler {
  13.  
  14.     public PlayerDataHandler() {
  15.         super(true);
  16.     }
  17.  
  18.     @Override
  19.     public String[] properties() {
  20.         String[] properties = new String[4];
  21.         return properties;
  22.     }
  23.  
  24.     @SuppressWarnings("resource")
  25.     @Override
  26.     public void execute(Object... params) throws SQLException {
  27.         Player player = (Player) params[0];
  28.         if (player == null)
  29.             return;
  30.  
  31.         String username = player.getUsername().toLowerCase().replaceAll(" ", "_");
  32.         String clanName = (player.getClanManager() != null ? player.getClanName() : "null");
  33.         String gender = (player.getAppearence().isMale() ? "Male" : "Female");
  34.         String adventureLog = "None";
  35.         Date logout_date = new Date();
  36.         player.getSkills();
  37.  
  38.         String selectStatement = "SELECT username FROM characters WHERE username=?";
  39.         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 (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
  40.         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=?";
  41.  
  42.         PreparedStatement preparedSelect = (PreparedStatement) connection.prepareStatement(selectStatement);
  43.         PreparedStatement preparedInsert = (PreparedStatement) connection.prepareStatement(insertStatement);
  44.         PreparedStatement preparedUpdate = (PreparedStatement) connection.prepareStatement(updateStatement);
  45.        
  46.         /* Select character */
  47.         preparedSelect.setString(1, username);
  48.        
  49.         try (ResultSet resultSet = preparedSelect.executeQuery()) {
  50.  
  51.             /* Insert character */
  52.             preparedInsert.setString(1, username);
  53.             preparedInsert.setInt(2, player.getSkills().getCombatLevelWithSummoning());
  54.             preparedInsert.setString(3, gender);
  55.             preparedInsert.setLong(4, System.currentTimeMillis() / 1000L);
  56.             preparedInsert.setString(5, clanName);
  57.             preparedInsert.setString(6, adventureLog);
  58.             preparedInsert.setLong(7, player.getSkills().getTotalExp());
  59.             preparedInsert.setInt(8, player.getSkills().getTotalLevel());
  60.             preparedInsert.setInt(9, Skills.getXPForLevel(Skills.ATTACK));
  61.             preparedInsert.setInt(10, Skills.getXPForLevel(Skills.STRENGTH));
  62.             preparedInsert.setInt(11, Skills.getXPForLevel(Skills.DEFENCE));
  63.             preparedInsert.setInt(12, Skills.getXPForLevel(Skills.HITPOINTS));
  64.             preparedInsert.setInt(13, Skills.getXPForLevel(Skills.RANGE));
  65.             preparedInsert.setInt(14, Skills.getXPForLevel(Skills.PRAYER));
  66.             preparedInsert.setInt(15, Skills.getXPForLevel(Skills.MAGIC));
  67.             preparedInsert.setInt(16, Skills.getXPForLevel(Skills.COOKING));
  68.             preparedInsert.setInt(17, Skills.getXPForLevel(Skills.WOODCUTTING));
  69.             preparedInsert.setInt(18, Skills.getXPForLevel(Skills.FLETCHING));
  70.             preparedInsert.setInt(19, Skills.getXPForLevel(Skills.FISHING));
  71.             preparedInsert.setInt(20, Skills.getXPForLevel(Skills.FIREMAKING));
  72.             preparedInsert.setInt(21, Skills.getXPForLevel(Skills.CRAFTING));
  73.             preparedInsert.setInt(22, Skills.getXPForLevel(Skills.SMITHING));
  74.             preparedInsert.setInt(23, Skills.getXPForLevel(Skills.MINING));
  75.             preparedInsert.setInt(24, Skills.getXPForLevel(Skills.HERBLORE));
  76.             preparedInsert.setInt(25, Skills.getXPForLevel(Skills.AGILITY));
  77.             preparedInsert.setInt(26, Skills.getXPForLevel(Skills.THIEVING));
  78.             preparedInsert.setInt(27, Skills.getXPForLevel(Skills.SLAYER));
  79.             preparedInsert.setInt(28, Skills.getXPForLevel(Skills.FARMING));
  80.             preparedInsert.setInt(29, Skills.getXPForLevel(Skills.RUNECRAFTING));
  81.             preparedInsert.setInt(30, Skills.getXPForLevel(Skills.CONSTRUCTION));
  82.             preparedInsert.setInt(31, Skills.getXPForLevel(Skills.HUNTER));
  83.             preparedInsert.setInt(32, Skills.getXPForLevel(Skills.SUMMONING));
  84.             preparedInsert.setInt(33, Skills.getXPForLevel(Skills.DUNGEONEERING));
  85.             preparedInsert.setInt(34, player.getEquipment().getAuraId());
  86.             preparedInsert.setInt(35, player.getEquipment().getWeaponId());
  87.             preparedInsert.setInt(36, player.getEquipment().getCapeId());
  88.             preparedInsert.setInt(37, player.getEquipment().getGlovesId());
  89.             preparedInsert.setInt(38, player.getEquipment().getHatId());
  90.             preparedInsert.setInt(39, player.getEquipment().getAmuletId());
  91.             preparedInsert.setInt(40, player.getEquipment().getChestId());
  92.             preparedInsert.setInt(41, player.getEquipment().getLegsId());
  93.             preparedInsert.setInt(42, player.getEquipment().getBootsId());
  94.             preparedInsert.setInt(43, player.getEquipment().getShieldId());
  95.             preparedInsert.setInt(44, player.getEquipment().getRingId());
  96.             preparedInsert.setInt(45, player.getEquipment().getAmmoId());
  97.             preparedInsert.setInt(46, player.getEquipment().getAmmoAmount());
  98.  
  99.             /* Update Character */
  100.             preparedUpdate.setString(1, username);
  101.             preparedUpdate.setInt(2, player.getSkills().getCombatLevelWithSummoning());
  102.             preparedUpdate.setString(3, gender);
  103.             preparedUpdate.setLong(4, System.currentTimeMillis() / 1000L);
  104.             preparedUpdate.setString(5, clanName);
  105.             preparedUpdate.setString(6, adventureLog);
  106.             preparedUpdate.setLong(7, player.getSkills().getTotalExp());
  107.             preparedUpdate.setInt(8, player.getSkills().getTotalLevel());
  108.             preparedUpdate.setInt(9, Skills.getXPForLevel(Skills.ATTACK));
  109.             preparedUpdate.setInt(10, Skills.getXPForLevel(Skills.STRENGTH));
  110.             preparedUpdate.setInt(11, Skills.getXPForLevel(Skills.DEFENCE));
  111.             preparedUpdate.setInt(12, Skills.getXPForLevel(Skills.HITPOINTS));
  112.             preparedUpdate.setInt(13, Skills.getXPForLevel(Skills.RANGE));
  113.             preparedUpdate.setInt(14, Skills.getXPForLevel(Skills.PRAYER));
  114.             preparedUpdate.setInt(15, Skills.getXPForLevel(Skills.MAGIC));
  115.             preparedUpdate.setInt(16, Skills.getXPForLevel(Skills.COOKING));
  116.             preparedUpdate.setInt(17, Skills.getXPForLevel(Skills.WOODCUTTING));
  117.             preparedUpdate.setInt(18, Skills.getXPForLevel(Skills.FLETCHING));
  118.             preparedUpdate.setInt(19, Skills.getXPForLevel(Skills.FISHING));
  119.             preparedUpdate.setInt(20, Skills.getXPForLevel(Skills.FIREMAKING));
  120.             preparedUpdate.setInt(21, Skills.getXPForLevel(Skills.CRAFTING));
  121.             preparedUpdate.setInt(22, Skills.getXPForLevel(Skills.SMITHING));
  122.             preparedUpdate.setInt(23, Skills.getXPForLevel(Skills.MINING));
  123.             preparedUpdate.setInt(24, Skills.getXPForLevel(Skills.HERBLORE));
  124.             preparedUpdate.setInt(25, Skills.getXPForLevel(Skills.AGILITY));
  125.             preparedUpdate.setInt(26, Skills.getXPForLevel(Skills.THIEVING));
  126.             preparedUpdate.setInt(27, Skills.getXPForLevel(Skills.SLAYER));
  127.             preparedUpdate.setInt(28, Skills.getXPForLevel(Skills.FARMING));
  128.             preparedUpdate.setInt(29, Skills.getXPForLevel(Skills.RUNECRAFTING));
  129.             preparedUpdate.setInt(30, Skills.getXPForLevel(Skills.CONSTRUCTION));
  130.             preparedUpdate.setInt(31, Skills.getXPForLevel(Skills.HUNTER));
  131.             preparedUpdate.setInt(32, Skills.getXPForLevel(Skills.SUMMONING));
  132.             preparedUpdate.setInt(33, Skills.getXPForLevel(Skills.DUNGEONEERING));
  133.             preparedUpdate.setInt(34, player.getEquipment().getAuraId());
  134.             preparedUpdate.setInt(35, player.getEquipment().getWeaponId());
  135.             preparedUpdate.setInt(36, player.getEquipment().getCapeId());
  136.             preparedUpdate.setInt(37, player.getEquipment().getGlovesId());
  137.             preparedUpdate.setInt(38, player.getEquipment().getHatId());
  138.             preparedUpdate.setInt(39, player.getEquipment().getAmuletId());
  139.             preparedUpdate.setInt(40, player.getEquipment().getChestId());
  140.             preparedUpdate.setInt(41, player.getEquipment().getLegsId());
  141.             preparedUpdate.setInt(42, player.getEquipment().getBootsId());
  142.             preparedUpdate.setInt(43, player.getEquipment().getShieldId());
  143.             preparedUpdate.setInt(44, player.getEquipment().getRingId());
  144.             preparedUpdate.setInt(45, player.getEquipment().getAmmoId());
  145.             preparedUpdate.setInt(46, player.getEquipment().getAmmoAmount());
  146.  
  147.             if (!resultSet.next()) {
  148.                 preparedInsert.executeUpdate();
  149.             } else {
  150.                 preparedUpdate.executeUpdate();
  151.             }
  152.         } catch (SQLException e) {
  153.             System.out.println(e.getMessage());
  154.         }
  155.     }
  156. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement