@@ -285,9 +285,75 @@ public BedwarsExpansion() {
285285 }
286286 }
287287
288+ if (identifier .startsWith ("leaderboard_score_" )) {
289+ if (!PlayerStatisticManager .isEnabled ()) {
290+ return null ;
291+ }
292+
293+ String remainder = identifier .substring (18 );
294+ String [] split = remainder .split ("_" , 2 );
295+ if (split .length != 2 ) {
296+ return null ;
297+ }
298+
299+ int index ;
300+ try {
301+ index = Integer .parseInt (split [0 ]);
302+ } catch (NumberFormatException e ) {
303+ return null ;
304+ }
305+
306+ index --; // 1 -> 0
307+ if (index < 0 ) {
308+ return null ;
309+ }
310+
311+ var entry = PlayerStatisticManager .getInstance ().getLeaderboardEntry (index );
312+
313+ if (entry == null ) {
314+ switch (split [1 ].toLowerCase (Locale .ROOT )) {
315+ case "uuid" :
316+ case "name" :
317+ return Component .text ("---" );
318+ case "score" :
319+ case "deaths" :
320+ case "destroyed_beds" :
321+ case "kills" :
322+ case "loses" :
323+ case "wins" :
324+ case "games" :
325+ case "kd" :
326+ return Component .text ("0" );
327+ }
328+ } else {
329+ switch (split [1 ].toLowerCase (Locale .ROOT )) {
330+ case "uuid" :
331+ return Component .text (entry .getPlayer ().getUuid ().toString ());
332+ case "name" :
333+ return Component .text (entry .getLastKnownName () != null ? entry .getLastKnownName () : entry .getPlayer ().getUuid ().toString ());
334+ case "score" :
335+ return Component .text (entry .getTotalScore ());
336+ case "deaths" :
337+ return Component .text (entry .fetchStatistics ().getDeaths ());
338+ case "destroyed_beds" :
339+ return Component .text (entry .fetchStatistics ().getDestroyedBeds ());
340+ case "kills" :
341+ return Component .text (entry .fetchStatistics ().getKills ());
342+ case "loses" :
343+ return Component .text (entry .fetchStatistics ().getLoses ());
344+ case "wins" :
345+ return Component .text (entry .fetchStatistics ().getWins ());
346+ case "games" :
347+ return Component .text (entry .fetchStatistics ().getGames ());
348+ case "kd" :
349+ return Component .text (entry .fetchStatistics ().getKD ());
350+ }
351+ }
352+ }
353+
288354 // Player
289355 if (player == null ) {
290- return Component . empty () ;
356+ return null ;
291357 }
292358
293359 if (identifier .startsWith ("current_" )) {
0 commit comments