From 12eb6db29b52cbb1c1411147251d5c67d4d849bd Mon Sep 17 00:00:00 2001 From: jie65535 Date: Sat, 27 Aug 2022 18:41:31 +0800 Subject: [PATCH 1/2] Add permission clear and list commands --- .../command/commands/PermissionCommand.java | 25 ++++++++++++++++--- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/src/main/java/emu/grasscutter/command/commands/PermissionCommand.java b/src/main/java/emu/grasscutter/command/commands/PermissionCommand.java index bc59df14027..f3e07459907 100644 --- a/src/main/java/emu/grasscutter/command/commands/PermissionCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/PermissionCommand.java @@ -11,12 +11,17 @@ import static emu.grasscutter.utils.Language.translate; -@Command(label = "permission", usage = "(add|remove) ", permission = "permission", targetRequirement = TargetRequirement.PLAYER) +@Command(label = "permission", usage = { + "add ", + "remove ", + "clear", + "list" +}, permission = "permission", targetRequirement = TargetRequirement.PLAYER) public final class PermissionCommand implements CommandHandler { @Override public void execute(Player sender, Player targetPlayer, List args) { - if (args.size() != 2) { + if (args.isEmpty() || args.size() > 2) { sendUsageMessage(sender); return; } @@ -27,7 +32,10 @@ public void execute(Player sender, Player targetPlayer, List args) { } String action = args.get(0); - String permission = args.get(1); + String permission = ""; + if (args.size() > 1) { + permission = args.get(1); + } Account account = targetPlayer.getAccount(); if (account == null) { @@ -40,7 +48,9 @@ public void execute(Player sender, Player targetPlayer, List args) { sendUsageMessage(sender); break; case "add": - if (account.addPermission(permission)) { + if (permission.isEmpty()) { + sendUsageMessage(sender); + } else if (account.addPermission(permission)) { CommandHandler.sendMessage(sender, translate(sender, "commands.permission.add")); } else CommandHandler.sendMessage(sender, translate(sender, "commands.permission.has_error")); break; @@ -49,6 +59,13 @@ public void execute(Player sender, Player targetPlayer, List args) { CommandHandler.sendMessage(sender, translate(sender, "commands.permission.remove")); } else CommandHandler.sendMessage(sender, translate(sender, "commands.permission.not_have_error")); break; + case "clear": + account.clearPermission(); + CommandHandler.sendMessage(sender, translate(sender, "commands.permission.remove")); + break; + case "list": + CommandHandler.sendMessage(sender, String.join("\n", account.getPermissions())); + break; } account.save(); From 9d2fbc75a1824d71eb094e12749df601f2ace383 Mon Sep 17 00:00:00 2001 From: jie65535 Date: Sat, 27 Aug 2022 18:44:44 +0800 Subject: [PATCH 2/2] Add Account clear permission --- src/main/java/emu/grasscutter/game/Account.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/emu/grasscutter/game/Account.java b/src/main/java/emu/grasscutter/game/Account.java index bdbb94cb14b..21633b4b719 100644 --- a/src/main/java/emu/grasscutter/game/Account.java +++ b/src/main/java/emu/grasscutter/game/Account.java @@ -210,6 +210,10 @@ public boolean removePermission(String permission) { return this.permissions.remove(permission); } + public void clearPermission() { + this.permissions.clear(); + } + // TODO make unique public String generateLoginToken() { this.token = Utils.bytesToHex(Crypto.createSessionKey(32));