Illuminatiiiiii
10/12/2018 - 1:31 AM

Filter Bot

For Episode 6 of the JDA Tutorial: https://youtu.be/rD4uKMSHZa8

public class FilterMessage extends ListenerAdapter {

    public static boolean allowed = false;

    public void onGuildMessageReceived(GuildMessageReceivedEvent e){
        if(FilterOnOff.filterOn) {
            if (e.getMessage().getContentRaw().equalsIgnoreCase("$filtermessage") && !allowed) {
                e.getChannel().sendMessage("Filter Response Has Been Enabled.").queue();
                System.out.println("Enabled");
                allowed = true;
            } else if (e.getMessage().getContentRaw().equalsIgnoreCase("$filtermessage") && allowed) {
                e.getChannel().sendMessage("Filter Response Has Been Disabled.").queue();
                System.out.println("Disabled");
                allowed = false;
            }
        }else if(e.getMessage().getContentRaw().equalsIgnoreCase("$filtermessage") && !FilterOnOff.filterOn){
            e.getChannel().sendMessage("You can't toggle filter response while the filter is off. To turn the filter on, run $togglefilter").queue();
        }


    }

}
public class FilterOnOff extends ListenerAdapter {

    public static boolean filterOn = true;

    public void onGuildMessageReceived(GuildMessageReceivedEvent event) {
        if (event.getMessage().getContentRaw().equalsIgnoreCase("$togglefilter") && filterOn){
            filterOn = false;
            event.getChannel().sendMessage("The Curse-Filter has been disabled by " + event.getMember().getUser().getName()).queue();
        }else if(event.getMessage().getContentRaw().equalsIgnoreCase("$togglefilter") && !filterOn){
            filterOn = true;
            event.getChannel().sendMessage("The Curse-Filter has been enabled by " + event.getMember().getUser().getName()).queue();
        }
    }
}
public class Filter extends ListenerAdapter {
    public void onGuildMessageReceived(GuildMessageReceivedEvent e) {
        if(FilterOnOff.filterOn){
            String[] LIST_OF_BAD_WORDS = {"anal", "anus", "arse", "ass", "motherfucker", "balls", "bastard", "bitch", "blowjob", "blow job", "buttplug","cock","coon","cunt","dildo","fag","dyke","fuck","fucking","nigger","Goddamn","jizz","nigga","pussy","shit","whore"};
            String[] message = e.getMessage().getContentRaw().split(" ");
            for(int i = 0;i < message.length;i++){
                boolean badWord = false;
                //Check each message for each bad word
                for(int b = 0; b < LIST_OF_BAD_WORDS.length;b++){
                    if (message[i].equalsIgnoreCase(LIST_OF_BAD_WORDS[b])){
                        e.getMessage().delete().queue();
                        badWord = true;
                        if(FilterMessage.allowed){ //Prints a message saying watch your language IF enabled by $filtermessage
                            e.getChannel().sendMessage("Watch yo vernacular " + e.getMember().getUser().getName()).queue();
                        }
                    }
                }
                System.out.println(message[i] + " " + badWord); //Just a report for console
            }
        }
    }
}
public class Bot {

    public static void main(String args[]) throws Exception{

        JDA jda = new JDABuilder("yourtoken").build();

        jda.addEventListener(new Filter());
        jda.addEventListener(new FilterMessage());
        jda.addEventListener(new FilterOnOff());
    }

}