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);