From aceb39a3202238ea40b00e53a29566b293af1283 Mon Sep 17 00:00:00 2001 From: mallusrgreat Date: Tue, 20 Jan 2026 18:10:50 +0530 Subject: [PATCH] Fetch only 10 leaderboard entries in SQLite Fix by aqua_k1ght on the Discord server. --- .../providers/database/impl/SQLiteDatabase.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/database/impl/SQLiteDatabase.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/database/impl/SQLiteDatabase.java index a5e568cd..c6f37fee 100644 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/database/impl/SQLiteDatabase.java +++ b/Plugin/src/main/java/dev/lrxh/neptune/providers/database/impl/SQLiteDatabase.java @@ -143,10 +143,18 @@ public CompletableFuture replace(String playerUUID, DataDocument newDocume @Override public CompletableFuture> getAllByKitType(String kitName, String type) { - String sql = "SELECT data FROM playerData " + - "WHERE json_extract(data, '$.kitData.\"" + kitName + "\"." + type + "') IS NOT NULL " + - "AND json_extract(data, '$.kitData.\"" + kitName + "\"." + type + "') > 0 " + - "ORDER BY CAST(json_extract(data, '$.kitData.\"" + kitName + "\"." + type + "') AS INTEGER) DESC"; + String path = "$.kitData.\"" + kitName + "\"." + type; + String sql = """ + SELECT data + FROM ( + SELECT data, + CAST(json_extract(data, '%s') AS INTEGER) AS value + FROM playerData + ) + WHERE value > 0 + ORDER BY value DESC + LIMIT 10 + """.formatted(path); return queryData(sql).thenApply(resultList -> { List results = new ArrayList<>();