diff --git a/src/main/java/dev/salmonllama/fsbot/commands/developer/BlacklistUserCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/developer/BlacklistUserCommand.java deleted file mode 100644 index 8a7ff04..0000000 --- a/src/main/java/dev/salmonllama/fsbot/commands/developer/BlacklistUserCommand.java +++ /dev/null @@ -1,58 +0,0 @@ -package dev.salmonllama.fsbot.commands.developer; - -import dev.salmonllama.fsbot.database.controllers.UserBlacklistController; -import dev.salmonllama.fsbot.database.models.UserBlacklist; -import dev.salmonllama.fsbot.guthix.*; -import org.javacord.api.entity.message.embed.EmbedBuilder; - -import java.util.Arrays; -import java.util.List; - -public class BlacklistUserCommand extends Command { - @Override public String name() { return "Blacklist User"; } - @Override public String description() { return "Adds the user to the bot's blacklist, preventing them from using any commands or features"; } - @Override public String usage() { return "blacklistuser "; } - @Override public CommandCategory category() { return CommandCategory.DEVELOPER; } - @Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "owner"); } - @Override public List aliases() { return Arrays.asList("blacklistuser", "bluser", "sabusr"); } - - @Override - public void onCommand(CommandContext ctx) { - String[] args = ctx.getArgs(); - - if (args.length < 1) { - // Did it wrong - return; - } - - // If the user is on the blacklist, remove them, otherwise, add them with the reason. - UserBlacklistController.get(args[0]).thenAcceptAsync(possibleBlacklist -> { - possibleBlacklist.ifPresentOrElse(blacklist -> { - // Remove user from the blacklist - UserBlacklistController.delete(blacklist).thenAcceptAsync((Void) -> { - EmbedBuilder response = new EmbedBuilder() - .setTitle("Removed User from Blacklist") - .addField("User ID:", blacklist.getId()) - .addField("Reason for Add", blacklist.getReason()) - .addField("Added:", blacklist.getAdded().toString()); - - ctx.reply(response); - }); - }, () -> { - // Add user to the blacklist, check args - UserBlacklist.UserBlacklistBuilder blBuilder = new UserBlacklist.UserBlacklistBuilder(args[0]); - EmbedBuilder response = new EmbedBuilder().setTitle("Added User to Blacklist").addField("User ID:", args[0]); - - if (args.length > 1) { - String reason = String.join(" ", Arrays.copyOfRange(args, 1, args.length)); - blBuilder.setReason(reason); - response.addField("With reason:", reason); - } - - UserBlacklistController.insert(blBuilder.build()).thenAcceptAsync((Void) -> { - ctx.reply(response); - }); - }); - }); - } -} diff --git a/src/main/java/dev/salmonllama/fsbot/commands/staff/BlacklistUserCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/staff/BlacklistUserCommand.java new file mode 100644 index 0000000..28a0475 --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/commands/staff/BlacklistUserCommand.java @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2020. Aleksei Gryczewski + * All rights reserved. + */ + +package dev.salmonllama.fsbot.commands.staff; + +import dev.salmonllama.fsbot.database.controllers.UserBlacklistController; +import dev.salmonllama.fsbot.database.models.UserBlacklist; +import dev.salmonllama.fsbot.guthix.*; +import org.javacord.api.entity.message.embed.EmbedBuilder; + +import java.util.Arrays; +import java.util.List; + +public class BlacklistUserCommand extends Command { + @Override public String name() { return "Blacklist User"; } + @Override public String description() { return "Adds the user to the bot's blacklist, preventing them from using any commands or features"; } + @Override public String usage() { return "blacklistuser "; } + @Override public CommandCategory category() { return CommandCategory.STAFF; } + @Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "admin"); } + @Override public List aliases() { return Arrays.asList("blacklistuser", "bluser", "sabusr"); } + + @Override + public void onCommand(CommandContext ctx) { + String[] args = ctx.getArgs(); + + if (args.length < 1) { + // Did it wrong + return; + } + + // If the user is on the blacklist, remove them, otherwise, add them with the reason. + UserBlacklistController.get(args[0]).thenAcceptAsync(possibleBlacklist -> possibleBlacklist.ifPresentOrElse(blacklist -> { + // Remove user from the blacklist + UserBlacklistController.delete(blacklist).thenAcceptAsync((Void) -> { + EmbedBuilder response = new EmbedBuilder() + .setTitle("Removed User from Blacklist") + .addField("User ID:", blacklist.getId()) + .addField("Reason for Add", blacklist.getReason()) + .addField("Added:", blacklist.getAdded().toString()); + + ctx.reply(response); + }); + }, () -> { + // Add user to the blacklist, check args + UserBlacklist.Builder blBuilder = new UserBlacklist.Builder(args[0]); + EmbedBuilder response = new EmbedBuilder().setTitle("Added User to Blacklist").addField("User ID:", args[0]); + + if (args.length > 1) { + String reason = String.join(" ", Arrays.copyOfRange(args, 1, args.length)); + blBuilder.setReason(reason); + response.addField("With reason:", reason); + } + + UserBlacklistController.insert(blBuilder.build()).thenAcceptAsync((Void) -> ctx.reply(response)); + })); + } +} diff --git a/src/main/java/dev/salmonllama/fsbot/database/controllers/UserBlacklistController.java b/src/main/java/dev/salmonllama/fsbot/database/controllers/UserBlacklistController.java index fbbb0e2..cfc67d2 100644 --- a/src/main/java/dev/salmonllama/fsbot/database/controllers/UserBlacklistController.java +++ b/src/main/java/dev/salmonllama/fsbot/database/controllers/UserBlacklistController.java @@ -13,7 +13,6 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Timestamp; import java.util.Optional; -import java.util.OptionalDouble; import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletionException; @@ -119,7 +118,7 @@ public class UserBlacklistController { } private static UserBlacklist mapObject(ResultSet rs) throws SQLException { - return new UserBlacklist.UserBlacklistBuilder(rs.getString("id")) + return new UserBlacklist.Builder(rs.getString("id")) .setReason(rs.getString("reason")) .setAdded(new Timestamp(rs.getLong("added"))) .build(); diff --git a/src/main/java/dev/salmonllama/fsbot/database/models/UserBlacklist.java b/src/main/java/dev/salmonllama/fsbot/database/models/UserBlacklist.java index 1b138d9..0233fd6 100644 --- a/src/main/java/dev/salmonllama/fsbot/database/models/UserBlacklist.java +++ b/src/main/java/dev/salmonllama/fsbot/database/models/UserBlacklist.java @@ -10,14 +10,13 @@ import dev.salmonllama.fsbot.database.DatabaseModel; import java.sql.Timestamp; public class UserBlacklist extends DatabaseModel { - private String id; - private String reason; + private final String id; + private final String reason; private Timestamp added; - private UserBlacklist(UserBlacklistBuilder builder) { + private UserBlacklist(Builder builder) { this.id = builder.id; this.reason = builder.reason; - this.added = builder.added; } public String getId() { @@ -52,26 +51,26 @@ public class UserBlacklist extends DatabaseModel { ); } - public static class UserBlacklistBuilder { + public static class Builder { private String id; private String reason; private Timestamp added; - public UserBlacklistBuilder(String id) { + public Builder(String id) { this.id = id; } - public UserBlacklistBuilder setId(String id) { + public Builder setId(String id) { this.id = id; return this; } - public UserBlacklistBuilder setReason(String reason) { + public Builder setReason(String reason) { this.reason = reason; return this; } - public UserBlacklistBuilder setAdded(Timestamp added) { + public Builder setAdded(Timestamp added) { this.added = added; return this; }