From 9788e1783e3007a10a433a986880fe3a80dc78d7 Mon Sep 17 00:00:00 2001 From: Aleksei Date: Thu, 23 Jul 2020 14:19:48 -0400 Subject: [PATCH] Finished command logic --- .../commands/developer/PermissionCommand.java | 74 +++++++++++++------ 1 file changed, 50 insertions(+), 24 deletions(-) diff --git a/src/main/java/dev/salmonllama/fsbot/commands/developer/PermissionCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/developer/PermissionCommand.java index 9714296..36171ed 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/developer/PermissionCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/developer/PermissionCommand.java @@ -11,8 +11,10 @@ import dev.salmonllama.fsbot.guthix.Command; import dev.salmonllama.fsbot.guthix.CommandContext; import dev.salmonllama.fsbot.guthix.CommandPermission; import dev.salmonllama.fsbot.guthix.PermissionType; +import dev.salmonllama.fsbot.logging.Logger; import org.javacord.api.entity.message.embed.EmbedBuilder; import org.javacord.api.entity.user.User; +import org.javacord.api.util.logging.ExceptionLogger; import java.awt.*; import java.util.ArrayList; @@ -25,7 +27,7 @@ public class PermissionCommand extends Command { @Override public String usage() { return "permission "; } @Override public String category() { return "Staff"; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.OWNER); } - @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("permission", "perm")); } + @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("permission", "permissions", "perm", "perms")); } @Override public void onCommand(CommandContext ctx) { @@ -38,9 +40,11 @@ public class PermissionCommand extends Command { break; case "add": // Add a static permission to the mentioned user, if any + add(ctx); break; case "remove": // Remove a static permission from the mentioned user, if any + remove(ctx); break; default: // You don't know how to use this command LUL @@ -71,31 +75,55 @@ public class PermissionCommand extends Command { ctx.reply(embed); }); }); - } + } else { + StaticPermissionController.getAll().thenAcceptAsync(possiblePerms -> { + possiblePerms.ifPresentOrElse(perms -> { + EmbedBuilder embed = new EmbedBuilder() + .setTitle("All static permissions") + .setFooter(String.format("Found %s total static permissions", perms.size())) + .setColor(Color.green); - StaticPermissionController.getAll().thenAcceptAsync(possiblePerms -> { - possiblePerms.ifPresentOrElse(perms -> { - EmbedBuilder embed = new EmbedBuilder() - .setTitle("All static permissions") - .setFooter(String.format("Found %s total static permissions", perms.size())) - .setColor(Color.green); + perms.forEach(perm -> { + embed.addField(perm.getUserId(), perm.getPermission()); + }); - perms.forEach(perm -> { - embed.addField(perm.getUserId(), perm.getPermission()); + ctx.reply(embed); + }, () -> { + EmbedBuilder embed = new EmbedBuilder() + .setTitle("No Permissions Found") + .setDescription("No permissions have been added."); + + ctx.reply(embed); }); - - ctx.reply(embed); - }, () -> { - EmbedBuilder embed = new EmbedBuilder() - .setTitle("No Permissions Found") - .setDescription("No permissions have been added."); - - ctx.reply(embed); }); - }); + } } private void add(CommandContext ctx) { + System.out.println("Add run"); + if (ctx.getMessage().getMentionedUsers().isEmpty()) { + System.out.println("No mentioned users"); + // If no mentioned users, improper usage + return; + } + + String userId = ctx.getMessage().getMentionedUsers().get(0).getIdAsString(); + System.out.println(String.format("Got mentioned user %s", userId)); + + StaticPermission perm = new StaticPermission.StaticPermissionBuilder(userId).setPermission(ctx.getArgs()[2]).build(); + + StaticPermissionController.insert(perm).thenAcceptAsync((Void) -> { + System.out.println("Permission added"); + EmbedBuilder response = new EmbedBuilder() + .setTitle("Permissions Added") + .addField("User:", userId) + .addField("Permission:", ctx.getArgs()[2]); + + ctx.reply(response); + }); + } + + private void remove(CommandContext ctx) { // TODO: Remove is not functional if (ctx.getMessage().getMentionedUsers().isEmpty()) { // If no mentioned users, improper usage return; @@ -103,10 +131,8 @@ public class PermissionCommand extends Command { String userId = ctx.getMessage().getMentionedUsers().get(0).getIdAsString(); - StaticPermission perm = new StaticPermission.StaticPermissionBuilder(userId).setPermission(ctx.getArgs()[2]).build(); - } - - private void remove(CommandContext ctx) { - + StaticPermissionController.delete(userId, ctx.getArgs()[2]).thenAcceptAsync((Void) -> { + System.out.println("Permission removed"); + }).exceptionally(ExceptionLogger.get()); } }