From ee6dacf8548e6c29a1440f023b0ca93486894357 Mon Sep 17 00:00:00 2001 From: Melledy <121644117+Melledy@users.noreply.github.com> Date: Mon, 20 Jul 2026 21:09:23 -0700 Subject: [PATCH] Add `!account list` command --- .../command/commands/AccountCommand.java | 33 +++++++++++++++++-- .../nebula/game/account/AccountHelper.java | 5 +++ 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/src/main/java/emu/nebula/command/commands/AccountCommand.java b/src/main/java/emu/nebula/command/commands/AccountCommand.java index 03ac3db..333f0e4 100644 --- a/src/main/java/emu/nebula/command/commands/AccountCommand.java +++ b/src/main/java/emu/nebula/command/commands/AccountCommand.java @@ -11,15 +11,22 @@ public class AccountCommand implements CommandHandler { @Override public String execute(CommandArgs args) { - if (args.size() < 2) { + if (args.size() < 1) { return "Invalid amount of args"; } String command = args.get(0).toLowerCase(); - String username = args.get(1); + switch (command) { case "create" -> { + // Get username + if (args.size() < 2) { + return "Invalid amount of args"; + } + + String username = args.get(1); + // Reserved player uid int reservedUid = 0; @@ -34,12 +41,34 @@ public class AccountCommand implements CommandHandler { } } case "delete" -> { + // Get username + if (args.size() < 2) { + return "Invalid amount of args"; + } + + String username = args.get(1); + + // Delete account if (AccountHelper.deleteAccount(username)) { return "Account deleted"; } else { return "Account doesnt exist"; } } + case "list" -> { + var list = AccountHelper.getAccountList(); + var sb = new StringBuilder(); + + sb.append("Listing all accounts:"); + sb.append("\n"); + + for (var account : list) { + sb.append(account.getUid() + " : " + account.getEmail()); + sb.append("\n"); + } + + return sb.toString(); + } } // Fallback diff --git a/src/main/java/emu/nebula/game/account/AccountHelper.java b/src/main/java/emu/nebula/game/account/AccountHelper.java index f10ce6c..92cf8ec 100644 --- a/src/main/java/emu/nebula/game/account/AccountHelper.java +++ b/src/main/java/emu/nebula/game/account/AccountHelper.java @@ -3,6 +3,7 @@ package emu.nebula.game.account; import java.security.MessageDigest; import java.security.SecureRandom; import java.util.Base64; +import java.util.List; import emu.nebula.Nebula; import emu.nebula.game.player.Player; @@ -41,6 +42,10 @@ public class AccountHelper { return Nebula.getAccountDatabase().getObjectByField(Account.class, "loginToken", token); } + public static List getAccountList() { + return Nebula.getAccountDatabase().getObjects(Account.class).toList(); + } + public static boolean deleteAccount(String email) { // Get account Account account = Nebula.getAccountDatabase().getObjectByField(Account.class, "email", email);