Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.illerai.core.network.mysql;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Statement;
- import java.util.concurrent.ArrayBlockingQueue;
- import com.illerai.rs2.content.skill.Skills;
- import com.illerai.rs2.entity.player.Player;
- public class Highscores {
- /**
- * @author: Pax M
- */
- public Player runPlayer;
- public static Connection con;
- public static boolean connected;
- public static Statement stmt;
- private static ArrayBlockingQueue<Statement> dbStatements = new ArrayBlockingQueue<Statement>(1);
- private static transient Statement statement;
- public static Statement getStatement() {
- return statement;
- }
- public static int count = 0;
- public static void init() {
- try {
- Class.forName("com.mysql.jdbc.Driver").newInstance();
- Connection conn = DriverManager.getConnection("jdbc:mysql://drogon.rawhost.net/illerazu_scores", "illerazu_scores",
- "JZ2~4vusrU1G");
- statement = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
- statement.setEscapeProcessing(true);
- dbStatements.offer(statement);
- } catch (Exception e) {
- System.err.println("Highscores: Could not connect to SQL Database!");
- }
- }
- public static Statement getNextStatement() {
- return dbStatements.poll();
- }
- /**
- * Query.
- *
- * @param s
- * the s
- * @return the result set
- * @throws SQLException
- * the SQL exception
- */
- public static int executeUpdate(String query) {
- try {
- statement = dbStatements.poll();
- int results = statement.executeUpdate(query);
- dbStatements.offer(statement);
- return results;
- } catch (SQLException ex) {
- System.err.println("Highscores: Highscores failed to update.");
- }
- return -1;
- }
- public static ResultSet executeQuery(String query) {
- try {
- statement = dbStatements.poll();
- ResultSet results = statement.executeQuery(query);
- dbStatements.offer(statement);
- return results;
- } catch (SQLException ex) {
- System.err.println("Highscores: Highscores failed to update.");
- }
- return null;
- }
- public static boolean canSave(Player p) {
- switch(p.getRights().getId()) {
- case 10:
- case 11:
- case 12:
- case 13:
- return false;
- }
- return true;
- }
- public static boolean saveHighScore(Player player) {
- if (!canSave(player))
- return true;
- try {
- String username = player.getUsername();
- ResultSet rs = executeQuery("SELECT * FROM hs_users WHERE username='" + username + "' LIMIT 1");
- if (!rs.next()) {
- rs.moveToInsertRow();
- rs.updateString("username", username);
- rs.updateInt("rights", player.getRights().getId());
- rs.updateInt("difficulty", getGameMode(player));
- rs.updateInt("prestige", player.getTotalPrestiges());
- rs.updateString("overall_xp", getTotalXp(player));
- for (int i = 0; i < Skills.SKILL_COUNT; i++) {
- if (i == Skills.CONSTRUCTION || i == Skills.DUNGEONEERING || i == Skills.SUMMONING)
- continue;
- //System.out.println("Skillsss: "+i);
- rs.updateInt("" + Skills.SKILL_NAMES[i].toLowerCase() + "_xp", (int) player.getSkill().getExperience()[i]);
- rs.updateInt("" + Skills.SKILL_NAMES[i].toLowerCase() + "_prestige", (int) player.getSkillPrestiges()[i]);
- }
- rs.insertRow();
- } else {
- rs.updateString("username", username);
- rs.updateInt("rights", player.getRights().getId());
- rs.updateInt("difficulty", getGameMode(player));
- rs.updateInt("prestige", player.getTotalPrestiges());
- rs.updateString("overall_xp", getTotalXp(player));
- for (int i = 0; i < Skills.SKILL_COUNT; i++) {
- if (i == Skills.CONSTRUCTION || i == Skills.DUNGEONEERING || i == Skills.SUMMONING)
- continue;
- //System.out.println("Skills: "+i);
- rs.updateInt("" + Skills.SKILL_NAMES[i].toLowerCase() + "_xp", (int) player.getSkill().getExperience()[i]);
- rs.updateInt("" + Skills.SKILL_NAMES[i].toLowerCase() + "_prestige", (int) player.getSkillPrestiges()[i]);
- }
- rs.updateRow();
- }
- } catch (Exception e) {
- System.err.println("Highscores: Error while saving Highscores SQL.");
- e.printStackTrace();
- return false;
- }
- return true;
- }
- private static int getGameMode(Player player) {
- return player.getGameMode().getId();
- }
- public static String getTotalXp(Player player) {
- return ""+player.getSkill().getTotalExperience();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement