From d8ca10c2c157343add8d1aa174f02f5dcc4160a9 Mon Sep 17 00:00:00 2001 From: Salmonllama Date: Wed, 25 Nov 2020 11:19:01 -0500 Subject: [PATCH] Implemented user blacklist functionality --- .../dev/salmonllama/fsbot/guthix/Guthix.java | 22 ++++++++++++------- .../fsbot/listeners/ImageListener.java | 9 ++++++++ 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/src/main/java/dev/salmonllama/fsbot/guthix/Guthix.java b/src/main/java/dev/salmonllama/fsbot/guthix/Guthix.java index 349f0f2..91a2836 100644 --- a/src/main/java/dev/salmonllama/fsbot/guthix/Guthix.java +++ b/src/main/java/dev/salmonllama/fsbot/guthix/Guthix.java @@ -11,10 +11,13 @@ import dev.salmonllama.fsbot.commands.osrssearch.*; import dev.salmonllama.fsbot.commands.rs3search.*; import dev.salmonllama.fsbot.commands.staff.OutfitInfoCommand; import dev.salmonllama.fsbot.commands.staff.*; +import dev.salmonllama.fsbot.database.controllers.UserBlacklistController; import org.javacord.api.DiscordApi; import org.javacord.api.entity.message.MessageAuthor; import org.javacord.api.event.message.MessageCreateEvent; import org.javacord.api.listener.message.MessageCreateListener; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.Collection; import java.util.HashMap; @@ -23,6 +26,8 @@ import java.util.HashMap; * Guthix is Fashionscape Bot's command repository and dispatcher */ public class Guthix implements MessageCreateListener { + private final static Logger logger = LoggerFactory.getLogger(Guthix.class); + @SuppressWarnings("unused") private final DiscordApi api; @@ -58,6 +63,7 @@ public class Guthix implements MessageCreateListener { addCommand(new WelcomeMessageCommand()); addCommand(new ShowGalleriesCommand()); addCommand(new EditMetaCommand()); + addCommand(new BlacklistUserCommand()); // General Commands addCommand(new PingCommand()); @@ -96,7 +102,6 @@ public class Guthix implements MessageCreateListener { public void addCommand(Command cmd) { registry.addCommand(cmd); -// return cmd; } public Collection listCommands() { @@ -126,18 +131,19 @@ public class Guthix implements MessageCreateListener { return; } + // Check for blacklisted user + if (!UserBlacklistController.exists(author.getIdAsString()).join()) { + // User is not blacklisted, continue as normal + } else { + return; + } + RegistryCommand rComm = registry.getCommandInfo(content); String cmdString = rComm.getCommand().toLowerCase(); -// if (registry.isCommandAlias(cmdString)) { -// -// } else { -// return; -// } - String[] cmdArgs = rComm.getArgs(); - Command cmd = registry.findCommand(cmdString).orElse(new DefaultCommand()); // TODO: default command here + Command cmd = registry.findCommand(cmdString).orElse(new DefaultCommand()); CommandContext ctx = new CommandContext.CommandContextBuilder( event, diff --git a/src/main/java/dev/salmonllama/fsbot/listeners/ImageListener.java b/src/main/java/dev/salmonllama/fsbot/listeners/ImageListener.java index a9bee05..bc8071f 100644 --- a/src/main/java/dev/salmonllama/fsbot/listeners/ImageListener.java +++ b/src/main/java/dev/salmonllama/fsbot/listeners/ImageListener.java @@ -9,6 +9,7 @@ import com.vdurmont.emoji.EmojiParser; import dev.salmonllama.fsbot.config.BotConfig; import dev.salmonllama.fsbot.database.controllers.GalleryController; import dev.salmonllama.fsbot.database.controllers.OutfitController; +import dev.salmonllama.fsbot.database.controllers.UserBlacklistController; import dev.salmonllama.fsbot.database.models.Outfit; import dev.salmonllama.fsbot.endpoints.imgur.ImgurAPIConnection; import org.javacord.api.entity.channel.ServerTextChannel; @@ -17,11 +18,15 @@ import org.javacord.api.entity.message.embed.EmbedBuilder; import org.javacord.api.event.message.MessageCreateEvent; import org.javacord.api.listener.message.MessageCreateListener; import org.javacord.api.util.logging.ExceptionLogger; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import java.awt.Color; import java.util.UUID; public class ImageListener implements MessageCreateListener { + private static final Logger logger = LoggerFactory.getLogger(ImageListener.class); @Override public void onMessageCreate(MessageCreateEvent event) { @@ -38,6 +43,10 @@ public class ImageListener implements MessageCreateListener { return; } + if (UserBlacklistController.exists(event.getMessageAuthor().getIdAsString()).join()) { + return; + } + // Only works in Server Text Channels event.getChannel().asServerTextChannel().ifPresent(channel -> { // Only works in registered Gallery Channels