diff --git a/.classpath b/.classpath
index eea99e3..26bbf1c 100644
--- a/.classpath
+++ b/.classpath
@@ -1,15 +1,17 @@
+
+
+
+
-
-
-
-
+
+
diff --git a/.gitignore b/.gitignore
index 8475486..29ada77 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,4 @@
/bin/
/nopalmo.lock
+/.classpath
+/.project
diff --git a/TODO.txt b/TODO.txt
index 363710f..b8ca799 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -1,4 +1,5 @@
-mix command managers
+// DONE mix command managers
finish loop
-add socket server for better management / integration
-implement pheonix in a smarter way than last time
+// DONE add socket server for better management / integration
+// DONE implement pheonix in a smarter way than last time
+add better security to the socket server
\ No newline at end of file
diff --git a/src/pkg/deepCurse/nopalmo/command/CommandInterface.java b/src/pkg/deepCurse/nopalmo/command/CommandInterface.java
index d23694e..9534e7a 100644
--- a/src/pkg/deepCurse/nopalmo/command/CommandInterface.java
+++ b/src/pkg/deepCurse/nopalmo/command/CommandInterface.java
@@ -36,21 +36,32 @@ public interface CommandInterface { // TODO rewrite to implement type args?
public String getHelp();
public default String getUsage(boolean hasPermissionInfo) {
-
StringBuilder sB = new StringBuilder();
- if (getArguments() != null) {
- for (Argument i : getArguments().values()) {
- if (!i.isDeveloper() || (hasPermissionInfo && i.isDeveloper())) {
- sB.append(i.isRequired() ? "<" : "[");
- if (i.getPrefixRequirement()) {
- sB.append(Argument.argumentPrefix);
+ 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());
+
+ if (i.getAliases() != null) {
+ for (String j : i.getAliases()) {
+ sB.append(" | " + (i.isPrefixRequired() ? Argument.argumentPrefix : "") + j);
}
- sB.append(i.getArgName() + (i.isRequired() ? "> " : "] "));
+ }
+
+ if (i.isRequired()) {
+ sB.append("> ");
+ } else {
+ sB.append("] ");
}
}
}
- return (Global.prefix + getCommandName() + " " + sB.toString()).strip();
+ return Global.prefix + getCommandName() + " " + sB.toString().trim();
}
public default int getTimeout() {
@@ -93,3 +104,41 @@ 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
diff --git a/src/pkg/deepCurse/nopalmo/command/commands/info/Git.java b/src/pkg/deepCurse/nopalmo/command/commands/info/Git.java
index c29a2ad..e083bf3 100644
--- a/src/pkg/deepCurse/nopalmo/command/commands/info/Git.java
+++ b/src/pkg/deepCurse/nopalmo/command/commands/info/Git.java
@@ -32,6 +32,7 @@ public class Git implements DualCommandInterface {
blob.getChannel()
.sendMessage("This is the automatically running argument inside of " + this.getCommandName())
.queue();
+// blob.getCommandManager().init();
}).setPrefixRequirement(true).setAutoStartRunnable(true).setDeveloper(true));
diff --git a/src/pkg/deepCurse/nopalmo/command/commands/info/Help.java b/src/pkg/deepCurse/nopalmo/command/commands/info/Help.java
index 8e120ff..3ece48e 100644
--- a/src/pkg/deepCurse/nopalmo/command/commands/info/Help.java
+++ b/src/pkg/deepCurse/nopalmo/command/commands/info/Help.java
@@ -32,43 +32,80 @@ public class Help implements GuildCommandInterface {
deniedPages.add(HelpPage.EGG);
deniedPages.add(HelpPage.TESTING);
- if (argumentMap.isEmpty() || (isDevEnabled && argumentMap.size() == 1)) {
+ if (argumentMap.get("commandName") == null) {
EmbedBuilder embed = new EmbedBuilder().setTitle(isDevEnabled ? "^Commands:" : "Commands:");
- HashMap> commandHash = new HashMap>();
+ HashMap> commandHash = new HashMap>();
- for (CommandInterface command : manager.getCommands()) {
- List commandNameList = commandHash.get(command.getHelpPage());
- if (commandNameList == null) {
- commandNameList = new ArrayList();
-
- }
- commandNameList.add(command.getCommandName());
- commandHash.put(command.getHelpPage(), commandNameList);
- }
+ // TODO yet another rewrite
+ // TODO add command to log a string
for (HelpPage i : HelpPage.values()) {
- if (deniedPages.contains(i) && argumentMap.get("dev") == null) {
+ ArrayList commandNameList = commandHash.get(i);
+ for (CommandInterface command : manager.getCommands()) {
+ if (!(deniedPages.contains(i) && argumentMap.get("dev") == null)) {
+ if (command.getHelpPage() == i) {
+ if (commandNameList == null) {
+ commandNameList = new ArrayList();
+ }
- } else if (commandHash.get(i) != null) {
+ if (!commandNameList.contains(command.getCommandName())) {
+ commandNameList.add(command.getCommandName());
+ commandHash.put(command.getHelpPage(), commandNameList);
+
+ }
+ }
+ }
+ }
+ commandNameList = null;
+ }
+
+ // blob.getChannel().sendMessage(commandHash.toString()).queue();
+
+ for (HelpPage i : HelpPage.values()) {
+ if (commandHash.get(i) != null) {
StringBuilder sB = new StringBuilder();
-
int count = 0;
for (String j : commandHash.get(i)) {
- if (++count > 3) {
- sB.append("\n");
+ if (count >= 3) {
count = 0;
+ sB.append("\n");
}
+ count++;
sB.append("`" + j + "` ");
}
-
embed.addField(i.toString(), sB.toString(), true);
}
-
}
+// for () {
+//
+// }
+
+// for (HelpPage i : HelpPage.values()) {
+// if (deniedPages.contains(i) && argumentMap.get("dev") == null) {
+//
+// } else if (commandHash.get(i) != null) {
+//
+// StringBuilder sB = new StringBuilder();
+//
+// int count = 0;
+// for (String j : commandHash.get(i)) {
+// if (++count > 3) {
+// count = 0;
+// sB.append("\n");
+// }
+// sB.append("`" + j + "` ");
+// }
+//
+// embed.addField(i.toString(), sB.toString(), true);
+//
+// }
+//
+// }
+
StringBuilder sB = new StringBuilder();
CommandInterface ping = blob.getCommandManager().getCommand("ping");
@@ -184,7 +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"));
+ 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 bb8c9db..c41b4ce 100644
--- a/src/pkg/deepCurse/nopalmo/command/commands/info/Info.java
+++ b/src/pkg/deepCurse/nopalmo/command/commands/info/Info.java
@@ -30,11 +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())).queue();
- }).setPrefixRequirement(true).setAutoStartRunnable(true).setSkipOriginalTaskOnRunnable(true));
-
+ 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;
}
@@ -44,6 +45,6 @@ public class Info implements GuildCommandInterface, PrivateCommandInterface {
@Override
public void runGuildCommand(CommandBlob blob, HashMap argumentList) throws Exception {
- blob.getChannel().sendMessage("EEE").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
new file mode 100644
index 0000000..7b980ff
--- /dev/null
+++ b/src/pkg/deepCurse/nopalmo/command/commands/info/Reload.java
@@ -0,0 +1,38 @@
+package pkg.deepCurse.nopalmo.command.commands.info;
+
+import java.util.HashMap;
+
+import org.jetbrains.annotations.Nullable;
+
+import pkg.deepCurse.nopalmo.command.CommandInterface.DualCommandInterface;
+import pkg.deepCurse.nopalmo.manager.Argument;
+import pkg.deepCurse.nopalmo.manager.CommandBlob;
+
+public class Reload implements DualCommandInterface {
+
+ @Override
+ public String[] getCommandCalls() {
+ return new String[] {"reload"};
+ }
+
+ @Override
+ public HelpPage getHelpPage() {
+ return HelpPage.DEV;
+ }
+
+ @Override
+ public String getHelp() {
+ return "you should not need help using this command";
+ }
+
+ @Override
+ public @Nullable HashMap getArguments() {
+ return null;
+ }
+
+ @Override
+ public void runDualCommand(CommandBlob blob, HashMap argumentMap) throws Exception {
+ blob.getCommandManager().init();
+ }
+
+}
diff --git a/src/pkg/deepCurse/nopalmo/core/Boot.java b/src/pkg/deepCurse/nopalmo/core/Boot.java
index b8dfa1c..8577228 100644
--- a/src/pkg/deepCurse/nopalmo/core/Boot.java
+++ b/src/pkg/deepCurse/nopalmo/core/Boot.java
@@ -1,6 +1,10 @@
package pkg.deepCurse.nopalmo.core;
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.net.Socket;
import java.sql.SQLException;
+import java.util.List;
import net.dv8tion.jda.api.JDA;
import net.dv8tion.jda.api.JDABuilder;
@@ -17,16 +21,17 @@ import pkg.deepCurse.nopalmo.global.Reactions;
import pkg.deepCurse.nopalmo.listener.MessageReceivedListener;
import pkg.deepCurse.nopalmo.manager.CommandManager;
import pkg.deepCurse.nopalmo.manager.StatusManager;
-import pkg.deepCurse.nopalmo.utils.Locks;
+import pkg.deepCurse.nopalmo.server.socket.Socks;
import pkg.deepCurse.nopalmo.utils.LogHelper;
+import pkg.deepCurse.phoenixRuntime.core.PhoenixCommandManager;
+import pkg.deepCurse.phoenixRuntime.core.PhoenixInterface;
+import pkg.deepCurse.phoenixRuntime.core.PhoenixRuntime;
+import pkg.deepCurse.phoenixRuntime.core.PhoenixSettings;
public class Boot {
public static JDA bot; // TODO create sharding handler
public static DatabaseTools databaseTools = null;
-// public static final GuildCommandManager guildCommandManager = new GuildCommandManager(); // move to master manager
-// public static final DirectCommandManager directCommandManager = new DirectCommandManager(); // move to master
-// // manager
public static boolean isProd = false;
@@ -35,155 +40,194 @@ public class Boot {
public static final CommandManager commandManager = new CommandManager();
public static void main(String[] args) {
- LogHelper.boot("Booting: <" + pid + ">");
- new Thread(() -> {
- long count = 0;
- while (true) {
- if (count++ > 1000000000) {
- count = 0;
- System.out.println("owo");
+ 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
+
+ settings.commandManager.addCommand("phoenix-update", (PhoenixRuntime runtime, List commandArgs) -> {
+ System.out.println("Received ");
+
+ Socks.sendStringSock(settings.address, settings.commonPort, "phoenix-update-confirm");
+
+ System.out.println("Sent ");
+
+ if (bot != null) {
+ bot.shutdown();
+ }
+
+ runtime.shutdown(9);
+ });
+
+// settings.actions.put("phoenix-update-confirm", (PhoenixRuntime runtime) -> {
+// System.out.println("Received ");
+// });
+
+ PhoenixRuntime runtime = new PhoenixRuntime(settings, new PhoenixInterface() {
+
+ @Override
+ public void boot() {
+ LogHelper.boot("Booting: <" + pid + ">");
+
+ long preBootTime = System.currentTimeMillis();
+
+ isProd = args[2].contentEquals("prod");
+
+ LogHelper.boot("Connecting to mariadb:nopalmo");
+ try {
+ databaseTools = new DatabaseTools(args[1]);
+ LogHelper.boot("Connected. . .");
+ } catch (SQLException | ClassNotFoundException e1) {
+ e1.printStackTrace();
+ LogHelper.boot("Failed to connect\nShutting down. . .");
+ System.exit(4);
+ }
+
+ LogHelper.boot("Init reaction/emote list");
+ Reactions.init();
+ LogHelper.boot("Initialized reaction/emote list. . .");
+ LogHelper.boot("Init commands list");
+ commandManager.init();
+ LogHelper.boot("Initialized commands list. . .");
+
+ try {
+// bot = JDABuilder.createDefault(args[0]).setChunkingFilter(ChunkingFilter.ALL)
+// .setMemberCachePolicy(MemberCachePolicy.ALL).enableIntents(GatewayIntent.GUILD_MEMBERS)
+// .setActivity(Activity.watching("Loading users...")).setIdle(true)
+// .addEventListeners(new GuildMessageReceivedListener())
+// .addEventListeners(new DirectMessageReceivedListener()).build().awaitReady();
+
+ bot = JDABuilder.createDefault(args[0])
+ .setActivity(Activity.of(ActivityType.WATCHING, "the loading bar. . ."))
+ .setStatus(OnlineStatus.DO_NOT_DISTURB)
+
+ .setMaxBufferSize(Integer.MAX_VALUE)
+
+ .setChunkingFilter(ChunkingFilter.ALL).setMemberCachePolicy(MemberCachePolicy.ALL)
+
+ .enableIntents(GatewayIntent.DIRECT_MESSAGE_REACTIONS,
+
+ GatewayIntent.DIRECT_MESSAGES, GatewayIntent.GUILD_BANS, GatewayIntent.GUILD_EMOJIS,
+ GatewayIntent.GUILD_MEMBERS, GatewayIntent.GUILD_MESSAGE_REACTIONS,
+
+ GatewayIntent.GUILD_MESSAGES // , GatewayIntent.GUILD_VOICE_STATES
+ )
+
+ .enableCache(// CacheFlag.CLIENT_STATUS,
+ CacheFlag.EMOTE, // CacheFlag.ACTIVITY,
+ CacheFlag.MEMBER_OVERRIDES // , CacheFlag.VOICE_STATE
+ )
+
+ // .setIdle(true)
+
+ .setAutoReconnect(true)
+
+// .addEventListeners(new GuildMessageReceivedListener())
+// .addEventListeners(new DirectMessageReceivedListener())
+ .addEventListeners(new MessageReceivedListener())
+
+ .setEnableShutdownHook(true)
+
+ .build().awaitReady();
+
+ } catch (Exception e) {
+ LogHelper.crash(e);
+ }
+
+ LogHelper.boot("Using account: " + bot.getSelfUser().getName());
+
+
+
+ bot.getPresence().setStatus(OnlineStatus.ONLINE);
+ bot.getPresence().setActivity(Activity.listening("Infected Mushroom"));
+
+ LogHelper.boot("Init status list");
+ StatusManager.init();
+ LogHelper.boot("Initialized status list. . .");
+
+ long bootTime = System.currentTimeMillis() - preBootTime;
+
+ LogHelper.boot("Taken " + bootTime + "ms to boot");
+
+ LogHelper.boot("Starting loop");
+ loop();
+ }
+
+ public void loop() {
+
+ long lastTime = System.currentTimeMillis();
+ long fifteenMins = lastTime;
+ long fiveMins = lastTime;
+ long threeMins = lastTime;
+ long lastTimeUpdateStatus = lastTime;
+ long lastTimeCheckUpdate = lastTime;
+
+ long dynamicWait = Global.getDynamicWait();
+
+ while (running) {
+
+ long now = System.currentTimeMillis();
+
+ if (now > lastTime + dynamicWait) { // dynamic wait loop
+ lastTime = now;
+ try {
+ bot.getSelfUser();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ if (now > lastTimeCheckUpdate + 900000) {
+ lastTimeCheckUpdate = now;
+ }
+
+ if (now > lastTimeUpdateStatus + dynamicWait && Global.isShuffleStatusEnabled()) {
+ lastTimeUpdateStatus = now;
+
+ StatusManager.shuffle(bot);
+
+ }
+
+ if (now > fifteenMins + 900000) {
+ fifteenMins = now;
+
+ }
+
+ if (now > fiveMins + 300000) {
+ fiveMins = now;
+ }
+
+ if (now > threeMins + 180000) {
+ threeMins = now;
+ }
+
}
}
- }, "owo");
+ });
- LogHelper.boot("Testing Lock. . .");
-
- try {
- if (Locks.dirLock("nopalmo.lock")) {
- LogHelper.boot("Failed to lock. . .\nShutting down. . .");
- System.exit(3);
- } else {
- LogHelper.boot("Nopalmo is locked. . .");
+ runtime.setLockedRunnable(() -> {
+ System.out.println("System is locked\nSending instead. . . ");
+
+
+
+ try {
+ Socket cSocket = new Socket("127.0.0.1", settings.commonPort);
+ DataOutputStream dOut = new DataOutputStream(cSocket.getOutputStream());
+ dOut.writeUTF("phoenix-update");
+ dOut.flush();
+ dOut.close();
+ cSocket.close();
+ } catch (IOException e) {
+ e.printStackTrace();
}
- } catch (Exception e) {
- LogHelper.crash(e);
- }
+
+
+
+ // settings.getRuntime().shutdown(0);
+
+ });
- long preBootTime = System.currentTimeMillis();
+ runtime.launch();
- isProd = args[2].contentEquals("prod");
-
- LogHelper.boot("Connecting to mariadb:nopalmo");
- try {
- databaseTools = new DatabaseTools(args[1]);
- LogHelper.boot("Connected. . .");
- } catch (SQLException | ClassNotFoundException e1) {
- e1.printStackTrace();
- LogHelper.boot("Failed to connect\nShutting down. . .");
- System.exit(4);
- }
-
- LogHelper.boot("Init reaction/emote list");
- Reactions.init();
- LogHelper.boot("Initialized reaction/emote list. . .");
- LogHelper.boot("Init commands list");
- commandManager.init();
- LogHelper.boot("Initialized commands list. . .");
-
- try {
-// bot = JDABuilder.createDefault(args[0]).setChunkingFilter(ChunkingFilter.ALL)
-// .setMemberCachePolicy(MemberCachePolicy.ALL).enableIntents(GatewayIntent.GUILD_MEMBERS)
-// .setActivity(Activity.watching("Loading users...")).setIdle(true)
-// .addEventListeners(new GuildMessageReceivedListener())
-// .addEventListeners(new DirectMessageReceivedListener()).build().awaitReady();
-
- bot = JDABuilder.createDefault(args[0])
- .setActivity(Activity.of(ActivityType.WATCHING, "the loading bar. . ."))
- .setStatus(OnlineStatus.DO_NOT_DISTURB)
-
- .setMaxBufferSize(Integer.MAX_VALUE)
-
- .setChunkingFilter(ChunkingFilter.ALL).setMemberCachePolicy(MemberCachePolicy.ALL)
-
- .enableIntents(GatewayIntent.DIRECT_MESSAGE_REACTIONS,
-
- GatewayIntent.DIRECT_MESSAGES, GatewayIntent.GUILD_BANS, GatewayIntent.GUILD_EMOJIS,
- GatewayIntent.GUILD_MEMBERS, GatewayIntent.GUILD_MESSAGE_REACTIONS,
-
- GatewayIntent.GUILD_MESSAGES // , GatewayIntent.GUILD_VOICE_STATES
- )
-
- .enableCache(// CacheFlag.CLIENT_STATUS,
- CacheFlag.EMOTE, // CacheFlag.ACTIVITY,
- CacheFlag.MEMBER_OVERRIDES // , CacheFlag.VOICE_STATE
- )
-
- // .setIdle(true)
-
- .setAutoReconnect(true)
-
-// .addEventListeners(new GuildMessageReceivedListener())
-// .addEventListeners(new DirectMessageReceivedListener())
- .addEventListeners(new MessageReceivedListener())
-
- .setEnableShutdownHook(true)
-
- .build().awaitReady();
-
- } catch (Exception e) {
- LogHelper.crash(e);
- }
-
- bot.getPresence().setStatus(OnlineStatus.ONLINE);
- bot.getPresence().setActivity(Activity.listening("Infected Mushroom"));
-
- LogHelper.boot("Init status list");
- StatusManager.init();
- LogHelper.boot("Initialized status list. . .");
-
- long bootTime = System.currentTimeMillis() - preBootTime;
-
- LogHelper.boot("Taken " + bootTime + "ms to boot");
-
- LogHelper.boot("Starting loop");
- loop();
}
-
- private static void loop() {
-
- long lastTime = System.currentTimeMillis();
- long fifteenMins = lastTime;
- long fiveMins = lastTime;
- long threeMins = lastTime;
- long lastTimeUpdateStatus = lastTime;
- long lastTimeCheckUpdate = lastTime;
-
- long dynamicWait = Global.getDynamicWait();
-
- while (running) {
-
- long now = System.currentTimeMillis();
-
- if (now > lastTime + dynamicWait) { // dynamic wait loop
- lastTime = now;
- }
-
- if (now > lastTimeCheckUpdate + 900000) {
- lastTimeCheckUpdate = now;
- }
-
- if (now > lastTimeUpdateStatus + dynamicWait && Global.isShuffleStatusEnabled()) {
- lastTimeUpdateStatus = now;
-
- StatusManager.shuffle(bot);
-
- }
-
- if (now > fifteenMins + 900000) {
- fifteenMins = now;
-
- }
-
- if (now > fiveMins + 300000) {
- fiveMins = now;
- }
-
- if (now > threeMins + 180000) {
- threeMins = now;
- }
-
- }
- }
-
}
diff --git a/src/pkg/deepCurse/nopalmo/database/DatabaseTools.java b/src/pkg/deepCurse/nopalmo/database/DatabaseTools.java
index 22dcd36..e91d2f6 100644
--- a/src/pkg/deepCurse/nopalmo/database/DatabaseTools.java
+++ b/src/pkg/deepCurse/nopalmo/database/DatabaseTools.java
@@ -139,6 +139,10 @@ public class DatabaseTools {
}
}
+ public static void addUser(long idLong) {
+
+ }
+
}
public class Guild {
diff --git a/src/pkg/deepCurse/nopalmo/database/RamDisk.java b/src/pkg/deepCurse/nopalmo/database/RamDisk.java
new file mode 100644
index 0000000..0bd538f
--- /dev/null
+++ b/src/pkg/deepCurse/nopalmo/database/RamDisk.java
@@ -0,0 +1,14 @@
+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/manager/Argument.java b/src/pkg/deepCurse/nopalmo/manager/Argument.java
index 1485693..b73bcee 100644
--- a/src/pkg/deepCurse/nopalmo/manager/Argument.java
+++ b/src/pkg/deepCurse/nopalmo/manager/Argument.java
@@ -1,5 +1,8 @@
package pkg.deepCurse.nopalmo.manager;
+import java.util.ArrayList;
+import java.util.List;
+
public class Argument {
// README
@@ -30,6 +33,7 @@ public class Argument {
private String permissionLevel = null;
private boolean isRequired = false;
private boolean isDeveloper = false;
+ private List aliases = new ArrayList();
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
@@ -136,7 +140,7 @@ public class Argument {
return isWildcard;
}
- public boolean getPrefixRequirement() {
+ public boolean isPrefixRequired() {
return this.requiresPrefix;
}
@@ -214,4 +218,15 @@ public class Argument {
return this;
}
+ public Argument addAliases(String... alias) {
+ for (String i : alias) {
+ this.aliases.add(i);
+ }
+ return this;
+ }
+
+ public List getAliases() {
+ return this.aliases;
+ }
+
}
diff --git a/src/pkg/deepCurse/nopalmo/manager/CommandManager.java b/src/pkg/deepCurse/nopalmo/manager/CommandManager.java
index db0d90d..aa5a162 100644
--- a/src/pkg/deepCurse/nopalmo/manager/CommandManager.java
+++ b/src/pkg/deepCurse/nopalmo/manager/CommandManager.java
@@ -24,6 +24,7 @@ import pkg.deepCurse.nopalmo.command.commands.info.Git;
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.GuildCommand;
import pkg.deepCurse.nopalmo.command.commands.testing.PrivateCommand;
import pkg.deepCurse.nopalmo.core.Boot;
@@ -45,6 +46,7 @@ public class CommandManager {
}
public void init() {
+ commandMap.clear();
addCommand(new Help(this));// guild
addCommand(new Ping()); // dual
addCommand(new Git()); // dual
@@ -52,15 +54,16 @@ public class CommandManager {
addCommand(new Test()); // guild
addCommand(new Info()); // guild direct
addCommand(new GuildCommand()); // guild
- addCommand(new PrivateCommand());
+ addCommand(new PrivateCommand()); // private
+ addCommand(new Reload()); // dual
}
private void addCommand(CommandInterface c) {
- if (!commandMap.containsKey(c.getCommandName())) {
- commandMap.put(c.getCommandName(), c);
- } else {
- commandMap.remove(c.getCommandName());
- commandMap.put(c.getCommandName(), c);
+
+ for (String i : c.getCommandCalls()) {
+// if (!commandMap.containsKey(i)) {
+ commandMap.put(i, c);
+// }
}
}
@@ -93,7 +96,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();
@@ -261,7 +266,7 @@ public class CommandManager {
((PrivateCommandInterface) command).runPrivateCommand(commandBlob, argumentList);
}
- if (command instanceof GuildCommandInterface && !event.isFromGuild()) {
+ if (command instanceof GuildCommandInterface && !event.isFromGuild() && !(command instanceof PrivateCommandInterface)) {
event.getChannel()
.sendMessage(
"Sorry, but you need to be in a "
@@ -269,7 +274,7 @@ public class CommandManager {
commandBlob.getAuthorID()) ? "guild" : "server")
+ " to use this command. . .")
.queue();
- } else if (command instanceof PrivateCommandInterface && event.isFromGuild()) {
+ } 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/manager/StatusManager.java b/src/pkg/deepCurse/nopalmo/manager/StatusManager.java
index 6865779..88246ac 100644
--- a/src/pkg/deepCurse/nopalmo/manager/StatusManager.java
+++ b/src/pkg/deepCurse/nopalmo/manager/StatusManager.java
@@ -19,7 +19,7 @@ public class StatusManager {
activityList.add(Activity.watching(
Boot.bot.getUserCache().asList().size() + " users in " + Boot.bot.getGuilds().size() + " servers"));
activityList.add(Activity.watching("for " + Global.prefix + "help"));
- activityList.add(Activity.competing("your mothers love"));
+ activityList.add(Activity.listening("Infected Mushroom"));
// activityList.add(EntityBuilder.createActivity("owo", null, ActivityType.CUSTOM_STATUS));
}
diff --git a/src/pkg/deepCurse/nopalmo/server/socket/Socks.java b/src/pkg/deepCurse/nopalmo/server/socket/Socks.java
new file mode 100644
index 0000000..2213611
--- /dev/null
+++ b/src/pkg/deepCurse/nopalmo/server/socket/Socks.java
@@ -0,0 +1,22 @@
+package pkg.deepCurse.nopalmo.server.socket;
+
+import java.io.DataOutputStream;
+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);
+ DataOutputStream dOut = new DataOutputStream(cSocket.getOutputStream());
+ dOut.writeUTF(input);
+ dOut.flush();
+ dOut.close();
+ cSocket.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+}