43public final class HighscoreService {
45 private static final Logger logger = LogManager.getLogger(HighscoreService.class);
47 private static final String CONNECTION_STRING =
"jdbc:mysql://45.88.231.118:3306/hiscores";
48 private static final String USERNAME =
"root";
49 private static final String PASSWORD =
"bQ9R#UnPsW5^HLiU9$4LcJvE4%ZwJWLz";
51 public static void saveHighscores(
Player player) {
56 try (Connection connection = DriverManager.getConnection(CONNECTION_STRING, USERNAME, PASSWORD);
57 PreparedStatement dsta = connection.prepareStatement(
"DELETE FROM hs_users WHERE id = ?");
58 PreparedStatement ista = connection.prepareStatement(generateQuery())) {
60 dsta.setInt(1, player.getMemberId());
63 ista.setInt(1, player.getMemberId());
64 ista.setString(2, player.
getName());
65 ista.setInt(3, getRank(player.right));
66 ista.setInt(4, getRank(player.right));
70 ista.setInt(6 + x, player.prestige.
prestige[x]);
74 ista.setLong(30, player.skills.getTotalXp());
81 }
catch (SQLException ex) {
82 logger.error(String.format(
"Failed to save highscores for player=%s", player.
getName()), ex);
96 private static String generateQuery() {
97 StringBuilder sb =
new StringBuilder();
98 sb.append(
"INSERT INTO hs_users (");
100 sb.append(
"username, ");
101 sb.append(
"rights, ");
103 sb.append(
"total_prestiges, ");
104 sb.append(
"attack_prestiges, ");
105 sb.append(
"defence_prestiges, ");
106 sb.append(
"strength_prestiges, ");
107 sb.append(
"hitpoints_prestiges, ");
108 sb.append(
"ranged_prestiges, ");
109 sb.append(
"prayer_prestiges, ");
110 sb.append(
"magic_prestiges, ");
111 sb.append(
"cooking_prestiges, ");
112 sb.append(
"woodcutting_prestiges, ");
113 sb.append(
"fletching_prestiges, ");
114 sb.append(
"fishing_prestiges, ");
115 sb.append(
"firemaking_prestiges, ");
116 sb.append(
"crafting_prestiges, ");
117 sb.append(
"smithing_prestiges, ");
118 sb.append(
"mining_prestiges, ");
119 sb.append(
"herblore_prestiges, ");
120 sb.append(
"agility_prestiges, ");
121 sb.append(
"thieving_prestiges, ");
122 sb.append(
"slayer_prestiges, ");
123 sb.append(
"farming_prestiges, ");
124 sb.append(
"runecrafting_prestiges, ");
125 sb.append(
"hunter_prestiges, ");
126 sb.append(
"construction_prestiges,");
127 sb.append(
"total_level, ");
128 sb.append(
"overall_xp, ");
129 sb.append(
"attack_xp, ");
130 sb.append(
"defence_xp, ");
131 sb.append(
"strength_xp, ");
132 sb.append(
"hitpoints_xp, ");
133 sb.append(
"ranged_xp, ");
134 sb.append(
"prayer_xp, ");
135 sb.append(
"magic_xp, ");
136 sb.append(
"cooking_xp, ");
137 sb.append(
"woodcutting_xp, ");
138 sb.append(
"fletching_xp, ");
139 sb.append(
"fishing_xp, ");
140 sb.append(
"firemaking_xp, ");
141 sb.append(
"crafting_xp, ");
142 sb.append(
"smithing_xp, ");
143 sb.append(
"mining_xp, ");
144 sb.append(
"herblore_xp, ");
145 sb.append(
"agility_xp, ");
146 sb.append(
"thieving_xp, ");
147 sb.append(
"slayer_xp, ");
148 sb.append(
"farming_xp, ");
149 sb.append(
"runecrafting_xp, ");
150 sb.append(
"hunter_xp, ");
151 sb.append(
"construction_xp)");
152 sb.append(
"VALUES (" +
153 "?, ?, ?, ?, ?, ?, ?, ?, ?, ?, " +
154 "?, ?, ?, ?, ?, ?, ?, ?, ?, ?, " +
155 "?, ?, ?, ?, ?, ?, ?, ?, ?, ?, " +
156 "?, ?, ?, ?, ?, ?, ?, ?, ?, ?, " +
157 "?, ?, ?, ?, ?, ?, ?, ?, ?, ?, " +
159 return sb.toString();
162 private HighscoreService() {