diff --git a/src/pkg/deepCurse/nopalmo/command/CommandInterface.java b/src/pkg/deepCurse/nopalmo/command/CommandInterface.java index 9534e7a..f273709 100644 --- a/src/pkg/deepCurse/nopalmo/command/CommandInterface.java +++ b/src/pkg/deepCurse/nopalmo/command/CommandInterface.java @@ -37,31 +37,34 @@ public interface CommandInterface { // TODO rewrite to implement type args? public default String getUsage(boolean hasPermissionInfo) { StringBuilder sB = new StringBuilder(); - for (Argument i : getArguments().values()) { - if ((i.isDeveloper() && hasPermissionInfo) || !i.isDeveloper()) { - if (i.isRequired()) { - sB.append("<"); - } else { - sB.append("["); - } + if (getArguments() != null) { + for (Argument i : getArguments().values()) { + if ((i.isDeveloper() && hasPermissionInfo) || !i.isDeveloper()) { + if (i.isRequired()) { + sB.append("<"); + } else { + sB.append("["); + } - sB.append((i.isPrefixRequired() ? Argument.argumentPrefix : "")+i.getArgName()); + sB.append((i.isPrefixRequired() ? Argument.argumentPrefix : "") + i.getArgName()); - if (i.getAliases() != null) { - for (String j : i.getAliases()) { - sB.append(" | " + (i.isPrefixRequired() ? Argument.argumentPrefix : "") + j); + if (i.getAliases() != null) { + for (String j : i.getAliases()) { + sB.append(" | " + (i.isPrefixRequired() ? Argument.argumentPrefix : "") + j); + } + } + + if (i.isRequired()) { + sB.append("> "); + } else { + sB.append("] "); } } - - if (i.isRequired()) { - sB.append("> "); - } else { - sB.append("] "); - } } + return Global.prefix + getCommandName() + " " + sB.toString().trim(); } - return Global.prefix + getCommandName() + " " + sB.toString().trim(); + return Global.prefix + getCommandName(); } public default int getTimeout() { @@ -103,42 +106,4 @@ public interface CommandInterface { // TODO rewrite to implement type args? } } -} -/* - * - * - * StringBuilder sB = new StringBuilder(); if (getArguments() != null) { for - * (String i : getArguments().keySet()) { // sB.delete(0, sB.length()); if - * (!getArguments().get(i).isDeveloper() || (hasPermissionInfo && - * getArguments().get(i).isDeveloper())) { - * sB.append(getArguments().get(i).isRequired() ? "<" : "["); - * - * sB.append((getArguments().get(i).isPrefixRequired() ? - * sB.append(Argument.argumentPrefix) : "")); - * - * sB.append(i); // System.out.println("01"+sB.toString()); // for (int j = 0; j - * < getArguments().get(i).getAliases().size(); j++) { // sB.append((j < - * getArguments().get(i).getAliases().size() ? " | " : "") // + - * (getArguments().get(i).isPrefixRequired() ? - * sB.append(Argument.argumentPrefix) : "") // + - * getArguments().get(i).getAliases().get(j)); // - * System.out.println("02"+sB.toString()); // } - * sB.append(getArguments().get(i).isRequired() ? "> " : "] "); - * System.out.println("[000] :\t"+sB.toString()); } } } - * - * System.out.println("[001] :\t"+sB.toString()); return (Global.prefix + - * getCommandName() + " " + sB.toString()).strip(); - * - * //StringBuilder sB = new StringBuilder(); //if (getArguments() != null) { // - * for (String i : getArguments().keySet()) { // if - * (!getArguments().get(i).isDeveloper() // || (hasPermissionInfo && - * getArguments().get(i).isDeveloper())) { // - * sB.append(getArguments().get(i).isRequired() ? "<" : "["); // if - * (getArguments().get(i).isPrefixRequired()) { // - * sB.append(Argument.argumentPrefix); // } // sB.append(i); // for (int j = 0; - * j < getArguments().get(i).getAliases().size(); j++) { // sB.append((j < - * getArguments().get(i).getAliases().size() ? " | " : "") // + - * getArguments().get(i).getAliases().get(j)); // } // - * sB.append(getArguments().get(i).isRequired() ? "> " : "] "); // } // } //} // - * //return (Global.prefix + getCommandName() + " " + sB.toString()).strip(); - */ \ No newline at end of file +} \ No newline at end of file diff --git a/src/pkg/deepCurse/nopalmo/command/commands/fun/Stupid.java b/src/pkg/deepCurse/nopalmo/command/commands/fun/Stupid.java new file mode 100644 index 0000000..f982a36 --- /dev/null +++ b/src/pkg/deepCurse/nopalmo/command/commands/fun/Stupid.java @@ -0,0 +1,45 @@ +package pkg.deepCurse.nopalmo.command.commands.fun; + +import java.util.HashMap; + +import org.jetbrains.annotations.Nullable; + +import net.dv8tion.jda.api.entities.Member; +import pkg.deepCurse.nopalmo.command.CommandInterface.GuildCommandInterface; +import pkg.deepCurse.nopalmo.manager.Argument; +import pkg.deepCurse.nopalmo.manager.CommandBlob; + +public class Stupid implements GuildCommandInterface { + + @Override + public String[] getCommandCalls() { + return new String[] { "stupid", "dumb" }; + } + + @Override + public HelpPage getHelpPage() { + return HelpPage.Fun; + } + + @Override + public String getHelp() { + return "This calls someone stupid, stupid"; + } + + @Override + public @Nullable HashMap getArguments() { + return null; + } + + @Override + public void runGuildCommand(CommandBlob blob, HashMap argumentList) throws Exception { + StringBuilder sB = new StringBuilder(); + for (Member i : blob.getMessage().getMentionedMembers()) { + sB.append(i.getAsMention() + " "); + } + blob.getMessage().delete().queue(); + blob.getChannel().sendMessage(blob.getAuthor().getName() + " calls you stupid! " + sB.toString()).queue(); + + } + +} diff --git a/src/pkg/deepCurse/nopalmo/command/commands/general/Test.java b/src/pkg/deepCurse/nopalmo/command/commands/general/Test.java index 5a99516..7de3bf2 100644 --- a/src/pkg/deepCurse/nopalmo/command/commands/general/Test.java +++ b/src/pkg/deepCurse/nopalmo/command/commands/general/Test.java @@ -27,12 +27,12 @@ public class Test implements GuildCommandInterface { @Override public boolean isNSFW() { - return true; + return false; } @Override public int getPremiumLevel() { - return 1; + return 0; } @Override diff --git a/src/pkg/deepCurse/nopalmo/command/commands/info/Help.java b/src/pkg/deepCurse/nopalmo/command/commands/info/Help.java index 3ece48e..4d6cefa 100644 --- a/src/pkg/deepCurse/nopalmo/command/commands/info/Help.java +++ b/src/pkg/deepCurse/nopalmo/command/commands/info/Help.java @@ -18,32 +18,32 @@ public class Help implements GuildCommandInterface { public final CommandManager manager; + public static final List deniedPages = new ArrayList(); + public Help(CommandManager m) { this.manager = m; + deniedPages.add(HelpPage.DEV); + deniedPages.add(HelpPage.EGG); + deniedPages.add(HelpPage.TESTING); } @Override public void runGuildCommand(CommandBlob blob, HashMap argumentMap) throws Exception { - boolean isDevEnabled = argumentMap.get("dev") != null; - - final List deniedPages = new ArrayList(); - deniedPages.add(HelpPage.DEV); - deniedPages.add(HelpPage.EGG); - deniedPages.add(HelpPage.TESTING); + // boolean blob.isDeveloper() = argumentMap.get("dev") != null; if (argumentMap.get("commandName") == null) { - EmbedBuilder embed = new EmbedBuilder().setTitle(isDevEnabled ? "^Commands:" : "Commands:"); + EmbedBuilder embed = new EmbedBuilder().setTitle( + blob.isDeveloper() ? "^Commands:" + blob.isDeveloper() : "Commands:" + blob.isDeveloper()); HashMap> commandHash = new HashMap>(); - // TODO yet another rewrite // TODO add command to log a string for (HelpPage i : HelpPage.values()) { ArrayList commandNameList = commandHash.get(i); for (CommandInterface command : manager.getCommands()) { - if (!(deniedPages.contains(i) && argumentMap.get("dev") == null)) { + if (!(deniedPages.contains(i) && !blob.isDeveloper())) { if (command.getHelpPage() == i) { if (commandNameList == null) { commandNameList = new ArrayList(); @@ -60,7 +60,7 @@ public class Help implements GuildCommandInterface { } commandNameList = null; } - + // blob.getChannel().sendMessage(commandHash.toString()).queue(); for (HelpPage i : HelpPage.values()) { @@ -110,17 +110,17 @@ public class Help implements GuildCommandInterface { CommandInterface ping = blob.getCommandManager().getCommand("ping"); if (ping != null) { - sB.append("`" + ping.getUsage(isDevEnabled) + "`\n"); + sB.append("`" + ping.getUsage(blob.isDeveloper()) + "`\n"); } CommandInterface info = blob.getCommandManager().getCommand("info"); if (info != null) { - sB.append("`" + info.getUsage(isDevEnabled) + "`\n"); + sB.append("`" + info.getUsage(blob.isDeveloper()) + "`\n"); } CommandInterface prefix = blob.getCommandManager().getCommand("prefix"); if (prefix != null) { - sB.append("`" + prefix.getUsage(isDevEnabled) + "`\n"); + sB.append("`" + prefix.getUsage(blob.isDeveloper()) + "`\n"); } embed.addField("Information:", "Commands to take note of:\n" + sB, false); @@ -136,7 +136,7 @@ public class Help implements GuildCommandInterface { CommandInterface command = manager.getCommand(argumentMap.get("commandName").getWildCardString()); - if (command != null && ((deniedPages.contains(command.getHelpPage()) && isDevEnabled) + if (command != null && ((deniedPages.contains(command.getHelpPage()) && blob.isDeveloper()) || !deniedPages.contains(command.getHelpPage()))) { if (!blob.isFromGuild() ? true : !(command.isNSFW() && !((TextChannel) blob.getChannel()).isNSFW())) { EmbedBuilder eB = new EmbedBuilder(); @@ -151,7 +151,7 @@ public class Help implements GuildCommandInterface { eB.addField("Help info:", "This command does not contain help information", false); } - eB.addField("Usage:", "`" + command.getUsage(isDevEnabled) + "`", false); + eB.addField("Usage:", "`" + command.getUsage(blob.isDeveloper()) + "`", false); eB.addField("Page:", command.getHelpPage().toString(), true); // ("Page: " + // command.getHelpPage().toString()); @@ -221,8 +221,8 @@ public class Help implements GuildCommandInterface { HashMap args = new HashMap(); args.put("commandName", new Argument("commandName").setPosition(0).setIsWildcard(true)); - args.put("dev", new Argument("dev").setPrefixRequirement(true).setPermissionLevel("infopermission") - .addAliases("d", "developer", "extra", "shit", "to", "test")); +// args.put("dev", new Argument("dev").setPrefixRequirement(true).setPermissionLevel("infopermission") +// .addAliases("d", "developer", "extra", "shit", "to", "test")); return args; } diff --git a/src/pkg/deepCurse/nopalmo/command/commands/info/Info.java b/src/pkg/deepCurse/nopalmo/command/commands/info/Info.java index c41b4ce..be52bdd 100644 --- a/src/pkg/deepCurse/nopalmo/command/commands/info/Info.java +++ b/src/pkg/deepCurse/nopalmo/command/commands/info/Info.java @@ -30,12 +30,12 @@ public class Info implements GuildCommandInterface, PrivateCommandInterface { @Override public @Nullable HashMap getArguments() { HashMap args = new HashMap(); - + args.put("userdump", new Argument("userdump", (CommandBlob blob) -> { blob.getChannel().sendMessage(!Users.dump(blob.getAuthorID()).isEmpty() ? Users.dump(blob.getAuthorID()) : "Sorry, but this user does not exist in the database").queue(); }).setPrefixRequirement(true).setAutoStartRunnable(true).setSkipOriginalTaskOnRunnable(true).addAliases("u")); - + return args; } @@ -45,6 +45,9 @@ public class Info implements GuildCommandInterface, PrivateCommandInterface { @Override public void runGuildCommand(CommandBlob blob, HashMap argumentList) throws Exception { - blob.getChannel().sendMessage("This command is used to send data stored in the database to whoever is authorized to view it, to view your own data, use `"+getCommandName()+" -userdump`").queue(); + blob.getChannel().sendMessage( + "This command is used to send data stored in the database to whoever is authorized to view it, to view your own data, use `" + + getCommandName() + " -userdump`") + .queue(); } } diff --git a/src/pkg/deepCurse/nopalmo/command/commands/info/Reload.java b/src/pkg/deepCurse/nopalmo/command/commands/info/Reload.java index 7b980ff..3a24012 100644 --- a/src/pkg/deepCurse/nopalmo/command/commands/info/Reload.java +++ b/src/pkg/deepCurse/nopalmo/command/commands/info/Reload.java @@ -5,14 +5,17 @@ import java.util.HashMap; import org.jetbrains.annotations.Nullable; import pkg.deepCurse.nopalmo.command.CommandInterface.DualCommandInterface; +import pkg.deepCurse.nopalmo.global.Reactions; import pkg.deepCurse.nopalmo.manager.Argument; import pkg.deepCurse.nopalmo.manager.CommandBlob; +import pkg.deepCurse.nopalmo.manager.StatusManager; +import pkg.deepCurse.nopalmo.utils.LogHelper; public class Reload implements DualCommandInterface { @Override public String[] getCommandCalls() { - return new String[] {"reload"}; + return new String[] { "reload", "r" }; } @Override @@ -32,7 +35,43 @@ public class Reload implements DualCommandInterface { @Override public void runDualCommand(CommandBlob blob, HashMap argumentMap) throws Exception { - blob.getCommandManager().init(); + StringBuilder sB = new StringBuilder(); + + LogHelper.log("Init reaction/emote list", getClass()); + sB.append("Init reaction/emote list\n"); + try { + Reactions.init(); + LogHelper.log("Initialized reaction/emote list. . .", getClass()); + sB.append("Initialized reaction/emote list. . .\n"); + } catch (Exception e) { + LogHelper.log("Failed to initialize reaction/emote list. . .\n" + e + "\n", getClass()); + sB.append("Failed to initialize reaction/emote list. . .\n" + e + "\n"); + } + + LogHelper.log("Init command list", getClass()); + sB.append("Init command list\n"); + try { + blob.getCommandManager().init(); + LogHelper.log("Initialized command list. . .", getClass()); + sB.append("Initialized command list. . .\n"); + } catch (Exception e) { + LogHelper.log("Failed to initialize command list. . .\n" + e + "\n", getClass()); + sB.append("Failed to initialize command list. . .\n" + e + "\n"); + } + + LogHelper.log("Init status list", getClass()); + sB.append("Init status list\n"); + try { + StatusManager.init(); + LogHelper.log("Initialized status list. . .", getClass()); + sB.append("Initialized status list. . .\n"); + } catch (Exception e) { + LogHelper.log("Failed to initialize status list. . .\n" + e + "\n", getClass()); + sB.append("Failed to initialize status list. . .\n" + e + "\n"); + } + + blob.getChannel().sendMessage(sB.toString()).queue(); + } } diff --git a/src/pkg/deepCurse/nopalmo/command/commands/testing/BontebokInterpret.java b/src/pkg/deepCurse/nopalmo/command/commands/testing/BontebokInterpret.java new file mode 100644 index 0000000..183b2d9 --- /dev/null +++ b/src/pkg/deepCurse/nopalmo/command/commands/testing/BontebokInterpret.java @@ -0,0 +1,52 @@ +package pkg.deepCurse.nopalmo.command.commands.testing; + +import java.util.HashMap; + +import org.jetbrains.annotations.Nullable; + +import pkg.deepCurse.bontebok.core.BontebokInterpreter; +import pkg.deepCurse.nopalmo.command.CommandInterface.DualCommandInterface; +import pkg.deepCurse.nopalmo.manager.Argument; +import pkg.deepCurse.nopalmo.manager.CommandBlob; + +public class BontebokInterpret implements DualCommandInterface { + + @Override + public String[] getCommandCalls() { + return new String[] { "bontebok", "interpret", "int", "bo" }; + } + + @Override + public HelpPage getHelpPage() { + return HelpPage.TESTING; + } + + @Override + public String getHelp() { + return "This command will interpret a string using the bontebok interpreter"; + } + + @Override + public @Nullable HashMap getArguments() { + return null; + } + + @Override + public void runDualCommand(CommandBlob blob, HashMap argumentMap) throws Exception { + + blob.getChannel().sendMessage("Interpreting. . .").queue(); + + String returnValue = BontebokInterpreter.InterpretString(argumentMap.get("null").getWildCardString(), null); + + switch (returnValue.substring(0, 1)) { +// case "0": +// blob.getChannel().sendMessage("Operation completed with return value 0").queue(); +// break; + case "1": + blob.getChannel().sendMessage("Operation failed with return value 1" + + (returnValue.substring(1).isBlank() ? "" : ": " + returnValue.substring(1))).queue(); + break; + } + } + +} diff --git a/src/pkg/deepCurse/nopalmo/core/Boot.java b/src/pkg/deepCurse/nopalmo/core/Boot.java index 8577228..e128491 100644 --- a/src/pkg/deepCurse/nopalmo/core/Boot.java +++ b/src/pkg/deepCurse/nopalmo/core/Boot.java @@ -41,54 +41,56 @@ public class Boot { public static void main(String[] args) { - PhoenixSettings settings = new PhoenixSettings().setAuthentication(args[3]).setCommandSplitRegex(", ").setCommandManager(new PhoenixCommandManager()); + PhoenixSettings settings = new PhoenixSettings().setAuthentication(args[3]).setCommandSplitRegex(", ") + .setCommandManager(new PhoenixCommandManager()); + + // TODO using join and a while last time + 15000 < current time, then kill and + // proceed as a failure - // TODO using join and a while last time + 15000 < current time, then kill and proceed as a failure - settings.commandManager.addCommand("phoenix-update", (PhoenixRuntime runtime, List commandArgs) -> { - System.out.println("Received "); - + LogHelper.log("Received ", Boot.class); + Socks.sendStringSock(settings.address, settings.commonPort, "phoenix-update-confirm"); - - System.out.println("Sent "); - + + LogHelper.log("Sent ", Boot.class); + if (bot != null) { bot.shutdown(); } runtime.shutdown(9); }); - + // settings.actions.put("phoenix-update-confirm", (PhoenixRuntime runtime) -> { -// System.out.println("Received "); +// LogHelper.log("Received "); // }); - + PhoenixRuntime runtime = new PhoenixRuntime(settings, new PhoenixInterface() { @Override public void boot() { - LogHelper.boot("Booting: <" + pid + ">"); + LogHelper.log("Booting: <" + pid + ">", Boot.class); long preBootTime = System.currentTimeMillis(); isProd = args[2].contentEquals("prod"); - LogHelper.boot("Connecting to mariadb:nopalmo"); + LogHelper.log("Connecting to mariadb:nopalmo", Boot.class); try { databaseTools = new DatabaseTools(args[1]); - LogHelper.boot("Connected. . ."); + LogHelper.log("Connected. . .", Boot.class); } catch (SQLException | ClassNotFoundException e1) { e1.printStackTrace(); - LogHelper.boot("Failed to connect\nShutting down. . ."); + LogHelper.log("Failed to connect\nShutting down. . .", Boot.class); System.exit(4); } - LogHelper.boot("Init reaction/emote list"); + LogHelper.log("Init reaction/emote list", Boot.class); Reactions.init(); - LogHelper.boot("Initialized reaction/emote list. . ."); - LogHelper.boot("Init commands list"); + LogHelper.log("Initialized reaction/emote list. . .", Boot.class); + LogHelper.log("Init commands list", Boot.class); commandManager.init(); - LogHelper.boot("Initialized commands list. . ."); + LogHelper.log("Initialized commands list. . .", Boot.class); try { // bot = JDABuilder.createDefault(args[0]).setChunkingFilter(ChunkingFilter.ALL) @@ -133,23 +135,21 @@ public class Boot { } catch (Exception e) { LogHelper.crash(e); } - - LogHelper.boot("Using account: " + bot.getSelfUser().getName()); - - - + + LogHelper.log("Using account: " + bot.getSelfUser().getName(), Boot.class); + bot.getPresence().setStatus(OnlineStatus.ONLINE); bot.getPresence().setActivity(Activity.listening("Infected Mushroom")); - LogHelper.boot("Init status list"); + LogHelper.log("Init status list", Boot.class); StatusManager.init(); - LogHelper.boot("Initialized status list. . ."); + LogHelper.log("Initialized status list. . .", Boot.class); long bootTime = System.currentTimeMillis() - preBootTime; - LogHelper.boot("Taken " + bootTime + "ms to boot"); + LogHelper.log("Taken " + bootTime + "ms to boot", Boot.class); - LogHelper.boot("Starting loop"); + LogHelper.log("Starting loop", Boot.class); loop(); } @@ -171,7 +171,7 @@ public class Boot { if (now > lastTime + dynamicWait) { // dynamic wait loop lastTime = now; try { - bot.getSelfUser(); + bot.getSelfUser(); } catch (Exception e) { e.printStackTrace(); } @@ -206,10 +206,8 @@ public class Boot { }); runtime.setLockedRunnable(() -> { - System.out.println("System is locked\nSending instead. . . "); - - - + LogHelper.log("System is locked\nSending instead. . . ", Boot.class); + try { Socket cSocket = new Socket("127.0.0.1", settings.commonPort); DataOutputStream dOut = new DataOutputStream(cSocket.getOutputStream()); @@ -220,11 +218,9 @@ public class Boot { } catch (IOException e) { e.printStackTrace(); } - - - + // settings.getRuntime().shutdown(0); - + }); runtime.launch(); diff --git a/src/pkg/deepCurse/nopalmo/database/DatabaseTools.java b/src/pkg/deepCurse/nopalmo/database/DatabaseTools.java index e91d2f6..b1f04fc 100644 --- a/src/pkg/deepCurse/nopalmo/database/DatabaseTools.java +++ b/src/pkg/deepCurse/nopalmo/database/DatabaseTools.java @@ -14,6 +14,7 @@ import org.jetbrains.annotations.Nullable; import pkg.deepCurse.nopalmo.core.Boot; import pkg.deepCurse.nopalmo.database.DatabaseTools.Tools.Global; +import pkg.deepCurse.nopalmo.utils.LogHelper; public class DatabaseTools { @@ -44,11 +45,14 @@ public class DatabaseTools { public static void checkUpdateCounts(String action, int[] updateCounts) { for (int i = 0; i < updateCounts.length; i++) { if (updateCounts[i] >= 0) { - System.out.println("Successfully executed; updateCount=" + updateCounts[i] + "; On action " + action); + LogHelper.log("Successfully executed; updateCount=" + updateCounts[i] + "; On action " + action, + DatabaseTools.class); } else if (updateCounts[i] == Statement.SUCCESS_NO_INFO) { - System.out.println("Successfully executed; updateCount=Statement.SUCCESS_NO_INFO; On action " + action); + LogHelper.log("Successfully executed; updateCount=Statement.SUCCESS_NO_INFO; On action " + action, + DatabaseTools.class); } else if (updateCounts[i] == Statement.EXECUTE_FAILED) { - System.out.println("Failed to execute; updateCount=Statement.EXECUTE_FAILED; On action " + action); + LogHelper.log("Failed to execute; updateCount=Statement.EXECUTE_FAILED; On action " + action, + DatabaseTools.class); } } } @@ -140,7 +144,7 @@ public class DatabaseTools { } public static void addUser(long idLong) { - + } } @@ -268,7 +272,7 @@ public class DatabaseTools { } catch (SQLException e) { SQLCode.getMessage(query, e.getErrorCode()); - // System.out.println("eeeeee"); + // LogHelper.log("eeeeee"); return false; } finally { try { @@ -306,7 +310,7 @@ public class DatabaseTools { } catch (SQLException e) { SQLCode.getMessage(query, e.getErrorCode()); - // System.out.println("eeeeee"); + // LogHelper.log("eeeeee"); return null; } finally { try { @@ -363,7 +367,7 @@ public class DatabaseTools { } catch (SQLException e) { SQLCode.getMessage(query, e.getErrorCode()); - // System.out.println("eeeeee"); + // LogHelper.log("eeeeee"); throw new SQLException(e); } finally { try { @@ -400,7 +404,7 @@ public class DatabaseTools { } catch (SQLException e) { SQLCode.getMessage(query, e.getErrorCode()); - // System.out.println("eeeeee"); + // LogHelper.log("eeeeee"); return false; } finally { try { @@ -437,7 +441,7 @@ public class DatabaseTools { } catch (SQLException e) { SQLCode.getMessage(query, e.getErrorCode()); - // System.out.println("eeeeee"); + // LogHelper.log("eeeeee"); return 45000; } finally { try { @@ -474,7 +478,7 @@ public class DatabaseTools { } catch (SQLException e) { SQLCode.getMessage(query, e.getErrorCode()); - // System.out.println("eeeeee"); + // LogHelper.log("eeeeee"); return 0; } finally { try { @@ -515,7 +519,7 @@ public class DatabaseTools { // // } catch (SQLException e) { // sqlTranslate(query, e.getErrorCode()); -// // System.out.println("eeeeee"); +// // LogHelper.log("eeeeee"); // return null; // } finally { // try { diff --git a/src/pkg/deepCurse/nopalmo/database/RamDisk.java b/src/pkg/deepCurse/nopalmo/database/RamDisk.java index 0bd538f..5b60a0e 100644 --- a/src/pkg/deepCurse/nopalmo/database/RamDisk.java +++ b/src/pkg/deepCurse/nopalmo/database/RamDisk.java @@ -3,12 +3,12 @@ package pkg.deepCurse.nopalmo.database; import java.util.HashMap; public class RamDisk { - + public static HashMap bools = new HashMap(); // public static - + public static void init() { bools.put("shouldRun", true); } - + } diff --git a/src/pkg/deepCurse/nopalmo/global/Reactions.java b/src/pkg/deepCurse/nopalmo/global/Reactions.java index e137091..f07fb87 100644 --- a/src/pkg/deepCurse/nopalmo/global/Reactions.java +++ b/src/pkg/deepCurse/nopalmo/global/Reactions.java @@ -28,7 +28,8 @@ public class Reactions { } public static String getEmote(String id) { - return id.startsWith(":") ? internalReactionMap.get(id.substring(1)) : "<:" + id + ":" + reactionMap.get(id) + ">"; + return id.startsWith(":") ? internalReactionMap.get(id.substring(1)) + : "<:" + id + ":" + reactionMap.get(id) + ">"; } } diff --git a/src/pkg/deepCurse/nopalmo/listener/MessageReceivedListener.java b/src/pkg/deepCurse/nopalmo/listener/MessageReceivedListener.java index 3270ef1..77e8054 100644 --- a/src/pkg/deepCurse/nopalmo/listener/MessageReceivedListener.java +++ b/src/pkg/deepCurse/nopalmo/listener/MessageReceivedListener.java @@ -10,14 +10,15 @@ import pkg.deepCurse.nopalmo.core.Boot; import pkg.deepCurse.nopalmo.database.DatabaseTools; import pkg.deepCurse.nopalmo.database.DatabaseTools.Tools.Global; import pkg.deepCurse.nopalmo.global.Reactions; +import pkg.deepCurse.nopalmo.utils.LogHelper; public class MessageReceivedListener extends ListenerAdapter { @Override public void onReady(@Nonnull ReadyEvent event) { - System.out.println("MessageReceivedListener is now ready\n" + event.getGuildAvailableCount() + "/" + LogHelper.log("MessageReceivedListener is now ready\n" + event.getGuildAvailableCount() + "/" + event.getGuildTotalCount() + " : " + event.getGuildUnavailableCount() + " <" - + event.getResponseNumber() + ">"); + + event.getResponseNumber() + ">", getClass()); } @Override diff --git a/src/pkg/deepCurse/nopalmo/manager/Argument.java b/src/pkg/deepCurse/nopalmo/manager/Argument.java index b73bcee..3f99858 100644 --- a/src/pkg/deepCurse/nopalmo/manager/Argument.java +++ b/src/pkg/deepCurse/nopalmo/manager/Argument.java @@ -5,21 +5,6 @@ import java.util.List; public class Argument { - // README - // - // This tool is used simply for now, but it will be worth while if you get used - // to it - // - // this allows extra organization and ease of use throughout the creation of - // commands - // instead of one simple list where if args[1] == "all" do code - // this allows the same functionality, if not more with a little bit of learning - // you can go back to what it was before, but i honestly believe this system is - // worthwhile - // it just needs polish and reports on usage for optimization - // - //// TL;DR ITS A NEW FEATURE, GIVE IT TIME - private int requiredArgs = 0; private String argName = null; private Argument[] subArgs = null; diff --git a/src/pkg/deepCurse/nopalmo/manager/BontebokManager.java b/src/pkg/deepCurse/nopalmo/manager/BontebokManager.java new file mode 100644 index 0000000..dcd8a10 --- /dev/null +++ b/src/pkg/deepCurse/nopalmo/manager/BontebokManager.java @@ -0,0 +1,59 @@ +package pkg.deepCurse.nopalmo.manager; + +import java.util.List; + +import pkg.deepCurse.bontebok.core.BontebokFunctionInterface; +import pkg.deepCurse.bontebok.core.BontebokInterpreter; +import pkg.deepCurse.nopalmo.global.Reactions; + +public class BontebokManager { + + public static void init() { + BontebokInterpreter.functionMap.put("reply", new BontebokNopalmoFunctionInterface() { + + @Override + public void run(List args, CommandBlob blob) { + StringBuilder sB = new StringBuilder(); + for (String i : args) { + sB.append(i); + } + blob.getMessage().reply(sB.toString()).queue(); + } + + @Override + public int getRequiredArgs() { + return -1; + } + + }); + + BontebokInterpreter.functionMap.put("react", new BontebokNopalmoFunctionInterface() { + + @Override + public void run(List args, CommandBlob blob) { + try { + blob.getMessage().addReaction(Reactions.getReaction(args.get(0))).queue(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + @Override + public int getRequiredArgs() { + return 1; + } + }); + + } + + public interface BontebokNopalmoFunctionInterface extends BontebokFunctionInterface { + + @Override + public default void run(List args) { + + } + + void run(List args, CommandBlob blob); + } + +} diff --git a/src/pkg/deepCurse/nopalmo/manager/CommandBlob.java b/src/pkg/deepCurse/nopalmo/manager/CommandBlob.java index 02b6af1..8d4572a 100644 --- a/src/pkg/deepCurse/nopalmo/manager/CommandBlob.java +++ b/src/pkg/deepCurse/nopalmo/manager/CommandBlob.java @@ -29,6 +29,7 @@ public class CommandBlob { private Member member = null; private Message message = null; + private boolean isDeveloper = false; private boolean isWebhookMessage = false; private boolean isFromGuild = false; @@ -163,4 +164,12 @@ public class CommandBlob { public void setFromGuild(boolean isFromGuild) { this.isFromGuild = isFromGuild; } + + public boolean isDeveloper() { + return isDeveloper; + } + + public void setDeveloper(boolean isDeveloper) { + this.isDeveloper = isDeveloper; + } } diff --git a/src/pkg/deepCurse/nopalmo/manager/CommandManager.java b/src/pkg/deepCurse/nopalmo/manager/CommandManager.java index aa5a162..6f31cfa 100644 --- a/src/pkg/deepCurse/nopalmo/manager/CommandManager.java +++ b/src/pkg/deepCurse/nopalmo/manager/CommandManager.java @@ -18,6 +18,7 @@ import pkg.deepCurse.nopalmo.command.CommandInterface; import pkg.deepCurse.nopalmo.command.CommandInterface.DualCommandInterface; import pkg.deepCurse.nopalmo.command.CommandInterface.GuildCommandInterface; import pkg.deepCurse.nopalmo.command.CommandInterface.PrivateCommandInterface; +import pkg.deepCurse.nopalmo.command.commands.fun.Stupid; import pkg.deepCurse.nopalmo.command.commands.general.Prefix; import pkg.deepCurse.nopalmo.command.commands.general.Test; import pkg.deepCurse.nopalmo.command.commands.info.Git; @@ -25,10 +26,12 @@ import pkg.deepCurse.nopalmo.command.commands.info.Help; import pkg.deepCurse.nopalmo.command.commands.info.Info; import pkg.deepCurse.nopalmo.command.commands.info.Ping; import pkg.deepCurse.nopalmo.command.commands.info.Reload; +import pkg.deepCurse.nopalmo.command.commands.testing.BontebokInterpret; import pkg.deepCurse.nopalmo.command.commands.testing.GuildCommand; import pkg.deepCurse.nopalmo.command.commands.testing.PrivateCommand; import pkg.deepCurse.nopalmo.core.Boot; import pkg.deepCurse.nopalmo.database.DatabaseTools; +import pkg.deepCurse.nopalmo.database.DatabaseTools.Tools.Developers; import pkg.deepCurse.nopalmo.database.DatabaseTools.Tools.Global; import pkg.deepCurse.nopalmo.database.DatabaseTools.Tools.Users; import pkg.deepCurse.nopalmo.global.Tools; @@ -56,13 +59,15 @@ public class CommandManager { addCommand(new GuildCommand()); // guild addCommand(new PrivateCommand()); // private addCommand(new Reload()); // dual + addCommand(new BontebokInterpret()); // dual + addCommand(new Stupid()); // guild } private void addCommand(CommandInterface c) { for (String i : c.getCommandCalls()) { // if (!commandMap.containsKey(i)) { - commandMap.put(i, c); + commandMap.put(i, c); // } } } @@ -96,9 +101,9 @@ public class CommandManager { } else { return; } - + Users.addUser(event.getAuthor().getIdLong()); - + final String[] split = message.replaceFirst("(?i)" + Pattern.quote(splicer), "").split("\\s+"); final String commandCall = split[0].toLowerCase(); @@ -111,7 +116,7 @@ public class CommandManager { try { CommandBlob commandBlob = new CommandBlob(event, this); CommandInterface command = commandMap.get(commandCall); - HashMap argumentList = new HashMap(); + HashMap argumentMap = new HashMap(); boolean printTime = false; byte argSkipCount = 0; @@ -148,6 +153,10 @@ public class CommandManager { break; } } + + commandBlob.setDeveloper( + Developers.getDeveloperBoolean(commandBlob.getAuthorID(), "developercommandpermission")); + // split up so global commands are actually global, and will not be affected by // neighboring local args for (int i = 0; i < newArgs.size(); i++) { @@ -168,7 +177,7 @@ public class CommandManager { if (command.getArguments().get(pre).isSkipOriginalTaskOnRunnable()) { remainsValid = false; } - argumentList.put(pre, command.getArguments().get(pre)); + argumentMap.put(pre, command.getArguments().get(pre)); if (command.getArguments().get(pre).isAutoStartRunnable() && command.getArguments().get(pre).getRunnableArg() != null) { command.getArguments().get(pre).getRunnableArg().run(commandBlob); @@ -191,7 +200,7 @@ public class CommandManager { if (command.getArguments().get(x).isSkipOriginalTaskOnRunnable()) { remainsValid = false; } - argumentList.put(x, command.getArguments().get(x)); + argumentMap.put(x, command.getArguments().get(x)); offset++; if (command.getArguments().get(x).isAutoStartRunnable() && command.getArguments().get(x).getRunnableArg() != null) { @@ -211,7 +220,7 @@ public class CommandManager { remainsValid = false; } if (positionalArgs.get(i - offset).getIsWildcard()) { - argumentList.put(positionalArgs.get(i - offset).getArgName(), + argumentMap.put(positionalArgs.get(i - offset).getArgName(), positionalArgs.get(i - offset).setWildCardString(x)); } else { Tools.wrongUsage(event.getChannel(), command); @@ -231,8 +240,8 @@ public class CommandManager { } } else { - Tools.wrongUsage(event.getChannel(), command); - remainsValid = false; +// Tools.wrongUsage(event.getChannel(), command); +// remainsValid = false; } } @@ -246,6 +255,14 @@ public class CommandManager { remainsValid = false; } + if (Help.deniedPages.contains(command.getHelpPage())) { + if (!commandBlob.isDeveloper()) { + commandBlob.getChannel() + .sendMessage("Sorry, but you are not allowed to run this command. . ").queue(); + remainsValid = false; + } + } + commandBlob.setCommandManager(this); if (event.isFromGuild()) { @@ -258,15 +275,26 @@ public class CommandManager { } if (remainsValid) { - if (command instanceof DualCommandInterface) { - ((DualCommandInterface) command).runDualCommand(commandBlob, argumentList); - } else if (command instanceof GuildCommandInterface && event.isFromGuild()) { - ((GuildCommandInterface) command).runGuildCommand(commandBlob, argumentList); - } else if (command instanceof PrivateCommandInterface && !event.isFromGuild()) { - ((PrivateCommandInterface) command).runPrivateCommand(commandBlob, argumentList); + + if (command.getArguments() == null) { + StringBuilder sB = new StringBuilder(); + for (String i : newArgs) { + sB.append(i + " "); + } + argumentMap.clear(); + argumentMap.put("null", new Argument("null").setWildCardString(sB.toString().trim())); } - if (command instanceof GuildCommandInterface && !event.isFromGuild() && !(command instanceof PrivateCommandInterface)) { + if (command instanceof DualCommandInterface) { + ((DualCommandInterface) command).runDualCommand(commandBlob, argumentMap); + } else if (command instanceof GuildCommandInterface && event.isFromGuild()) { + ((GuildCommandInterface) command).runGuildCommand(commandBlob, argumentMap); + } else if (command instanceof PrivateCommandInterface && !event.isFromGuild()) { + ((PrivateCommandInterface) command).runPrivateCommand(commandBlob, argumentMap); + } + + if (command instanceof GuildCommandInterface && !event.isFromGuild() + && !(command instanceof PrivateCommandInterface)) { event.getChannel() .sendMessage( "Sorry, but you need to be in a " @@ -274,7 +302,8 @@ public class CommandManager { commandBlob.getAuthorID()) ? "guild" : "server") + " to use this command. . .") .queue(); - } else if (command instanceof PrivateCommandInterface && event.isFromGuild() && !(command instanceof GuildCommandInterface)) { + } else if (command instanceof PrivateCommandInterface && event.isFromGuild() + && !(command instanceof GuildCommandInterface)) { event.getChannel().sendMessage("Sorry, but this command will only run in dms. . .").queue(); } } diff --git a/src/pkg/deepCurse/nopalmo/server/socket/Socks.java b/src/pkg/deepCurse/nopalmo/server/socket/Socks.java index 2213611..37bc158 100644 --- a/src/pkg/deepCurse/nopalmo/server/socket/Socks.java +++ b/src/pkg/deepCurse/nopalmo/server/socket/Socks.java @@ -5,7 +5,7 @@ import java.io.IOException; import java.net.Socket; public class Socks { - + public static void sendStringSock(String address, int port, String input) { try { Socket cSocket = new Socket(address, port); @@ -18,5 +18,5 @@ public class Socks { e.printStackTrace(); } } - + } diff --git a/src/pkg/deepCurse/nopalmo/utils/LogHelper.java b/src/pkg/deepCurse/nopalmo/utils/LogHelper.java index d9fd13c..8ee3130 100644 --- a/src/pkg/deepCurse/nopalmo/utils/LogHelper.java +++ b/src/pkg/deepCurse/nopalmo/utils/LogHelper.java @@ -1,7 +1,5 @@ package pkg.deepCurse.nopalmo.utils; -import pkg.deepCurse.nopalmo.core.Boot; - /** * this class exists for the sole reason of im lazy, as far as i know, this is * really bad practice and i will replace it at some point, or at least upgrade @@ -16,13 +14,13 @@ public class LogHelper { public static boolean bootEnabled = true; public static boolean guildCommandManagerEnabled = true; - public static void boot(String text) { - boot(text, 0); + public static void log(String text, Class clazz) { + log(text, 0, clazz); } - public static void boot(String text, int level) { + public static void log(String text, int level, Class clazz) { if (bootEnabled && level <= loggerLevel) { - System.out.println(Boot.class + ": " + text); + System.out.println(clazz + ": " + text); } } @@ -30,14 +28,4 @@ public class LogHelper { e.printStackTrace(); System.exit(8); } - - public static void guildCommandManager(String text) { - guildCommandManager(text); - } - - public static void guildCommandManager(String text, int level) { - if (guildCommandManagerEnabled && level <= loggerLevel) { - System.out.println(Boot.class + ": " + text); - } - } } diff --git a/src/pkg/deepCurse/nopalmo/utils/UptimePing.java b/src/pkg/deepCurse/nopalmo/utils/UptimePing.java index 12e8266..9332839 100644 --- a/src/pkg/deepCurse/nopalmo/utils/UptimePing.java +++ b/src/pkg/deepCurse/nopalmo/utils/UptimePing.java @@ -25,8 +25,6 @@ public class UptimePing { } - // System.out.println("fix me"); // not sure why this is here - if (socketAddress.getAddress() == null) { return -1; } else {