Changed blacklist check to its own class

This commit is contained in:
Anthony committed 2018-03-28 21:27:59 -04:00
1 parent 2c74327ec3
commit b2c63d73f1
2 files changed
+30 -288

No files matched your search

@@ -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<Message>() {
@Override
public void accept(Message t) {
String out = "";
ArrayList<MBlacklist> 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<MBlacklist> 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<String> args = Arrays.asList(command.split(" "));
return args.size();
}
private String parseArgs(String command, int arg) {
List<String> args = Arrays.asList(command.split(" "));
return args.get(arg);
}
}
@@ -7,14 +7,16 @@ package netneutrality.utils;
*/ */
import java.awt.*; import java.awt.*;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.function.Consumer;
import com.sedmelluq.discord.lavaplayer.track.AudioTrack; import com.sedmelluq.discord.lavaplayer.track.AudioTrack;
import net.dv8tion.jda.core.EmbedBuilder; import net.dv8tion.jda.core.EmbedBuilder;
import net.dv8tion.jda.core.entities.ChannelType; import net.dv8tion.jda.core.entities.*;
import net.dv8tion.jda.core.entities.Member; import netneutrality.db.DBController;
import net.dv8tion.jda.core.entities.Message; import netneutrality.db.controllers.DBBlacklist;
import net.dv8tion.jda.core.entities.MessageEmbed; import netneutrality.db.models.MBlacklist;
public class MessageFunction { public class MessageFunction {
@@ -50,5 +52,29 @@ public class MessageFunction {
return message.build(); return message.build();
} }
public static void checkBlacklist(String guildId, Message message, TextChannel channel,String msg) {
try {
((DBBlacklist) DBController.get("blacklist")).getBlacklistFromServer(guildId, new Consumer<ArrayList<MBlacklist>>() {
@Override
public void accept(ArrayList<MBlacklist> 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) {
}
}
} }