@@ -9,7 +9,6 @@
import org.javacord.api.DiscordApi;
import org.javacord.api.entity.message.Message;
import org.joda.time.DateTime;
import org.mindrot.jbcrypt.BCrypt;

import java.io.File;
import java.io.FileReader;
@@ -112,25 +111,17 @@ public void onCommand(DiscordApi api, Message message, Command command, Result r
try {
JsonElement jsonElement = new JsonParser().parse(new FileReader(file));
if (jsonElement.isJsonNull()) {
jsonElement = new JsonObject();
}
if (!jsonElement.isJsonObject()) return;
JsonObject object = jsonElement.getAsJsonObject();

JsonArray array;
if (object.has("list") && object.get("list").isJsonArray()) {
array = object.getAsJsonArray("list");
} else {
array = new JsonArray();
object.add("list", array);
jsonElement = new JsonArray();
}
if (!jsonElement.isJsonArray()) return;
JsonArray array = jsonElement.getAsJsonArray();

int count = 0;
for (JsonElement element : array) {
if (element.isJsonObject()) {
JsonObject object1 = element.getAsJsonObject();
if (object1.has("user") && object1.get("user").isJsonPrimitive()) {
if (object1.getAsJsonPrimitive("user").getAsString().equals(message.getAuthor().getId()))
if (Utils.checkHashMatch(message.getAuthor().getIdAsString(), object1.getAsJsonObject("user")))
count++;
}
}
@@ -147,7 +138,7 @@ public void onCommand(DiscordApi api, Message message, Command command, Result r
}

JsonObject object1 = new JsonObject();
object1.addProperty("user", BCrypt.hashpw(String.valueOf(message.getAuthor().getId()), BCrypt.gensalt()));
object1.add("user", Utils.encryptString(message.getAuthor().getIdAsString()));
if (message.getChannel() != null)
object1.addProperty("channel", message.getChannel().getId() + "@" + message.getServer().get().getId());
object1.addProperty("time", finalDate.getMillis());
@@ -75,26 +75,17 @@ public void onCommand(DiscordApi api, Message message, Command command, Result r

try {
JsonElement jsonElement = new JsonParser().parse(new FileReader(file));
if (jsonElement.isJsonNull()) {
jsonElement = new JsonObject();
}
if (!jsonElement.isJsonObject()) return;
JsonObject object = jsonElement.getAsJsonObject();

JsonArray array;
if (object.has("list") && object.get("list").isJsonArray()) {
array = object.getAsJsonArray("list");
} else {
message.getChannel().sendMessage("You don't have any reminders you silly goof.");
return;
if (!jsonElement.isJsonArray()) {
jsonElement = new JsonArray();
}
JsonArray array = jsonElement.getAsJsonArray();

Set<JsonObject> objects = new HashSet<>();
for (JsonElement element : array) {
if (!element.isJsonObject()) continue;
JsonObject object1 = element.getAsJsonObject();
if (!object1.has("user") || !object1.get("user").isJsonPrimitive()) continue;
User user = Utils.lookupUserFromHash(object1.getAsJsonPrimitive("user").getAsString());
if (!object1.has("user") || !object1.get("user").isJsonObject()) continue;
User user = Utils.lookupUserFromHash(object1.getAsJsonObject("user"), api);
if (user == null) continue;
objects.add(object1);
}
@@ -65,26 +65,27 @@ public void run() {
&& reminder.has("reminder")
&& reminder.get("reminder").isJsonPrimitive()
&& reminder.has("user")
&& reminder.get("user").isJsonPrimitive()
&& reminder.get("user").isJsonObject()
&& reminder.has("origin_time")
&& reminder.get("origin_time").isJsonPrimitive()) {
String message = Utils.decrypt(reminder.getAsJsonPrimitive("reminder").getAsString());
DateTime time = new DateTime(reminder.getAsJsonPrimitive("time").getAsLong());
long originTime = reminder.getAsJsonPrimitive("origin_time").getAsLong();
String userString = reminder.getAsJsonPrimitive("user").getAsString();
JsonObject userObject = reminder.getAsJsonObject("user");

final Channel[] channel = {null};
final Server[] server = {null};
Channel channel = null;
Server server = null;
if (reminder.has("channel")) {
String channelString = reminder.getAsJsonPrimitive("channel").getAsString();
String[] parts = channelString.split("@");
WizardryBot.API.getChannelById(parts[0]).ifPresent(channel1 -> channel[0] = channel1);
WizardryBot.API.getServerById(parts[1]).ifPresent(server1 -> server[0] = server1);
channel = WizardryBot.API.getChannelById(parts[0]).get();
server = WizardryBot.API.getServerById(parts[1]).get();
}
if (channel == null) return;

try {
if (time.getMillis() - System.currentTimeMillis() <= 0) {
User user = Utils.lookupUserFromHash(userString);
User user = Utils.lookupUserFromHash(userObject, channel);
if (user != null) {

String or;
@@ -99,23 +100,14 @@ public void run() {
} else or = TimeUnit.MILLISECONDS.toMinutes(difference) + " minutes";
} else or = TimeUnit.MILLISECONDS.toSeconds(difference) + " seconds";

if (channel[0] == null) {
user.sendMessage("Hello! You told me to remind you "
+ "`" + or + "` ago"
+ " about the following:\n"
+ "```"
+ message
+ "```");
} else {
channel[0].asTextChannel().ifPresent(textChannel -> textChannel.sendMessage(
user.getMentionTag()
+ " Hey! You told me to remind you "
+ "`" + or + "` ago"
+ " about the following:\n"
+ "```"
+ message
+ "```"));
}
channel.asTextChannel().ifPresent(textChannel -> textChannel.sendMessage(
user.getMentionTag()
+ " Hey! You told me to remind you "
+ "`" + or + "` ago"
+ " about the following:\n"
+ "```"
+ message
+ "```"));
}

array.remove(element);