Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package server.util;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Statement;
- import server.model.players.Client;
- import server.Config;
- /**
- * HiscoreManager Class
- * @author Ian
- *
- */
- public class HiscoreManager implements Runnable {
- /** MySQL Connection */
- private static Connection conn = null;
- private static Statement statement = null;
- private static ResultSet results = null;
- private static Thread thread = null;
- public static boolean databaseRunning = true;
- public static boolean databaseConnected = false;
- public HiscoreManager() {
- try {
- databaseRunning = true;
- databaseConnected = false;
- conn = null;
- thread = new Thread(this);
- thread.start();
- } catch(Exception e) {
- }
- }
- /**
- * Creates a Connection to the MySQL Database
- */
- public static void createConnection() {
- try {
- if(!databaseConnected && databaseRunning) {
- Class.forName("com.mysql.jdbc.Driver").newInstance();
- conn = DriverManager.getConnection("jdbc:mysql://217.20.116.52/impactpk_highscore", "impactpk_impact", "skater6");
- statement = conn.createStatement();
- if(!databaseConnected)
- System.out.println("Connected to MYSQL hiscore database...");
- databaseConnected = true;
- databaseRunning = true;
- }
- } catch (Exception e) {
- disableDatabase();
- }
- }
- public static boolean testConnect() {
- boolean connected = false;
- try {
- Class.forName("com.mysql.jdbc.Driver").newInstance();
- conn = DriverManager.getConnection("jdbc:mysql://217.20.116.52/impactpk_highscore", "impactpk_impact", "skater6");
- statement = conn.createStatement();
- connected = true;
- } catch(Exception e) {
- }
- if(connected) {
- statement = null;
- conn = null;
- return true;
- }
- return false;
- }
- private static void destroyConnection() {
- try {
- statement.close();
- conn.close();
- } catch (Exception e) {
- disableDatabase();
- }
- }
- private static ResultSet query(String s) throws SQLException {
- try {
- if (s.toLowerCase().startsWith("select")) {
- ResultSet rs = statement.executeQuery(s);
- return rs;
- } else {
- statement.executeUpdate(s);
- }
- return null;
- } catch (Exception e) {
- destroyConnection();
- }
- return null;
- }
- public static void disableDatabase() {
- boolean connect = databaseConnected;
- boolean run = databaseRunning;
- if(run) {
- System.out.println("Disconnected from MYSQL hiscore database...");
- databaseRunning = false;
- if(connect)
- databaseConnected = false;
- }
- }
- public synchronized static boolean saveHiscores(Client clientToSave) {
- if(databaseRunning) {
- try {
- createConnection();
- query("DELETE FROM `skills` WHERE playerName = '"+clientToSave.playerName+"';");
- query("DELETE FROM `skillsoverall` WHERE playerName = '"+clientToSave.playerName+"';");
- query("INSERT INTO `skills` (`playerName`,`Attacklvl`,`Attackxp`,`Defencelvl`,`Defencexp`,`Strengthlvl`,`Strengthxp`,`Hitpointslvl`,`Hitpointsxp`,`Rangelvl`,`Rangexp`,`Prayerlvl`,`Prayerxp`,`Magiclvl`,`Magicxp`,`Cookinglvl`,`Cookingxp`,`Woodcuttinglvl`,`Woodcuttingxp`,`Fletchinglvl`,`Fletchingxp`,`Fishinglvl`,`Fishingxp`,`Firemakinglvl`,`Firemakingxp`,`Craftinglvl`,`Craftingxp`,`Smithinglvl`,`Smithingxp`,`Mininglvl`,`Miningxp`,`Herblorelvl`,`Herblorexp`,`Agilitylvl`,`Agilityxp`,`Thievinglvl`,`Thievingxp`,`Slayerlvl`,`Slayerxp`,`Farminglvl`,`Farmingxp`,`Runecraftlvl`,`Runecraftxp`) VALUES ('"+clientToSave.playerName+"',"+clientToSave.playerLevel[0]+","+clientToSave.playerXP[0]+","+clientToSave.playerLevel[1]+","+clientToSave.playerXP[1]+","+clientToSave.playerLevel[2]+","+clientToSave.playerXP[2]+","+clientToSave.playerLevel[3]+","+clientToSave.playerXP[3]+","+clientToSave.playerLevel[4]+","+clientToSave.playerXP[4]+","+clientToSave.playerLevel[5]+","+clientToSave.playerXP[5]+","+clientToSave.playerLevel[6]+","+clientToSave.playerXP[6]+","+clientToSave.playerLevel[7]+","+clientToSave.playerXP[7]+","+clientToSave.playerLevel[8]+","+clientToSave.playerXP[8]+","+clientToSave.playerLevel[9]+","+clientToSave.playerXP[9]+","+clientToSave.playerLevel[10]+","+clientToSave.playerXP[10]+","+clientToSave.playerLevel[11]+","+clientToSave.playerXP[11]+","+clientToSave.playerLevel[12]+","+clientToSave.playerXP[12]+","+clientToSave.playerLevel[13]+","+clientToSave.playerXP[13]+","+clientToSave.playerLevel[14]+","+clientToSave.playerXP[14]+","+clientToSave.playerLevel[15]+","+clientToSave.playerXP[15]+","+clientToSave.playerLevel[16]+","+clientToSave.playerXP[16]+","+clientToSave.playerLevel[17]+","+clientToSave.playerXP[17]+","+clientToSave.playerLevel[18]+","+clientToSave.playerXP[18]+","+clientToSave.playerLevel[19]+","+clientToSave.playerXP[19]+","+clientToSave.playerLevel[20]+","+clientToSave.playerXP[20]+");");
- query("INSERT INTO `skillsoverall` (`playerName`,`lvl`,`xp`) VALUES ('"+clientToSave.playerName+"',"+(clientToSave.getPA().getTotalLevel())+","+((clientToSave.getPA().getTotalXp()))+");");
- destroyConnection();
- return true;
- } catch (Exception e) {
- return false;
- }
- }
- return false;
- }
- public void run() {
- boolean run = Config.HISCORE_MYSQL;
- while(run) {
- try {
- if(conn == null && databaseRunning) {
- databaseConnected = false;
- createConnection();
- }
- if(!databaseRunning && testConnect()) {
- databaseRunning = true;
- createConnection();
- }
- Thread.sleep(10000);
- } catch(Exception e) {
- e.printStackTrace();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement