From b2c63d73f1b2bb641db4ee6c70439d1454f1a831 Mon Sep 17 00:00:00 2001 From: Anthony Date: Wed, 28 Mar 2018 21:27:59 -0400 Subject: [PATCH] Changed blacklist check to its own class --- .../netneutrality/handler/CommandHandler.java | 284 ------------------ .../netneutrality/utils/MessageFunction.java | 34 ++- 2 files changed, 30 insertions(+), 288 deletions(-) delete mode 100644 src/main/java/netneutrality/handler/CommandHandler.java diff --git a/src/main/java/netneutrality/handler/CommandHandler.java b/src/main/java/netneutrality/handler/CommandHandler.java deleted file mode 100644 index 4bf0e02..0000000 --- a/src/main/java/netneutrality/handler/CommandHandler.java +++ /dev/null @@ -1,284 +0,0 @@ -package netneutrality.handler; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.function.Consumer; - -import net.dv8tion.jda.core.entities.ChannelType; -import net.dv8tion.jda.core.entities.Message; -import net.dv8tion.jda.core.events.message.MessageReceivedEvent; -import net.dv8tion.jda.core.hooks.ListenerAdapter; -import netneutrality.command.basic.HelpCommand; -import netneutrality.command.basic.PingCommand; -import netneutrality.command.crypto.BitcoinPriceCommand; -import netneutrality.command.crypto.EthereumPriceCommand; -import netneutrality.command.crypto.LitecoinPriceCommand; -import netneutrality.command.specific.NiggerCommand; -import netneutrality.db.DBController; -import netneutrality.db.controllers.DBBlacklist; -import netneutrality.db.controllers.DBMessage; -import netneutrality.db.models.MBlacklist; -import netneutrality.utils.*; - -public class CommandHandler extends ListenerAdapter { - - private String prefix = "$"; - - - @Override - public void onMessageReceived(MessageReceivedEvent event) { - - if (event.getAuthor().isBot()) return; - if (event.isWebhookMessage()) return; - if (MessageRateLimit.check(event.getMember(), event.getMessage(), event.getChannel())) return; - - // event.getChannel().sendMessage("Message id : " + event.getMessage().getId()).queue(); - - ((DBMessage) DBController.get("message")).log(event.getGuild().getName(), event.getTextChannel().getName(), - event.getMember().getUser().getName(), - event.getMessage().getCreationTime().toInstant().toString(), event.getMessage().getId(), - event.getMessage().getContentDisplay().trim()); - - if (event.isFromType(ChannelType.PRIVATE)) { - System.out.printf("[PM] %s: %s\n>", event.getAuthor().getName(), event.getMessage().getContentDisplay()); - } else { - System.out.printf("[%s][%s] %s: %s\n>", event.getGuild().getName(), event.getTextChannel().getName(), - event.getMember().getEffectiveName(), event.getMessage().getContentDisplay()); - - - if (event.getMessage().getContentStripped().startsWith(prefix)) { - String command = event.getMessage().getContentStripped().substring(1).split(" ")[0]; - String args = event.getMessage().getContentStripped(); - - - switch (command) { - - case "ping": - new PingCommand().execute(event, null); - break; - - case "help": - new HelpCommand().execute(event, null); - break; - - case "nigger": - new NiggerCommand().execute(event, null); - break; - - case "setuplog": - ((DBMessage) DBController.get("message")).setupLog(event.getGuild().getId(), event.getTextChannel().getId()); - - event.getTextChannel().sendMessage("Logging has been enabled on the #" + event.getTextChannel().getName() + " text channnel for the server " + event.getGuild().getName()).queue(); - break; - - case "togglelog": - - break; - - case "shutdown": - if (event.getAuthor().getDiscriminator().equals("5337")) { - event.getTextChannel().sendMessage("Shutting down...").queue(); - - event.getJDA().shutdown(); - System.exit(0); - } - - break; - - case "bitcoin": - case "btc": - if (countArgs(event.getMessage().getContentStripped()) == 2) { - event.getTextChannel().sendMessage("In maintenance.").queue(); - } else { - new BitcoinPriceCommand().execute(event, null); - } - - break; - - case "ethereum": - case "eth": - if (countArgs(event.getMessage().getContentStripped()) == 2) { - event.getTextChannel().sendMessage("In maintenance.").queue(); - } else { - new EthereumPriceCommand().execute(event, null); - } - - break; - - case "litecoin": - case "ltc": - if (countArgs(event.getMessage().getContentStripped()) == 2) { - event.getTextChannel().sendMessage("In maintenance.").queue(); - } else { - new LitecoinPriceCommand().execute(event, null); - } - - break; - - // prune command - case "prune": - case "purge": - - if (UserFunction.isAdmin(event.getMember())) { - - try { - int toDelete = Integer.parseInt(parseArgs(event.getMessage().getContentStripped(), 1)); - ChannelFunction.bulkDeleteMessage(event.getTextChannel(), toDelete); - } catch (NumberFormatException | ArrayIndexOutOfBoundsException e) { - event.getTextChannel().sendMessage("Failed to delete message!").queue(); - } - - } - break; - - - case "blacklist": - - if (UserFunction.isAdmin(event.getMember())) { - - - - if (countArgs(args) >= 2) { - switch (parseArgs(args, 1)) { - - case "get": - - event.getTextChannel().sendMessage("Retreiving list, please wait...").queue(new Consumer() { - - @Override - public void accept(Message t) { - String out = ""; - - ArrayList blacklist = null; - try { - blacklist = ((DBBlacklist) DBController.get("blacklist")).getBlacklistFromServer(event.getGuild().getId()); - for (MBlacklist bl : blacklist) { - out += bl.getWord() + " -> " + (bl.isEnabled() ? "enabled" : "disabled") + "\n"; - } - } catch (RuntimeException e) { - LogHandler.log(e); - } - t.editMessage("List of blacklisted words for this server [" + event.getGuild().getName() + "] :\n" + (blacklist.isEmpty() ? "No word found" : out)).queue(); - - } - }); - - break; - - case "add": - if (UserFunction.isAdmin(event.getMember())) { - String word = parseArgs(event.getMessage().getContentStripped(), 2); - - try { - ((DBBlacklist) DBController.get("blacklist")).add(new MBlacklist(word, true, event.getAuthor().getId(), event.getGuild().getId())); - event.getTextChannel().sendMessage("Added the word \"" + word + "\" to the blacklist.").queue(); - } catch (RuntimeException e) { - event.getTextChannel().sendMessage("Error adding \"" + word + "\" to the blacklist. It's already blacklisted!").queue(); - LogHandler.log(e); - } - } - - break; - - case "remove": - if (UserFunction.isAdmin(event.getMember())) { - String word = parseArgs(event.getMessage().getContentStripped(), 2); - - try { - ((DBBlacklist) DBController.get("blacklist")).delete(word, event.getGuild().getId()); - event.getTextChannel().sendMessage("Removed the word \"" + word + "\" from the blacklist.").queue(); - } catch (RuntimeException e) { - LogHandler.log(e); - event.getTextChannel().sendMessage("Error removing \"" + word + "\" from the blacklist").queue(); - } - } - - break; - - case "disable": - - if (event.getAuthor().getDiscriminator().equals("5337")) { - String word = parseArgs(event.getMessage().getContentStripped(), 2); - - try { - ((DBBlacklist) DBController.get("blacklist")).disable(word, event.getGuild().getId()); - event.getTextChannel().sendMessage("Succesfully disabled the word \"" + word + "\" from the blacklist!").queue(); - } catch (NullPointerException e) { - LogHandler.log(e); - event.getTextChannel().sendMessage("Error disabling \"" + word + "\", it's not blacklisted!").queue(); - } - } - - break; - - case "enable": - - if (event.getAuthor().getDiscriminator().equals("5337")) { - String word = parseArgs(event.getMessage().getContentStripped(), 2); - - try { - ((DBBlacklist) DBController.get("blacklist")).enable(word, event.getGuild().getId()); - event.getTextChannel().sendMessage("Succesfully enabled the word \"" + word + "\" from the blacklist!").queue(); - } catch (NullPointerException e) { - event.getTextChannel().sendMessage("Error enabling \"" + word + "\", it's not blacklisted!").queue(); - LogHandler.log(e); - } - } - - break; - - } - } - - - } - - break; - - case "test": - if (event.getAuthor().getDiscriminator().equals("5337")) { - event.getMessage().delete().queue(); - event.getTextChannel().sendMessage("```JF est gay```").queue(); - } - - - break; - - - - } - - - } - else { - ArrayList blacklist = ((DBBlacklist) DBController.get("blacklist")).getBlacklistFromServer(event.getGuild().getId()); - - if (!blacklist.isEmpty()) { - boolean found = false; - for (int i = 0; i < blacklist.size(); i++) { - if (blacklist.get(i).isEnabled()) { - if (event.getMessage().getContentStripped().toLowerCase().contains(blacklist.get(i).getWord())) - found = true; - } - - } - if (found) { - event.getMessage().delete().queue(); - event.getTextChannel().sendMessage("Not in my christian server").queue(); - } - } - } - } - } - - private int countArgs(String command) { - List args = Arrays.asList(command.split(" ")); - return args.size(); - } - - private String parseArgs(String command, int arg) { - List args = Arrays.asList(command.split(" ")); - return args.get(arg); - } -} diff --git a/src/main/java/netneutrality/utils/MessageFunction.java b/src/main/java/netneutrality/utils/MessageFunction.java index 46f96c5..9bf7b81 100644 --- a/src/main/java/netneutrality/utils/MessageFunction.java +++ b/src/main/java/netneutrality/utils/MessageFunction.java @@ -7,14 +7,16 @@ package netneutrality.utils; */ import java.awt.*; +import java.util.ArrayList; import java.util.List; +import java.util.function.Consumer; import com.sedmelluq.discord.lavaplayer.track.AudioTrack; import net.dv8tion.jda.core.EmbedBuilder; -import net.dv8tion.jda.core.entities.ChannelType; -import net.dv8tion.jda.core.entities.Member; -import net.dv8tion.jda.core.entities.Message; -import net.dv8tion.jda.core.entities.MessageEmbed; +import net.dv8tion.jda.core.entities.*; +import netneutrality.db.DBController; +import netneutrality.db.controllers.DBBlacklist; +import netneutrality.db.models.MBlacklist; public class MessageFunction { @@ -50,5 +52,29 @@ public class MessageFunction { return message.build(); } + + public static void checkBlacklist(String guildId, Message message, TextChannel channel,String msg) { + try { + ((DBBlacklist) DBController.get("blacklist")).getBlacklistFromServer(guildId, new Consumer>() { + @Override + public void accept(ArrayList mBlacklists) { + if (!mBlacklists.isEmpty()) { + + boolean found = false; + for (MBlacklist aBlacklist : mBlacklists) { + if (msg.toLowerCase().contains(aBlacklist.getWord())) + found = true; + } + + if (found) { + message.delete().queue(); + channel.sendMessage("Not in my christian server").queue(); + } + } + } + }); + } catch (RuntimeException ignored) { + } + } }