Auto generate new config options and overhaul role toggling

This commit is contained in:
2020-05-30 01:15:37 -05:00
parent f7887de08f
commit d686d70bd4
32 changed files with 292 additions and 274 deletions

View File

@@ -5,10 +5,12 @@ import java.util.Scanner;
import org.slf4j.Logger;
import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.api.API;
import com.fpghoti.biscuit.config.PropertiesRetrieval;
import com.fpghoti.biscuit.util.PermUtil;
import net.dv8tion.jda.api.JDA;
import net.dv8tion.jda.api.entities.ChannelType;
import net.dv8tion.jda.api.entities.TextChannel;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;
@@ -17,15 +19,27 @@ public class CommandListener extends ListenerAdapter implements Runnable {
public Scanner sc;
public JDA jda;
Logger log = Main.log;
@Override
public void onMessageReceived(MessageReceivedEvent event){
if(!event.getAuthor().isBot() && event.getMessage().getContentDisplay().startsWith(PropertiesRetrieval.getCommandSignifier()) && event.getMessage().getAuthor().getId() != event.getJDA().getSelfUser().getId()){
//log.info("True");
API.getBiscuit().getCommandManager().parse(event.getMessage().getContentRaw().toLowerCase(), event);
if (event.isFromType(ChannelType.TEXT)) {
if(PermUtil.isAdmin(event.getMember()) || !PropertiesRetrieval.restrictCmdChannels() || (PropertiesRetrieval.restrictCmdChannels() && isBotChannel(event.getTextChannel()))) {
if(!event.getAuthor().isBot() && event.getMessage().getContentDisplay().startsWith(PropertiesRetrieval.getCommandSignifier()) && event.getMessage().getAuthor().getId() != event.getJDA().getSelfUser().getId()){
Main.getBiscuit().getCommandManager().parse(event.getMessage().getContentRaw().toLowerCase(), event);
}
}
}
}
private boolean isBotChannel(TextChannel c) {
for(String s : PropertiesRetrieval.getCmdChannels()) {
if(s.equals(c.getName())) {
return true;
}
}
return false;
}
public void run() {
while(sc.hasNextLine()) {
@@ -41,7 +55,7 @@ public class CommandListener extends ListenerAdapter implements Runnable {
private void runCommand(String label, String[] args) {
log.info(label);
API.getBiscuit().getCommandManager().dispatch(label, args);
Main.getBiscuit().getCommandManager().dispatch(label, args);
}
}

View File

@@ -4,7 +4,7 @@ import java.util.ArrayList;
import java.util.List;
import com.fpghoti.biscuit.Biscuit;
import com.fpghoti.biscuit.api.API;
import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.config.PropertiesRetrieval;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
@@ -73,7 +73,7 @@ public class CommandManager {
}
public void commandReply(MessageReceivedEvent e, String msg) {
Biscuit b = API.getBiscuit();
Biscuit b = Main.getBiscuit();
if(e != null) {
b.say(e.getTextChannel(), msg);
}else {

View File

@@ -1,7 +1,7 @@
package com.fpghoti.biscuit.commands.client;
import com.fpghoti.biscuit.Biscuit;
import com.fpghoti.biscuit.api.API;
import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.commands.ClientCommand;
import com.fpghoti.biscuit.config.PropertiesRetrieval;
import com.fpghoti.biscuit.util.Util;
@@ -21,7 +21,7 @@ public class AddCommand extends ClientCommand{
@Override
public void execute(String[] args, MessageReceivedEvent event) {
Biscuit b = API.getBiscuit();
Biscuit b = Main.getBiscuit();
b.log(event.getAuthor().getName() + " issued a command: -add");
if(args[0] != null && Util.isDeciDigit(args[0]) && args[1] != null && Util.isDeciDigit(args[1])) {
double num = Double.parseDouble(args[0]);

View File

@@ -1,7 +1,7 @@
package com.fpghoti.biscuit.commands.client;
import com.fpghoti.biscuit.Biscuit;
import com.fpghoti.biscuit.api.API;
import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.commands.ClientCommand;
import com.fpghoti.biscuit.config.PropertiesRetrieval;
@@ -20,7 +20,7 @@ public class ChanIDCommand extends ClientCommand{
@Override
public void execute(String[] args, MessageReceivedEvent event) {
Biscuit b = API.getBiscuit();
Biscuit b = Main.getBiscuit();
b.log(event.getAuthor().getName() + " issued a command: -chanid");
String id = event.getTextChannel().getId();
event.getTextChannel().sendMessage(id).queue();

View File

@@ -1,7 +1,7 @@
package com.fpghoti.biscuit.commands.client;
import com.fpghoti.biscuit.Biscuit;
import com.fpghoti.biscuit.api.API;
import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.commands.ClientCommand;
import com.fpghoti.biscuit.config.PropertiesRetrieval;
import com.fpghoti.biscuit.util.PermUtil;
@@ -21,7 +21,7 @@ public class ChnameCommand extends ClientCommand{
@Override
public void execute(String[] args, MessageReceivedEvent event) {
Biscuit b = API.getBiscuit();
Biscuit b = Main.getBiscuit();
b.log(event.getAuthor().getName() + " issued a command: -chname");
if(PermUtil.isMod(event.getMember()) || PermUtil.canMute(event.getMember())) {
event.getTextChannel().sendMessage("DEBUG: " + event.getTextChannel().getName()).queue();

View File

@@ -1,7 +1,7 @@
package com.fpghoti.biscuit.commands.client;
import com.fpghoti.biscuit.Biscuit;
import com.fpghoti.biscuit.api.API;
import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.commands.ClientCommand;
import com.fpghoti.biscuit.config.PropertiesRetrieval;
import com.fpghoti.biscuit.util.Util;
@@ -22,7 +22,7 @@ public class DivideCommand extends ClientCommand{
@Override
public void execute(String[] args, MessageReceivedEvent event) {
Biscuit b = API.getBiscuit();
Biscuit b = Main.getBiscuit();
b.log(event.getAuthor().getName() + " issued a command: -divide");
if(args[0] != null && Util.isDeciDigit(args[0]) && args[1] != null && Util.isDeciDigit(args[1])) {
double num = Double.parseDouble(args[0]);

View File

@@ -1,56 +0,0 @@
package com.fpghoti.biscuit.commands.client;
import com.fpghoti.biscuit.Biscuit;
import com.fpghoti.biscuit.api.API;
import com.fpghoti.biscuit.commands.ClientCommand;
import com.fpghoti.biscuit.config.PropertiesRetrieval;
import net.dv8tion.jda.api.entities.Emote;
import net.dv8tion.jda.api.entities.Role;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
public class DontNotifyCommand extends ClientCommand{
public DontNotifyCommand() {
name = "Don't Notify";
description = "Puts user in Don't Notify status.";
usage = PropertiesRetrieval.getCommandSignifier() + "dontnotify";
minArgs = 0;
maxArgs = 0;
identifiers.add("dontnotify");
}
@Override
public void execute(String[] args, MessageReceivedEvent event) {
Biscuit b = API.getBiscuit();
if(!event.getAuthor().isBot()) {
b.log(event.getAuthor().getName() + " issued a command: -dontnotify");
Role role = null;
for(Role r : event.getGuild().getRoles()) {
if(r.getName().toLowerCase().contains(PropertiesRetrieval.getDontNotify())) {
role = r;
}
}
if(role == null) {
b.error("Cannot find role!");
return;
}
Emote done = null;
for(Emote e : event.getGuild().getEmotes()) {
if(e.getName().contains(PropertiesRetrieval.getDoneEmote())) {
done = e;
}
}
if(done == null) {
b.error("Cannot find emote!");
return;
}
event.getGuild().addRoleToMember(event.getMember(), role).queue();
event.getMessage().addReaction(done).queue();
}
}
}

View File

@@ -1,7 +1,7 @@
package com.fpghoti.biscuit.commands.client;
import com.fpghoti.biscuit.Biscuit;
import com.fpghoti.biscuit.api.API;
import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.commands.ClientCommand;
import com.fpghoti.biscuit.config.PropertiesRetrieval;
import com.fpghoti.biscuit.util.Util;
@@ -22,7 +22,7 @@ public class MultiplyCommand extends ClientCommand{
@Override
public void execute(String[] args, MessageReceivedEvent event) {
Biscuit b = API.getBiscuit();
Biscuit b = Main.getBiscuit();
b.log(event.getAuthor().getName() + " issued a command: -multiply");
if(args[0] != null && Util.isDeciDigit(args[0]) && args[1] != null && Util.isDeciDigit(args[1])) {
double num = Double.parseDouble(args[0]);

View File

@@ -1,7 +1,7 @@
package com.fpghoti.biscuit.commands.client;
import com.fpghoti.biscuit.Biscuit;
import com.fpghoti.biscuit.api.API;
import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.commands.ClientCommand;
import com.fpghoti.biscuit.config.PropertiesRetrieval;
import com.fpghoti.biscuit.global.SpamRecords;
@@ -24,7 +24,7 @@ public class NotSpammerCommand extends ClientCommand{
@Override
public void execute(String[] args, MessageReceivedEvent event) {
Biscuit b = API.getBiscuit();
Biscuit b = Main.getBiscuit();
b.log(event.getAuthor().getName() + " issued a command: -notspammer " + args[0]);
for(Member m : event.getMessage().getMentionedMembers()){
User u = m.getUser();

View File

@@ -1,56 +0,0 @@
package com.fpghoti.biscuit.commands.client;
import com.fpghoti.biscuit.Biscuit;
import com.fpghoti.biscuit.api.API;
import com.fpghoti.biscuit.commands.ClientCommand;
import com.fpghoti.biscuit.config.PropertiesRetrieval;
import net.dv8tion.jda.api.entities.Emote;
import net.dv8tion.jda.api.entities.Role;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
public class NotifyCommand extends ClientCommand{
public NotifyCommand() {
name = "Notify";
description = "Puts user in Notify status.";
usage = PropertiesRetrieval.getCommandSignifier() + "notify";
minArgs = 0;
maxArgs = 0;
identifiers.add("notify");
}
@Override
public void execute(String[] args, MessageReceivedEvent event) {
Biscuit b = API.getBiscuit();
if(!event.getAuthor().isBot()) {
b.log(event.getAuthor().getName() + " issued a command: -notify");
Role role = null;
for(Role r : event.getGuild().getRoles()) {
if(r.getName().toLowerCase().contains(PropertiesRetrieval.getDontNotify())) {
role = r;
}
}
if(role == null) {
b.error("Cannot find role!");
return;
}
Emote done = null;
for(Emote e : event.getGuild().getEmotes()) {
if(e.getName().contains(PropertiesRetrieval.getDoneEmote())) {
done = e;
}
}
if(done == null) {
b.error("Cannot find emote!");
return;
}
event.getGuild().removeRoleFromMember(event.getMember(),role).queue();
event.getMessage().addReaction(done).queue();
}
}
}

View File

@@ -1,7 +1,7 @@
package com.fpghoti.biscuit.commands.client;
import com.fpghoti.biscuit.Biscuit;
import com.fpghoti.biscuit.api.API;
import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.commands.ClientCommand;
import com.fpghoti.biscuit.config.PropertiesRetrieval;
@@ -20,7 +20,7 @@ public class PingCommand extends ClientCommand{
@Override
public void execute(String[] args, MessageReceivedEvent event) {
Biscuit b = API.getBiscuit();
Biscuit b = Main.getBiscuit();
b.log(event.getAuthor().getName() + " issued a command: -ping");
event.getTextChannel().sendMessage("Pong!").queue();
}

View File

@@ -1,7 +1,7 @@
package com.fpghoti.biscuit.commands.client;
import com.fpghoti.biscuit.Biscuit;
import com.fpghoti.biscuit.api.API;
import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.commands.ClientCommand;
import com.fpghoti.biscuit.config.PropertiesRetrieval;
import com.fpghoti.biscuit.util.Util;
@@ -22,7 +22,7 @@ public class PowerCommand extends ClientCommand{
@Override
public void execute(String[] args, MessageReceivedEvent event) {
Biscuit b = API.getBiscuit();
Biscuit b = Main.getBiscuit();
b.log(event.getAuthor().getName() + " issued a command: -power");
if(args[0] != null && Util.isDeciDigit(args[0]) && args[1] != null && Util.isDeciDigit(args[1])) {
double num = Double.parseDouble(args[0]);

View File

@@ -1,7 +1,7 @@
package com.fpghoti.biscuit.commands.client;
import com.fpghoti.biscuit.Biscuit;
import com.fpghoti.biscuit.api.API;
import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.commands.ClientCommand;
import com.fpghoti.biscuit.config.PropertiesRetrieval;
import com.fpghoti.biscuit.global.SpamRecords;
@@ -22,7 +22,7 @@ public class RecentSpammersCommand extends ClientCommand{
@Override
public void execute(String[] args, MessageReceivedEvent event) {
Biscuit b = API.getBiscuit();
Biscuit b = Main.getBiscuit();
b.log(event.getAuthor().getName() + " issued a command: -recentspammers");
String msg = "Recent spammers:";
for( User u: SpamRecords.spammers){

View File

@@ -1,7 +1,7 @@
package com.fpghoti.biscuit.commands.client;
import com.fpghoti.biscuit.Biscuit;
import com.fpghoti.biscuit.api.API;
import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.commands.ClientCommand;
import com.fpghoti.biscuit.config.PropertiesRetrieval;
import com.fpghoti.biscuit.global.SpamRecords;
@@ -24,7 +24,7 @@ public class SoftMuteCommand extends ClientCommand{
@Override
public void execute(String[] args, MessageReceivedEvent event) {
Biscuit b = API.getBiscuit();
Biscuit b = Main.getBiscuit();
b.log(event.getAuthor().getName() + " issued a command: -softmute " + args[0]);
for(Member m : event.getMessage().getMentionedMembers()){
User u = m.getUser();

View File

@@ -1,7 +1,7 @@
package com.fpghoti.biscuit.commands.client;
import com.fpghoti.biscuit.Biscuit;
import com.fpghoti.biscuit.api.API;
import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.commands.ClientCommand;
import com.fpghoti.biscuit.config.PropertiesRetrieval;
import com.fpghoti.biscuit.util.Util;
@@ -22,7 +22,7 @@ public class SquareRootCommand extends ClientCommand{
@Override
public void execute(String[] args, MessageReceivedEvent event) {
Biscuit b = API.getBiscuit();
Biscuit b = Main.getBiscuit();
b.log(event.getAuthor().getName() + " issued a command: -squareroot");
if(args[0] != null && Util.isDeciDigit(args[0])) {
double num = Double.parseDouble(args[0]);

View File

@@ -1,7 +1,7 @@
package com.fpghoti.biscuit.commands.client;
import com.fpghoti.biscuit.Biscuit;
import com.fpghoti.biscuit.api.API;
import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.commands.ClientCommand;
import com.fpghoti.biscuit.config.PropertiesRetrieval;
import com.fpghoti.biscuit.util.Util;
@@ -22,7 +22,7 @@ public class SubtractCommand extends ClientCommand{
@Override
public void execute(String[] args, MessageReceivedEvent event) {
Biscuit b = API.getBiscuit();
Biscuit b = Main.getBiscuit();
b.log(event.getAuthor().getName() + " issued a command: -subtract");
if(args[0] != null && Util.isDeciDigit(args[0]) && args[1] != null && Util.isDeciDigit(args[1])) {
double num = Double.parseDouble(args[0]);

View File

@@ -0,0 +1,75 @@
package com.fpghoti.biscuit.commands.client;
import com.fpghoti.biscuit.Biscuit;
import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.commands.ClientCommand;
import com.fpghoti.biscuit.config.PropertiesRetrieval;
import com.fpghoti.biscuit.util.PermUtil;
import net.dv8tion.jda.api.entities.Emote;
import net.dv8tion.jda.api.entities.Role;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
public class ToggleRoleCommand extends ClientCommand{
public ToggleRoleCommand() {
name = "ToggleRole";
description = "Toggles specified role on/off";
usage = PropertiesRetrieval.getCommandSignifier() + "togglerole <role>";
minArgs = 1;
maxArgs = 1;
identifiers.add("togglerole");
identifiers.add("tr");
}
@Override
public void execute(String[] args, MessageReceivedEvent event) {
Biscuit b = Main.getBiscuit();
if(!event.getAuthor().isBot()) {
b.log(event.getAuthor().getName() + " issued a command: -togglerole " + args[0]);
String rolename = "";
for(String s : PropertiesRetrieval.getToggleRoles()) {
if(s.equalsIgnoreCase(args[0])) {
rolename = s;
}
}
if(rolename.equals("")) {
event.getTextChannel().sendMessage("Sorry! This role either cannot be toggled or does not exist!").queue();
return;
}
Role role = null;
for(Role r : event.getGuild().getRoles()) {
if(r.getName().toLowerCase().equalsIgnoreCase(rolename)) {
role = r;
}
}
if(role == null) {
b.error("Cannot find role!");
return;
}
Emote done = null;
for(Emote e : event.getGuild().getEmotes()) {
if(e.getName().contains(PropertiesRetrieval.getDoneEmote())) {
done = e;
}
}
if(done == null) {
b.error("Cannot find emote!");
return;
}
if(PermUtil.hasRole(event.getMember(), role)){
event.getGuild().removeRoleFromMember(event.getMember(),role).queue();
}else {
event.getGuild().addRoleToMember(event.getMember(), role).queue();
}
event.getMessage().addReaction(done).queue();
}
}
}

View File

@@ -1,7 +1,7 @@
package com.fpghoti.biscuit.commands.client;
import com.fpghoti.biscuit.Biscuit;
import com.fpghoti.biscuit.api.API;
import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.commands.ClientCommand;
import com.fpghoti.biscuit.config.PropertiesRetrieval;
import com.fpghoti.biscuit.util.PermUtil;
@@ -23,7 +23,7 @@ public class UIDCommand extends ClientCommand{
@Override
public void execute(String[] args, MessageReceivedEvent event) {
Biscuit b = API.getBiscuit();
Biscuit b = Main.getBiscuit();
b.log(event.getAuthor().getName() + " issued a command: -uid " + args[0]);
for(Member m : event.getMessage().getMentionedMembers()){
User u = m.getUser();

View File

@@ -1,7 +1,7 @@
package com.fpghoti.biscuit.commands.client;
import com.fpghoti.biscuit.Biscuit;
import com.fpghoti.biscuit.api.API;
import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.commands.ClientCommand;
import com.fpghoti.biscuit.config.PropertiesRetrieval;
import com.fpghoti.biscuit.global.SpamRecords;
@@ -24,7 +24,7 @@ public class UnSoftMuteCommand extends ClientCommand{
@Override
public void execute(String[] args, MessageReceivedEvent event) {
Biscuit b = API.getBiscuit();
Biscuit b = Main.getBiscuit();
b.log(event.getAuthor().getName() + " issued a command: -unsoftmute " + args[0]);
for(Member m : event.getMessage().getMentionedMembers()){
User u = m.getUser();

View File

@@ -2,7 +2,6 @@ package com.fpghoti.biscuit.commands.console;
import com.fpghoti.biscuit.Biscuit;
import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.api.API;
import com.fpghoti.biscuit.commands.ConsoleCommand;
import net.dv8tion.jda.api.entities.Guild;
@@ -23,7 +22,7 @@ public class SayCommand extends ConsoleCommand{
}
public void execute(String[] args) {
Biscuit b = API.getBiscuit();
Biscuit b = Main.getBiscuit();
if(args.length > 0) {
String target = args[0];
String message = "";

View File

@@ -2,7 +2,6 @@ package com.fpghoti.biscuit.commands.console;
import com.fpghoti.biscuit.Biscuit;
import com.fpghoti.biscuit.Main;
import com.fpghoti.biscuit.api.API;
import com.fpghoti.biscuit.commands.ConsoleCommand;
public class ShutdownConsoleCommand extends ConsoleCommand{
@@ -17,7 +16,7 @@ public class ShutdownConsoleCommand extends ConsoleCommand{
}
public void execute(String[] args) {
Biscuit b = API.getBiscuit();
Biscuit b = Main.getBiscuit();
if(args.length == 0) {
Main.shutdown();
}else{