commit
d9c9197dbb
@ -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 <userId> <reason>"; }
|
||||
@Override public CommandCategory category() { return CommandCategory.DEVELOPER; }
|
||||
@Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "owner"); }
|
||||
@Override public List<String> 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);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
@ -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 <userId> <reason>"; }
|
||||
@Override public CommandCategory category() { return CommandCategory.STAFF; }
|
||||
@Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "admin"); }
|
||||
@Override public List<String> 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));
|
||||
}));
|
||||
}
|
||||
}
|
@ -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();
|
||||
|
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user