mirror of
https://github.com/DreamExposure/DisCal-Discord-Bot.git
synced 2026-02-11 22:18:27 -06:00
Convert several other data classes to be immutable
This commit is contained in:
@@ -120,11 +120,11 @@ public class AnnouncementCreator {
|
||||
if (a.hasRequiredValues()) {
|
||||
if (DatabaseManager.getManager().updateAnnouncement(a)) {
|
||||
terminate(guildId);
|
||||
return new AnnouncementCreatorResponse(true, a);
|
||||
return new AnnouncementCreatorResponse(true, a, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
return new AnnouncementCreatorResponse(false);
|
||||
return new AnnouncementCreatorResponse(false, null, null);
|
||||
}
|
||||
|
||||
//Getters
|
||||
|
||||
@@ -139,24 +139,22 @@ public class CalendarCreator {
|
||||
scope.setType("default");
|
||||
rule.setScope(scope).setRole("reader");
|
||||
service.acl().insert(confirmed.getId(), rule).execute();
|
||||
CalendarData calendarData = new CalendarData(settings.getGuildID(), 1);
|
||||
calendarData.setCalendarId(confirmed.getId());
|
||||
calendarData.setCalendarAddress(confirmed.getId());
|
||||
CalendarData calendarData = CalendarData
|
||||
.fromData(settings.getGuildID(), 1, confirmed.getId(),
|
||||
confirmed.getId(), false);
|
||||
|
||||
DatabaseManager.getManager().updateCalendar(calendarData);
|
||||
|
||||
CalendarCreatorResponse response = new CalendarCreatorResponse(true, confirmed);
|
||||
response.setEdited(false);
|
||||
response.setCreatorMessage(preCalendar.getCreatorMessage());
|
||||
CalendarCreatorResponse response = new CalendarCreatorResponse(true,
|
||||
confirmed, preCalendar.getCreatorMessage(), false);
|
||||
|
||||
terminate(settings.getGuildID());
|
||||
return response;
|
||||
} catch (Exception ex) {
|
||||
Logger.getLogger().exception(e.getMember().get(), "Failed to confirm calendar.", ex, true, this.getClass());
|
||||
|
||||
CalendarCreatorResponse response = new CalendarCreatorResponse(false);
|
||||
response.setEdited(false);
|
||||
response.setCreatorMessage(preCalendar.getCreatorMessage());
|
||||
return response;
|
||||
return new CalendarCreatorResponse(false, null,
|
||||
preCalendar.getCreatorMessage(), false);
|
||||
}
|
||||
} else {
|
||||
//Editing calendar...
|
||||
@@ -175,24 +173,21 @@ public class CalendarCreator {
|
||||
rule.setScope(scope).setRole("reader");
|
||||
service.acl().insert(confirmed.getId(), rule).execute();
|
||||
|
||||
CalendarCreatorResponse response = new CalendarCreatorResponse(true, confirmed);
|
||||
response.setEdited(true);
|
||||
response.setCreatorMessage(preCalendar.getCreatorMessage());
|
||||
CalendarCreatorResponse response = new CalendarCreatorResponse(true,
|
||||
confirmed, preCalendar.getCreatorMessage(), true);
|
||||
|
||||
terminate(settings.getGuildID());
|
||||
return response;
|
||||
} catch (Exception ex) {
|
||||
Logger.getLogger().exception(e.getMember().get(), "Failed to update calendar.", ex, true, this.getClass());
|
||||
|
||||
CalendarCreatorResponse response = new CalendarCreatorResponse(false);
|
||||
response.setEdited(true);
|
||||
response.setCreatorMessage(preCalendar.getCreatorMessage());
|
||||
return response;
|
||||
return new CalendarCreatorResponse(false, null,
|
||||
preCalendar.getCreatorMessage(), true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return new CalendarCreatorResponse(false);
|
||||
return new CalendarCreatorResponse(false, null, null, false);
|
||||
}
|
||||
|
||||
//Getters
|
||||
|
||||
@@ -12,6 +12,7 @@ import org.dreamexposure.discal.core.enums.event.EventColor;
|
||||
import org.dreamexposure.discal.core.logger.Logger;
|
||||
import org.dreamexposure.discal.core.object.GuildSettings;
|
||||
import org.dreamexposure.discal.core.object.event.EventCreatorResponse;
|
||||
import org.dreamexposure.discal.core.object.event.EventData;
|
||||
import org.dreamexposure.discal.core.object.event.PreEvent;
|
||||
import org.dreamexposure.discal.core.utils.EventUtils;
|
||||
import org.dreamexposure.discal.core.utils.PermissionChecker;
|
||||
@@ -233,51 +234,55 @@ public class EventCreator {
|
||||
Event confirmed = CalendarAuth.getCalendarService(settings).events().insert(calendarId, event).execute();
|
||||
|
||||
if (preEvent.getEventData().shouldBeSaved()) {
|
||||
preEvent.getEventData().setEventId(confirmed.getId());
|
||||
preEvent.getEventData().setEventEnd(confirmed.getEnd().getDateTime().getValue());
|
||||
DatabaseManager.getManager().updateEventData(preEvent.getEventData());
|
||||
EventData toSave = EventData.fromImage(
|
||||
settings.getGuildID(),
|
||||
confirmed.getId(),
|
||||
confirmed.getEnd().getDateTime().getValue(),
|
||||
preEvent.getEventData().getImageLink()
|
||||
);
|
||||
|
||||
DatabaseManager.getManager().updateEventData(toSave);
|
||||
}
|
||||
EventCreatorResponse response = new EventCreatorResponse(true, confirmed);
|
||||
response.setCreatorMessage(getCreatorMessage(settings.getGuildID()));
|
||||
response.setEdited(false);
|
||||
EventCreatorResponse response = new EventCreatorResponse(true, confirmed,
|
||||
getCreatorMessage(settings.getGuildID()), false);
|
||||
|
||||
terminate(settings.getGuildID());
|
||||
return response;
|
||||
} catch (Exception ex) {
|
||||
Logger.getLogger().exception(e.getMember().get(), "Failed to create event.", ex, true, this.getClass());
|
||||
EventCreatorResponse response = new EventCreatorResponse(false);
|
||||
response.setCreatorMessage(getCreatorMessage(settings.getGuildID()));
|
||||
response.setEdited(false);
|
||||
|
||||
return response;
|
||||
return new EventCreatorResponse(false, null,
|
||||
getCreatorMessage(settings.getGuildID()), false);
|
||||
}
|
||||
} else {
|
||||
try {
|
||||
Event confirmed = CalendarAuth.getCalendarService(settings).events().update(calendarId, preEvent.getEventId(), event).execute();
|
||||
|
||||
if (preEvent.getEventData().shouldBeSaved()) {
|
||||
preEvent.getEventData().setEventId(confirmed.getId());
|
||||
preEvent.getEventData().setEventEnd(confirmed.getEnd().getDateTime().getValue());
|
||||
DatabaseManager.getManager().updateEventData(preEvent.getEventData());
|
||||
EventData toSave = EventData.fromImage(
|
||||
settings.getGuildID(),
|
||||
confirmed.getId(),
|
||||
confirmed.getEnd().getDateTime().getValue(),
|
||||
preEvent.getEventData().getImageLink()
|
||||
);
|
||||
|
||||
DatabaseManager.getManager().updateEventData(toSave);
|
||||
}
|
||||
|
||||
EventCreatorResponse response = new EventCreatorResponse(true, confirmed);
|
||||
response.setCreatorMessage(getCreatorMessage(settings.getGuildID()));
|
||||
response.setEdited(true);
|
||||
EventCreatorResponse response = new EventCreatorResponse(true, confirmed,
|
||||
getCreatorMessage(settings.getGuildID()), true);
|
||||
|
||||
terminate(settings.getGuildID());
|
||||
return response;
|
||||
} catch (Exception ex) {
|
||||
Logger.getLogger().exception(e.getMember().get(), "Failed to update event.", ex, true, this.getClass());
|
||||
EventCreatorResponse response = new EventCreatorResponse(false);
|
||||
response.setCreatorMessage(getCreatorMessage(settings.getGuildID()));
|
||||
response.setEdited(true);
|
||||
return response;
|
||||
return new EventCreatorResponse(false, null,
|
||||
getCreatorMessage(settings.getGuildID()), true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return new EventCreatorResponse(false);
|
||||
return new EventCreatorResponse(false, null, null, false);
|
||||
}
|
||||
|
||||
//Getters
|
||||
|
||||
@@ -23,7 +23,7 @@ import discord4j.core.event.domain.message.MessageCreateEvent;
|
||||
* Website: www.cloudcraftgaming.com
|
||||
* For Project: DisCal
|
||||
*/
|
||||
@SuppressWarnings({"OptionalGetWithoutIsPresent", "ConstantConditions"})
|
||||
@SuppressWarnings({"OptionalGetWithoutIsPresent"})
|
||||
public class AddCalendarCommand implements ICommand {
|
||||
/**
|
||||
* Gets the command this Object is responsible for.
|
||||
@@ -57,11 +57,11 @@ public class AddCalendarCommand implements ICommand {
|
||||
*/
|
||||
@Override
|
||||
public CommandInfo getCommandInfo() {
|
||||
CommandInfo info = new CommandInfo("addCalendar");
|
||||
info.setDescription("Starts the process of adding an external calendar");
|
||||
info.setExample("!addCalendar (calendar ID)");
|
||||
|
||||
return info;
|
||||
return new CommandInfo(
|
||||
"addCalendar",
|
||||
"Starts the process of adding an external calendar",
|
||||
"!addCalendar (calendar ID)"
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -102,10 +102,9 @@ public class AddCalendarCommand implements ICommand {
|
||||
}
|
||||
if (valid) {
|
||||
//Update and save.
|
||||
CalendarData data = new CalendarData(event.getGuild().block().getId(), 1);
|
||||
data.setCalendarId(args[0]);
|
||||
data.setCalendarAddress(args[0]);
|
||||
data.setExternal(true);
|
||||
CalendarData data = CalendarData.fromData(settings.getGuildID(),
|
||||
1, args[0], args[0], true);
|
||||
|
||||
DatabaseManager.getManager().updateCalendar(data);
|
||||
|
||||
//Update guild settings
|
||||
|
||||
@@ -78,9 +78,11 @@ public class AnnouncementCommand implements ICommand {
|
||||
*/
|
||||
@Override
|
||||
public CommandInfo getCommandInfo() {
|
||||
CommandInfo info = new CommandInfo("announcement");
|
||||
info.setDescription("Used for all announcement functions.");
|
||||
info.setExample("!announcement <function> (value(s))");
|
||||
CommandInfo info = new CommandInfo(
|
||||
"announcement",
|
||||
"Used for all announcement functions.",
|
||||
"!announcement <function> (value(s))"
|
||||
);
|
||||
|
||||
info.getSubCommands().put("create", "Starts the announcement creator.");
|
||||
info.getSubCommands().put("copy", "Copies an existing announcement.");
|
||||
|
||||
@@ -60,9 +60,11 @@ public class CalendarCommand implements ICommand {
|
||||
*/
|
||||
@Override
|
||||
public CommandInfo getCommandInfo() {
|
||||
CommandInfo info = new CommandInfo("calendar");
|
||||
info.setDescription("Used for direct interaction with your DisCal Calendar.");
|
||||
info.setExample("!calendar <subCommand> (value)");
|
||||
CommandInfo info = new CommandInfo(
|
||||
"calendar",
|
||||
"Used for direct interaction with your DisCal Calendar.",
|
||||
"!calendar <subCommand> (value)"
|
||||
);
|
||||
|
||||
info.getSubCommands().put("create", "Starts the creation of a new calendar.");
|
||||
info.getSubCommands().put("cancel", "Cancels the creator/editor");
|
||||
|
||||
@@ -73,9 +73,12 @@ public class DevCommand implements ICommand {
|
||||
*/
|
||||
@Override
|
||||
public CommandInfo getCommandInfo() {
|
||||
CommandInfo ci = new CommandInfo("dev");
|
||||
ci.setDescription("Used for developer commands. Only able to be used by registered developers");
|
||||
ci.setExample("!dev <function> (value)");
|
||||
CommandInfo ci = new CommandInfo(
|
||||
"dev",
|
||||
"Used for developer commands. Only able to be used by registered developers",
|
||||
"!dev <function> (value)"
|
||||
);
|
||||
|
||||
ci.getSubCommands().put("reloadLangs", "Reloads the lang files across the network.");
|
||||
ci.getSubCommands().put("patron", "Sets a guild as a patron.");
|
||||
ci.getSubCommands().put("dev", "Sets a guild as a test/dev guild.");
|
||||
|
||||
@@ -60,9 +60,11 @@ public class DisCalCommand implements ICommand {
|
||||
*/
|
||||
@Override
|
||||
public CommandInfo getCommandInfo() {
|
||||
CommandInfo info = new CommandInfo("event");
|
||||
info.setDescription("Used to configure DisCal");
|
||||
info.setExample("!DisCal (function) (value)");
|
||||
CommandInfo info = new CommandInfo(
|
||||
"event",
|
||||
"Used to configure DisCal",
|
||||
"!DisCal (function) (value)"
|
||||
);
|
||||
|
||||
info.getSubCommands().put("settings", "Displays the bot's settings.");
|
||||
info.getSubCommands().put("role", "Sets the control role for the bot.");
|
||||
|
||||
@@ -16,6 +16,7 @@ import org.dreamexposure.discal.core.object.GuildSettings;
|
||||
import org.dreamexposure.discal.core.object.calendar.CalendarData;
|
||||
import org.dreamexposure.discal.core.object.command.CommandInfo;
|
||||
import org.dreamexposure.discal.core.object.event.EventCreatorResponse;
|
||||
import org.dreamexposure.discal.core.object.event.EventData;
|
||||
import org.dreamexposure.discal.core.object.event.PreEvent;
|
||||
import org.dreamexposure.discal.core.utils.EventUtils;
|
||||
import org.dreamexposure.discal.core.utils.GeneralUtils;
|
||||
@@ -75,9 +76,10 @@ public class EventCommand implements ICommand {
|
||||
*/
|
||||
@Override
|
||||
public CommandInfo getCommandInfo() {
|
||||
CommandInfo info = new CommandInfo("event");
|
||||
info.setDescription("Used for all event related functions");
|
||||
info.setExample("!event <function> (value(s))");
|
||||
CommandInfo info = new CommandInfo("event",
|
||||
"User for all event related functions",
|
||||
"!event <function> (value(s))"
|
||||
);
|
||||
|
||||
info.getSubCommands().put("create", "Creates a new event");
|
||||
info.getSubCommands().put("copy", "Copies an existing event");
|
||||
@@ -814,7 +816,7 @@ public class EventCommand implements ICommand {
|
||||
if (EventCreator.getCreator().hasPreEvent(settings.getGuildID())) {
|
||||
if (value.equalsIgnoreCase("delete") || value.equalsIgnoreCase("remove") || value.equalsIgnoreCase("clear")) {
|
||||
//Delete picture from event
|
||||
EventCreator.getCreator().getPreEvent(settings.getGuildID()).getEventData().setImageLink(null);
|
||||
EventCreator.getCreator().getPreEvent(settings.getGuildID()).setEventData(EventData.empty());
|
||||
|
||||
if (EventCreator.getCreator().hasCreatorMessage(settings.getGuildID())) {
|
||||
MessageManager.deleteMessage(event);
|
||||
@@ -824,7 +826,16 @@ public class EventCommand implements ICommand {
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("Creator.Event.Attachment.Delete", settings), event);
|
||||
}
|
||||
} else if (ImageUtils.validate(value, settings.isPatronGuild())) {
|
||||
EventCreator.getCreator().getPreEvent(settings.getGuildID()).getEventData().setImageLink(value);
|
||||
PreEvent preEvent = EventCreator.getCreator().getPreEvent(settings.getGuildID());
|
||||
|
||||
EventData eventData = EventData.fromImage(
|
||||
settings.getGuildID(),
|
||||
preEvent.getEventId(),
|
||||
preEvent.getEndDateTime().getDateTime().getValue(),
|
||||
value
|
||||
);
|
||||
preEvent.setEventData(eventData);
|
||||
|
||||
|
||||
if (EventCreator.getCreator().hasCreatorMessage(settings.getGuildID())) {
|
||||
MessageManager.deleteMessage(event);
|
||||
|
||||
@@ -4,7 +4,7 @@ import com.google.api.client.util.DateTime;
|
||||
import com.google.api.services.calendar.Calendar;
|
||||
import com.google.api.services.calendar.model.Event;
|
||||
import com.google.api.services.calendar.model.Events;
|
||||
import discord4j.core.event.domain.message.MessageCreateEvent;
|
||||
|
||||
import org.dreamexposure.discal.client.message.EventMessageFormatter;
|
||||
import org.dreamexposure.discal.client.message.MessageManager;
|
||||
import org.dreamexposure.discal.core.calendar.CalendarAuth;
|
||||
@@ -17,6 +17,8 @@ import org.dreamexposure.discal.core.object.command.CommandInfo;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import discord4j.core.event.domain.message.MessageCreateEvent;
|
||||
|
||||
/**
|
||||
* Created by Nova Fox on 1/3/2017.
|
||||
* Website: www.cloudcraftgaming.com
|
||||
@@ -53,9 +55,11 @@ public class EventListCommand implements ICommand {
|
||||
*/
|
||||
@Override
|
||||
public CommandInfo getCommandInfo() {
|
||||
CommandInfo info = new CommandInfo("events");
|
||||
info.setDescription("Lists the specified amount of events from the guild calendar.");
|
||||
info.setExample("!events (number or function) (other args if applicable)");
|
||||
CommandInfo info = new CommandInfo(
|
||||
"events",
|
||||
"Lists the specified amount of events from the guild calendar.",
|
||||
"!events (number or function) (other args if applicable)"
|
||||
);
|
||||
|
||||
info.getSubCommands().put("search", "Searches for events based on specific criteria rather than just the next upcoming events");
|
||||
return info;
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
package org.dreamexposure.discal.client.module.command;
|
||||
|
||||
import discord4j.core.event.domain.message.MessageCreateEvent;
|
||||
import discord4j.core.spec.EmbedCreateSpec;
|
||||
import org.dreamexposure.discal.client.message.MessageManager;
|
||||
import org.dreamexposure.discal.core.object.GuildSettings;
|
||||
import org.dreamexposure.discal.core.object.command.CommandInfo;
|
||||
@@ -10,6 +8,9 @@ import org.dreamexposure.discal.core.utils.GlobalConst;
|
||||
import java.util.ArrayList;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import discord4j.core.event.domain.message.MessageCreateEvent;
|
||||
import discord4j.core.spec.EmbedCreateSpec;
|
||||
|
||||
/**
|
||||
* Created by Nova Fox on 1/3/2017.
|
||||
* Website: www.cloudcraftgaming.com
|
||||
@@ -46,11 +47,9 @@ public class HelpCommand implements ICommand {
|
||||
*/
|
||||
@Override
|
||||
public CommandInfo getCommandInfo() {
|
||||
CommandInfo info = new CommandInfo("help");
|
||||
info.setDescription("Displays help (duh).");
|
||||
info.setExample("!help (command) (sub-command)");
|
||||
|
||||
return info;
|
||||
return new CommandInfo("help",
|
||||
"Displays help (duh)",
|
||||
"!help (command) (sub-command)");
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
package org.dreamexposure.discal.client.module.command;
|
||||
|
||||
import discord4j.core.event.domain.message.MessageCreateEvent;
|
||||
import org.dreamexposure.discal.core.object.GuildSettings;
|
||||
import org.dreamexposure.discal.core.object.command.CommandInfo;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import discord4j.core.event.domain.message.MessageCreateEvent;
|
||||
|
||||
/**
|
||||
* @author NovaFox161
|
||||
* Date Created: 9/10/2018
|
||||
@@ -29,9 +30,11 @@ public interface ICommand {
|
||||
}
|
||||
|
||||
default CommandInfo getCommandInfo() {
|
||||
CommandInfo info = new CommandInfo("COMMAND_NAME");
|
||||
info.setDescription("COMMAND_DESCRIPTION");
|
||||
info.setExample("!command <sub> (sub2)");
|
||||
CommandInfo info = new CommandInfo(
|
||||
"COMMAND_NAME",
|
||||
"COMMAND_DESCRIPTION",
|
||||
"!command <sub> (sub2)"
|
||||
);
|
||||
|
||||
info.getSubCommands().put("a", "b");
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package org.dreamexposure.discal.client.module.command;
|
||||
|
||||
import com.google.api.services.calendar.model.Calendar;
|
||||
import discord4j.core.event.domain.message.MessageCreateEvent;
|
||||
|
||||
import org.dreamexposure.discal.client.message.CalendarMessageFormatter;
|
||||
import org.dreamexposure.discal.client.message.MessageManager;
|
||||
import org.dreamexposure.discal.core.calendar.CalendarAuth;
|
||||
@@ -13,6 +13,8 @@ import org.dreamexposure.discal.core.object.command.CommandInfo;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import discord4j.core.event.domain.message.MessageCreateEvent;
|
||||
|
||||
/**
|
||||
* Created by Nova Fox on 1/3/2017.
|
||||
* Website: www.cloudcraftgaming.com
|
||||
@@ -54,10 +56,11 @@ public class LinkCalendarCommand implements ICommand {
|
||||
*/
|
||||
@Override
|
||||
public CommandInfo getCommandInfo() {
|
||||
CommandInfo info = new CommandInfo("linkCalendar");
|
||||
info.setDescription("Links the guild's calendar in a pretty embed!");
|
||||
info.setExample("!linkCalendar");
|
||||
return info;
|
||||
return new CommandInfo(
|
||||
"linkCalendar",
|
||||
"Links the guild's calendar in a pretty embed!",
|
||||
"!linkCalendar"
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,10 +1,5 @@
|
||||
package org.dreamexposure.discal.client.module.command;
|
||||
|
||||
import discord4j.core.event.domain.message.MessageCreateEvent;
|
||||
import discord4j.core.object.entity.Guild;
|
||||
import discord4j.core.object.entity.Member;
|
||||
import discord4j.core.object.util.Image;
|
||||
import discord4j.core.spec.EmbedCreateSpec;
|
||||
import org.dreamexposure.discal.client.DisCalClient;
|
||||
import org.dreamexposure.discal.client.message.MessageManager;
|
||||
import org.dreamexposure.discal.core.database.DatabaseManager;
|
||||
@@ -19,6 +14,12 @@ import org.dreamexposure.discal.core.utils.UserUtils;
|
||||
import java.util.ArrayList;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import discord4j.core.event.domain.message.MessageCreateEvent;
|
||||
import discord4j.core.object.entity.Guild;
|
||||
import discord4j.core.object.entity.Member;
|
||||
import discord4j.core.object.util.Image;
|
||||
import discord4j.core.spec.EmbedCreateSpec;
|
||||
|
||||
/**
|
||||
* Created by Nova Fox on 8/31/17.
|
||||
* Website: www.cloudcraftgaming.com
|
||||
@@ -55,9 +56,11 @@ public class RsvpCommand implements ICommand {
|
||||
*/
|
||||
@Override
|
||||
public CommandInfo getCommandInfo() {
|
||||
CommandInfo info = new CommandInfo("rsvp");
|
||||
info.setDescription("Confirms attendance to an event");
|
||||
info.setExample("!rsvp <subCommand> <eventId>");
|
||||
CommandInfo info = new CommandInfo(
|
||||
"rsvp",
|
||||
"Confirms attendance to an event",
|
||||
"!rsvp <subCommand> <eventId>"
|
||||
);
|
||||
|
||||
info.getSubCommands().put("onTime", "Marks you are going to event");
|
||||
info.getSubCommands().put("late", "Marks that you will be late to event");
|
||||
|
||||
@@ -1,10 +1,7 @@
|
||||
package org.dreamexposure.discal.client.module.command;
|
||||
|
||||
import com.google.api.services.calendar.model.Calendar;
|
||||
import discord4j.core.event.domain.message.MessageCreateEvent;
|
||||
import discord4j.core.object.entity.Guild;
|
||||
import discord4j.core.object.util.Image;
|
||||
import discord4j.core.spec.EmbedCreateSpec;
|
||||
|
||||
import org.dreamexposure.discal.client.message.CalendarMessageFormatter;
|
||||
import org.dreamexposure.discal.client.message.MessageManager;
|
||||
import org.dreamexposure.discal.core.calendar.CalendarAuth;
|
||||
@@ -21,6 +18,11 @@ import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import discord4j.core.event.domain.message.MessageCreateEvent;
|
||||
import discord4j.core.object.entity.Guild;
|
||||
import discord4j.core.object.util.Image;
|
||||
import discord4j.core.spec.EmbedCreateSpec;
|
||||
|
||||
/**
|
||||
* Created by Nova Fox on 6/16/17.
|
||||
* Website: www.cloudcraftgaming.com
|
||||
@@ -58,10 +60,11 @@ public class TimeCommand implements ICommand {
|
||||
*/
|
||||
@Override
|
||||
public CommandInfo getCommandInfo() {
|
||||
CommandInfo info = new CommandInfo("time");
|
||||
info.setDescription("Displays the current time for the calendar in its respective TimeZone.");
|
||||
info.setExample("!time");
|
||||
return info;
|
||||
return new CommandInfo(
|
||||
"time",
|
||||
"Displays the current time for the calendar in its respective TimeZone.",
|
||||
"!time"
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -60,9 +60,23 @@ public class DatabaseManager {
|
||||
*/
|
||||
public void connectToMySQL() {
|
||||
try {
|
||||
DatabaseSettings masterSettings = new DatabaseSettings(BotSettings.SQL_MASTER_HOST.get(), BotSettings.SQL_MASTER_PORT.get(), BotSettings.SQL_DB.get(), BotSettings.SQL_MASTER_USER.get(), BotSettings.SQL_MASTER_PASS.get(), BotSettings.SQL_PREFIX.get());
|
||||
DatabaseSettings masterSettings = new DatabaseSettings(
|
||||
BotSettings.SQL_MASTER_HOST.get(),
|
||||
BotSettings.SQL_MASTER_PORT.get(),
|
||||
BotSettings.SQL_DB.get(),
|
||||
BotSettings.SQL_MASTER_USER.get(),
|
||||
BotSettings.SQL_MASTER_PASS.get(),
|
||||
BotSettings.SQL_PREFIX.get()
|
||||
);
|
||||
|
||||
DatabaseSettings slaveSettings = new DatabaseSettings(BotSettings.SQL_SLAVE_HOST.get(), BotSettings.SQL_SLAVE_PORT.get(), BotSettings.SQL_DB.get(), BotSettings.SQL_SLAVE_USER.get(), BotSettings.SQL_SLAVE_PASS.get(), BotSettings.SQL_PREFIX.get());
|
||||
DatabaseSettings slaveSettings = new DatabaseSettings(
|
||||
BotSettings.SQL_SLAVE_HOST.get(),
|
||||
BotSettings.SQL_SLAVE_PORT.get(),
|
||||
BotSettings.SQL_DB.get(),
|
||||
BotSettings.SQL_SLAVE_USER.get(),
|
||||
BotSettings.SQL_SLAVE_PASS.get(),
|
||||
BotSettings.SQL_PREFIX.get()
|
||||
);
|
||||
|
||||
masterInfo = org.dreamexposure.novautils.database.DatabaseManager.connectToMySQL(masterSettings);
|
||||
slaveInfo = org.dreamexposure.novautils.database.DatabaseManager.connectToMySQL(slaveSettings);
|
||||
@@ -396,15 +410,16 @@ public class DatabaseManager {
|
||||
public boolean updateEventData(EventData data) {
|
||||
try (final Connection masterConnection = masterInfo.getSource().getConnection()) {
|
||||
String eventTableName = String.format("%sevents", masterInfo.getSettings().getPrefix());
|
||||
String idToUse = data.getEventId();
|
||||
|
||||
if (data.getEventId().contains("_")) {
|
||||
data.setEventId(data.getEventId().split("_")[0]);
|
||||
idToUse = data.getEventId().split("_")[0];
|
||||
}
|
||||
|
||||
String query = "SELECT * FROM " + eventTableName + " WHERE EVENT_ID = ?";
|
||||
final Connection slaveConnection = slaveInfo.getSource().getConnection();
|
||||
PreparedStatement statement = slaveConnection.prepareStatement(query);
|
||||
statement.setString(1, data.getEventId());
|
||||
statement.setString(1, idToUse);
|
||||
|
||||
ResultSet res = statement.executeQuery();
|
||||
|
||||
@@ -417,7 +432,7 @@ public class DatabaseManager {
|
||||
" VALUES (?, ?, ?, ?)";
|
||||
PreparedStatement ps = masterConnection.prepareStatement(insertCommand);
|
||||
ps.setString(1, data.getGuildId().asString());
|
||||
ps.setString(2, data.getEventId());
|
||||
ps.setString(2, idToUse);
|
||||
ps.setLong(3, data.getEventEnd());
|
||||
ps.setString(4, data.getImageLink());
|
||||
|
||||
@@ -434,7 +449,7 @@ public class DatabaseManager {
|
||||
|
||||
ps.setString(1, data.getImageLink());
|
||||
ps.setLong(2, data.getEventEnd());
|
||||
ps.setString(3, data.getEventId());
|
||||
ps.setString(3, idToUse);
|
||||
|
||||
ps.executeUpdate();
|
||||
|
||||
@@ -580,12 +595,8 @@ public class DatabaseManager {
|
||||
settings.setDmAnnouncementsFromString(res.getString("DM_ANNOUNCEMENTS"));
|
||||
settings.setTwelveHour(res.getBoolean("12_HOUR"));
|
||||
settings.setBranded(res.getBoolean("BRANDED"));
|
||||
|
||||
statement.close();
|
||||
} else {
|
||||
//Data not present.
|
||||
statement.close();
|
||||
}
|
||||
statement.close();
|
||||
} catch (SQLException e) {
|
||||
Logger.getLogger().exception(null, "Failed to get Guild Settings.", e, true, this.getClass());
|
||||
}
|
||||
@@ -599,7 +610,6 @@ public class DatabaseManager {
|
||||
}
|
||||
|
||||
public CalendarData getMainCalendar(Snowflake guildId) {
|
||||
CalendarData calData = new CalendarData(guildId, 1);
|
||||
try (final Connection connection = slaveInfo.getSource().getConnection()) {
|
||||
String calendarTableName = String.format("%scalendars", slaveInfo.getSettings().getPrefix());
|
||||
|
||||
@@ -611,19 +621,21 @@ public class DatabaseManager {
|
||||
boolean hasStuff = res.next();
|
||||
|
||||
if (hasStuff && res.getString("GUILD_ID") != null) {
|
||||
calData.setCalendarId(res.getString("CALENDAR_ID"));
|
||||
calData.setCalendarAddress(res.getString("CALENDAR_ADDRESS"));
|
||||
calData.setExternal(res.getBoolean("EXTERNAL"));
|
||||
String calId = res.getString("CALENDAR_ID");
|
||||
String calAddr = res.getString("CALENDAR_ADDRESS");
|
||||
boolean external = res.getBoolean("EXTERNAL");
|
||||
|
||||
statement.close();
|
||||
return CalendarData.fromData(guildId, 1, calId, calAddr, external);
|
||||
}
|
||||
statement.close();
|
||||
} catch (SQLException e) {
|
||||
Logger.getLogger().exception(null, "Failed to get calendar settings.", e, true, this.getClass());
|
||||
}
|
||||
return calData;
|
||||
return CalendarData.empty();
|
||||
}
|
||||
|
||||
public CalendarData getCalendar(Snowflake guildId, int calendarNumber) {
|
||||
CalendarData calData = new CalendarData(guildId, calendarNumber);
|
||||
try (final Connection connection = slaveInfo.getSource().getConnection()) {
|
||||
String calendarTableName = String.format("%scalendars", slaveInfo.getSettings().getPrefix());
|
||||
|
||||
@@ -636,16 +648,19 @@ public class DatabaseManager {
|
||||
boolean hasStuff = res.next();
|
||||
|
||||
if (hasStuff && res.getString("GUILD_ID") != null) {
|
||||
calData.setCalendarId(res.getString("CALENDAR_ID"));
|
||||
calData.setCalendarAddress(res.getString("CALENDAR_ADDRESS"));
|
||||
calData.setExternal(res.getBoolean("EXTERNAL"));
|
||||
String calId = res.getString("CALENDAR_ID");
|
||||
String calAddr = res.getString("CALENDAR_ADDRESS");
|
||||
boolean external = res.getBoolean("EXTERNAL");
|
||||
|
||||
statement.close();
|
||||
return CalendarData.fromData(guildId, calendarNumber, calId, calAddr, external);
|
||||
}
|
||||
|
||||
statement.close();
|
||||
} catch (SQLException e) {
|
||||
Logger.getLogger().exception(null, "Failed to get calendar data", e, true, this.getClass());
|
||||
}
|
||||
return calData;
|
||||
return CalendarData.empty();
|
||||
}
|
||||
|
||||
public ArrayList<CalendarData> getAllCalendars(Snowflake guildId) {
|
||||
@@ -660,11 +675,11 @@ public class DatabaseManager {
|
||||
ResultSet res = statement.executeQuery();
|
||||
|
||||
while (res.next()) {
|
||||
CalendarData calData = new CalendarData(guildId, res.getInt("CALENDAR_NUMBER"));
|
||||
calData.setCalendarId(res.getString("CALENDAR_ID"));
|
||||
calData.setCalendarAddress(res.getString("CALENDAR_ADDRESS"));
|
||||
calData.setExternal(res.getBoolean("EXTERNAL"));
|
||||
calendars.add(calData);
|
||||
String calId = res.getString("CALENDAR_ID");
|
||||
String calAddr = res.getString("CALENDAR_ADDRESS");
|
||||
boolean external = res.getBoolean("EXTERNAL");
|
||||
|
||||
calendars.add(CalendarData.fromData(guildId, 1, calId, calAddr, external));
|
||||
}
|
||||
statement.close();
|
||||
} catch (SQLException e) {
|
||||
@@ -697,14 +712,9 @@ public class DatabaseManager {
|
||||
}
|
||||
|
||||
public EventData getEventData(Snowflake guildId, String eventId) {
|
||||
EventData data = new EventData(guildId);
|
||||
|
||||
if (eventId.contains("_"))
|
||||
eventId = eventId.split("_")[0];
|
||||
|
||||
|
||||
data.setEventId(eventId);
|
||||
|
||||
try (final Connection connection = slaveInfo.getSource().getConnection()) {
|
||||
String eventTableName = String.format("%sevents", slaveInfo.getSettings().getPrefix());
|
||||
|
||||
@@ -716,16 +726,19 @@ public class DatabaseManager {
|
||||
|
||||
while (res.next()) {
|
||||
if (res.getString("EVENT_ID").equals(eventId)) {
|
||||
data.setEventEnd(res.getLong("EVENT_END"));
|
||||
data.setImageLink(res.getString("IMAGE_LINK"));
|
||||
break;
|
||||
|
||||
long end = res.getLong("EVENT_END");
|
||||
String imageLink = res.getString("IMAGE_LINK");
|
||||
|
||||
statement.close();
|
||||
return EventData.fromImage(guildId, eventId, end, imageLink);
|
||||
}
|
||||
}
|
||||
statement.close();
|
||||
} catch (SQLException e) {
|
||||
Logger.getLogger().exception(null, "Failed to get event data", e, true, this.getClass());
|
||||
}
|
||||
return data;
|
||||
return EventData.empty();
|
||||
}
|
||||
|
||||
public RsvpData getRsvpData(Snowflake guildId, String eventId) {
|
||||
|
||||
@@ -9,28 +9,14 @@ import discord4j.core.object.entity.Message;
|
||||
*/
|
||||
public class AnnouncementCreatorResponse {
|
||||
private final boolean successful;
|
||||
private final Announcement announcement;
|
||||
private final Message creatorMessage;
|
||||
|
||||
private Announcement announcement;
|
||||
private Message creatorMessage;
|
||||
|
||||
/**
|
||||
* Creates an AnnouncementCreatorResponse.
|
||||
*
|
||||
* @param _successful Whether or not the creator was successful.
|
||||
*/
|
||||
public AnnouncementCreatorResponse(boolean _successful) {
|
||||
successful = _successful;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an AnnouncementCreatorResponse.
|
||||
*
|
||||
* @param _successful Whether or not the creator was successful.
|
||||
* @param _announcement The announcement involved.
|
||||
*/
|
||||
public AnnouncementCreatorResponse(boolean _successful, Announcement _announcement) {
|
||||
successful = _successful;
|
||||
announcement = _announcement;
|
||||
public AnnouncementCreatorResponse(boolean successful, Announcement announcement,
|
||||
Message creatorMessage) {
|
||||
this.successful = successful;
|
||||
this.announcement = announcement;
|
||||
this.creatorMessage = creatorMessage;
|
||||
}
|
||||
|
||||
//Getters
|
||||
@@ -56,19 +42,4 @@ public class AnnouncementCreatorResponse {
|
||||
public Message getCreatorMessage() {
|
||||
return creatorMessage;
|
||||
}
|
||||
|
||||
//Setters
|
||||
|
||||
/**
|
||||
* Sets the announcement involved.
|
||||
*
|
||||
* @param _announcement The Announcement involved.
|
||||
*/
|
||||
public void setAnnouncement(Announcement _announcement) {
|
||||
announcement = _announcement;
|
||||
}
|
||||
|
||||
public void setCreatorMessage(Message creatorMessage) {
|
||||
this.creatorMessage = creatorMessage;
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.dreamexposure.discal.core.object.calendar;
|
||||
|
||||
import com.google.api.services.calendar.model.Calendar;
|
||||
|
||||
import discord4j.core.object.entity.Message;
|
||||
|
||||
/**
|
||||
@@ -10,29 +11,16 @@ import discord4j.core.object.entity.Message;
|
||||
*/
|
||||
public class CalendarCreatorResponse {
|
||||
private final boolean successful;
|
||||
private final boolean edited;
|
||||
private final Message creatorMessage;
|
||||
private final Calendar calendar;
|
||||
|
||||
private boolean edited;
|
||||
private Message creatorMessage;
|
||||
private Calendar calendar;
|
||||
|
||||
/**
|
||||
* Creates a new response.
|
||||
*
|
||||
* @param _successful Whether or not the creation was successful.
|
||||
*/
|
||||
public CalendarCreatorResponse(boolean _successful) {
|
||||
successful = _successful;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new response.
|
||||
*
|
||||
* @param _successful Whether or not the creation was successful.
|
||||
* @param _calendar The calendar created.
|
||||
*/
|
||||
public CalendarCreatorResponse(boolean _successful, Calendar _calendar) {
|
||||
successful = _successful;
|
||||
calendar = _calendar;
|
||||
public CalendarCreatorResponse(boolean successful, Calendar calendar, Message message,
|
||||
boolean edited) {
|
||||
this.successful = successful;
|
||||
this.calendar = calendar;
|
||||
this.creatorMessage = message;
|
||||
this.edited = edited;
|
||||
}
|
||||
|
||||
//Getters
|
||||
@@ -62,23 +50,4 @@ public class CalendarCreatorResponse {
|
||||
public Message getCreatorMessage() {
|
||||
return creatorMessage;
|
||||
}
|
||||
|
||||
//Setters
|
||||
|
||||
/**
|
||||
* Sets the calendar involved.
|
||||
*
|
||||
* @param _calendar The calendar involved.
|
||||
*/
|
||||
public void setCalendar(Calendar _calendar) {
|
||||
calendar = _calendar;
|
||||
}
|
||||
|
||||
public void setEdited(boolean _edit) {
|
||||
edited = _edit;
|
||||
}
|
||||
|
||||
public void setCreatorMessage(Message msg) {
|
||||
creatorMessage = msg;
|
||||
}
|
||||
}
|
||||
@@ -10,26 +10,41 @@ import discord4j.core.object.util.Snowflake;
|
||||
* For Project: DisCal-Discord-Bot
|
||||
*/
|
||||
public class CalendarData {
|
||||
private Snowflake guildId;
|
||||
private int calendarNumber;
|
||||
public static CalendarData fromJson(JSONObject json) {
|
||||
Snowflake guildId = Snowflake.of(json.getString("guild_id"));
|
||||
int calendarNumber = json.getInt("calendar_number");
|
||||
|
||||
private String calendarId;
|
||||
private String calendarAddress;
|
||||
String calendarId = json.getString("calendar_id");
|
||||
String calendarAddress = json.getString("calendar_address");
|
||||
boolean external = json.getBoolean("external");
|
||||
|
||||
private boolean external;
|
||||
|
||||
public CalendarData(Snowflake _guildID, int _calendarNumber) {
|
||||
guildId = _guildID;
|
||||
calendarNumber = _calendarNumber;
|
||||
|
||||
calendarId = "primary";
|
||||
calendarAddress = "primary";
|
||||
|
||||
external = false;
|
||||
return new CalendarData(guildId, calendarNumber, calendarId, calendarAddress, external);
|
||||
}
|
||||
|
||||
public CalendarData() {
|
||||
public static CalendarData fromData(Snowflake gId, int calNum, String calId,
|
||||
String calAddr, boolean ext) {
|
||||
return new CalendarData(gId, calNum, calId, calAddr, ext);
|
||||
}
|
||||
|
||||
public static CalendarData empty() {
|
||||
return new CalendarData(Snowflake.of(0), 1, "primary", "primary", false);
|
||||
}
|
||||
|
||||
private final Snowflake guildId;
|
||||
private final int calendarNumber;
|
||||
|
||||
private final String calendarId;
|
||||
private final String calendarAddress;
|
||||
|
||||
private final boolean external;
|
||||
|
||||
private CalendarData(Snowflake guildId, int calendarNumber, String calendarId,
|
||||
String calendarAddress, boolean external) {
|
||||
this.guildId = guildId;
|
||||
this.calendarNumber = calendarNumber;
|
||||
this.calendarId = calendarId;
|
||||
this.calendarAddress = calendarAddress;
|
||||
this.external = external;
|
||||
}
|
||||
|
||||
//Getters
|
||||
@@ -53,19 +68,6 @@ public class CalendarData {
|
||||
return external;
|
||||
}
|
||||
|
||||
//Setters
|
||||
public void setCalendarId(String _calendarId) {
|
||||
calendarId = _calendarId;
|
||||
}
|
||||
|
||||
public void setCalendarAddress(String _calendarAddress) {
|
||||
calendarAddress = _calendarAddress;
|
||||
}
|
||||
|
||||
public void setExternal(boolean _external) {
|
||||
external = _external;
|
||||
}
|
||||
|
||||
public JSONObject toJson() {
|
||||
JSONObject json = new JSONObject();
|
||||
|
||||
@@ -77,15 +79,4 @@ public class CalendarData {
|
||||
|
||||
return json;
|
||||
}
|
||||
|
||||
public CalendarData fromJson(JSONObject json) {
|
||||
guildId = Snowflake.of(json.getString("guild_id"));
|
||||
calendarNumber = json.getInt("calendar_number");
|
||||
|
||||
calendarId = json.getString("calendar_id");
|
||||
calendarAddress = json.getString("calendar_address");
|
||||
external = json.getBoolean("external");
|
||||
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -9,13 +9,15 @@ import java.util.HashMap;
|
||||
*/
|
||||
public class CommandInfo {
|
||||
private final String name;
|
||||
private String description;
|
||||
private String example;
|
||||
private final String description;
|
||||
private final String example;
|
||||
|
||||
private HashMap<String, String> subCommands = new HashMap<>();
|
||||
private final HashMap<String, String> subCommands = new HashMap<>();
|
||||
|
||||
public CommandInfo(String _name) {
|
||||
name = _name;
|
||||
public CommandInfo(String name, String description, String example) {
|
||||
this.name = name;
|
||||
this.description = description;
|
||||
this.example = example;
|
||||
}
|
||||
|
||||
//Getters
|
||||
@@ -34,13 +36,4 @@ public class CommandInfo {
|
||||
public HashMap<String, String> getSubCommands() {
|
||||
return subCommands;
|
||||
}
|
||||
|
||||
//Setters
|
||||
public void setDescription(String _description) {
|
||||
description = _description;
|
||||
}
|
||||
|
||||
public void setExample(String _example) {
|
||||
example = _example;
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.dreamexposure.discal.core.object.event;
|
||||
|
||||
import com.google.api.services.calendar.model.Event;
|
||||
|
||||
import discord4j.core.object.entity.Message;
|
||||
|
||||
/**
|
||||
@@ -10,31 +11,16 @@ import discord4j.core.object.entity.Message;
|
||||
*/
|
||||
public class EventCreatorResponse {
|
||||
private final boolean successful;
|
||||
private final Event event;
|
||||
private final Message creatorMessage;
|
||||
private final boolean edited;
|
||||
|
||||
private Message creatorMessage;
|
||||
|
||||
private Event event;
|
||||
private boolean edited;
|
||||
|
||||
/**
|
||||
* Creates a new Response.
|
||||
*
|
||||
* @param _successful Whether or not the Creator was successful.
|
||||
*/
|
||||
public EventCreatorResponse(boolean _successful) {
|
||||
successful = _successful;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new Response.
|
||||
*
|
||||
* @param _successful Whether or not the Creator was successful.
|
||||
* @param _event The Event that was created.
|
||||
*/
|
||||
public EventCreatorResponse(boolean _successful, Event _event) {
|
||||
successful = _successful;
|
||||
event = _event;
|
||||
edited = false;
|
||||
public EventCreatorResponse(boolean successful, Event event, Message creatorMessage,
|
||||
boolean edited) {
|
||||
this.successful = successful;
|
||||
this.event = event;
|
||||
this.creatorMessage = creatorMessage;
|
||||
this.edited = edited;
|
||||
}
|
||||
|
||||
//Getters
|
||||
@@ -64,22 +50,4 @@ public class EventCreatorResponse {
|
||||
public Event getEvent() {
|
||||
return event;
|
||||
}
|
||||
|
||||
//Setters
|
||||
public void setCreatorMessage(Message _creatorMessage) {
|
||||
creatorMessage = _creatorMessage;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the event that was created.
|
||||
*
|
||||
* @param _event The event that was created.
|
||||
*/
|
||||
public void setEvent(Event _event) {
|
||||
event = _event;
|
||||
}
|
||||
|
||||
public void setEdited(boolean _edited) {
|
||||
edited = _edited;
|
||||
}
|
||||
}
|
||||
@@ -2,8 +2,6 @@ package org.dreamexposure.discal.core.object.event;
|
||||
|
||||
import org.json.JSONObject;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import discord4j.core.object.util.Snowflake;
|
||||
|
||||
/**
|
||||
@@ -12,14 +10,34 @@ import discord4j.core.object.util.Snowflake;
|
||||
* For Project: DisCal-Discord-Bot
|
||||
*/
|
||||
public class EventData {
|
||||
public static EventData fromJson(JSONObject json) {
|
||||
return new EventData(
|
||||
Snowflake.of(json.getString("guild_id")),
|
||||
json.getString("event_id"),
|
||||
json.getLong("event_end"),
|
||||
json.getString("image_link")
|
||||
);
|
||||
}
|
||||
|
||||
public static EventData fromImage(Snowflake guildId, String eventId, long eventEnd,
|
||||
String imageLink) {
|
||||
return new EventData(guildId, eventId, eventEnd, imageLink);
|
||||
}
|
||||
|
||||
public static EventData empty() {
|
||||
return new EventData(Snowflake.of(0), "", 0, "");
|
||||
}
|
||||
|
||||
private final Snowflake guildId;
|
||||
private final String eventId;
|
||||
private final long eventEnd;
|
||||
private final String imageLink;
|
||||
|
||||
private String eventId;
|
||||
private long eventEnd;
|
||||
private String imageLink;
|
||||
|
||||
public EventData(Snowflake _guildId) {
|
||||
guildId = _guildId;
|
||||
private EventData(Snowflake guildId, String eventId, long eventEnd, String imageLink) {
|
||||
this.guildId = guildId;
|
||||
this.eventId = eventId;
|
||||
this.eventEnd = eventEnd;
|
||||
this.imageLink = imageLink;
|
||||
}
|
||||
|
||||
//Getters
|
||||
@@ -39,22 +57,9 @@ public class EventData {
|
||||
return imageLink;
|
||||
}
|
||||
|
||||
//Setters
|
||||
public void setEventId(String _eventId) {
|
||||
eventId = _eventId;
|
||||
}
|
||||
|
||||
public void setEventEnd(long _eventEnd) {
|
||||
eventEnd = _eventEnd;
|
||||
}
|
||||
|
||||
public void setImageLink(@Nullable String _link) {
|
||||
imageLink = _link;
|
||||
}
|
||||
|
||||
//Boolean/Checkers
|
||||
public boolean shouldBeSaved() {
|
||||
return imageLink != null;
|
||||
return !imageLink.isEmpty();
|
||||
}
|
||||
|
||||
public JSONObject toJson() {
|
||||
@@ -67,12 +72,4 @@ public class EventData {
|
||||
|
||||
return json;
|
||||
}
|
||||
|
||||
public EventData fromJson(JSONObject json) {
|
||||
eventId = json.getString("event_id");
|
||||
eventEnd = json.getLong("event_end");
|
||||
imageLink = json.getString("image_link");
|
||||
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -67,7 +67,7 @@ public class PreEvent {
|
||||
recur = false;
|
||||
recurrence = new Recurrence();
|
||||
|
||||
eventData = new EventData(guildId);
|
||||
eventData = EventData.empty();
|
||||
|
||||
editing = false;
|
||||
lastEdit = System.currentTimeMillis();
|
||||
|
||||
@@ -54,7 +54,7 @@ public class EventEndpoint {
|
||||
//Okay, now handle actual request.
|
||||
JSONObject requestBody = new JSONObject(rBody);
|
||||
|
||||
Integer daysInMonth = Integer.valueOf(requestBody.getString("DaysInMonth"));
|
||||
int daysInMonth = Integer.parseInt(requestBody.getString("DaysInMonth"));
|
||||
long startEpoch = Long.parseLong(requestBody.getString("StartEpoch"));
|
||||
long endEpoch = startEpoch + (86400000L * daysInMonth);
|
||||
long guildId = requestBody.getLong("guild_id");
|
||||
@@ -253,11 +253,14 @@ public class EventEndpoint {
|
||||
event.setRecurrence(Arrays.asList(rr));
|
||||
}
|
||||
|
||||
EventData ed = new EventData(settings.getGuildID());
|
||||
EventData ed = EventData.empty();
|
||||
if (!body.getString("image").equalsIgnoreCase("")) {
|
||||
ed.setImageLink(body.getString("image"));
|
||||
ed.setEventId(eventId);
|
||||
ed.setEventEnd(event.getEnd().getDateTime().getValue());
|
||||
ed = EventData.fromImage(
|
||||
Snowflake.of(guildId),
|
||||
eventId,
|
||||
end.getDateTime().getValue(),
|
||||
body.getString("image")
|
||||
);
|
||||
|
||||
if (!ImageUtils.validate(ed.getImageLink(), settings.isPatronGuild())) {
|
||||
JSONObject respondBody = new JSONObject();
|
||||
@@ -348,26 +351,27 @@ public class EventEndpoint {
|
||||
event.setRecurrence(Arrays.asList(rr));
|
||||
}
|
||||
|
||||
EventData ed = new EventData(settings.getGuildID());
|
||||
ed.setEventId(event.getId());
|
||||
|
||||
EventData ed = EventData.empty();
|
||||
if (!body.getString("image").equalsIgnoreCase("")) {
|
||||
ed.setImageLink(body.getString("image"));
|
||||
ed.setEventEnd(event.getEnd().getDateTime().getValue());
|
||||
ed = EventData.fromImage(
|
||||
Snowflake.of(guildId),
|
||||
event.getId(),
|
||||
end.getDateTime().getValue(),
|
||||
body.getString("image")
|
||||
);
|
||||
|
||||
if (!ImageUtils.validate(ed.getImageLink(), settings.isPatronGuild())) {
|
||||
response.setContentType("application/json");
|
||||
response.setStatus(400);
|
||||
|
||||
JSONObject respondBody = new JSONObject();
|
||||
respondBody.put("Message", "Failed to create event!");
|
||||
respondBody.put("Message", "Failed to update event!");
|
||||
respondBody.put("reason", "Invalid image link and/or GIF image not supported.");
|
||||
|
||||
|
||||
response.setContentType("application/json");
|
||||
response.setStatus(400);
|
||||
return respondBody.toString();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (ed.shouldBeSaved())
|
||||
DatabaseManager.getManager().updateEventData(ed);
|
||||
|
||||
|
||||
@@ -92,13 +92,16 @@ public class CreateEventEndpoint {
|
||||
event.setRecurrence(Arrays.asList(rr));
|
||||
}
|
||||
|
||||
EventData eventData = new EventData(settings.getGuildID());
|
||||
EventData eventData = EventData.empty();
|
||||
if (requestBody.has("image")) {
|
||||
if (ImageUtils.validate(requestBody.getString("image"), settings.isPatronGuild())) {
|
||||
//Link is good...
|
||||
eventData.setEventId(event.getId());
|
||||
eventData.setImageLink(requestBody.getString("image"));
|
||||
eventData.setEventEnd(event.getEnd().getDateTime().getValue());
|
||||
eventData = EventData.fromImage(
|
||||
Snowflake.of(guildId),
|
||||
event.getId(),
|
||||
event.getEnd().getDateTime().getValue(),
|
||||
requestBody.getString("image")
|
||||
);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -95,9 +95,12 @@ public class UpdateEventEndpoint {
|
||||
if (requestBody.has("image")) {
|
||||
if (ImageUtils.validate(requestBody.getString("image"), settings.isPatronGuild())) {
|
||||
//Link is good...
|
||||
EventData ed = DatabaseManager.getManager().getEventData(settings.getGuildID(), eventId);
|
||||
ed.setImageLink(requestBody.getString("image"));
|
||||
ed.setEventEnd(event.getEnd().getDateTime().getValue());
|
||||
EventData ed = EventData.fromImage(
|
||||
Snowflake.of(guildId),
|
||||
event.getId(),
|
||||
event.getEnd().getDateTime().getValue(),
|
||||
requestBody.getString("image")
|
||||
);
|
||||
|
||||
DatabaseManager.getManager().updateEventData(ed);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user