Ajouts de deux mode de leaderboard

This commit is contained in:
2024-11-23 16:03:08 +01:00
parent 42c52e011c
commit 35bb9dfec4
11 changed files with 395 additions and 3 deletions

View File

@@ -1,11 +1,14 @@
package fr.monkhanny.dorfromantik.utils;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.PreparedStatement;
import java.util.ArrayList;
import java.util.List;
public class Database {
// Chargement des variables d'environnement
@@ -102,6 +105,29 @@ public class Database {
}
/**
* Récupère les meilleurs scores des joueurs (limite de 10 scores)
* @return une liste de résultats sous forme de tableau d'objets contenant le nom du joueur et son score
*/
public List<PlayerScore> getTopPlayers() throws SQLException {
List<PlayerScore> topPlayers = new ArrayList<>();
String query = "SELECT username, score FROM Scores ORDER BY score DESC LIMIT 10";
try (Statement stmt = this.database.createStatement();
ResultSet rs = stmt.executeQuery(query)) {
while (rs.next()) {
String username = rs.getString("username");
if (username == null || username.trim().isEmpty()) {
username = "Joueur Anonyme"; // Remplacer par "Joueur Anonyme" si le pseudo est vide ou nul
}
int score = rs.getInt("score");
topPlayers.add(new PlayerScore(username, score));
}
}
return topPlayers;
}
public void close() {
try {