From faa4ea07808a97a0d7fe3f04bf967174098fe9db Mon Sep 17 00:00:00 2001 From: Melledy <121644117+Melledy@users.noreply.github.com> Date: Sun, 30 Nov 2025 23:48:24 -0800 Subject: [PATCH] Only show boss blitz leaderboard for the current season --- src/main/java/emu/nebula/database/DatabaseManager.java | 10 +++++++--- .../emu/nebula/game/scoreboss/ScoreBossManager.java | 3 +-- .../emu/nebula/game/scoreboss/ScoreBossModule.java | 7 ++++++- .../java/emu/nebula/server/routes/RemoteHandler.java | 3 +-- 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/main/java/emu/nebula/database/DatabaseManager.java b/src/main/java/emu/nebula/database/DatabaseManager.java index c63c2dc..5da9f2f 100644 --- a/src/main/java/emu/nebula/database/DatabaseManager.java +++ b/src/main/java/emu/nebula/database/DatabaseManager.java @@ -163,12 +163,16 @@ public final class DatabaseManager { return getDatastore().find(cls).stream(); } - public List getSortedObjects(Class cls, String filter, int limit) { + public List getSortedObjects(Class cls, String filter, int value, String sortBy, int limit) { var options = new FindOptions() - .sort(Sort.descending(filter)) + .sort(Sort.descending(sortBy)) .limit(limit); - return getDatastore().find(cls).iterator(options).toList(); + return getDatastore() + .find(cls) + .filter(Filters.eq(filter, value)) + .iterator(options) + .toList(); } public void save(T obj) { diff --git a/src/main/java/emu/nebula/game/scoreboss/ScoreBossManager.java b/src/main/java/emu/nebula/game/scoreboss/ScoreBossManager.java index f0725c9..fe54736 100644 --- a/src/main/java/emu/nebula/game/scoreboss/ScoreBossManager.java +++ b/src/main/java/emu/nebula/game/scoreboss/ScoreBossManager.java @@ -19,9 +19,8 @@ public class ScoreBossManager extends PlayerManager { super(player); } - // TODO calculate from bin data public int getControlId() { - return 2; + return Nebula.getGameContext().getScoreBossModule().getControlId(); } public ScoreBossControlDef getControlData() { diff --git a/src/main/java/emu/nebula/game/scoreboss/ScoreBossModule.java b/src/main/java/emu/nebula/game/scoreboss/ScoreBossModule.java index 44c13fd..d9ebfe2 100644 --- a/src/main/java/emu/nebula/game/scoreboss/ScoreBossModule.java +++ b/src/main/java/emu/nebula/game/scoreboss/ScoreBossModule.java @@ -21,6 +21,11 @@ public class ScoreBossModule extends GameContextModule { this.ranking = new ArrayList<>(); } + // TODO calculate from bin data + public int getControlId() { + return 2; + } + private long getRefreshTime() { return Nebula.getConfig().getServerOptions().leaderboardRefreshTime * 1000; } @@ -39,7 +44,7 @@ public class ScoreBossModule extends GameContextModule { this.ranking.clear(); // Get from database - var list = Nebula.getGameDatabase().getSortedObjects(ScoreBossRankEntry.class, "score", 50); + var list = Nebula.getGameDatabase().getSortedObjects(ScoreBossRankEntry.class, "controlId", this.getControlId(), "score", 50); for (int i = 0; i < list.size(); i++) { // Get rank entry and set proto diff --git a/src/main/java/emu/nebula/server/routes/RemoteHandler.java b/src/main/java/emu/nebula/server/routes/RemoteHandler.java index d5c614f..7c67a30 100644 --- a/src/main/java/emu/nebula/server/routes/RemoteHandler.java +++ b/src/main/java/emu/nebula/server/routes/RemoteHandler.java @@ -41,8 +41,7 @@ public class RemoteHandler implements Handler { // Check admin key if (token.equals(adminKey)) { Nebula.getCommandManager().invoke(null, command); - Nebula.getLogger().warn( - "\u001B[38;2;252;186;3mRemote Server (Using Admin Key) sent command: /" + command + "\u001B[0m"); + Nebula.getLogger().warn("\u001B[38;2;252;186;3mRemote Server (Using Admin Key) sent command: /" + command + "\u001B[0m"); ctx.status(200); ctx.contentType(ContentType.APPLICATION_JSON); ctx.result("{\"Code\":200,\"Data\":{},\"Msg\":\"Command executed\"}");