Add !account list command

This commit is contained in:
Melledy
2026-07-20 21:09:23 -07:00
parent 81362f97a8
commit ee6dacf854
2 changed files with 36 additions and 2 deletions
@@ -11,15 +11,22 @@ public class AccountCommand implements CommandHandler {
@Override @Override
public String execute(CommandArgs args) { public String execute(CommandArgs args) {
if (args.size() < 2) { if (args.size() < 1) {
return "Invalid amount of args"; return "Invalid amount of args";
} }
String command = args.get(0).toLowerCase(); String command = args.get(0).toLowerCase();
String username = args.get(1);
switch (command) { switch (command) {
case "create" -> { case "create" -> {
// Get username
if (args.size() < 2) {
return "Invalid amount of args";
}
String username = args.get(1);
// Reserved player uid // Reserved player uid
int reservedUid = 0; int reservedUid = 0;
@@ -34,12 +41,34 @@ public class AccountCommand implements CommandHandler {
} }
} }
case "delete" -> { case "delete" -> {
// Get username
if (args.size() < 2) {
return "Invalid amount of args";
}
String username = args.get(1);
// Delete account
if (AccountHelper.deleteAccount(username)) { if (AccountHelper.deleteAccount(username)) {
return "Account deleted"; return "Account deleted";
} else { } else {
return "Account doesnt exist"; 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 // Fallback
@@ -3,6 +3,7 @@ package emu.nebula.game.account;
import java.security.MessageDigest; import java.security.MessageDigest;
import java.security.SecureRandom; import java.security.SecureRandom;
import java.util.Base64; import java.util.Base64;
import java.util.List;
import emu.nebula.Nebula; import emu.nebula.Nebula;
import emu.nebula.game.player.Player; import emu.nebula.game.player.Player;
@@ -41,6 +42,10 @@ public class AccountHelper {
return Nebula.getAccountDatabase().getObjectByField(Account.class, "loginToken", token); return Nebula.getAccountDatabase().getObjectByField(Account.class, "loginToken", token);
} }
public static List<Account> getAccountList() {
return Nebula.getAccountDatabase().getObjects(Account.class).toList();
}
public static boolean deleteAccount(String email) { public static boolean deleteAccount(String email) {
// Get account // Get account
Account account = Nebula.getAccountDatabase().getObjectByField(Account.class, "email", email); Account account = Nebula.getAccountDatabase().getObjectByField(Account.class, "email", email);