@@ -130,81 +130,30 @@ public CompletableFuture<Void> runScript(InputStream inputStream,
130130 }
131131
132132 @ Override
133- public CompletableFuture <Void > ensureUser (Player player ) {
134- return CompletableFuture .runAsync (
135- () -> getPitPlayer (player .getPlayer ()).thenAccept (optionalUser ->
136- optionalUser .ifPresentOrElse (existingUser -> {
137- if (!existingUser .getName ().equals (player .getName ())) {
138- // Update a player's name if it has changed in the database
139- try {
140- try (PreparedStatement statement = getConnection ().prepareStatement (
141- formatStatementTables ("""
142- UPDATE `%players_table%`
143- SET `username`=?
144- WHERE `uuid`=?""" ))) {
145-
146- statement .setString (1 , player .getName ());
147- statement .setString (2 , player .getUniqueId ().toString ());
148- statement .executeUpdate ();
149- }
150- getLogger ().log (Level .INFO ,
151- "Updated " + player .getName () + "'s name in the database ("
152- + existingUser .getName () + " -> " + player .getName () + ")" );
153- } catch (SQLException e ) {
154- getLogger ().log (Level .SEVERE ,
155- "Failed to update a player's name on the database" ,
156- e );
157- }
158- }
159- },
160- () -> {
161- // Insert new player data into the database
162- try {
163- try (PreparedStatement statement = getConnection ().prepareStatement (
164- formatStatementTables ("""
165- INSERT INTO `%players_table%` (`uuid`,`username`)
166- VALUES (?,?);""" ))) {
167-
168- statement .setString (1 , player .getUniqueId ().toString ());
169- statement .setString (2 , player .getName ());
170- statement .executeUpdate ();
171- }
172- } catch (SQLException e ) {
173- getLogger ().log (Level .SEVERE ,
174- "Failed to insert a player into the database" , e );
175- }
176- })));
177- }
178-
179- @ Override
180- public CompletableFuture <Optional <PitPlayer >> getPitPlayer (Player player ) {
181- return CompletableFuture .supplyAsync (() -> {
182- try {
183- try (PreparedStatement statement = getConnection ().prepareStatement (
184- formatStatementTables ("""
185- SELECT `kills`, `streaks`, `deaths`, `rating`, `xp`
186- FROM `%players_table%`
187- WHERE `uuid`=?""" ))) {
188-
189- statement .setString (1 , player .getUniqueId ().toString ());
190-
191- final ResultSet resultSet = statement .executeQuery ();
192- if (resultSet .next ()) {
193- return Optional .of (new PitPlayer (player ,
194- resultSet .getLong ("kills" ),
195- resultSet .getLong ("streaks" ),
196- resultSet .getLong ("deaths" ),
197- resultSet .getDouble ("rating" ),
198- resultSet .getDouble ("xp" )
199- ));
200- }
201- }
202- } catch (SQLException e ) {
203- getLogger ().log (Level .SEVERE ,
204- "Failed to fetch a player from uuid from the database" , e );
133+ public Optional <PitPlayer > getPitPlayer (Player player ) {
134+ try (PreparedStatement statement = getConnection ().prepareStatement (
135+ formatStatementTables ("""
136+ SELECT `kills`, `streaks`, `deaths`, `rating`, `xp`
137+ FROM `%players_table%`
138+ WHERE `uuid`=?""" ))) {
139+
140+ statement .setString (1 , player .getUniqueId ().toString ());
141+
142+ final ResultSet resultSet = statement .executeQuery ();
143+ if (resultSet .next ()) {
144+ return Optional .of (new PitPlayer (player ,
145+ resultSet .getLong ("kills" ),
146+ resultSet .getLong ("streaks" ),
147+ resultSet .getLong ("deaths" ),
148+ resultSet .getDouble ("rating" ),
149+ resultSet .getDouble ("xp" )
150+ ));
205151 }
206- return Optional .empty ();
207- });
152+ } catch (SQLException e ) {
153+ getLogger ().log (Level .SEVERE ,
154+ "Failed to fetch a player from uuid from the database" , e );
155+ }
156+ return Optional .empty ();
208157 }
209158
210159 @ Override
@@ -235,28 +184,46 @@ SELECT RANK() OVER(ORDER BY ? DESC)
235184 }
236185
237186 @ Override
238- public CompletableFuture <Void > updateUserData (PitPlayer player ) {
239- return CompletableFuture .runAsync (() -> {
240- try {
241- try (PreparedStatement statement = getConnection ().prepareStatement (
242- formatStatementTables ("""
243- UPDATE `%players_table%`
244- SET `kills`=?, `streaks`=?, `deaths`=?, `rating`=?, `xp`=?
245- WHERE `uuid`=?""" ))) {
187+ public void createPitPlayer (Player player ) {
188+ // Insert new player data into the database
189+ try {
190+ try (PreparedStatement statement = getConnection ().prepareStatement (
191+ formatStatementTables ("""
192+ INSERT INTO `%players_table%` (`uuid`,`username`)
193+ VALUES (?,?);""" ))) {
246194
247- statement .setLong (1 , player .getKills ());
248- statement .setLong (2 , player .getStreaks ());
249- statement .setLong (3 , player .getDeaths ());
250- statement .setDouble (4 , player .getRating ());
251- statement .setDouble (5 , player .getXp ());
252- statement .setString (6 , player .getUniqueId ().toString ());
253- statement .executeUpdate ();
254- }
255- } catch (SQLException e ) {
256- getLogger ().log (Level .SEVERE ,
257- "Failed to update user data for " + player .getName () + " on the database" , e );
195+ statement .setString (1 , player .getUniqueId ().toString ());
196+ statement .setString (2 , player .getName ());
197+ statement .executeUpdate ();
258198 }
259- });
199+ } catch (SQLException e ) {
200+ getLogger ().log (Level .SEVERE ,
201+ "Failed to insert a player into the database" , e );
202+ }
203+ }
204+
205+ @ Override
206+ public void updateUserData (PitPlayer player ) {
207+ try {
208+ try (PreparedStatement statement = getConnection ().prepareStatement (
209+ formatStatementTables ("""
210+ UPDATE `%players_table%`
211+ SET `kills`=?, `streaks`=?, `deaths`=?, `rating`=?, `xp`=?
212+ WHERE `uuid`=?""" ))) {
213+
214+ statement .setLong (1 , player .getKills ());
215+ statement .setLong (2 , player .getStreaks ());
216+ statement .setLong (3 , player .getDeaths ());
217+ statement .setDouble (4 , player .getRating ());
218+ statement .setDouble (5 , player .getXp ());
219+ statement .setString (6 , player .getUniqueId ().toString ());
220+ statement .executeUpdate ();
221+ }
222+
223+ } catch (SQLException e ) {
224+ getLogger ().log (Level .SEVERE ,
225+ "Failed to update user data for " + player .getName () + " on the database" , e );
226+ }
260227 }
261228
262229 @ Override
0 commit comments