diff --git a/.idea/misc.xml b/.idea/misc.xml
index 233a7f02..13886650 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -10,17 +10,7 @@
-
-
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index 8cf0216e..35eb1ddf 100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -2,6 +2,5 @@
-
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index e6e0664c..fbb69fd9 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -7,64 +7,56 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
-
-
-
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
+
+
-
-
@@ -77,7 +69,6 @@
-
Handlers.*
@@ -86,61 +77,26 @@
-
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -149,88 +105,83 @@
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
+
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -245,9 +196,15 @@
+
+
+
+ 182502964404027392
+
+
@@ -260,66 +217,61 @@
-
-
-
-
-
@@ -329,7 +281,7 @@
-
+
@@ -358,14 +310,7 @@
-
-
-
-
-
-
-
@@ -382,165 +327,98 @@
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
@@ -548,9 +426,8 @@
-
-
-
+
+
@@ -574,6 +451,13 @@
+
+
+
+
+
+
+
@@ -581,17 +465,12 @@
+
-
-
-
-
-
-
@@ -612,16 +491,52 @@
-
-
-
-
-
-
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -639,20 +554,99 @@
-
-
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -691,29 +685,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -730,27 +701,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -793,19 +743,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -840,42 +777,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -917,27 +818,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -961,7 +842,6 @@
-
@@ -1003,28 +883,28 @@
-
-
+
+
+
-
-
+
-
+
+
-
@@ -1032,6 +912,7 @@
+
@@ -1050,22 +931,15 @@
+
-
-
- jar://$MAVEN_REPOSITORY$/com/github/austinv11/Discord4j/2.8.1/Discord4j-2.8.1-shaded.jar!/sx/blah/discord/util/cache/Cache.class
- 243
-
-
-
-
-
+
@@ -1081,495 +955,484 @@
-
+
-
-
-
-
-
-
-
+
+
+
-
+
-
-
-
-
-
-
+
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
-
+
+
+
+
+
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
+
-
-
-
-
-
+
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
-
+
+
+
+
+
-
+
-
-
-
+
+
+
+
+
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
diff --git a/DiscordSAIL.iml b/DiscordSAIL.iml
index 4876a8d5..f9a388c0 100644
--- a/DiscordSAIL.iml
+++ b/DiscordSAIL.iml
@@ -1,6 +1,6 @@
-
+
diff --git a/dependency-reduced-pom.xml b/dependency-reduced-pom.xml
index ff6068a2..5fa31c25 100644
--- a/dependency-reduced-pom.xml
+++ b/dependency-reduced-pom.xml
@@ -3,7 +3,7 @@
4.0.0
com.github.vaerys
DiscordSAIL
- 2.8.0
+ 2.8.1
diff --git a/pom.xml b/pom.xml
index 7ec47e0a..a8f806d7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
com.github.vaerys
DiscordSAIL
- 2.8.0
+ 2.8.1
diff --git a/src/main/java/Commands/Admin/EditInfoFiles.java b/src/main/java/Commands/Admin/EditInfoFiles.java
index a4c3cc48..4f4878ae 100644
--- a/src/main/java/Commands/Admin/EditInfoFiles.java
+++ b/src/main/java/Commands/Admin/EditInfoFiles.java
@@ -12,6 +12,14 @@
* Created by Vaerys on 26/06/2017.
*/
public class EditInfoFiles implements Command {
+
+ String modes = "**Modes:**\n" +
+ "> uploadImage - `Requires image file.`\n" +
+ "> removeImage - `Requires file name.`\n" +
+ "> listFiles/listImages - `Lists the server's image files.`\n" +
+ "> uploadInfo - `Requires \"" + Constants.FILE_INFO + "\" file.`\n" +
+ "> getInfoFile - `Post the server's Info.txt.`";
+
@Override
public String execute(String args, CommandObject command) {
SplitFirstObject object = new SplitFirstObject(args);
@@ -41,18 +49,12 @@ public String[] names() {
@Override
public String description() {
- return "Allows for editing of the updateInfo command.\n" +
- "**Modes:**\n" +
- "- uploadImage: **Requires image file.**\n" +
- "- removeImage: **Requires file name.**\n" +
- "- listFiles/listImages\n" +
- "- uploadInfo: **Requires \"" + Constants.FILE_INFO + "\" file.**\n" +
- "- getInfoFile";
+ return "Allows for editing of the updateInfo command.\n" + modes;
}
@Override
public String usage() {
- return "[EditMode] (ImageFile/ImageName/Info.txt)";
+ return "[Mode] (args)";
}
@Override
diff --git a/src/main/java/Commands/Admin/UserSettings.java b/src/main/java/Commands/Admin/UserSettings.java
index 95615d8d..d2dc1ef0 100644
--- a/src/main/java/Commands/Admin/UserSettings.java
+++ b/src/main/java/Commands/Admin/UserSettings.java
@@ -16,6 +16,7 @@ public class UserSettings implements Command {
private String settings = "**Settings**\n" +
"- DeniedXp\n" +
"- DontShowRank\n";
+
@Override
public String execute(String args, CommandObject command) {
SplitFirstObject split = new SplitFirstObject(args);
@@ -36,24 +37,24 @@ public String execute(String args, CommandObject command) {
for (UserSetting s : userObject.getSettings()) {
if (s == UserSetting.DENIED_XP) {
userObject.getSettings().remove(s);
- return "> User will no longer gain XP.";
+ return "> User will now gain xp again.";
}
}
} else {
userObject.getSettings().add(UserSetting.DENIED_XP);
- return "> User will now gain xp again.";
+ return "> User will no longer gain XP.";
}
case "dontshowrank":
if (userObject.getSettings().contains(UserSetting.DONT_SHOW_LEADERBOARD)) {
for (UserSetting s : userObject.getSettings()) {
if (s == UserSetting.DONT_SHOW_LEADERBOARD) {
userObject.getSettings().remove(s);
- return "> User will no longer display their rank.";
+ return "> User's rank is now visible.";
}
}
} else {
userObject.getSettings().add(UserSetting.DONT_SHOW_LEADERBOARD);
- return "> User's rank is now visible.";
+ return "> User will no longer display their rank.";
}
default:
return "> Invalid setting.\n" + settings + "\n\n" + Utility.getCommandInfo(this, command);
diff --git a/src/main/java/Commands/CC/DelCC.java b/src/main/java/Commands/CC/DelCC.java
index 745bcef3..a7425bc5 100644
--- a/src/main/java/Commands/CC/DelCC.java
+++ b/src/main/java/Commands/CC/DelCC.java
@@ -36,7 +36,7 @@ public String type() {
@Override
public String channel() {
- return CHANNEL_BOT_COMMANDS;
+ return null;
}
@Override
diff --git a/src/main/java/Commands/CC/EditCC.java b/src/main/java/Commands/CC/EditCC.java
index bd380a79..31623cc5 100644
--- a/src/main/java/Commands/CC/EditCC.java
+++ b/src/main/java/Commands/CC/EditCC.java
@@ -12,6 +12,15 @@
* Created by Vaerys on 01/02/2017.
*/
public class EditCC implements Command {
+
+ String modes = "**Modes: **\n" +
+ "> Replace\n" +
+ "> ToEmbed\n" +
+ "> DelCall\n";
+ String adminModes = "**Admin Modes:**\n" +
+ "> Shitpost\n" +
+ "> Lock\n";
+
@Override
public String execute(String args, CommandObject command) {
SplitFirstObject getName = new SplitFirstObject(args);
@@ -34,7 +43,7 @@ public String execute(String args, CommandObject command) {
if (StringUtils.countMatches(mode + " " + content, "#embedImage#{") > 1) {
return "> Custom Commands Cannot have multiple #embedImage# tags";
}
- if(c.isLocked() && !canBypass){
+ if (c.isLocked() && !canBypass) {
return "> This command is locked and cannot be edited.";
}
switch (mode.toLowerCase()) {
@@ -51,7 +60,7 @@ public String execute(String args, CommandObject command) {
case "shitpost":
return CCEditModes.shitPost(c, command, command.author, command.guild);
case "lock":
- return CCEditModes.lock(c,command,command.author,command.guild);
+ return CCEditModes.lock(c, command, command.author, command.guild);
default:
if (content == null || content.isEmpty()) {
return CCEditModes.replace(c, mode);
@@ -68,7 +77,6 @@ public String execute(String args, CommandObject command) {
}
-
@Override
public String[] names() {
return new String[]{"EditCC"};
@@ -76,11 +84,8 @@ public String[] names() {
@Override
public String description() {
- return "Allows you to edit a custom command.\n" +
- " Modes: Replace, Append, toEmbed, DelCall.\n" +
- "**Admin Modes: **lock, Shitpost\n\n" +
- "Mode is optional, defaults to replace.\n" +
- "[Custom Command Guide](https://github.com/Vaerys-Dawn/DiscordSailv2/wiki/Custom-Command-Guide)";
+ return "Allows you to edit a custom command.\n" + modes + adminModes +
+ "**[Custom Command Guide](https://github.com/Vaerys-Dawn/DiscordSailv2/wiki/Custom-Command-Guide)**";
}
@Override
diff --git a/src/main/java/Commands/CC/InfoCC.java b/src/main/java/Commands/CC/InfoCC.java
index 4cec98e5..3bfa8389 100644
--- a/src/main/java/Commands/CC/InfoCC.java
+++ b/src/main/java/Commands/CC/InfoCC.java
@@ -57,7 +57,7 @@ public String type() {
@Override
public String channel() {
- return null;
+ return CHANNEL_BOT_COMMANDS;
}
@Override
diff --git a/src/main/java/Commands/CC/ListCCs.java b/src/main/java/Commands/CC/ListCCs.java
index e4dcd283..b20cffd4 100644
--- a/src/main/java/Commands/CC/ListCCs.java
+++ b/src/main/java/Commands/CC/ListCCs.java
@@ -123,7 +123,7 @@ public String type() {
@Override
public String channel() {
- return null;
+ return CHANNEL_BOT_COMMANDS;
}
@Override
diff --git a/src/main/java/Commands/CC/SearchCCs.java b/src/main/java/Commands/CC/SearchCCs.java
index dceadc6b..3e08d3d2 100644
--- a/src/main/java/Commands/CC/SearchCCs.java
+++ b/src/main/java/Commands/CC/SearchCCs.java
@@ -87,7 +87,7 @@ public String type() {
@Override
public String channel() {
- return null;
+ return CHANNEL_BOT_COMMANDS;
}
@Override
diff --git a/src/main/java/Commands/Characters/EditChar.java b/src/main/java/Commands/Characters/EditChar.java
index f54cd242..1aba414c 100644
--- a/src/main/java/Commands/Characters/EditChar.java
+++ b/src/main/java/Commands/Characters/EditChar.java
@@ -11,34 +11,42 @@
* Created by Vaerys on 26/02/2017.
*/
public class EditChar implements Command {
+
+ String modes = "**Modes:**\n" +
+ "> Age - `Max Chars: 20`\n" +
+ "> Gender - `Max Chars: 20`\n" +
+ "> Avatar - `Needs Valid Image URL`\n" +
+ "> Bio - `Max Chars: 300`\n" +
+ "> LongDesc - `Needs Valid URL`";
+
@Override
public String execute(String args, CommandObject command) {
SplitFirstObject charName = new SplitFirstObject(args);
- if (charName.getRest() == null || charName.getRest().isEmpty()){
+ if (charName.getRest() == null || charName.getRest().isEmpty()) {
return "> Mode Not Specified";
}
SplitFirstObject mode = new SplitFirstObject(charName.getRest());
- for (CharacterObject c: command.characters.getCharacters()){
- if (c.getName().equalsIgnoreCase(charName.getFirstWord())){
- if (c.getUserID().equals(command.authorSID) || Utility.canBypass(command.author,command.guild)){
- if (mode.getRest() == null || mode.getRest().isEmpty()){
+ for (CharacterObject c : command.characters.getCharacters()) {
+ if (c.getName().equalsIgnoreCase(charName.getFirstWord())) {
+ if (c.getUserID().equals(command.authorSID) || Utility.canBypass(command.author, command.guild)) {
+ if (mode.getRest() == null || mode.getRest().isEmpty()) {
return "> Missing Arguments for Editing.";
}
- switch (mode.getFirstWord().toLowerCase()){
+ switch (mode.getFirstWord().toLowerCase()) {
case "age":
- return CharEditModes.age(mode.getRest(),c);
+ return CharEditModes.age(mode.getRest(), c);
case "gender":
- return CharEditModes.gender(mode.getRest(),c);
+ return CharEditModes.gender(mode.getRest(), c);
case "avatar":
- return CharEditModes.avatar(mode.getRest(),c);
- case "desc":
- return CharEditModes.desc(mode.getRest(),c);
+ return CharEditModes.avatar(mode.getRest(), c);
+ case "bio":
+ return CharEditModes.desc(mode.getRest(), c);
case "longdesc":
- return CharEditModes.longDesc(mode.getRest(),c);
+ return CharEditModes.longDesc(mode.getRest(), c);
default:
return "> Mode not Valid.";
}
- }else {
+ } else {
return command.notAllowed;
}
}
@@ -53,9 +61,7 @@ public String[] names() {
@Override
public String description() {
- return "Allows the User to edit their Character.\n" +
- "Modes: age, Avatar, Desc, Gender, LongDesc\n" +
- "\nAvatar and LongDesc need valid URLs.";
+ return "Allows the User to edit their Character.\n" + modes;
}
@Override
diff --git a/src/main/java/Commands/CommandInit.java b/src/main/java/Commands/CommandInit.java
index 790b8e86..a88d0f76 100644
--- a/src/main/java/Commands/CommandInit.java
+++ b/src/main/java/Commands/CommandInit.java
@@ -7,6 +7,7 @@
import Commands.Creator.*;
import Commands.Creator.Shutdown;
import Commands.DMCommands.*;
+import Commands.DMCommands.TestDM;
import Commands.General.*;
import Commands.Groups.ClearGroupUp;
import Commands.Groups.GroupUp;
@@ -67,6 +68,7 @@ public static ArrayList get() {
commands.add(new SlashList());
commands.add(new ClearReminder());
commands.add(new EditLinks());
+ commands.add(new Ping());
//Help commands
commands.add(new GetGuildInfo());
commands.add(new Help());
@@ -75,6 +77,7 @@ public static ArrayList get() {
commands.add(new Report());
commands.add(new SilentReport());
commands.add(new StartUpGuide());
+ commands.add(new BotInfo());
//RoleSelect commands
commands.add(new CosmeticRoles());
commands.add(new ModifierRoles());
@@ -125,6 +128,10 @@ public static ArrayList get() {
commands.add(new SetXp());
commands.add(new SetLevel());
commands.add(new SetPixelModifier());
+ commands.add(new CheckPixelRoles());
+ commands.add(new TopUserForRole());
+ commands.add(new Rank());
+ commands.add(new TopTen());
return commands;
}
@@ -143,6 +150,7 @@ public static ArrayList getDM() {
commands.add(new ClearReminderDM());
commands.add(new ShutdownDM());
commands.add(new QuickRespond());
+ commands.add(new TestDM());
return commands;
}
diff --git a/src/main/java/Commands/DMCommands/TestDM.java b/src/main/java/Commands/DMCommands/TestDM.java
new file mode 100644
index 00000000..6c7ecd83
--- /dev/null
+++ b/src/main/java/Commands/DMCommands/TestDM.java
@@ -0,0 +1,46 @@
+package Commands.DMCommands;
+
+import Commands.DMCommandObject;
+import Interfaces.DMCommand;
+import sx.blah.discord.handle.obj.IChannel;
+
+/**
+ * Created by Vaerys on 15/07/2017.
+ */
+public class TestDM implements DMCommand {
+ @Override
+ public String execute(String args, DMCommandObject command) {
+// for (IChannel c : command.client.getGuildByID(176434793674833920L).getChannels()) {
+// if (("#" + c.getName()).equalsIgnoreCase(args)) {
+// return c.getName();
+// }
+// }
+// return "channel could not be found";
+ return "> You've done your testing";
+ }
+
+ @Override
+ public String[] names() {
+ return new String[]{"Test"};
+ }
+
+ @Override
+ public String description() {
+ return "Is a test";
+ }
+
+ @Override
+ public String usage() {
+ return "[args]";
+ }
+
+ @Override
+ public String type() {
+ return TYPE_CREATOR;
+ }
+
+ @Override
+ public boolean requiresArgs() {
+ return true;
+ }
+}
diff --git a/src/main/java/Commands/General/NewDailyMessage.java b/src/main/java/Commands/General/NewDailyMessage.java
new file mode 100644
index 00000000..d0330b27
--- /dev/null
+++ b/src/main/java/Commands/General/NewDailyMessage.java
@@ -0,0 +1,112 @@
+package Commands.General;
+
+import Commands.CommandObject;
+import Handlers.DailyHandler;
+import Interfaces.Command;
+import Main.Globals;
+import Main.Utility;
+import Objects.SplitFirstObject;
+import sx.blah.discord.handle.obj.Permissions;
+
+import java.time.DayOfWeek;
+import java.util.Arrays;
+
+public class NewDailyMessage implements Command {
+
+ @Override
+ public String execute(String args, CommandObject command) {
+ try {
+ SplitFirstObject day = new SplitFirstObject(args);
+ DayOfWeek dayOfWeek = DayOfWeek.valueOf(day.getFirstWord().toUpperCase());
+ if (day.getRest() != null) {
+ DailyHandler.addToQueue(command, day.getRest(), dayOfWeek);
+ return "> Request Sent.";
+ } else {
+ return Utility.getCommandInfo(this, command);
+ }
+ }catch (IllegalArgumentException e){
+ return "> Not a valid Day of the week.";
+ }
+ }
+
+ public static void checkIsEnabled(boolean enabled) {
+ boolean commandFound = false;
+ for (Command c : Globals.getCommands()) {
+ if (Arrays.equals(c.names(), new NewDailyMessage().names())) {
+ commandFound = true;
+ }
+ }
+ if (!commandFound && enabled) {
+ Globals.getCommands().add(new NewDailyMessage());
+ } else if (commandFound && !enabled) {
+ for (Command c : Globals.getCommands()) {
+ if (Arrays.equals(c.names(), new NewDailyMessage().names())) {
+ Globals.getCommands().remove(c);
+ return;
+ }
+ }
+ } else {
+ return;
+ }
+ }
+
+ @Override
+ public String[] names() {
+ return new String[]{"RequestDailyMessage","RequestDailyMsg","ReqDailyMsg"};
+ }
+
+ @Override
+ public String description() {
+ return "Allows you to request a new Daily message to be added.";
+ }
+
+ @Override
+ public String usage() {
+ return "[DayOfWeek] [Message]";
+ }
+
+ @Override
+ public String type() {
+ return TYPE_GENERAL;
+ }
+
+ @Override
+ public String channel() {
+ return CHANNEL_BOT_COMMANDS;
+ }
+
+ @Override
+ public Permissions[] perms() {
+ return new Permissions[0];
+ }
+
+ @Override
+ public boolean requiresArgs() {
+ return true;
+ }
+
+ @Override
+ public boolean doAdminLogging() {
+ return false;
+ }
+
+ @Override
+ public String dualDescription() {
+ return null;
+ }
+
+ @Override
+ public String dualUsage() {
+ return null;
+ }
+
+ @Override
+ public String dualType() {
+ return null;
+ }
+
+ @Override
+ public Permissions[] dualPerms() {
+ return new Permissions[0];
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/Commands/General/Ping.java b/src/main/java/Commands/General/Ping.java
new file mode 100644
index 00000000..d7c1b480
--- /dev/null
+++ b/src/main/java/Commands/General/Ping.java
@@ -0,0 +1,88 @@
+package Commands.General;
+
+import Commands.CommandObject;
+import Interfaces.Command;
+import Main.Utility;
+import sx.blah.discord.handle.obj.IMessage;
+import sx.blah.discord.handle.obj.Permissions;
+
+import java.text.NumberFormat;
+import java.time.ZoneOffset;
+import java.time.ZonedDateTime;
+
+/**
+ * Created by Vaerys on 12/07/2017.
+ */
+public class Ping implements Command {
+
+ @Override
+ public String execute(String args, CommandObject command) {
+ ZonedDateTime messageReceived = command.message.getTimestamp().atZone(ZoneOffset.UTC);
+ IMessage working = Utility.sendMessage("`Working...`", command.channel).get();
+ ZonedDateTime testPing = working.getTimestamp().atZone(ZoneOffset.UTC);
+ long ping = (testPing.toInstant().toEpochMilli() - messageReceived.toInstant().toEpochMilli());
+ Utility.sendMessage("Pong - " + NumberFormat.getInstance().format(ping) + "ms", command.channel);
+ Utility.deleteMessage(working);
+ return null;
+ }
+
+ @Override
+ public String[] names() {
+ return new String[]{"Ping"};
+ }
+
+ @Override
+ public String description() {
+ return "Sends a ping.";
+ }
+
+ @Override
+ public String usage() {
+ return null;
+ }
+
+ @Override
+ public String type() {
+ return TYPE_GENERAL;
+ }
+
+ @Override
+ public String channel() {
+ return null;
+ }
+
+ @Override
+ public Permissions[] perms() {
+ return new Permissions[0];
+ }
+
+ @Override
+ public boolean requiresArgs() {
+ return false;
+ }
+
+ @Override
+ public boolean doAdminLogging() {
+ return false;
+ }
+
+ @Override
+ public String dualDescription() {
+ return null;
+ }
+
+ @Override
+ public String dualUsage() {
+ return null;
+ }
+
+ @Override
+ public String dualType() {
+ return null;
+ }
+
+ @Override
+ public Permissions[] dualPerms() {
+ return new Permissions[0];
+ }
+}
diff --git a/src/main/java/Commands/General/Test.java b/src/main/java/Commands/General/Test.java
index bc34ab96..cc5df3b9 100644
--- a/src/main/java/Commands/General/Test.java
+++ b/src/main/java/Commands/General/Test.java
@@ -1,129 +1,61 @@
package Commands.General;
import Commands.CommandObject;
-import Commands.Pixels.SetXp;
+import Enums.EnumString;
import Handlers.XpHandler;
import Interfaces.Command;
-import Main.Constants;
-import Main.Globals;
import Main.Utility;
-import Objects.*;
-import POGOs.GuildUsers;
-import sx.blah.discord.handle.obj.IMessage;
+import Objects.UserTypeObject;
+import Objects.XEmbedBuilder;
import sx.blah.discord.handle.obj.IUser;
import sx.blah.discord.handle.obj.Permissions;
-import java.awt.*;
-import java.time.ZoneOffset;
-import java.time.ZonedDateTime;
-import java.util.regex.Matcher;
-import java.util.regex.PatternSyntaxException;
+import java.text.NumberFormat;
+import java.util.ArrayList;
/**
* Created by Vaerys on 30/01/2017.
*/
public class Test implements Command {
+ /**
+ * Important ass code do not delete plserino
+ * // if (obe.getFirstWord().equalsIgnoreCase("Mention")) {
+ * // if (obe.getRest() != null) {
+ * // IUser user = null;
+ * // SplitFirstObject mentionee = new SplitFirstObject(obe.getRest());
+ * // String toTest = Matcher.quoteReplacement(mentionee.getFirstWord()).replace("_", "[_| ]");
+ * // for (IUser u : command.guild.getUsers()) {
+ * // try {
+ * // if ((u.getName() + "#" + u.getDiscriminator()).matches(toTest)) {
+ * // user = u;
+ * // }
+ * // } catch (PatternSyntaxException e) {
+ * // //do nothing.
+ * // }
+ * // }
+ * // try {
+ * // long uID = Long.parseLong(mentionee.getFirstWord());
+ * // user = command.client.getUserByID(uID);
+ * // } catch (NumberFormatException e) {
+ * // if (command.message.getMentions().size() > 0) {
+ * // user = command.message.getMentions().get(0);
+ * // }
+ * // }
+ * // if (user != null) {
+ * // return "> User was found.";
+ * // } else {
+ * // return "> user could not be found.";
+ * // }
+ * // }
+ * // }
+ */
+
+ String nothing = "> Nothing to see here move along.";
+
@Override
public String execute(String args, CommandObject command) {
-// SplitFirstObject obe = new SplitFirstObject(args);
-// try {
-// if (obe.getFirstWord().equalsIgnoreCase("decay")) {
-// if (command.message.getMentions().size() > 0) {
-// IUser user = command.message.getMentions().get(0);
-// UserTypeObject userObject = command.guildUsers.getUserByID(user.getStringID());
-// String stats = "";
-// long xp = userObject.getXP();
-// long level = userObject.getCurrentLevel();
-// long rewardID = userObject.getRewardID();
-// userObject.setXp(XpHandler.totalXPForLevel(29));
-// userObject.setCurrentLevel(29);
-// for (RewardRoleObject r : command.guildConfig.getRewardRoles()) {
-// if (r.getLevel() == 20) {
-// userObject.setRewardID(r.getRoleID());
-// }
-// }
-// stats += "**START TEST**\n";
-// stats += "Level: " + userObject.getCurrentLevel() + ", Xp: " + userObject.getXP() + ", Reward: " + command.guild.getRoleByID(userObject.getRewardID()) + ".\n";
-//
-// for (int i = 8; i < 32; i++) {
-// ZonedDateTime now = ZonedDateTime.now(ZoneOffset.UTC).plusDays(i);
-// XpHandler.doDeacyUser(userObject, command, now);
-// if (stats.length() > 1800) {
-// Utility.sendMessage(stats, command.channel);
-// stats = "";
-// }
-// stats += "Level: " + userObject.getCurrentLevel() + ", Xp: " + userObject.getXP() + ", Reward: " + command.guild.getRoleByID(userObject.getRewardID()) + ", Days: " + i + ".\n";
-// }
-// userObject.setXp(xp);
-// userObject.setCurrentLevel(level);
-// userObject.setRewardID(rewardID);
-// XpHandler.checkUsersRoles(user.getStringID(),command.guildContent);
-// stats += "**TEST ENDED**";
-// return stats;
-// }
-// }
-// } catch (NumberFormatException e) {
-// return "> You must supply a valid number.";
-// }
-// if (obe.getFirstWord().equalsIgnoreCase("Mention")) {
-// if (obe.getRest() != null) {
-// IUser user = null;
-// SplitFirstObject mentionee = new SplitFirstObject(obe.getRest());
-// String toTest = Matcher.quoteReplacement(mentionee.getFirstWord()).replace("_", "[_| ]");
-// for (IUser u : command.guild.getUsers()) {
-// try {
-// if ((u.getName() + "#" + u.getDiscriminator()).matches(toTest)) {
-// user = u;
-// }
-// } catch (PatternSyntaxException e) {
-// //do nothing.
-// }
-// }
-// try {
-// long uID = Long.parseLong(mentionee.getFirstWord());
-// user = command.client.getUserByID(uID);
-// } catch (NumberFormatException e) {
-// if (command.message.getMentions().size() > 0) {
-// user = command.message.getMentions().get(0);
-// }
-// }
-// if (user != null) {
-// return "> User was found.";
-// } else {
-// return "> user could not be found.";
-// }
-// }
-// }
-// try {
-// long msgId = Long.parseUnsignedLong(args);
-// IMessage message = command.client.getMessageByID(msgId);
-// if (message != null) {
-// System.out.println("Embeds: " + message.getEmbeds().size());
-// System.out.println("Attachments: " + message.getAttachments().size());
-// System.out.println("Channels: " + message.getChannelMentions().size());
-// System.out.println("Mentions: " + message.getMentions().size());
-// System.out.println("RoleMentions: " + message.getRoleMentions().size());
-// System.out.println("Reactions: " + message.getReactions().size());
-// System.out.println("Charactes: " + message.getContent().length());
-// System.out.println("Words: " + message.getContent().split(" ").length);
-// System.out.println("Content: " + message.getContent());
-// System.out.println("Formatted Content: " + message.getFormattedContent());
-//// message.getChannel().pin(message);
-//// command.client.getDispatcher().dispatch(new MessagePinEvent(message));
-//// message.delete();
-// return "> you sent Erin some data :P";
-// } else {
-// return "> Nothing interesting happens.";
-// }
-// } catch (NumberFormatException e) {
-// String channels = "Channel Settings: \n";
-// for (ChannelSettingObject c : command.guildConfig.getChannelSettings()) {
-// channels += c.getType() + ": " + Utility.listFormatter(c.mentionChannelIDs(), true) + "\n";
-// }
-// return channels;
-// }
- return "> Nothing to test right now.";
+ return nothing;
}
@Override
@@ -153,7 +85,7 @@ public String channel() {
@Override
public Permissions[] perms() {
- return new Permissions[]{Permissions.MANAGE_SERVER};
+ return new Permissions[0];
}
@Override
@@ -163,7 +95,7 @@ public boolean requiresArgs() {
@Override
public boolean doAdminLogging() {
- return true;
+ return false;
}
@Override
diff --git a/src/main/java/Commands/General/UserInfo.java b/src/main/java/Commands/General/UserInfo.java
index c1ecef6e..3ef18490 100644
--- a/src/main/java/Commands/General/UserInfo.java
+++ b/src/main/java/Commands/General/UserInfo.java
@@ -66,14 +66,23 @@ public String execute(String args, CommandObject command) {
String desc = "";
desc += "**Account Created: **" + Utility.formatTimeDifference(difference);
desc += "\n**Gender: **" + u.getGender();
- if (command.guildConfig.moduleCC && !command.guildConfig.modulePixels) {
+
+ boolean showLevel = true;
+ boolean showCC = command.guildConfig.moduleCC;
+
+ if (!command.guildConfig.modulePixels || u.getXP() == 0) {
+ showLevel = false;
+ }
+
+ if (showCC && !showLevel) {
desc += "\n**Custom Commands: **" + command.customCommands.getUserCommandCount(command);
- } else if (!command.guildConfig.moduleCC && command.guildConfig.modulePixels) {
- desc += "**Level: **" + XpHandler.xpToLevel(u.getXP());
- } else {
+ } else if (showLevel && !showCC) {
+ desc += "\n**Level: **" + XpHandler.xpToLevel(u.getXP());
+ } else if (showLevel && showCC){
desc += "\n**Custom Commands: **" + command.customCommands.getUserCommandCount(command) +
indent + indent + indent + "**Level: **" + XpHandler.xpToLevel(u.getXP());
}
+
desc += "\n**Roles: **" + Utility.listFormatter(roleNames, true);
desc += "\n\n*" + u.getQuote() + "*";
desc += "\n" + Utility.listFormatter(links, true);
diff --git a/src/main/java/Commands/Help/BotInfo.java b/src/main/java/Commands/Help/BotInfo.java
new file mode 100644
index 00000000..5df45510
--- /dev/null
+++ b/src/main/java/Commands/Help/BotInfo.java
@@ -0,0 +1,93 @@
+package Commands.Help;
+
+
+import Commands.CommandObject;
+import Interfaces.Command;
+import Main.Globals;
+import Main.Utility;
+import Objects.XEmbedBuilder;
+import sx.blah.discord.handle.obj.IUser;
+import sx.blah.discord.handle.obj.Permissions;
+
+public class BotInfo implements Command {
+
+ @Override
+ public String execute(String args, CommandObject command) {
+ XEmbedBuilder builder = new XEmbedBuilder();
+ String response = "";
+ IUser creator = command.client.getUserByID(Globals.creatorID);
+ builder.withTitle("Information about " + Globals.botName);
+ response += "Created by: **@" + creator.getName() + "#" + creator.getDiscriminator() + "**.";
+ response += "\nCreated entirely using Java 8 and the **[Discord4J Libraries](https://discord4j.com/)**.";
+ response += "\nSupport Sail on **[Patreon](https://www.patreon.com/DawnFelstar)**.";
+ response += "\nFind Sail on **[GitHub](https://github.com/Vaerys-Dawn/DiscordSailv2)**.";
+ response += "\nBot's Support Discord: **https://discord.gg/XSyQQrR**.";
+ builder.withColor(Utility.getUsersColour(command.botUser, command.guild));
+ builder.withDesc(response);
+ builder.withThumbnail(command.botUser.getAvatarURL());
+ builder.withFooterText("Bot Version: " + Globals.version);
+ Utility.sendEmbedMessage("", builder, command.channel);
+ return null;
+ }
+
+ @Override
+ public String[] names() {
+ return new String[]{"BotInfo"};
+ }
+
+ @Override
+ public String description() {
+ return "Gives Information about the bot.";
+ }
+
+ @Override
+ public String usage() {
+ return null;
+ }
+
+ @Override
+ public String type() {
+ return TYPE_HELP;
+ }
+
+ @Override
+ public String channel() {
+ return null;
+ }
+
+ @Override
+ public Permissions[] perms() {
+ return new Permissions[0];
+ }
+
+ @Override
+ public boolean requiresArgs() {
+ return false;
+ }
+
+ @Override
+ public boolean doAdminLogging() {
+ return false;
+ }
+
+ @Override
+ public String dualDescription() {
+ return null;
+ }
+
+ @Override
+ public String dualUsage() {
+ return null;
+ }
+
+ @Override
+ public String dualType() {
+ return null;
+ }
+
+ @Override
+ public Permissions[] dualPerms() {
+ return new Permissions[0];
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/Commands/Help/Help.java b/src/main/java/Commands/Help/Help.java
index 7ebba17b..59fb6e26 100644
--- a/src/main/java/Commands/Help/Help.java
+++ b/src/main/java/Commands/Help/Help.java
@@ -69,17 +69,17 @@ public String execute(String args, CommandObject command) {
builder.append(codeBlock + "\n");
builder.append(Utility.listFormatter(types, false));
builder.append(codeBlock + "\n");
- String desc = "[Suport Sail on Patreon](https://www.patreon.com/DawnFelstar)\n" +
- "[Find Sail on GitHub](https://github.com/Vaerys-Dawn/DiscordSailv2)";
- if (!command.guildSID.equals("206792432560373761")) {
- desc += "\nSupport Discord - https://discord.gg/XSyQQrR";
- }
+// String desc = "[Suport Sail on Patreon](https://www.patreon.com/DawnFelstar)\n" +
+// "[Find Sail on GitHub](https://github.com/Vaerys-Dawn/DiscordSailv2)";
+// if (!command.guildSID.equals("206792432560373761")) {
+// desc += "\nSupport Discord - https://discord.gg/XSyQQrR";
+// }
helpEmbed.withTitle("Here are the Command Types I have available for use:");
builder.append(Utility.getCommandInfo(this, command) + "\n");
helpEmbed.withDescription(builder.toString());
- helpEmbed.appendField("Helpful Links", desc, true);
- helpEmbed.withFooterText("Bot Version: " + Globals.version);
+// helpEmbed.appendField("Helpful Links", desc, true);
+
} else {
boolean isFound = false;
String title = "ERROR";
@@ -128,7 +128,7 @@ public String[] names() {
@Override
public String description() {
- return "Gives information about Sail, including the commands it can run.";
+ return "Lists the commands that users can run.";
}
@Override
diff --git a/src/main/java/Commands/Help/Info.java b/src/main/java/Commands/Help/Info.java
index 56530750..791070e2 100644
--- a/src/main/java/Commands/Help/Info.java
+++ b/src/main/java/Commands/Help/Info.java
@@ -160,7 +160,7 @@ public Permissions[] perms() {
@Override
public boolean requiresArgs() {
- return false;
+ return true;
}
@Override
diff --git a/src/main/java/Commands/Pixels/CheckPixelRoles.java b/src/main/java/Commands/Pixels/CheckPixelRoles.java
new file mode 100644
index 00000000..fca747ba
--- /dev/null
+++ b/src/main/java/Commands/Pixels/CheckPixelRoles.java
@@ -0,0 +1,84 @@
+package Commands.Pixels;
+
+import Commands.CommandObject;
+import Handlers.XpHandler;
+import Interfaces.Command;
+import Main.Utility;
+import sx.blah.discord.handle.obj.IMessage;
+import sx.blah.discord.handle.obj.IUser;
+import sx.blah.discord.handle.obj.Permissions;
+
+/**
+ * Created by Vaerys on 12/07/2017.
+ */
+public class CheckPixelRoles implements Command {
+ @Override
+ public String execute(String args, CommandObject command) {
+ IMessage working = Utility.sendMessage("`Working...`", command.channel).get();
+ for (IUser user : command.guild.getUsers()) {
+ XpHandler.checkUsersRoles(user.getStringID(), command.guildContent);
+ }
+ Utility.deleteMessage(working);
+ return "> Done.";
+ }
+
+ @Override
+ public String[] names() {
+ return new String[]{"CheckPixelRoles"};
+ }
+
+ @Override
+ public String description() {
+ return "checks all user's Roles and allocates the correct roles based on their Pixel stats.";
+ }
+
+ @Override
+ public String usage() {
+ return null;
+ }
+
+ @Override
+ public String type() {
+ return TYPE_PIXEL;
+ }
+
+ @Override
+ public String channel() {
+ return null;
+ }
+
+ @Override
+ public Permissions[] perms() {
+ return new Permissions[]{Permissions.MANAGE_SERVER};
+ }
+
+ @Override
+ public boolean requiresArgs() {
+ return false;
+ }
+
+ @Override
+ public boolean doAdminLogging() {
+ return false;
+ }
+
+ @Override
+ public String dualDescription() {
+ return null;
+ }
+
+ @Override
+ public String dualUsage() {
+ return null;
+ }
+
+ @Override
+ public String dualType() {
+ return null;
+ }
+
+ @Override
+ public Permissions[] dualPerms() {
+ return new Permissions[0];
+ }
+}
diff --git a/src/main/java/Commands/Pixels/DefaultLevelMode.java b/src/main/java/Commands/Pixels/DefaultLevelMode.java
index bc0baa56..3c82b398 100644
--- a/src/main/java/Commands/Pixels/DefaultLevelMode.java
+++ b/src/main/java/Commands/Pixels/DefaultLevelMode.java
@@ -22,14 +22,12 @@ public String execute(String args, CommandObject command) {
case "levelchannel":
command.guildConfig.setDefaultLevelMode(UserSetting.SEND_LVLUP_RANK_CHANNEL);
return message + "the server's level up channel.";
-
case "currentchannel":
command.guildConfig.setDefaultLevelMode(UserSetting.SEND_LVLUP_CURRENT_CHANNEL);
return message + "the current channel.";
case "dms":
command.guildConfig.setDefaultLevelMode(UserSetting.SEND_LVLUP_DMS);
return message + "the user's Direct messages.";
-
case "nomessage":
command.guildConfig.setDefaultLevelMode(UserSetting.DONT_SEND_LVLUP);
return "> Now set to now send level up messages";
diff --git a/src/main/java/Commands/Pixels/ManagePixelRoles.java b/src/main/java/Commands/Pixels/ManagePixelRoles.java
index c05e6c7f..edb7c533 100644
--- a/src/main/java/Commands/Pixels/ManagePixelRoles.java
+++ b/src/main/java/Commands/Pixels/ManagePixelRoles.java
@@ -18,7 +18,7 @@ public String execute(String args, CommandObject command) {
String roleID = Utility.getRoleIDFromName(mode.getRest(), command.guild);
IRole role = command.guild.getRoleByID(roleID);
if (role == null) {
- return "> **" + mode.getRest() + "** is not a validrRole name.";
+ return "> **" + mode.getRest() + "** is not a valid Role name.";
}
try {
long level = Long.parseLong(mode.getFirstWord());
@@ -66,7 +66,7 @@ public String execute(String args, CommandObject command) {
return "> **" + role.getName() + "** is no longer the server's xpDenied role.";
} else if (role.getLongID() == command.guildConfig.topTenRoleID) {
command.guildConfig.topTenRoleID = -1;
- return "> **" + role.getName() + "** is no longer the server's xpDenied role.";
+ return "> **" + role.getName() + "** is no longer the server's Top Ten role.";
}
for (RewardRoleObject r : command.guildConfig.getRewardRoles()) {
if (r.getRoleID() == role.getLongID()) {
diff --git a/src/main/java/Commands/Pixels/PixelHelp.java b/src/main/java/Commands/Pixels/PixelHelp.java
index fdea8d0e..7abcc8aa 100644
--- a/src/main/java/Commands/Pixels/PixelHelp.java
+++ b/src/main/java/Commands/Pixels/PixelHelp.java
@@ -7,6 +7,8 @@
import Objects.SplitFirstObject;
import sx.blah.discord.handle.obj.Permissions;
+import java.text.NumberFormat;
+
/**
* Created by Vaerys on 01/07/2017.
*/
@@ -17,12 +19,12 @@ public String execute(String args, CommandObject command) {
try {
if (obe.getFirstWord().equalsIgnoreCase("levelToXP")) {
long level = Long.parseLong(obe.getRest());
- return "> Level: " + level + " = " + XpHandler.totalXPForLevel(level) + "XP";
+ return "> Level: " + level + " = " + NumberFormat.getInstance().format(XpHandler.totalXPForLevel(level)) + " pixels.";
} else if (obe.getFirstWord().equalsIgnoreCase("xpToLevel")) {
long xp = Long.parseLong(obe.getRest());
return "> " + xp + "XP = Level: " + XpHandler.xpToLevel(xp);
} else {
- return "> Pixels are S.A.I.L's Form of Xp. you can gain 20 pixels once ever minute in channels that allow for pixel gain.\n\n" +
+ return "> Pixels are S.A.I.L's Form of Xp. you can gain 20 pixels once every minute in channels that allow for pixel gain.\n\n" +
Utility.getCommandInfo(this, command);
}
} catch (NumberFormatException e) {
diff --git a/src/main/java/Commands/Pixels/PixelSettings.java b/src/main/java/Commands/Pixels/PixelSettings.java
index 95057d4f..ed982746 100644
--- a/src/main/java/Commands/Pixels/PixelSettings.java
+++ b/src/main/java/Commands/Pixels/PixelSettings.java
@@ -14,11 +14,11 @@
*/
public class PixelSettings implements Command {
String settings = "**Settings:**\n" +
- "- LevelChannel\n" +
- "- CurrentChannel\n" +
- "- DMs\n" +
- "- NoLvLMessages\n" +
- "- NoXP";
+ "> LevelChannel\n" +
+ "> CurrentChannel\n" +
+ "> DMs\n" +
+ "> NoLvLMessages - `Hides your rank on the server`\n" +
+ "> NoXP - `Stops you from gaining pixels`";
@Override
public String execute(String args, CommandObject command) {
@@ -41,7 +41,7 @@ public String execute(String args, CommandObject command) {
removeLevelSettings(userObject);
userObject.getSettings().add(UserSetting.DONT_SEND_LVLUP);
return "> You will no longer see any level up messages.";
- case "noXP":
+ case "noxp":
if (userObject.getSettings().contains(UserSetting.NO_XP_GAIN)) {
for (UserSetting s : userObject.getSettings()) {
if (s == UserSetting.NO_XP_GAIN) {
diff --git a/src/main/java/Commands/Pixels/Pixels.java b/src/main/java/Commands/Pixels/Pixels.java
index 16857f58..6694ed6b 100644
--- a/src/main/java/Commands/Pixels/Pixels.java
+++ b/src/main/java/Commands/Pixels/Pixels.java
@@ -10,6 +10,8 @@
import sx.blah.discord.handle.obj.IUser;
import sx.blah.discord.handle.obj.Permissions;
+import java.text.NumberFormat;
+
/**
* Created by Vaerys on 01/07/2017.
*/
@@ -25,23 +27,39 @@ public String execute(String args, CommandObject command) {
if (user == null) {
return "> That user currently does not have a profile.";
}
- if (command.channel.getModifiedPermissions(command.client.getOurUser()).contains(Permissions.EMBED_LINKS)) {
- builder.withColor(Globals.pixelColour); //colour of pixels
- builder.withAuthorName(iUser.getDisplayName(command.guild) + "'s Pixel stats.");
- builder.withAuthorIcon("http://i.imgur.com/r5usgN7.png"); //pixel icon
- builder.appendField("Total pixels: ", user.getXP() + "", true);
- builder.appendField("Level: ", XpHandler.xpToLevel(user.getXP()) + "", true);
- if (XpHandler.rank(command.guildUsers, command.guild, user.getID()) != -1 && user.getXP() != 0) {
- builder.appendField("Rank: ", XpHandler.rank(command.guildUsers, command.guild, user.getID()) + "/" + XpHandler.totalRanked(command), true);
- } else {
- builder.appendField("Rank: ", "??/" + XpHandler.totalRanked(command), true);
- }
- Utility.sendEmbedMessage("", builder, command.channel);
- return null;
+ String xpTitle = "Total Pixels: ";
+ String xpTotal = NumberFormat.getInstance().format(user.getXP());
+ String levelTitle = "Level Progress: ";
+
+ String rankTitle = "Rank: ";
+ String rankTotal;
+ if (XpHandler.rank(command.guildUsers, command.guild, user.getID()) != -1 && user.getXP() != 0) {
+ rankTotal = XpHandler.rank(command.guildUsers, command.guild, user.getID()) + "/" + XpHandler.totalRanked(command);
} else {
- return "**" + iUser.getDisplayName(command.guild) + "'s Pixel stats.**" +
- "\n**Total pixels:** " + user.getXP();
+ rankTotal = "N/a";
}
+ long xpForNext = XpHandler.levelToXP(user.getCurrentLevel() + 1);
+ long xpTillNext = XpHandler.totalXPForLevel(user.getCurrentLevel() + 1) - user.getXP();
+ long xpProgress = xpForNext - xpTillNext;
+ long percentToLvl = (xpProgress * 100) / xpForNext;
+ StringBuilder xpBar = new StringBuilder("--------------------");
+ int pos = (int) (percentToLvl / 5);
+ xpBar.replace(pos, pos, "**>**");
+ String levelTotal = "**" + user.getCurrentLevel() + "** [" + xpBar.toString() + "] **" + (user.getCurrentLevel() + 1) + "**";
+
+ builder.withColor(Globals.pixelColour); //colour of pixels
+ builder.withAuthorName(iUser.getDisplayName(command.guild) + "'s Pixel stats.");
+ builder.withAuthorIcon("http://i.imgur.com/r5usgN7.png"); //pixel icon
+ builder.appendField(xpTitle, xpTotal, true);
+ builder.appendField(rankTitle, rankTotal, true);
+ if (user.getXP() != 0) {
+ builder.appendField(levelTitle, levelTotal, false);
+ } else {
+ builder.appendField(levelTitle, "N/a", false);
+ }
+ Utility.sendEmbedMessage("", builder, command.channel);
+ return null;
+
}
@Override
diff --git a/src/main/java/Commands/Pixels/Rank.java b/src/main/java/Commands/Pixels/Rank.java
new file mode 100644
index 00000000..f091fa07
--- /dev/null
+++ b/src/main/java/Commands/Pixels/Rank.java
@@ -0,0 +1,144 @@
+package Commands.Pixels;
+
+import Commands.CommandObject;
+import Handlers.XpHandler;
+import Interfaces.Command;
+import Main.Utility;
+import Objects.UserTypeObject;
+import Objects.XEmbedBuilder;
+import sx.blah.discord.handle.obj.IUser;
+import sx.blah.discord.handle.obj.Permissions;
+
+import java.text.NumberFormat;
+import java.util.ArrayList;
+
+public class Rank implements Command {
+
+ @Override
+ public String execute(String args, CommandObject command) {
+ IUser user = command.author;
+ String error = "> Cannot get rank stats for this user.";
+ if (command.message.getMentions().size() > 0) {
+ user = command.message.getMentions().get(0);
+ }
+ //grab a copy of the list
+ ArrayList users = (ArrayList) command.guildUsers.getUsers().clone();
+ //sort users by Xp in ascending order (lowest Xp to highest XP).
+ Utility.sortUserObjects(users, true);
+ //test to see if said user actually has rank stats.
+ if (XpHandler.rank(command.guildUsers, command.guild, user.getStringID()) == -1) {
+ return error;
+ }
+ //build the Array of stats
+ for (int i = 0; i < users.size(); i++) {
+ if (users.get(i).getID().equals(user.getStringID())) {
+ ArrayList ranks = new ArrayList();
+ ArrayList response = new ArrayList();
+
+ int addedTop = 0;
+ int addedBottom = 0;
+ int posTop = 0;
+ int posBottom = 0;
+ //add users above
+ while (addedTop < 3 && i + posTop < users.size()) {
+ if (!user.getStringID().equals(users.get(i + posTop).getID()) && XpHandler.rank(command.guildUsers, command.guild, users.get(i + posTop).getID()) != -1) {
+ addedTop++;
+ ranks.add(users.get(i + posTop));
+ }
+ posTop++;
+ }
+ //add center user
+ ranks.add(users.get(i));
+ //add user below
+ while (addedBottom < 3 && i + posBottom > 0) {
+ if (!user.getStringID().equals(users.get(i + posBottom).getID()) && XpHandler.rank(command.guildUsers, command.guild, users.get(i + posBottom).getID()) != -1) {
+ addedBottom++;
+ ranks.add(users.get(i + posBottom));
+ }
+ posBottom--;
+ }
+ //sort ranked users
+ Utility.sortUserObjects(ranks, false);
+ //format rank stats
+ for (UserTypeObject r : ranks) {
+ IUser ranked = command.guild.getUserByID(r.getID());
+ String rankPos = "**" + XpHandler.rank(command.guildUsers, command.guild, r.getID()) + "** - ";
+ String toFormat = ranked.getDisplayName(command.guild)
+ + "\n " + indent + "`Level: " + r.getCurrentLevel() + ", Pixels: " + NumberFormat.getInstance().format(r.getXP()) + "`";
+ if (r.getID().equals(user.getStringID())) {
+ response.add(rankPos + spacer + "**" + toFormat + "**");
+ } else {
+ response.add(rankPos + toFormat);
+ }
+ }
+ XEmbedBuilder builder = new XEmbedBuilder();
+ builder.withTitle("Rank stats for: " + user.getDisplayName(command.guild));
+ builder.withDesc(Utility.listFormatter(response, false));
+ builder.withColor(Utility.getUsersColour(command.botUser, command.guild));
+ Utility.sendEmbedMessage("", builder, command.channel);
+ return null;
+ }
+ }
+ return error;
+ }
+
+ @Override
+ public String[] names() {
+ return new String[]{"Rank"};
+ }
+
+ @Override
+ public String description() {
+ return "Gives you some information about your rank";
+ }
+
+ @Override
+ public String usage() {
+ return "(@User)";
+ }
+
+ @Override
+ public String type() {
+ return TYPE_PIXEL;
+ }
+
+ @Override
+ public String channel() {
+ return CHANNEL_PIXELS;
+ }
+
+ @Override
+ public Permissions[] perms() {
+ return new Permissions[0];
+ }
+
+ @Override
+ public boolean requiresArgs() {
+ return false;
+ }
+
+ @Override
+ public boolean doAdminLogging() {
+ return false;
+ }
+
+ @Override
+ public String dualDescription() {
+ return null;
+ }
+
+ @Override
+ public String dualUsage() {
+ return null;
+ }
+
+ @Override
+ public String dualType() {
+ return null;
+ }
+
+ @Override
+ public Permissions[] dualPerms() {
+ return new Permissions[0];
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/Commands/Pixels/TopTen.java b/src/main/java/Commands/Pixels/TopTen.java
new file mode 100644
index 00000000..a3d88951
--- /dev/null
+++ b/src/main/java/Commands/Pixels/TopTen.java
@@ -0,0 +1,109 @@
+package Commands.Pixels;
+
+import Commands.CommandObject;
+import Handlers.XpHandler;
+import Interfaces.Command;
+import Main.Utility;
+import Objects.UserTypeObject;
+import Objects.XEmbedBuilder;
+import sx.blah.discord.handle.obj.IUser;
+import sx.blah.discord.handle.obj.Permissions;
+
+import java.text.NumberFormat;
+import java.util.ArrayList;
+
+public class TopTen implements Command {
+
+ @Override
+ public String execute(String args, CommandObject command) {
+ ArrayList ranks = new ArrayList<>();
+ ArrayList response = new ArrayList<>();
+
+ for (UserTypeObject u : command.guildUsers.getUsers()) {
+ long rank = XpHandler.rank(command.guildUsers, command.guild, u.getID());
+ if (rank <= 10 && rank != -1) {
+ ranks.add(u);
+ }
+ }
+
+ Utility.sortUserObjects(ranks, false);
+ //format rank stats
+ for (UserTypeObject r : ranks) {
+ IUser ranked = command.guild.getUserByID(r.getID());
+ String rankPos = "**" + XpHandler.rank(command.guildUsers, command.guild, r.getID()) + "** - ";
+ String toFormat = ranked.getDisplayName(command.guild);
+ toFormat += "\n " + indent + "`Level: " + r.getCurrentLevel() + ", Pixels: " + NumberFormat.getInstance().format(r.getXP()) + "`";
+ if (r.getID().equals(command.author.getStringID())) {
+ response.add(rankPos + spacer + "**" + toFormat + "**");
+ } else {
+ response.add(rankPos + toFormat);
+ }
+ }
+ XEmbedBuilder builder = new XEmbedBuilder();
+ builder.withTitle("Top Ten Users for the " + command.guild.getName() + " Server.");
+ builder.withDesc(Utility.listFormatter(response, false));
+ builder.withColor(Utility.getUsersColour(command.botUser, command.guild));
+ Utility.sendEmbedMessage("", builder, command.channel);
+ return null;
+ }
+
+ @Override
+ public String[] names() {
+ return new String[]{"TopTen"};
+ }
+
+ @Override
+ public String description() {
+ return "Gives a list of the top ten users on the server.";
+ }
+
+ @Override
+ public String usage() {
+ return null;
+ }
+
+ @Override
+ public String type() {
+ return TYPE_PIXEL;
+ }
+
+ @Override
+ public String channel() {
+ return CHANNEL_PIXELS;
+ }
+
+ @Override
+ public Permissions[] perms() {
+ return new Permissions[0];
+ }
+
+ @Override
+ public boolean requiresArgs() {
+ return false;
+ }
+
+ @Override
+ public boolean doAdminLogging() {
+ return false;
+ }
+
+ @Override
+ public String dualDescription() {
+ return null;
+ }
+
+ @Override
+ public String dualUsage() {
+ return null;
+ }
+
+ @Override
+ public String dualType() {
+ return null;
+ }
+
+ @Override
+ public Permissions[] dualPerms() {
+ return new Permissions[0];
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/Commands/Pixels/TopUserForRole.java b/src/main/java/Commands/Pixels/TopUserForRole.java
new file mode 100644
index 00000000..70cb7b54
--- /dev/null
+++ b/src/main/java/Commands/Pixels/TopUserForRole.java
@@ -0,0 +1,118 @@
+package Commands.Pixels;
+
+import Commands.CommandObject;
+import Enums.UserSetting;
+import Interfaces.Command;
+import Main.Utility;
+import Objects.UserTypeObject;
+import sx.blah.discord.handle.obj.IMessage;
+import sx.blah.discord.handle.obj.IRole;
+import sx.blah.discord.handle.obj.IUser;
+import sx.blah.discord.handle.obj.Permissions;
+
+import java.text.NumberFormat;
+
+public class TopUserForRole implements Command {
+
+ @Override
+ public String execute(String args, CommandObject command) {
+ IRole role = command.guild.getRoleByID(Utility.getRoleIDFromName(args, command.guild));
+ if (role == null) {
+ return "> Invalid Role.";
+ }
+ IMessage working = Utility.sendMessage("`Working...`", command.channel).get();
+ IUser topUser = null;
+ UserTypeObject topUserObject;
+ UserTypeObject userTypeObject;
+ for (IUser user : command.guild.getUsers()) {
+ if (user.getRolesForGuild(command.guild).contains(role)) {
+ if (topUser == null) {
+ topUser = user;
+ topUserObject = command.guildUsers.getUserByID(topUser.getStringID());
+ if (topUserObject == null) {
+ topUser = null;
+ } else if (topUserObject.getSettings().contains(UserSetting.HIDE_RANK) || topUserObject.getSettings().contains(UserSetting.DONT_SHOW_LEADERBOARD)) {
+ topUser = null;
+ }
+ } else {
+ userTypeObject = command.guildUsers.getUserByID(user.getStringID());
+ topUserObject = command.guildUsers.getUserByID(topUser.getStringID());
+ if (topUserObject != null && userTypeObject != null) {
+ if (!userTypeObject.getSettings().contains(UserSetting.HIDE_RANK) || !userTypeObject.getSettings().contains(UserSetting.DONT_SHOW_LEADERBOARD)) {
+ if (topUserObject.getXP() < userTypeObject.getXP()) {
+ topUser = user;
+ }
+ }
+ }
+ }
+ }
+ }
+ topUserObject = command.guildUsers.getUserByID(topUser.getStringID());
+ Utility.deleteMessage(working);
+ if (topUserObject != null) {
+ return "> @" + topUser.getName() + "#" + topUser.getDiscriminator() + ", Pixels: " + NumberFormat.getInstance().format(topUserObject.getXP()) + ", Level: " + topUserObject.getCurrentLevel() + ", UserID: " + topUserObject.getID();
+ } else {
+ return "> User could not be found.";
+ }
+ }
+
+ @Override
+ public String[] names() {
+ return new String[]{"TopUserForRole"};
+ }
+
+ @Override
+ public String description() {
+ return "Gets the top user (Pixel wise) for a specific role.";
+ }
+
+ @Override
+ public String usage() {
+ return "[Role Name]";
+ }
+
+ @Override
+ public String type() {
+ return TYPE_PIXEL;
+ }
+
+ @Override
+ public String channel() {
+ return null;
+ }
+
+ @Override
+ public Permissions[] perms() {
+ return new Permissions[]{Permissions.MANAGE_ROLES};
+ }
+
+ @Override
+ public boolean requiresArgs() {
+ return true;
+ }
+
+ @Override
+ public boolean doAdminLogging() {
+ return true;
+ }
+
+ @Override
+ public String dualDescription() {
+ return null;
+ }
+
+ @Override
+ public String dualUsage() {
+ return null;
+ }
+
+ @Override
+ public String dualType() {
+ return null;
+ }
+
+ @Override
+ public Permissions[] dualPerms() {
+ return new Permissions[0];
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/Enums/EnumString.java b/src/main/java/Enums/EnumString.java
index 72659a69..bf979c2d 100644
--- a/src/main/java/Enums/EnumString.java
+++ b/src/main/java/Enums/EnumString.java
@@ -8,7 +8,7 @@ public class EnumString {
public static String get(UserSetting setting) {
switch (setting) {
case SEND_LVLUP_RANK_CHANNEL:
- return "RankChannel";
+ return "LevelChannel";
case SEND_LVLUP_CURRENT_CHANNEL:
return "CurrentChannel";
case SEND_LVLUP_DMS:
diff --git a/src/main/java/Handlers/ArtHandler.java b/src/main/java/Handlers/ArtHandler.java
index 38150259..24bec181 100644
--- a/src/main/java/Handlers/ArtHandler.java
+++ b/src/main/java/Handlers/ArtHandler.java
@@ -30,10 +30,10 @@ public ArtHandler(CommandObject command) {
command.message.getChannel().pin(command.message);
checkList(command, true);
return;
- } catch (DiscordException e){
- if (e.getErrorMessage().contains("already pinned")){
+ } catch (DiscordException e) {
+ if (e.getErrorMessage().contains("already pinned")) {
return;
- }else{
+ } else {
e.printStackTrace();
}
}
@@ -59,6 +59,8 @@ public ArtHandler(CommandObject command) {
private void checkList(CommandObject command, boolean adding) {
ArrayList pinnedMessages = command.channelData.getPinnedMessages();
+
+ //check for null'd pins
for (int i = 0; i < pinnedMessages.size(); i++) {
if (command.channel.getMessageByID(pinnedMessages.get(i)) == null) {
pinnedMessages.remove(i);
@@ -66,21 +68,30 @@ private void checkList(CommandObject command, boolean adding) {
pinnedMessages.remove(i);
}
}
- while (pinnedMessages.size() >= 26) {
+
+ //remove unwanted pins
+ while (pinnedMessages.size() > 25) {
for (IMessage msg : command.channel.getPinnedMessages()) {
if (pinnedMessages.get(0) == msg.getLongID()) {
- RequestBuffer.request(() -> {
- command.channel.unpin(msg);
- RequestBuffer.request(() -> pinnedMessages.remove(0));
- });
+ unPin(msg, command);
+ pinnedMessages.remove(0);
}
}
}
+
+ //add new pin
if (adding) {
pinnedMessages.add(command.messageID);
}
}
+ private void unPin(IMessage message, CommandObject command) {
+ RequestBuffer.request(() -> command.channel.unpin(message));
+ if (message.isPinned()) {
+ unPin(message, command);
+ }
+ }
+
public boolean isHostingWebsite(String word) {
boolean hostingWebsite = false;
if (word.toLowerCase().toLowerCase().contains("https://gfycat.com/")) hostingWebsite = true;
diff --git a/src/main/java/Handlers/CCHandler.java b/src/main/java/Handlers/CCHandler.java
index ea0e5492..0832f052 100644
--- a/src/main/java/Handlers/CCHandler.java
+++ b/src/main/java/Handlers/CCHandler.java
@@ -29,7 +29,6 @@ public class CCHandler {
private IGuild guild;
private IUser author;
private IChannel channel;
- private String guildID;
private CommandObject commandObject;
CustomCommands customCommands;
GuildConfig guildConfig;
@@ -41,12 +40,11 @@ public CCHandler(String command, String args, CommandObject commandObject) {
this.command = command;
this.args = args;
this.commandObject = commandObject;
- guild = message.getGuild();
- channel = message.getChannel();
- author = message.getAuthor();
- guildID = guild.getStringID();
- customCommands = Globals.getGuildContent(guildID).getCustomCommands();
- guildConfig = Globals.getGuildContent(guildID).getGuildConfig();
+ this.guild = commandObject.guild;
+ this.author = commandObject.author;
+ this.channel = commandObject.channel;
+ guildConfig = commandObject.guildConfig;
+ customCommands = commandObject.customCommands;
handleCommand();
}
@@ -97,6 +95,9 @@ else if (cc.isShitPost() && guildConfig.shitPostFiltering) {
}
}
+// if (!channel.getTypingStatus()) {
+// channel.toggleTypingStatus();
+// }
response = cc.getContents(true);
int argsCount = StringUtils.countMatches(response, "");
if (argsCount != 0) {
@@ -119,9 +120,14 @@ else if (cc.isShitPost() && guildConfig.shitPostFiltering) {
if (response.contains("{")) {
String imageURL = TagSystem.tagEmbedImage(response, prefixEmbedImage);
if (imageURL != null || !imageURL.isEmpty()) {
- response = response.replaceFirst(Pattern.quote(prefixEmbedImage + imageURL + "}"), "");
- response = TagSystem.tagToCaps(response);
- Utility.sendFileURL(response, imageURL, channel, true);
+ if (commandObject.channel.getModifiedPermissions(author).contains(Permissions.EMBED_LINKS)) {
+ response = response.replaceFirst(Pattern.quote(prefixEmbedImage + imageURL + "}"), "");
+ response = TagSystem.tagToCaps(response);
+ Utility.sendFileURL(response, imageURL, channel, true);
+ } else {
+ response = response.replaceFirst(Pattern.quote(prefixEmbedImage + imageURL + "}"), "<" + imageURL + ">");
+ Utility.sendMessage(response, channel);
+ }
return;
}
}
diff --git a/src/main/java/Handlers/DailyHandler.java b/src/main/java/Handlers/DailyHandler.java
new file mode 100644
index 00000000..1bf2d016
--- /dev/null
+++ b/src/main/java/Handlers/DailyHandler.java
@@ -0,0 +1,84 @@
+package Handlers;
+
+import Commands.CommandObject;
+import Main.Globals;
+import Main.Utility;
+import Objects.DailyUserMessageObject;
+import Objects.XEmbedBuilder;
+import com.vdurmont.emoji.Emoji;
+import com.vdurmont.emoji.EmojiManager;
+import sx.blah.discord.handle.obj.IChannel;
+import sx.blah.discord.handle.obj.IEmbed;
+import sx.blah.discord.handle.obj.IMessage;
+import sx.blah.discord.handle.obj.IReaction;
+import sx.blah.discord.util.RequestBuffer;
+
+import java.time.DayOfWeek;
+import java.util.ArrayList;
+
+/**
+ * Created by Vaerys on 19/07/2017.
+ */
+public class DailyHandler {
+
+ public static void addToQueue(CommandObject object, String content, DayOfWeek dayOfWeek) {
+ Emoji thumbsUp = EmojiManager.getForAlias("thumbsup");
+ Emoji thumbsDown = EmojiManager.getForAlias("thumbsdown");
+ IChannel channel = object.client.getChannelByID(Globals.queueChannelID);
+
+ if (channel != null) {
+ XEmbedBuilder embedBuilder = new XEmbedBuilder();
+ embedBuilder.withAuthorName("New Daily Message - " + object.guild.getName());
+ embedBuilder.withDesc(content);
+ embedBuilder.withFooterText(dayOfWeek.toString());
+ embedBuilder.withColor(Utility.getUsersColour(object.botUser, channel.getGuild()));
+ embedBuilder.withTitle("[" + object.authorSID + "] " + object.authorUserName);
+ IMessage message = Utility.sendEmbedMessage("", embedBuilder, channel).get();
+ RequestBuffer.request(() -> message.addReaction(thumbsUp)).get();
+ RequestBuffer.request(() -> message.addReaction(thumbsDown)).get();
+ Globals.getGlobalData().getQueuedRequests().add(message.getLongID());
+ checkQueue();
+ }
+ }
+
+ public static void checkQueue() {
+ ArrayList queuedMessages = Globals.getGlobalData().getQueuedRequests();
+ for (int i = 0; i < queuedMessages.size(); i++) {
+ if (queuedMessages == null || queuedMessages.size() == 0) return;
+ IMessage message = Globals.getClient().getMessageByID(queuedMessages.get(i));
+ if (message == null) {
+ if (message.getLongID() == queuedMessages.get(i)) {
+ queuedMessages.remove(i);
+ }
+ }
+ }
+ }
+
+
+ public static void addedReaction(IMessage message, IReaction reaction) {
+ Emoji thumbsUp = EmojiManager.getForAlias("thumbsup");
+ Emoji ok = EmojiManager.getForAlias("white_check_mark");
+ Emoji no = EmojiManager.getForAlias("no_entry_sign");
+ ArrayList queuedMessages = Globals.getGlobalData().getQueuedRequests();
+
+ long messageId = message.getLongID();
+ for (int i = 0; i < queuedMessages.size(); i++) {
+ if (messageId == queuedMessages.get(i)) {
+ if (message.getEmbeds().size() > 0) {
+ IEmbed embed = message.getEmbeds().get(0);
+ DayOfWeek day = DayOfWeek.valueOf(embed.getFooter().getText());
+ embed.getDescription();
+ RequestBuffer.request(() -> message.removeAllReactions()).get();
+ if (reaction.getUnicodeEmoji().equals(thumbsUp)) {
+ Globals.getGlobalData().getDailyUserMessages().add(new DailyUserMessageObject(embed.getDescription(), day, embed.getTitle()));
+ RequestBuffer.request(() -> message.addReaction(ok)).get();
+ } else {
+ RequestBuffer.request(() -> message.addReaction(no)).get();
+ }
+ queuedMessages.remove(i);
+ }
+ }
+ }
+ checkQueue();
+ }
+}
diff --git a/src/main/java/Handlers/EventHandler.java b/src/main/java/Handlers/EventHandler.java
index 74974be9..4a11801f 100644
--- a/src/main/java/Handlers/EventHandler.java
+++ b/src/main/java/Handlers/EventHandler.java
@@ -152,8 +152,22 @@ public void run() {
Utility.sendMessage("> ***MERRY CHRISTMAS***", channel);
} else if (timeNow.getDayOfMonth() == 1 && timeNow.getMonth().equals(Month.JANUARY)) {
Utility.sendMessage("> ***HAPPY NEW YEAR***", channel);
+ } else if (timeNow.getDayOfMonth() == 13 && timeNow.getMonth().equals(Month.JULY)) {
+ int age = nowUTC.getYear() - 1996;
+ String modifier = "th";
+ if ((age + "").endsWith("1")) {
+ modifier = "st";
+ } else if ((age + "").endsWith("2")) {
+ modifier = "nd";
+ } else if ((age + "").endsWith("3")) {
+ modifier = "rd";
+ }
+ Utility.sendMessage("> Happy " + age + modifier + " Birthday Mum.", channel);
} else {
- Utility.sendMessage(d.getContents(), channel);
+ ArrayList dailyMessages = Globals.getGlobalData().getDailyMessages(day);
+ dailyMessages.add(new DailyUserMessageObject(d.getContents(), d.getDayOfWeek(), Globals.botName));
+ Random random = new Random();
+ Utility.sendMessage(dailyMessages.get(random.nextInt(dailyMessages.size())).getContents(), channel);
}
}
}
@@ -256,7 +270,7 @@ public void run() {
try {
if (Globals.showSaveWarning) {
logger.info("Backup in 5 seconds do not restart.");
- }else {
+ } else {
logger.debug("Backup in 5 seconds do not restart.");
}
Thread.sleep(5000);
@@ -280,9 +294,9 @@ public void run() {
}
randomPlayingStatus();
Globals.saveFiles();
- if (Globals.showSaveWarning){
+ if (Globals.showSaveWarning) {
logger.info("Files Saved.");
- }else {
+ } else {
logger.debug("Files Saved.");
}
}
@@ -294,8 +308,8 @@ private static void randomPlayingStatus() {
String status = Globals.playing;
if (Globals.doRandomGames && Globals.getRandomStatuses().size() != 0) {
ArrayList games = new ArrayList<>();
- for (RandomStatusObject r: Globals.getRandomStatuses()){
- for (int i = 0; i < r.getWeight();i++){
+ for (RandomStatusObject r : Globals.getRandomStatuses()) {
+ for (int i = 0; i < r.getWeight(); i++) {
games.add(r.getStatus());
}
}
diff --git a/src/main/java/Handlers/MessageHandler.java b/src/main/java/Handlers/MessageHandler.java
index 9a6105a9..2231d05a 100644
--- a/src/main/java/Handlers/MessageHandler.java
+++ b/src/main/java/Handlers/MessageHandler.java
@@ -41,14 +41,11 @@ public MessageHandler(String command, String args, CommandObject commandObject)
}
}
- checkBlacklist(commandObject);
- checkMentionCount(commandObject);
+ if (checkForInvites(commandObject)) return;
+ if (checkMentionCount(commandObject)) return;
+ if (rateLimiting(commandObject)) return;
XpHandler.grantXP(commandObject);
- if (rateLimiting(commandObject)) {
- return;
- }
-
if (commandObject.guildConfig.slashCommands) {
for (SlashCommand s : Globals.getSlashCommands()) {
@@ -147,6 +144,9 @@ private void handleCommand(CommandObject commandObject, String command, String a
handleLogging(commandObject, args, c, false);
}
}
+ if (!commandObject.channel.getTypingStatus()) {
+ commandObject.channel.toggleTypingStatus();
+ }
Utility.sendMessage(c.execute(args, commandObject), channel);
}
}
@@ -163,7 +163,7 @@ private void handleLogging(CommandObject commandObject, String args, Command com
Utility.sendLog(builder.toString(), commandObject.guildConfig, isAdmin);
}
- private void checkMentionCount(CommandObject command) {
+ private boolean checkMentionCount(CommandObject command) {
IMessage message = command.message;
GuildConfig guildConfig = command.guildConfig;
IUser author = command.author;
@@ -171,7 +171,7 @@ private void checkMentionCount(CommandObject command) {
IGuild guild = command.guild;
if (message.toString().contains("@everyone") || message.toString().contains("@here")) {
- return;
+ return false;
}
if (guildConfig.maxMentions) {
if (message.getMentions().size() > 8) {
@@ -203,8 +203,10 @@ private void checkMentionCount(CommandObject command) {
Utility.sendMessage(response, command.channel);
EventHandler.setDoAdminMention(command.guildSID, 60);
}
+ return true;
}
}
+ return false;
}
private boolean rateLimiting(CommandObject command) {
@@ -250,43 +252,25 @@ private boolean rateLimiting(CommandObject command) {
//File handlers
//BlackListed Phrase Remover
- private void checkBlacklist(CommandObject command) {
+ private boolean checkForInvites(CommandObject command) {
GuildConfig guildConfig = command.guildConfig;
IMessage message = command.message;
IGuild guild = command.guild;
IUser author = command.author;
- if (guildConfig == null) {
- return;
- }
- if (guildConfig.getBlackList() == null) {
- return;
- }
if (guildConfig.denyInvites) {
for (BlackListObject bLP : guildConfig.getBlackList()) {
if (message.toString().toLowerCase().contains(bLP.getPhrase().toLowerCase())) {
if (guildConfig.testIsTrusted(author, guild)) {
- return;
- }
- String response = bLP.getReason();
- if (response.contains("#mentionAdmin#")) {
- if (guildConfig.getRoleToMention().getRoleID() != null) {
- response = response.replaceAll("#mentionAdmin#", guild.getRoleByID(guildConfig.getRoleToMention().getRoleID()).mention());
- } else {
- response = response.replaceAll("#mentionAdmin#", "");
- }
- response = response.replace("#user#", author.mention());
- if (EventHandler.getDoAdminMention(command.guildSID) == 0) {
- Utility.sendMessage(response, command.channel);
- EventHandler.setDoAdminMention(command.guildSID, 60);
- }
- Utility.deleteMessage(message);
- } else {
- Utility.deleteMessage(message);
- Utility.sendMessage(response, command.channel);
+ return false;
}
+ String response = "> Please do not post Instant Invites.";
+ Utility.deleteMessage(message);
+ Utility.sendMessage(response, command.channel);
+ return true;
}
}
}
+ return false;
}
}
\ No newline at end of file
diff --git a/src/main/java/Handlers/PatchHandler.java b/src/main/java/Handlers/PatchHandler.java
index 8d0e096f..8b389814 100644
--- a/src/main/java/Handlers/PatchHandler.java
+++ b/src/main/java/Handlers/PatchHandler.java
@@ -141,7 +141,7 @@ public static void globalPatches() {
if (!Globals.getGlobalData().getGlobalPatches().contains(Constants.PATCH_GLOBAL_2)) {
logger.info("Performing patch : " + Constants.PATCH_GLOBAL_2 + ". Please wait...");
Config config = (Config) FileHandler.readFromJson(Constants.FILE_CONFIG, Config.class);
- config.randomStatuses = Config.defaultStatuses();
+ config.randomStatuses = new Config().randomStatuses;
FileHandler.writeToJson(Constants.FILE_CONFIG, config);
Globals.getGlobalData().getGlobalPatches().add(Constants.PATCH_GLOBAL_2);
logger.info("Reloading Globals...");
diff --git a/src/main/java/Handlers/XpHandler.java b/src/main/java/Handlers/XpHandler.java
index e775b2a2..61b1890a 100644
--- a/src/main/java/Handlers/XpHandler.java
+++ b/src/main/java/Handlers/XpHandler.java
@@ -134,8 +134,7 @@ public static void doDeacyUser(UserTypeObject u, CommandObject object, ZonedDate
public static void checkUsersRoles(String id, GuildContentObject content) {
//do code.
UserTypeObject userObject = content.getGuildUsers().getUserByID(id);
- ArrayList allRewards = content.getGuildConfig().getAllRewards(userObject.getRewardID());
- if (allRewards == null) {
+ if (userObject == null) {
return;
}
IUser user = Globals.getClient().getUserByID(userObject.getID());
@@ -154,15 +153,22 @@ public static void checkUsersRoles(String id, GuildContentObject content) {
}
}
- for (RewardRoleObject r : allRewards) {
- IRole role = Globals.getClient().getRoleByID(r.getRoleID());
- if (role != null) {
- userRoles.add(role);
+ if (userObject.getRewardID() != -1) {
+ ArrayList allRewards = content.getGuildConfig().getAllRewards(userObject.getRewardID());
+ if (allRewards == null) {
+ return;
+ }
+ for (RewardRoleObject r : allRewards) {
+ IRole role = Globals.getClient().getRoleByID(r.getRoleID());
+ if (role != null) {
+ userRoles.add(role);
+ }
}
}
IRole topTenRole = Globals.client.getGuildByID(content.getGuildID()).getRoleByID(content.getGuildConfig().topTenRoleID);
if (topTenRole != null) {
- if (XpHandler.rank(content.getGuildUsers(), Globals.client.getGuildByID(content.getGuildID()), user.getStringID()) >= 10) {
+ long rank = XpHandler.rank(content.getGuildUsers(), Globals.client.getGuildByID(content.getGuildID()), user.getStringID());
+ if (rank <= 10 && rank > 0) {
userRoles.add(topTenRole);
}
}
@@ -186,6 +192,7 @@ public static void grantXP(CommandObject object) {
//ony do xp checks if module is true
if (!object.guildConfig.modulePixels) return;
+ if (!object.guildConfig.xpGain) return;
user.lastTalked = ZonedDateTime.now(ZoneOffset.UTC).toEpochSecond();
@@ -376,24 +383,26 @@ public static long rank(GuildUsers guildUsers, IGuild guild, String userID) {
if (guild.getUserByID(userID) == null) {
return -1;
}
- long rank = 1;
-
-
- for (UserTypeObject u : guildUsers.getUsers()) {
- boolean hiderank = false;
- for (UserSetting s : u.getSettings()) {
- for (UserSetting test : Constants.dontLogStates) {
- if (s == test) {
- hiderank = true;
+ if (user.getXP() == 0) {
+ return -1;
+ }
+ long rank = 0;
+ ArrayList users = (ArrayList) guildUsers.getUsers().clone();
+ Utility.sortUserObjects(users, false);
+ for (int i = 0; i < users.size(); i++) {
+ if (users.get(i).getID().equals(userID)) {
+ return rank + 1;
+ } else {
+ boolean hiderank = false;
+ for (UserSetting s : users.get(i).getSettings()) {
+ for (UserSetting test : Constants.dontLogStates) {
+ if (s == test) {
+ hiderank = true;
+ }
}
}
- }
-
- if (guild.getUserByID(userID) != null) {
- if (!hiderank) {
- if (u.getXP() > user.getXP()) {
- rank++;
- }
+ if (guild.getUserByID(users.get(i).getID()) != null && !hiderank && user.getXP() != users.get(i).getXP()) {
+ rank++;
}
}
}
diff --git a/src/main/java/Main/AnnotationListener.java b/src/main/java/Main/AnnotationListener.java
index 535ea3b5..908283ea 100644
--- a/src/main/java/Main/AnnotationListener.java
+++ b/src/main/java/Main/AnnotationListener.java
@@ -1,6 +1,7 @@
package Main;
import Commands.CommandObject;
+import Commands.General.NewDailyMessage;
import Handlers.*;
import Interfaces.Command;
import Objects.GuildContentObject;
@@ -103,6 +104,8 @@ public void onGuildCreateEvent(GuildCreateEvent event) {
Globals.initGuild(guildID, guildConfig, servers, customCommands, characters, competition, guildUsers, channelData);
logger.info("Finished Initialising Guild With ID: " + guildID);
+
+ NewDailyMessage.checkIsEnabled(Globals.client.getChannelByID(Globals.queueChannelID) != null);
}
@EventSubscriber
@@ -277,6 +280,8 @@ private void updateVariables(IGuild guild) {
public void onReactionAddEvent(ReactionAddEvent event) {
Emoji x = EmojiManager.getForAlias("x");
Emoji pin = EmojiManager.getForAlias("pushpin");
+ Emoji thumbsUp = EmojiManager.getForAlias("thumbsup");
+ Emoji thumbsDown = EmojiManager.getForAlias("thumbsdown");
if (event.getReaction().isCustomEmoji()) {
return;
}
@@ -295,6 +300,16 @@ public void onReactionAddEvent(ReactionAddEvent event) {
}
}
}
+ if (event.getChannel().getLongID() == Globals.queueChannelID) {
+ if (!event.getReaction().isCustomEmoji()) {
+ if (event.getReaction().getUnicodeEmoji().equals(thumbsUp) || event.getReaction().getUnicodeEmoji().equals(thumbsDown)) {
+ IUser owner = Globals.getClient().getUserByID(Globals.creatorID);
+ if (event.getReaction().getUserReacted(owner)) {
+ DailyHandler.addedReaction(event.getMessage(), event.getReaction());
+ }
+ }
+ }
+ }
} else {
if (event.getReaction().getUnicodeEmoji().equals(x)) {
if (event.getMessage().getAuthor().getStringID().equals(Globals.getClient().getOurUser().getStringID())) {
@@ -374,7 +389,7 @@ public void onUserJoinEvent(UserJoinEvent event) {
String message = content.getGuildConfig().getJoinMessage();
message = message.replace("", event.getGuild().getName());
message = message.replace("", event.getUser().getName());
- Utility.sendDM(message,event.getUser().getStringID());
+ Utility.sendDM(message, event.getUser().getStringID());
}
joinLeaveLogging(event, true);
}
diff --git a/src/main/java/Main/Constants.java b/src/main/java/Main/Constants.java
index bc6bad01..95eb0a87 100644
--- a/src/main/java/Main/Constants.java
+++ b/src/main/java/Main/Constants.java
@@ -104,6 +104,7 @@ public class Constants {
add(UserSetting.DENIED_XP);
add(UserSetting.DONT_SHOW_LEADERBOARD);
add(UserSetting.HIDE_RANK);
+ add(UserSetting.HIT_LEVEL_FLOOR);
}};
//Special Messages
diff --git a/src/main/java/Main/Globals.java b/src/main/java/Main/Globals.java
index 16221c96..6ab19c81 100644
--- a/src/main/java/Main/Globals.java
+++ b/src/main/java/Main/Globals.java
@@ -3,6 +3,7 @@
import ChannelSettings.InitChannels;
import Commands.Admin.ChannelHere;
import Commands.CommandInit;
+import Commands.General.NewDailyMessage;
import Enums.UserSetting;
import GuildToggles.ToggleInit;
import Handlers.FileHandler;
@@ -14,6 +15,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import sx.blah.discord.api.IDiscordClient;
+import sx.blah.discord.handle.obj.IChannel;
import sx.blah.discord.handle.obj.IGuild;
import sx.blah.discord.handle.obj.IUser;
@@ -39,6 +41,7 @@ public class Globals {
public static boolean doRandomGames = false;
public static String dailyAvatarName = null;
public static String playing = null;
+ public static long queueChannelID = -1;
public static int argsMax = 0;
public static int maxWarnings = 0;
public static int avgMessagesPerDay = 20;
@@ -59,7 +62,6 @@ public class Globals {
private static ArrayList randomStatuses = new ArrayList<>();
-
final static Logger logger = LoggerFactory.getLogger(Globals.class);
private static GlobalData globalData;
public static int baseXPModifier;
@@ -89,6 +91,7 @@ public static void initConfig(IDiscordClient ourClient, Config config, GlobalDat
doRandomGames = config.doRandomGames;
showSaveWarning = config.showSaveWarning;
randomStatuses = config.randomStatuses;
+ queueChannelID = config.queueChannelID;
initCommands();
}
diff --git a/src/main/java/Main/Main.java b/src/main/java/Main/Main.java
index f61703fe..58119a26 100644
--- a/src/main/java/Main/Main.java
+++ b/src/main/java/Main/Main.java
@@ -64,7 +64,7 @@ public void run() {
GlobalData globalData = (GlobalData) FileHandler.readFromJson(Constants.FILE_GLOBAL_DATA, GlobalData.class);
- config.initObject();
+ config.initObject(config);
FileHandler.writeToJson(Constants.FILE_CONFIG, config);
//getting bot token
diff --git a/src/main/java/Main/Utility.java b/src/main/java/Main/Utility.java
index f4bee9b7..c4ae329b 100644
--- a/src/main/java/Main/Utility.java
+++ b/src/main/java/Main/Utility.java
@@ -330,17 +330,16 @@ public static boolean sendFileURL(String message, String imageURL, IChannel chan
return failed;
}
- public static boolean sendDMEmbed(String message, XEmbedBuilder embed, String userID) {
+ public static IMessage sendDMEmbed(String message, XEmbedBuilder embed, String userID) {
IChannel channel = Globals.getClient().getOrCreatePMChannel(Globals.getClient().getUserByID(userID));
if (channel != null) {
return sendEmbedMessage(message, embed, channel).get();
} else {
- return true;
+ return null;
}
}
- public static RequestBuffer.RequestFuture sendEmbedMessage(String message, XEmbedBuilder
- builder, IChannel channel) {
+ public static RequestBuffer.RequestFuture sendEmbedMessage(String message, XEmbedBuilder builder, IChannel channel) {
//removal of @everyone and @here Mentions.
EmbedObject embed = builder.build();
@@ -350,13 +349,13 @@ public static RequestBuffer.RequestFuture sendEmbedMessage(String messa
if (iMessage == null) {
iMessage = "";
}
- channel.sendMessage(iMessage, builder.build(), false);
+ return channel.sendMessage(iMessage, builder.build(), false);
} catch (DiscordException e) {
if (e.getMessage().contains("CloudFlare")) {
- sendMessage(message, channel);
+ sendEmbedMessage(message, builder, channel);
} else {
e.printStackTrace();
- return true;
+ return null;
}
} catch (MissingPermissionsException e) {
logger.debug("Error sending File to channel with id: " + channel.getStringID() + " on guild with id: " + channel.getGuild().getStringID() +
@@ -372,10 +371,9 @@ public static RequestBuffer.RequestFuture sendEmbedMessage(String messa
}
if (embed.footer != null) embedToString.append("*" + embed.footer.text + "*");
if (embed.image != null) embedToString.append(embed.image.url);
- sendMessage(embedToString.toString(), channel);
- return true;
+ return sendMessage(embedToString.toString(), channel).get();
}
- return false;
+ return null;
});
}
@@ -573,8 +571,7 @@ public static RequestBuffer.RequestFuture deleteMessage(MessageHistory
});
}
- public static RequestBuffer.RequestFuture updateUserNickName(IUser author, IGuild guild, String
- nickname) {
+ public static RequestBuffer.RequestFuture updateUserNickName(IUser author, IGuild guild, String nickname) {
return RequestBuffer.request(() -> {
try {
guild.setUserNickname(author, nickname);
@@ -938,7 +935,7 @@ public static boolean muteUser(String guildID, String userID, boolean isMuting)
public static boolean testUserHierarchy(IUser author, IUser toTest, IGuild guild) {
List userRoles = author.getRolesForGuild(guild);
- List testRoles = author.getRolesForGuild(guild);
+ List testRoles = toTest.getRolesForGuild(guild);
IRole topRole = null;
int topRolePos = 0;
for (IRole role : userRoles) {
@@ -1051,4 +1048,28 @@ public static void sortRewards(ArrayList rewardRoles) {
}
});
}
+
+ public static void sortUserObjects(ArrayList users, boolean sortAsc) {
+ if (sortAsc) {
+ Collections.sort(users, (o1, o2) -> {
+ if (o1.getXP() < o2.getXP()) {
+ return -1;
+ } else if (o1.getXP() > o2.getXP()) {
+ return 1;
+ } else {
+ return 0;
+ }
+ });
+ }else {
+ Collections.sort(users, (o1, o2) -> {
+ if (o1.getXP() > o2.getXP()) {
+ return -1;
+ } else if (o1.getXP() < o2.getXP()) {
+ return 1;
+ } else {
+ return 0;
+ }
+ });
+ }
+ }
}
\ No newline at end of file
diff --git a/src/main/java/Objects/DailyUserMessageObject.java b/src/main/java/Objects/DailyUserMessageObject.java
new file mode 100644
index 00000000..7625a665
--- /dev/null
+++ b/src/main/java/Objects/DailyUserMessageObject.java
@@ -0,0 +1,28 @@
+package Objects;
+
+import Main.TagSystem;
+
+import java.time.DayOfWeek;
+
+/**
+ * Created by Vaerys on 19/07/2017.
+ */
+public class DailyUserMessageObject {
+ String author;
+ String content;
+ DayOfWeek day;
+
+ public DailyUserMessageObject(String description, DayOfWeek day, String name) {
+ this.content = description;
+ this.day = day;
+ this.author = name;
+ }
+
+ public DayOfWeek getDay() {
+ return day;
+ }
+
+ public String getContents() {
+ return TagSystem.tagRandom(TagSystem.tagSpacer(TagSystem.tagNoNL(TagSystem.tagMentionRemover(content))));
+ }
+}
diff --git a/src/main/java/POGOs/Config.java b/src/main/java/POGOs/Config.java
index b77a9835..e6647cd8 100644
--- a/src/main/java/POGOs/Config.java
+++ b/src/main/java/POGOs/Config.java
@@ -13,55 +13,52 @@
* Created by Vaerys on 14/01/2017.
*/
public class Config {
- public boolean resetToDefault;
- public String botName;
- public String creatorID;
- public String defaultPrefixCommand;
- public String defaultPrefixCC;
- public String defaultAvatarFile;
- public boolean doDailyAvatars;
- public String dailyAvatarName;
- public String playing;
- public boolean doRandomGames;
- public boolean showSaveWarning;
+ public boolean resetToDefault = false;
+ public String botName = "S.A.I.L";
+ public String creatorID = "153159020528533505";
+ public String defaultPrefixCommand = "$";
+ public String defaultPrefixCC = "$$";
+ public String defaultAvatarFile = "Avatar.png";
+ public boolean doDailyAvatars = false;
+ public String dailyAvatarName = "Avatar_For_#day#.png";
+ public String playing = "Starbound";
+ public long queueChannelID = -1;
+ public boolean doRandomGames = false;
+ public boolean showSaveWarning = false;
public int argsMax = 500;
public int maxWarnings = 3;
public int baseXpModifier = 20;
public int xpForLevelOne = 100;
public int avgMessagesPerDay = 20;
- public ArrayList dailyMessages;
- public ArrayList randomStatuses;
+ public ArrayList dailyMessages = new ArrayList() {{
+ add(new DailyMessageObject(DayOfWeek.MONDAY, Constants.DAILY_MESSAGE_1, dailyAvatarName));
+ add(new DailyMessageObject(DayOfWeek.TUESDAY, Constants.DAILY_MESSAGE_2, dailyAvatarName));
+ add(new DailyMessageObject(DayOfWeek.WEDNESDAY, Constants.DAILY_MESSAGE_3, dailyAvatarName));
+ add(new DailyMessageObject(DayOfWeek.THURSDAY, Constants.DAILY_MESSAGE_4, dailyAvatarName));
+ add(new DailyMessageObject(DayOfWeek.FRIDAY, Constants.DAILY_MESSAGE_5, dailyAvatarName));
+ add(new DailyMessageObject(DayOfWeek.SATURDAY, Constants.DAILY_MESSAGE_6, dailyAvatarName));
+ add(new DailyMessageObject(DayOfWeek.SUNDAY, Constants.DAILY_MESSAGE_7, dailyAvatarName));
+ }};
+ public ArrayList randomStatuses = new ArrayList() {{
+ add(new RandomStatusObject("Starbound", 10));
+ add(new RandomStatusObject("WarGroove", 5));
+ add(new RandomStatusObject("Stardew Valley", 1));
+ add(new RandomStatusObject("Pocket Rumble", 1));
+ add(new RandomStatusObject("The Siege and the SandFox", 1));
+ add(new RandomStatusObject("Treasure Adventure World", 1));
+ add(new RandomStatusObject("Interstellaria", 1));
+ add(new RandomStatusObject("Halfway", 1));
+ add(new RandomStatusObject("Lenna's Inception", 1));
+ add(new RandomStatusObject("Risk of Rain", 1));
+ add(new RandomStatusObject("Witchmarsh", 1));
+ add(new RandomStatusObject("Wanderlust Adventure", 1));
+ add(new RandomStatusObject("Wanderlust Rebirth", 1));
+ }};
- public boolean initObject() {
+ public boolean initObject(Config config) {
if (resetToDefault) {
- resetToDefault = false;
- botName = "S.A.I.L";
- creatorID = "153159020528533505";
- defaultPrefixCommand = "$";
- defaultPrefixCC = "$$";
- defaultAvatarFile = "Avatar.png";
- doDailyAvatars = false;
- dailyAvatarName = "Avatar_For_#day#.png";
- playing = "Starbound";
- argsMax = 500;
- maxWarnings = 3;
- baseXpModifier = 5;
- xpForLevelOne = 100;
- avgMessagesPerDay = 20;
- doRandomGames = true;
- showSaveWarning = true;
- dailyMessages = new ArrayList() {{
- add(new DailyMessageObject(DayOfWeek.MONDAY, Constants.DAILY_MESSAGE_1, dailyAvatarName));
- add(new DailyMessageObject(DayOfWeek.TUESDAY, Constants.DAILY_MESSAGE_2, dailyAvatarName));
- add(new DailyMessageObject(DayOfWeek.WEDNESDAY, Constants.DAILY_MESSAGE_3, dailyAvatarName));
- add(new DailyMessageObject(DayOfWeek.THURSDAY, Constants.DAILY_MESSAGE_4, dailyAvatarName));
- add(new DailyMessageObject(DayOfWeek.FRIDAY, Constants.DAILY_MESSAGE_5, dailyAvatarName));
- add(new DailyMessageObject(DayOfWeek.SATURDAY, Constants.DAILY_MESSAGE_6, dailyAvatarName));
- add(new DailyMessageObject(DayOfWeek.SUNDAY, Constants.DAILY_MESSAGE_7, dailyAvatarName));
- }};
- randomStatuses = defaultStatuses();
- return true;
+ config = new Config();
}
for (DailyMessageObject d : dailyMessages) {
d.updateFilePath(dailyAvatarName);
@@ -72,24 +69,6 @@ public boolean initObject() {
public void setDailyMessages(ArrayList dailyMessages) {
this.dailyMessages = dailyMessages;
}
-
- public static ArrayList defaultStatuses() {
- return new ArrayList() {{
- add(new RandomStatusObject("Starbound", 10));
- add(new RandomStatusObject("WarGroove", 5));
- add(new RandomStatusObject("Stardew Valley", 1));
- add(new RandomStatusObject("Pocket Rumble", 1));
- add(new RandomStatusObject("The Siege and the SandFox", 1));
- add(new RandomStatusObject("Treasure Adventure World", 1));
- add(new RandomStatusObject("Interstellaria", 1));
- add(new RandomStatusObject("Halfway", 1));
- add(new RandomStatusObject("Lenna's Inception", 1));
- add(new RandomStatusObject("Risk of Rain", 1));
- add(new RandomStatusObject("Witchmarsh", 1));
- add(new RandomStatusObject("Wanderlust Adventure", 1));
- add(new RandomStatusObject("Wanderlust Rebirth", 1));
- }};
- }
}
diff --git a/src/main/java/POGOs/GlobalData.java b/src/main/java/POGOs/GlobalData.java
index f0b69979..18623b37 100644
--- a/src/main/java/POGOs/GlobalData.java
+++ b/src/main/java/POGOs/GlobalData.java
@@ -1,9 +1,13 @@
package POGOs;
+import GuildToggles.Toggles.DailyMessage;
+import Objects.DailyMessageObject;
+import Objects.DailyUserMessageObject;
import Objects.PatchObject;
import Objects.ReminderObject;
+import java.time.DayOfWeek;
import java.util.ArrayList;
/**
@@ -14,6 +18,8 @@ public class GlobalData {
ArrayList reminders = new ArrayList<>();
private ArrayList patches = new ArrayList<>();
private ArrayList globalPatches = new ArrayList<>();
+ private ArrayList queuedRequests = new ArrayList<>();
+ private ArrayList dailyUserMessages = new ArrayList<>();
public ArrayList getPatches() {
return patches;
@@ -23,6 +29,10 @@ public ArrayList getBlockedFromDMS() {
return blockedFromDMS;
}
+ public ArrayList getQueuedRequests() {
+ return queuedRequests;
+ }
+
public boolean blockUserFromDMS(String userID) {
blockedFromDMS.add(userID);
return true;
@@ -56,4 +66,18 @@ public void removeReminder(String userID,String reminder) {
public ArrayList getGlobalPatches() {
return globalPatches;
}
+
+ public ArrayList getDailyUserMessages() {
+ return dailyUserMessages;
+ }
+
+ public ArrayList getDailyMessages(DayOfWeek day) {
+ ArrayList dailyMessages = new ArrayList();
+ for (DailyUserMessageObject d: dailyUserMessages){
+ if (d.getDay() == day){
+ dailyMessages.add(d);
+ }
+ }
+ return dailyMessages;
+ }
}
diff --git a/target/JavaDiscordSAILv2.jar b/target/JavaDiscordSAILv2.jar
index 5b20c02c..4acfd411 100644
Binary files a/target/JavaDiscordSAILv2.jar and b/target/JavaDiscordSAILv2.jar differ
diff --git a/target/classes/project.properties b/target/classes/project.properties
index a3315df0..f5a89924 100644
--- a/target/classes/project.properties
+++ b/target/classes/project.properties
@@ -1 +1 @@
-version=2.8.0
\ No newline at end of file
+version=2.8.1
\ No newline at end of file
diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties
index dea63ca0..a251c9ad 100644
--- a/target/maven-archiver/pom.properties
+++ b/target/maven-archiver/pom.properties
@@ -1,5 +1,5 @@
#Generated by Maven
-#Fri Jul 07 16:20:33 AEST 2017
-version=2.8.0
+#Mon Jul 24 12:04:04 AEST 2017
+version=2.8.1
groupId=com.github.vaerys
artifactId=DiscordSAIL
diff --git a/target/original-JavaDiscordSAILv2.jar b/target/original-JavaDiscordSAILv2.jar
index 10960a4f..0a214445 100644
Binary files a/target/original-JavaDiscordSAILv2.jar and b/target/original-JavaDiscordSAILv2.jar differ