diff --git a/src/pkg/deepCurse/nopalmo/command/CommandInterface.java b/src/pkg/deepCurse/nopalmo/command/CommandInterface.java index 5fe51f3..7045c34 100644 --- a/src/pkg/deepCurse/nopalmo/command/CommandInterface.java +++ b/src/pkg/deepCurse/nopalmo/command/CommandInterface.java @@ -30,7 +30,7 @@ public interface CommandInterface { // TODO rewrite to implement type args? public abstract HelpPage getHelpPage(); public enum HelpPage { - General, DEV, EGG, Moderation, Fun, Info + General, Moderation, Fun, Info, Extra, TESTING, DEV, EGG } public default String getHelp() { @@ -63,8 +63,7 @@ public interface CommandInterface { // TODO rewrite to implement type args? runDualCommand(new CommandBlob(blob), argumentMap); } - public void runDualCommand(CommandBlob blob, HashMap argumentMap) - throws Exception; + public void runDualCommand(CommandBlob blob, HashMap argumentMap) throws Exception; } diff --git a/src/pkg/deepCurse/nopalmo/command/commands/Git.java b/src/pkg/deepCurse/nopalmo/command/commands/info/Git.java similarity index 92% rename from src/pkg/deepCurse/nopalmo/command/commands/Git.java rename to src/pkg/deepCurse/nopalmo/command/commands/info/Git.java index e0829c3..d15acc5 100644 --- a/src/pkg/deepCurse/nopalmo/command/commands/Git.java +++ b/src/pkg/deepCurse/nopalmo/command/commands/info/Git.java @@ -1,4 +1,4 @@ -package pkg.deepCurse.nopalmo.command.commands; +package pkg.deepCurse.nopalmo.command.commands.info; import java.util.HashMap; diff --git a/src/pkg/deepCurse/nopalmo/command/commands/Help.java b/src/pkg/deepCurse/nopalmo/command/commands/info/Help.java similarity index 99% rename from src/pkg/deepCurse/nopalmo/command/commands/Help.java rename to src/pkg/deepCurse/nopalmo/command/commands/info/Help.java index 1723ef3..968dfb2 100644 --- a/src/pkg/deepCurse/nopalmo/command/commands/Help.java +++ b/src/pkg/deepCurse/nopalmo/command/commands/info/Help.java @@ -1,4 +1,4 @@ -package pkg.deepCurse.nopalmo.command.commands; +package pkg.deepCurse.nopalmo.command.commands.info; import java.time.Instant; import java.util.HashMap; diff --git a/src/pkg/deepCurse/nopalmo/command/commands/Ping.java b/src/pkg/deepCurse/nopalmo/command/commands/info/Ping.java similarity index 69% rename from src/pkg/deepCurse/nopalmo/command/commands/Ping.java rename to src/pkg/deepCurse/nopalmo/command/commands/info/Ping.java index cf7f4f3..b793492 100644 --- a/src/pkg/deepCurse/nopalmo/command/commands/Ping.java +++ b/src/pkg/deepCurse/nopalmo/command/commands/info/Ping.java @@ -1,30 +1,18 @@ -package pkg.deepCurse.nopalmo.command.commands; +package pkg.deepCurse.nopalmo.command.commands.info; import java.util.HashMap; import net.dv8tion.jda.api.entities.MessageChannel; -import pkg.deepCurse.nopalmo.command.CommandInterface.DirectCommandInterface; -import pkg.deepCurse.nopalmo.command.CommandInterface.GuildCommandInterface; +import pkg.deepCurse.nopalmo.command.CommandInterface.DualCommandInterface; import pkg.deepCurse.nopalmo.database.DatabaseTools.Tools.Global; import pkg.deepCurse.nopalmo.manager.Argument; import pkg.deepCurse.nopalmo.manager.CommandBlob; -import pkg.deepCurse.nopalmo.manager.DirectCommandBlob; -import pkg.deepCurse.nopalmo.manager.GuildCommandBlob; import pkg.deepCurse.nopalmo.utils.UptimePing; -public class Ping implements GuildCommandInterface, DirectCommandInterface { +public class Ping implements DualCommandInterface { @Override - public void runGuildCommand(GuildCommandBlob blob, HashMap argumentMap) throws Exception { - dualCommand(new CommandBlob(blob), argumentMap); - } - - @Override - public void runDirectCommand(DirectCommandBlob blob, HashMap argumentMap) throws Exception { - dualCommand(new CommandBlob(blob), argumentMap); - } - - private void dualCommand(CommandBlob blob, HashMap argumentMap) throws Exception { + public void runDualCommand(CommandBlob blob, HashMap argumentMap) throws Exception { MessageChannel channel = blob.getChannel(); diff --git a/src/pkg/deepCurse/nopalmo/command/commands/info/Prefix.java b/src/pkg/deepCurse/nopalmo/command/commands/info/Prefix.java new file mode 100644 index 0000000..9af001b --- /dev/null +++ b/src/pkg/deepCurse/nopalmo/command/commands/info/Prefix.java @@ -0,0 +1,35 @@ +package pkg.deepCurse.nopalmo.command.commands.info; + +import java.util.HashMap; + +import pkg.deepCurse.nopalmo.command.CommandInterface.GuildCommandInterface; +import pkg.deepCurse.nopalmo.manager.Argument; +import pkg.deepCurse.nopalmo.manager.GuildCommandBlob; + +public class Prefix implements GuildCommandInterface { + + @Override + public String[] getCommandCalls() { + return new String[] { "prefix", }; + } + + @Override + public HelpPage getHelpPage() { + return HelpPage.General; + } + + @Override + public void runGuildCommand(GuildCommandBlob blob, HashMap argumentList) throws Exception { + + } + + @Override + public HashMap getArguments() { + HashMap args = new HashMap(); + + args.put("prefix", new Argument("prefix").setIsWildcard(true)); + + return args; + } + +} diff --git a/src/pkg/deepCurse/nopalmo/global/Reactions.java b/src/pkg/deepCurse/nopalmo/global/Reactions.java index 903484b..5cada68 100644 --- a/src/pkg/deepCurse/nopalmo/global/Reactions.java +++ b/src/pkg/deepCurse/nopalmo/global/Reactions.java @@ -8,6 +8,8 @@ public class Reactions { public static void init() { insert("galaxyThumb", 801657838358495232L); + insert("kirbo_wadafuq", 799633705068003338L); + } public static void insert(String input, long id) { diff --git a/src/pkg/deepCurse/nopalmo/manager/Argument.java b/src/pkg/deepCurse/nopalmo/manager/Argument.java index d5edd7f..e4c89e4 100644 --- a/src/pkg/deepCurse/nopalmo/manager/Argument.java +++ b/src/pkg/deepCurse/nopalmo/manager/Argument.java @@ -21,6 +21,8 @@ public class Argument { private String argName = null; private Argument[] subArgs = null; private boolean requiresPrefix = false; + private Boolean isWildcard; + public static final String argumentPrefix = "-"; // This exists for the sole reason of customization and will // generally not change, ever, its recommended you keep it to // something other than empty to help ensure that what the user @@ -109,6 +111,15 @@ public class Argument { this.requiresPrefix = bool; return this; } + + public Argument setIsWildcard(Boolean bool) { + this.isWildcard = bool; + return this; + } + + public Boolean getIsWildcard() { + return isWildcard; + } public boolean getPrefixRequirement() { return this.requiresPrefix; @@ -116,7 +127,7 @@ public class Argument { public interface RunnableArg { - public void run(); + public void run(Argument[] argArray); } diff --git a/src/pkg/deepCurse/nopalmo/manager/CommandManager.java b/src/pkg/deepCurse/nopalmo/manager/CommandManager.java index fc7cb61..40c9f27 100644 --- a/src/pkg/deepCurse/nopalmo/manager/CommandManager.java +++ b/src/pkg/deepCurse/nopalmo/manager/CommandManager.java @@ -1,7 +1,5 @@ package pkg.deepCurse.nopalmo.manager; public abstract class CommandManager { - - - + } diff --git a/src/pkg/deepCurse/nopalmo/manager/DirectCommandManager.java b/src/pkg/deepCurse/nopalmo/manager/DirectCommandManager.java index 5997e4a..a725615 100644 --- a/src/pkg/deepCurse/nopalmo/manager/DirectCommandManager.java +++ b/src/pkg/deepCurse/nopalmo/manager/DirectCommandManager.java @@ -13,7 +13,7 @@ import java.util.regex.Pattern; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import pkg.deepCurse.nopalmo.command.CommandInterface.DirectCommandInterface; -import pkg.deepCurse.nopalmo.command.commands.Ping; +import pkg.deepCurse.nopalmo.command.commands.info.Ping; import pkg.deepCurse.nopalmo.core.Boot; import pkg.deepCurse.nopalmo.database.DatabaseTools; import pkg.deepCurse.nopalmo.global.Tools; @@ -29,7 +29,6 @@ public class DirectCommandManager extends CommandManager { } public void init() { - addCommand(new Ping()); } @@ -113,25 +112,6 @@ public class DirectCommandManager extends CommandManager { } } } -// -// if (guildCommand.getArguments() != null) { -// -// String newArg = x; -// -// if (!newArg.startsWith(Argument.argumentPrefix)) { -// if (guildCommand.getArguments().get(newArg)!=null) { -// -// } -// } -// -// if (guildCommand.getArguments().containsKey(newArg)) { -// -// argumentList.put(guildCommand.getArguments().get(newArg).getArgName(), -// guildCommand.getArguments().get(newArg)); -// } else -// -// argumentList.put(newArg, new Argument(newArg)); -// } } } } diff --git a/src/pkg/deepCurse/nopalmo/manager/GuildCommandManager.java b/src/pkg/deepCurse/nopalmo/manager/GuildCommandManager.java index 3882207..2054b60 100644 --- a/src/pkg/deepCurse/nopalmo/manager/GuildCommandManager.java +++ b/src/pkg/deepCurse/nopalmo/manager/GuildCommandManager.java @@ -13,9 +13,10 @@ import java.util.regex.Pattern; import net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent; import pkg.deepCurse.nopalmo.command.CommandInterface.GuildCommandInterface; -import pkg.deepCurse.nopalmo.command.commands.Git; -import pkg.deepCurse.nopalmo.command.commands.Help; -import pkg.deepCurse.nopalmo.command.commands.Ping; +import pkg.deepCurse.nopalmo.command.commands.info.Git; +import pkg.deepCurse.nopalmo.command.commands.info.Help; +import pkg.deepCurse.nopalmo.command.commands.info.Ping; +import pkg.deepCurse.nopalmo.command.commands.info.Prefix; import pkg.deepCurse.nopalmo.core.Boot; import pkg.deepCurse.nopalmo.database.DatabaseTools; import pkg.deepCurse.nopalmo.global.Tools; @@ -34,6 +35,7 @@ public class GuildCommandManager extends CommandManager { addCommand(new Help(this)); addCommand(new Ping()); addCommand(new Git()); + addCommand(new Prefix()); } private void addCommand(GuildCommandInterface c) { @@ -81,8 +83,10 @@ public class GuildCommandManager extends CommandManager { boolean printTime = false; byte argSkipCount = 0; boolean remainsValid = true; + boolean isWildCard = false; for (String x : args) { + boolean taken = false; x = x.toLowerCase(); switch (x) { case "\\time": @@ -102,47 +106,33 @@ public class GuildCommandManager extends CommandManager { if (x.startsWith(Argument.argumentPrefix)) { String pre = x.substring(Argument.argumentPrefix.length()); - if (guildCommand.getArguments().keySet().contains(pre)) { argumentList.put(pre, guildCommand.getArguments().get(pre)); + taken = true; } else { Tools.wrongUsage(guildMessage.getChannel(), guildCommand); remainsValid = false; } } else { + // if (!guildCommand.getArguments().get(x).getIsWildcard()) { if (guildCommand.getArguments().get(x).getPrefixRequirement()) { Tools.wrongUsage(guildMessage.getChannel(), guildCommand); remainsValid = false; } else { argumentList.put(x, guildCommand.getArguments().get(x)); + taken = true; } + // } else { + // argumentList.put(x, guildCommand.getArguments().get(x)); + // } } } -// -// if (guildCommand.getArguments() != null) { -// -// String newArg = x; -// -// if (!newArg.startsWith(Argument.argumentPrefix)) { -// if (guildCommand.getArguments().get(newArg)!=null) { -// -// } -// } -// -// if (guildCommand.getArguments().containsKey(newArg)) { -// -// argumentList.put(guildCommand.getArguments().get(newArg).getArgName(), -// guildCommand.getArguments().get(newArg)); -// } else -// -// argumentList.put(newArg, new Argument(newArg)); -// } } } } - + commandBlob.setCommandManager(this); - + if (remainsValid) { guildCommand.runGuildCommand(commandBlob, argumentList); }