Hallo.
Ich hab das jetzt so verstanden, dass die Spielerdaten in einer Yml liegen. Ich bin kein Profi, aber für mich liegt nahe, die Spielerdaten beim Hochfahren aus der yml zu laden und das Spielerprofil beispielsweise als Objekt in einer Liste oder Map anzulegen.
zb ein FFAPlayer(UUID uuid, int kills, int deaths, int roundsPlayed) und den entsprechenden Klassenvariablen.
vllt noch eine getScore() methode, die aus kills, deaths und roundsPlayed eben einen Wert errechnet, der dafür steht, wie gut ein Spieler nun ist.
Map<UUID, FFAPlayer> playerProfilesByUuid = new ConcurrentHashMap<>();
//Beim Hochfahren des Plugins alle Spielerprofile aus der yml laden und in Map speichern
//Beim Abfragen der Top10:
List<FFAPlayer> playerProfiles = new ArrayList<>(playerProfilesByUuid.values());
Collections.sort(playerProfiles, Comparator.comparing(FFAPlayer::getScore()));
Das macht aber meine ich nur Sinn, solange alle FFA Runden immer auf dem gleichen Server laufen werden. Wenn es auf einem Minispielserver läuft, der sich nach der Runde resettet und einer von vielen Servern in einem Netzwerk ist, würde man die Daten ja in eine Datenbank legen, die für alle Server gilt. Wenn man zum Beispiel eine MySQL Datenbank nutzt, addiert man jeden Kill asynchron in die Datenbank und kann sich dann mit einem Statement die Top10 Spieler aus der Datenbank holen.