diff --git a/API/src/main/java/discal/api/database/Database.java b/API/src/main/java/discal/api/database/Database.java deleted file mode 100644 index 1ca20c0a..00000000 --- a/API/src/main/java/discal/api/database/Database.java +++ /dev/null @@ -1,103 +0,0 @@ -package discal.api.database; - -import java.sql.Connection; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Statement; - -/** - * Created by Nova Fox on 11/10/17. - * Website: www.cloudcraftgaming.com - * For Project: DisCal-Discord-Bot - */ -@SuppressWarnings({"unused", "WeakerAccess"}) -public abstract class Database { - protected Connection connection; - - /** - * Creates a new Database - */ - protected Database() { - this.connection = null; - } - - /** - * Opens a connection with the database - * - * @return Opened connection - * @throws SQLException if the connection can not be opened - * @throws ClassNotFoundException if the driver cannot be found - */ - public abstract Connection openConnection() throws SQLException, ClassNotFoundException; - - /** - * Checks if a connection is open with the database - * - * @return true if the connection is open - * @throws SQLException if the connection cannot be checked - */ - public boolean checkConnection() throws SQLException { - return connection != null && !connection.isClosed(); - } - - /** - * Gets the connection with the database - * - * @return Connection with the database, null if none - */ - public Connection getConnection() { - return connection; - } - - /** - * Closes the connection with the database - * - * @return true if successful - * @throws SQLException if the connection cannot be closed - */ - public boolean closeConnection() throws SQLException { - if (connection == null) - return false; - - connection.close(); - return true; - } - - /** - * Executes a SQL Query
- *

- * If the connection is closed, it will be opened - * - * @param query Query to be run - * @return the results of the query - * @throws SQLException If the query cannot be executed - * @throws ClassNotFoundException If the driver cannot be found; see {@link #openConnection()} - */ - public ResultSet querySQL(String query) throws SQLException, ClassNotFoundException { - if (!checkConnection()) - openConnection(); - - Statement statement = connection.createStatement(); - - return statement.executeQuery(query); - } - - /** - * Executes an Update SQL Query
- * See {@link java.sql.Statement#executeUpdate(String)}
- * If the connection is closed, it will be opened - * - * @param query Query to be run - * @return Result Code, see {@link java.sql.Statement#executeUpdate(String)} - * @throws SQLException If the query cannot be executed - * @throws ClassNotFoundException If the driver cannot be found; see {@link #openConnection()} - */ - public int updateSQL(String query) throws SQLException, ClassNotFoundException { - if (!checkConnection()) - openConnection(); - - Statement statement = connection.createStatement(); - - return statement.executeUpdate(query); - } -} \ No newline at end of file diff --git a/API/src/main/java/discal/api/message/MessageManager.java b/API/src/main/java/discal/api/message/MessageManager.java deleted file mode 100644 index 76c9bf86..00000000 --- a/API/src/main/java/discal/api/message/MessageManager.java +++ /dev/null @@ -1,319 +0,0 @@ -package discal.api.message; - -import discal.api.DisCalAPI; -import discal.api.file.ReadFile; -import discal.api.object.GuildSettings; -import discal.logger.Logger; -import sx.blah.discord.api.internal.json.objects.EmbedObject; -import sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent; -import sx.blah.discord.handle.obj.IChannel; -import sx.blah.discord.handle.obj.IMessage; -import sx.blah.discord.handle.obj.IPrivateChannel; -import sx.blah.discord.handle.obj.IUser; -import sx.blah.discord.util.DiscordException; -import sx.blah.discord.util.MessageBuilder; -import sx.blah.discord.util.MissingPermissionsException; -import sx.blah.discord.util.RequestBuffer; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -/** - * Created by Nova Fox on 11/10/17. - * Website: www.cloudcraftgaming.com - * For Project: DisCal-Discord-Bot - */ -@SuppressWarnings("unchecked") -public class MessageManager { - public static String lineBreak = System.getProperty("line.separator"); - - private static Map> langs; - - //Language handling - public static void loadLangs() { - langs = ReadFile.readAllLangFiles(); - } - - public static boolean reloadLangs() { - try { - langs = ReadFile.readAllLangFiles(); - return true; - } catch (Exception e) { - Logger.getLogger().exception(null, "Failed to reload lang files!", e, MessageManager.class, true); - return false; - } - } - - public static List getLangs() { - - return new ArrayList<>(langs.keySet()); - } - - public static boolean isSupported(String _value) { - for (String l : langs.keySet()) { - if (l.equalsIgnoreCase(_value)) - return true; - - } - return false; - } - - public static String getValidLang(String _value) { - for (String l : langs.keySet()) { - if (l.equalsIgnoreCase(_value)) - return l; - - } - return "ENGLISH"; - } - - - public static String getMessage(String key, GuildSettings settings) { - Map messages; - - if (settings.getLang() != null && langs.containsKey(settings.getLang())) - messages = langs.get(settings.getLang()); - else - messages = langs.get("ENGLISH"); - - - return messages.getOrDefault(key, "***FAILSAFE MESSAGE*** MESSAGE NOT FOUND!! Message requested: " + key).replace("%lb%", lineBreak); - } - - public static String getMessage(String key, String var, String replace, GuildSettings settings) { - Map messages; - - if (settings.getLang() != null && langs.containsKey(settings.getLang())) - messages = langs.get(settings.getLang()); - else - messages = langs.get("ENGLISH"); - - return messages.getOrDefault(key, "***FAILSAFE MESSAGE*** MESSAGE NOT FOUND!! Message requested: " + key).replace(var, replace).replace("%lb%", lineBreak); - } - - //Sending messages and shit handling... - - /** - * Sends a message via Discord as DisCal. - * - * @param message The message to send, with formatting. - * @param event The Event received (to send to the same channel and guild). - */ - public static IMessage sendMessage(String message, MessageReceivedEvent event) { - return RequestBuffer.request(() -> { - try { - return new MessageBuilder(DisCalAPI.getAPI().getClient()).appendContent(message).withChannel(event.getMessage().getChannel()).build(); - } catch (DiscordException | MissingPermissionsException e) { - //Failed to send message. - return null; - } - }).get(); - } - - /** - * Sends a message via Discord as DisCal. - * - * @param message The message to send, with formatting. - * @param channel The channel to send the message to. - */ - public static IMessage sendMessage(String message, IChannel channel) { - return RequestBuffer.request(() -> { - try { - return new MessageBuilder(DisCalAPI.getAPI().getClient()).appendContent(message).withChannel(channel).build(); - } catch (DiscordException | MissingPermissionsException e) { - //Failed to send message. - return null; - } - }).get(); - } - - /** - * Sends a message via Discord as DisCal. - * - * @param embed The EmbedObject to append to the message. - * @param event The event received (to send to the same channel and guild). - */ - public static IMessage sendMessage(EmbedObject embed, MessageReceivedEvent event) { - return RequestBuffer.request(() -> { - try { - return new MessageBuilder(DisCalAPI.getAPI().getClient()).withEmbed(embed).withChannel(event.getMessage().getChannel()).build(); - - } catch (DiscordException | MissingPermissionsException e) { - //Failed to send message. - return null; - } - }).get(); - } - - /** - * Sends a message via Discord as DisCal. - * - * @param embed The EmbedObject to append to the message. - * @param channel The channel to send the message to. - */ - public static IMessage sendMessage(EmbedObject embed, IChannel channel) { - return RequestBuffer.request(() -> { - try { - return new MessageBuilder(DisCalAPI.getAPI().getClient()).withEmbed(embed).withChannel(channel).build(); - } catch (DiscordException | MissingPermissionsException e) { - //Failed to send message. - return null; - } - }).get(); - } - - /** - * Sends a message via Discord as DisCal. - * - * @param embed The EmbedObject to append to the message. - * @param message The message to send, with formatting. - * @param event The event received (to send to the same channel and guild). - */ - public static IMessage sendMessage(EmbedObject embed, String message, MessageReceivedEvent event) { - return RequestBuffer.request(() -> { - try { - return new MessageBuilder(DisCalAPI.getAPI().getClient()).appendContent(message).withEmbed(embed).withChannel(event.getMessage().getChannel()).build(); - } catch (DiscordException | MissingPermissionsException e) { - //Failed to send message. - return null; - } - }).get(); - } - - /** - * Sends a message via Discord as DisCal. - * - * @param embed The EmbedObject to append to the message. - * @param message The message to send, with formatting. - * @param channel The channel to send the message to. - */ - public static IMessage sendMessage(EmbedObject embed, String message, IChannel channel) { - return RequestBuffer.request(() -> { - try { - return new MessageBuilder(DisCalAPI.getAPI().getClient()).appendContent(message).withEmbed(embed).withChannel(channel).build(); - } catch (DiscordException | MissingPermissionsException e) { - //Failed to send message. - return null; - } - }).get(); - } - - public static void sendMessageAsync(EmbedObject embedObject, String message, IChannel channel) { - RequestBuffer.request(() -> { - try { - new MessageBuilder(DisCalAPI.getAPI().getClient()).appendContent(message).withEmbed(embedObject).withChannel(channel).build(); - } catch (DiscordException | MissingPermissionsException e) { - //No reason to print exception. - } - }); - } - - public static IMessage sendDirectMessage(String message, IUser user) { - return RequestBuffer.request(() -> { - try { - IPrivateChannel pc = user.getOrCreatePMChannel(); - return new MessageBuilder(DisCalAPI.getAPI().getClient()).withChannel(pc).appendContent(message).build(); - } catch (DiscordException | MissingPermissionsException e) { - //Failed to send message. - return null; - } - }).get(); - } - - public static IMessage sendDirectMessage(EmbedObject embed, IUser user) { - return RequestBuffer.request(() -> { - try { - IPrivateChannel pc = user.getOrCreatePMChannel(); - return new MessageBuilder(DisCalAPI.getAPI().getClient()).withChannel(pc).withEmbed(embed).build(); - } catch (DiscordException | MissingPermissionsException e) { - //Failed to send message. - return null; - } - }).get(); - } - - public static IMessage sendDirectMessage(String message, EmbedObject embed, IUser user) { - return RequestBuffer.request(() -> { - try { - IPrivateChannel pc = user.getOrCreatePMChannel(); - return new MessageBuilder(DisCalAPI.getAPI().getClient()).withChannel(pc).appendContent(message).withEmbed(embed).build(); - } catch (DiscordException | MissingPermissionsException e) { - //Failed to send message. - return null; - } - }).get(); - } - - public static boolean deleteMessage(MessageReceivedEvent event) { - try { - return RequestBuffer.request(() -> { - try { - if (!event.getMessage().isDeleted()) - event.getMessage().delete(); - - return true; - } catch (DiscordException | MissingPermissionsException e) { - //Failed to delete - return false; - } - }).get(); - } catch (NullPointerException e) { - return false; - } - } - - public static boolean deleteMessage(IMessage message) { - try { - return RequestBuffer.request(() -> { - try { - if (!message.isDeleted()) - message.delete(); - - return true; - } catch (DiscordException | MissingPermissionsException e) { - //Failed to delete. - return false; - } - }).get(); - } catch (NullPointerException e) { - return false; - } - } - - public static boolean editMessage(IMessage message, String content) { - try { - return RequestBuffer.request(() -> { - try { - if (message != null && !message.isDeleted()) - message.edit(content); - - return true; - } catch (DiscordException | MissingPermissionsException e) { - //Failed to edit. - return false; - } - }).get(); - } catch (NullPointerException e) { - return false; - } - } - - public static boolean editMessage(IMessage message, String content, EmbedObject embed) { - try { - return RequestBuffer.request(() -> { - try { - if (!message.isDeleted()) - message.edit(content, embed); - - return true; - } catch (DiscordException | MissingPermissionsException e) { - //Failed to edit. - return false; - } - }).get(); - } catch (NullPointerException e) { - return false; - } - } -} \ No newline at end of file diff --git a/Bot/src/main/java/discal/bot/internal/network/discordpw/UpdateDisPwData.java b/Bot/src/main/java/discal/bot/internal/network/discordpw/UpdateDisPwData.java deleted file mode 100644 index cfa9f6e9..00000000 --- a/Bot/src/main/java/discal/bot/internal/network/discordpw/UpdateDisPwData.java +++ /dev/null @@ -1,54 +0,0 @@ -package discal.bot.internal.network.discordpw; - -import discal.api.DisCalAPI; -import discal.api.object.BotSettings; -import discal.logger.Logger; -import com.mashape.unirest.http.HttpResponse; -import com.mashape.unirest.http.JsonNode; -import com.mashape.unirest.http.Unirest; -import org.json.JSONObject; - -import java.util.Timer; -import java.util.TimerTask; - -/** - * Created by Nova Fox on 1/13/2017. - * Website: www.cloudcraftgaming.com - * For Project: DisCal - */ -public class UpdateDisPwData { - private static Timer timer; - - public static void init() { - if (BotSettings.UPDATE_SITES.get().equalsIgnoreCase("true")) { - timer = new Timer(true); - timer.schedule(new TimerTask() { - @Override - public void run() { - updateSiteBotMeta(); - } - }, 60 * 60 * 1000); - } - } - - public static void shutdown() { - if (timer != null) - timer.cancel(); - } - - private static void updateSiteBotMeta() { - try { - int serverCount = DisCalAPI.getAPI().getClient().getGuilds().size(); - - JSONObject json = new JSONObject().put("server_count", serverCount); - - //noinspection unused - HttpResponse response = Unirest.post("https://bots.discord.pw/api/bots/265523588918935552/stats").header("Authorization", BotSettings.PW_TOKEN.get()).header("Content-Type", "application/json").body(json).asJson(); - } catch (Exception e) { - //Handle issue. - System.out.println("Failed to update Discord PW list metadata!"); - Logger.getLogger().exception(null, "Failed to update Discord PW list.", e, UpdateDisPwData.class, true); - e.printStackTrace(); - } - } -} \ No newline at end of file diff --git a/Bot/src/main/java/discal/bot/module/command/EventCommand.java b/Bot/src/main/java/discal/bot/module/command/EventCommand.java deleted file mode 100644 index 5fec12d8..00000000 --- a/Bot/src/main/java/discal/bot/module/command/EventCommand.java +++ /dev/null @@ -1,1077 +0,0 @@ -package discal.bot.module.command; - -import discal.api.DisCalAPI; -import discal.api.calendar.CalendarAuth; -import discal.api.database.DatabaseManager; -import discal.api.enums.event.EventColor; -import discal.api.enums.event.EventFrequency; -import discal.api.message.MessageManager; -import discal.api.object.GuildSettings; -import discal.api.object.calendar.CalendarData; -import discal.api.object.command.CommandInfo; -import discal.api.object.event.EventCreatorResponse; -import discal.api.object.event.PreEvent; -import discal.api.utils.*; -import discal.bot.internal.calendar.event.EventCreator; -import discal.bot.internal.calendar.event.EventMessageFormatter; -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.EventDateTime; -import sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent; -import sx.blah.discord.handle.obj.IMessage; -import sx.blah.discord.util.EmbedBuilder; - -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.TimeZone; - -/** - * Created by Nova Fox on 1/3/2017. - * Website: www.cloudcraftgaming.com - * For Project: DisCal - */ -@SuppressWarnings("Duplicates") -public class EventCommand implements ICommand { - /** - * Gets the command this Object is responsible for. - * - * @return The command this Object is responsible for. - */ - @Override - public String getCommand() { - return "event"; - } - - /** - * Gets the short aliases of the command this object is responsible for. - *
- * This will return an empty ArrayList if none are present - * - * @return The aliases of the command. - */ - @Override - public ArrayList getAliases() { - ArrayList a = new ArrayList<>(); - a.add("e"); - - return a; - } - - /** - * Gets the info on the command (not sub command) to be used in help menus. - * - * @return The command info. - */ - @Override - public CommandInfo getCommandInfo() { - CommandInfo info = new CommandInfo("event"); - info.setDescription("Used for all event related functions"); - info.setExample("!event (value(s))"); - - info.getSubCommands().put("create", "Creates a new event"); - info.getSubCommands().put("copy", "Copies an existing event"); - info.getSubCommands().put("edit", "Edits an existing event"); - info.getSubCommands().put("cancel", "Cancels the creator/editor"); - info.getSubCommands().put("restart", "Restarts the creator/editor"); - info.getSubCommands().put("delete", "Deletes an existing event"); - info.getSubCommands().put("view", "Views an existing event"); - info.getSubCommands().put("review", "Reviews the event in the creator/editor"); - info.getSubCommands().put("confirm", "Confirms and creates/edits the event"); - info.getSubCommands().put("start", "Sets the start of the event (format: yyyy/MM/dd-hh:mm:ss)"); - info.getSubCommands().put("startdate", "Sets the start of the event (format: yyyy/MM/dd-hh:mm:ss)"); - info.getSubCommands().put("end", "Sets the end of the event (format: yyyy/MM/dd-hh:mm:ss)"); - info.getSubCommands().put("enddate", "Sets the end of the event (format: yyyy/MM/dd-hh:mm:ss)"); - info.getSubCommands().put("summary", "Sets the summary/name of the event"); - info.getSubCommands().put("description", "Sets the description of the event"); - info.getSubCommands().put("color", "Sets the color of the event"); - info.getSubCommands().put("colour", "Sets the colour of the event"); - info.getSubCommands().put("location", "Sets the location of the event"); - info.getSubCommands().put("loc", "Sets the location of the event"); - info.getSubCommands().put("recur", "True/False whether or not the event should recur"); - info.getSubCommands().put("frequency", "Sets how often the event should recur"); - info.getSubCommands().put("freq", "Sets how often the event should recur"); - info.getSubCommands().put("count", "Sets how many times the event should recur (`-1` or `0` for infinite)"); - info.getSubCommands().put("interval", "Sets the interval at which the event should recur according to the frequency"); - info.getSubCommands().put("image", "Sets the event's image"); - info.getSubCommands().put("attachment", "Sets the event's image"); - - return info; - } - - /** - * Issues the command this Object is responsible for. - * - * @param args The command arguments. - * @param event The event received. - * @return true if successful, else false. - */ - @Override - public boolean issueCommand(String[] args, MessageReceivedEvent event, GuildSettings settings) { - long guildId = event.getGuild().getLongID(); - //TODO: Add multiple calendar handling. - CalendarData calendarData = DatabaseManager.getManager().getMainCalendar(guildId); - if (args.length < 1) { - MessageManager.sendMessage(MessageManager.getMessage("Notification.Args.Few", settings), event); - } else { - switch (args[0].toLowerCase()) { - case "create": - if (PermissionChecker.hasSufficientRole(event)) - moduleCreate(args, event, calendarData, settings); - else - MessageManager.sendMessage(MessageManager.getMessage("Notification.Perm.CONTROL_ROLE", settings), event); - break; - case "copy": - if (PermissionChecker.hasSufficientRole(event)) - moduleCopy(args, event, calendarData, settings); - else - MessageManager.sendMessage(MessageManager.getMessage("Notification.Perm.CONTROL_ROLE", settings), event); - break; - case "edit": - if (PermissionChecker.hasSufficientRole(event)) - moduleEdit(args, event, calendarData, settings); - else - MessageManager.sendMessage(MessageManager.getMessage("Notification.Perm.CONTROL_ROLE", settings), event); - break; - case "restart": - if (PermissionChecker.hasSufficientRole(event)) - moduleRestart(args, event, calendarData, settings); - else - MessageManager.sendMessage(MessageManager.getMessage("Notification.Perm.CONTROL_ROLE", settings), event); - break; - case "cancel": - if (PermissionChecker.hasSufficientRole(event)) - moduleCancel(event, settings); - else - MessageManager.sendMessage(MessageManager.getMessage("Notification.Perm.CONTROL_ROLE", settings), event); - break; - case "delete": - if (PermissionChecker.hasSufficientRole(event)) - moduleDelete(args, event, calendarData, settings); - else - MessageManager.sendMessage(MessageManager.getMessage("Notification.Perm.CONTROL_ROLE", settings), event); - break; - case "view": - moduleView(args, event, calendarData, settings); - break; - case "review": - moduleView(args, event, calendarData, settings); - break; - case "confirm": - if (PermissionChecker.hasSufficientRole(event)) - moduleConfirm(event, calendarData, settings); - else - MessageManager.sendMessage(MessageManager.getMessage("Notification.Perm.CONTROL_ROLE", settings), event); - break; - case "startdate": - moduleStartDate(args, event, settings); - break; - case "start": - moduleStartDate(args, event, settings); - break; - case "enddate": - moduleEndDate(args, event, settings); - break; - case "end": - moduleEndDate(args, event, settings); - break; - case "summary": - moduleSummary(args, event, settings); - break; - case "description": - moduleDescription(args, event, settings); - break; - case "color": - moduleColor(args, event, settings); - break; - case "colour": - moduleColor(args, event, settings); - break; - case "location": - moduleLocation(args, event, settings); - break; - case "loc": - moduleLocation(args, event, settings); - break; - case "image": - moduleAttachment(args, event, settings); - break; - case "attachment": - moduleAttachment(args, event, settings); - break; - case "recur": - moduleRecur(args, event, settings); - break; - case "frequency": - moduleFrequency(args, event, settings); - break; - case "freq": - moduleFrequency(args, event, settings); - break; - case "count": - moduleCount(args, event, settings); - break; - case "interval": - moduleInterval(args, event, settings); - break; - default: - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Notification.Args.Invalid", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Notification.Args.Invalid", settings), event); - } - break; - } - } - return false; - } - - - private void moduleCreate(String[] args, MessageReceivedEvent event, CalendarData calendarData, GuildSettings settings) { - long guildId = event.getGuild().getLongID(); - if (EventCreator.getCreator().hasPreEvent(guildId)) { - if (EventCreator.getCreator().getPreEvent(guildId).getCreatorMessage() != null) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.AlreadyInit", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.AlreadyInit", settings), event); - } - } else { - if (!calendarData.getCalendarAddress().equalsIgnoreCase("primary")) { - PreEvent e; - if (args.length == 1) - e = EventCreator.getCreator().init(event, settings, true); - else - e = EventCreator.getCreator().init(event, settings, GeneralUtils.getContent(args, 1), true); - - if (e.getCreatorMessage() == null) - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Create.Init", settings), event); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.NoCalendar", settings), event); - } - } - } - - private void moduleCopy(String[] args, MessageReceivedEvent event, CalendarData calendarData, GuildSettings settings) { - long guildId = event.getGuild().getLongID(); - if (!calendarData.getCalendarAddress().equalsIgnoreCase("primary")) { - if (!EventCreator.getCreator().hasPreEvent(guildId)) { - if (args.length == 2) { - String eventId = args[1]; - if (EventUtils.eventExists(settings, eventId)) { - PreEvent preEvent = EventCreator.getCreator().init(event, eventId, settings, true); - if (preEvent != null) { - if (preEvent.getCreatorMessage() == null) { - MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(preEvent, settings), MessageManager.getMessage("Creator.Event.Copy.Init", settings), event); - } - } else { - MessageManager.sendMessage(MessageManager.getMessage("Notification.Error.Unknown", settings), event); - } - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.NotFound", settings), event); - } - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Copy.Specify", settings), event); - } - } else { - if (EventCreator.getCreator().getPreEvent(guildId).getCreatorMessage() != null) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.AlreadyInit", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.AlreadyInit", settings), event); - } - } - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.NoCalendar", settings), event); - } - } - - private void moduleEdit(String[] args, MessageReceivedEvent event, CalendarData calendarData, GuildSettings settings) { - long guildId = event.getGuild().getLongID(); - if (!calendarData.getCalendarAddress().equalsIgnoreCase("primary")) { - if (!EventCreator.getCreator().hasPreEvent(guildId)) { - if (args.length == 2) { - String eventId = args[1]; - if (EventUtils.eventExists(settings, eventId)) { - PreEvent preEvent = EventCreator.getCreator().edit(event, eventId, settings, true); - if (preEvent.getCreatorMessage() == null) { - MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(preEvent, settings), MessageManager.getMessage("Creator.Event.Edit.Init", settings), event); - } - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.NotFound", settings), event); - } - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Edit.Specify", settings), event); - } - } else { - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.AlreadyInit", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.AlreadyInit", settings), event); - } - } - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.NoCalendar", settings), event); - } - } - - private void moduleCancel(MessageReceivedEvent event, GuildSettings settings) { - long guildId = event.getGuild().getLongID(); - IMessage msg = null; - if (EventCreator.getCreator().hasCreatorMessage(guildId)) - msg = EventCreator.getCreator().getCreatorMessage(guildId); - - if (EventCreator.getCreator().terminate(event)) { - if (msg != null) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(msg); - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Cancel.Success", settings), event); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Cancel.Success", settings), event); - } - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.NotInit", settings), event); - } - } - - private void moduleRestart(String[] args, MessageReceivedEvent event, CalendarData calendarData, GuildSettings settings) { - long guildId = event.getGuild().getLongID(); - IMessage msg = null; - boolean editing = false; - if (EventCreator.getCreator().hasPreEvent(guildId)) - editing = EventCreator.getCreator().getPreEvent(guildId).isEditing(); - - - - if (EventCreator.getCreator().hasCreatorMessage(guildId)) - msg = EventCreator.getCreator().getCreatorMessage(guildId); - - if (EventCreator.getCreator().terminate(event)) { - if (msg != null) { - MessageManager.deleteMessage(msg); - MessageManager.deleteMessage(event); - } - if (!editing) - moduleCreate(args, event, calendarData, settings); - else - moduleEdit(args, event, calendarData, settings); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.NotInit", settings), event); - } - } - - private void moduleDelete(String[] args, MessageReceivedEvent event, CalendarData calendarData, GuildSettings settings) { - long guildId = event.getGuild().getLongID(); - if (args.length == 2) { - if (!calendarData.getCalendarAddress().equalsIgnoreCase("primary")) { - if (!EventCreator.getCreator().hasPreEvent(guildId)) { - if (EventUtils.deleteEvent(settings, args[1])) { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Delete.Success", settings), event); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.NotFound", settings), event); - } - } else { - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.Delete.Failure.Creator", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Delete.Failure.Creator", settings), event); - } - } - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.NoCalendar", settings), event); - } - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Delete.Specify", settings), event); - } - } - - private void moduleView(String[] args, MessageReceivedEvent event, CalendarData calendarData, GuildSettings settings) { - long guildId = event.getGuild().getLongID(); - if (args.length == 1) { - if (EventCreator.getCreator().hasPreEvent(guildId)) { - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Event.View.Creator.Confirm", settings), event)); - } else { - MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Event.View.Creator.Confirm", settings), event); - } - } else { - MessageManager.sendMessage(MessageManager.getMessage("Event.View.Args.Few", settings), event); - } - } else if (args.length == 2) { - //Try to get the event by ID. - if (!EventCreator.getCreator().hasPreEvent(guildId)) { - if (!calendarData.getCalendarAddress().equalsIgnoreCase("primary")) { - try { - Calendar service = CalendarAuth.getCalendarService(settings); - - Event calEvent = service.events().get(calendarData.getCalendarAddress(), args[1]).execute(); - MessageManager.sendMessage(EventMessageFormatter.getEventEmbed(calEvent, settings), event); - } catch (Exception e) { - //Event probably doesn't exist... - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.NotFound", settings), event); - } - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.NoCalendar", settings), event); - } - } else { - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Event.View.Creator.Active", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Event.View.Creator.Active", settings), event); - } - } - } else { - MessageManager.sendMessage(MessageManager.getMessage("Event.View.Specify", settings), event); - } - } - - private void moduleConfirm(MessageReceivedEvent event, CalendarData calendarData, GuildSettings settings) { - long guildId = event.getGuild().getLongID(); - if (EventCreator.getCreator().hasPreEvent(guildId)) { - if (EventCreator.getCreator().getPreEvent(guildId).hasRequiredValues()) { - if (!calendarData.getCalendarAddress().equalsIgnoreCase("primary")) { - EventCreatorResponse response = EventCreator.getCreator().confirmEvent(event, settings); - if (response.isSuccessful()) { - if (!response.isEdited()) { - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getEventConfirmationEmbed(response, settings), MessageManager.getMessage("Creator.Event.Confirm.Create", settings), event)); - } else { - MessageManager.sendMessage(EventMessageFormatter.getEventConfirmationEmbed(response, settings), MessageManager.getMessage("Creator.Event.Confirm.Create", settings), event); - } - } else { - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getEventConfirmationEmbed(response, settings), MessageManager.getMessage("Creator.Event.Confirm.Edit", settings), event)); - } else { - MessageManager.sendMessage(EventMessageFormatter.getEventConfirmationEmbed(response, settings), MessageManager.getMessage("Creator.Event.Confirm.Edit", settings), event); - } - } - } else { - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.Confirm.Failure", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Confirm.Failure", settings), event); - } - } - } else { - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.NoCalendar", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.NoCalendar", settings), event); - } - } - } else { - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.NoRequired", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.NoRequired", settings), event); - } - } - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.NotInit", settings), event); - } - } - - private void moduleStartDate(String[] args, MessageReceivedEvent event, GuildSettings settings) { - long guildId = event.getGuild().getLongID(); - if (args.length == 2) { - if (EventCreator.getCreator().hasPreEvent(guildId)) { - String dateRaw = args[1].trim(); - if (dateRaw.length() > 10) { - try { - //Do a lot of date shuffling to get to proper formats and shit like that. - SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd-HH:mm:ss"); - TimeZone tz = TimeZone.getTimeZone(EventCreator.getCreator().getPreEvent(guildId).getTimeZone()); - sdf.setTimeZone(tz); - Date dateObj = sdf.parse(dateRaw); - DateTime dateTime = new DateTime(dateObj); - EventDateTime eventDateTime = new EventDateTime(); - eventDateTime.setDateTime(dateTime); - - //Wait! Lets check now if its in the future and not the past! - if (!TimeUtils.inPast(dateRaw, tz) && !TimeUtils.startAfterEnd(dateRaw, tz, EventCreator.getCreator().getPreEvent(guildId))) { - //Date shuffling done, now actually apply all that damn stuff here. - EventCreator.getCreator().getPreEvent(guildId).setStartDateTime(eventDateTime); - - //Apply viewable date/times... - SimpleDateFormat sdfV = new SimpleDateFormat("yyyy/MM/dd-HH:mm:ss"); - Date dateObjV = sdfV.parse(dateRaw); - DateTime dateTimeV = new DateTime(dateObjV); - EventDateTime eventDateTimeV = new EventDateTime(); - eventDateTimeV.setDateTime(dateTimeV); - EventCreator.getCreator().getPreEvent(guildId).setViewableStartDate(eventDateTimeV); - - - //To streamline, check if event end is null, if so, apply 2 hour duration! - if (EventCreator.getCreator().getPreEvent(guildId).getEndDateTime() == null) { - EventDateTime end = EventCreator.getCreator().getPreEvent(guildId).getStartDateTime().clone(); - long endLong = end.getDateTime().getValue() + 3600000; //Add an hour - - end.setDateTime(new DateTime(endLong)); - - EventCreator.getCreator().getPreEvent(guildId).setEndDateTime(end); - - - //Viewable date - EventDateTime endV = EventCreator.getCreator().getPreEvent(guildId).getViewableStartDate().clone(); - long endVLong = endV.getDateTime().getValue() + 3600000; //Add an hour - - endV.setDateTime(new DateTime(endVLong)); - - EventCreator.getCreator().getPreEvent(guildId).setViewableEndDate(endV); - } - - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.Start.Success.New", settings), event)); - } else { - String msg = MessageManager.getMessage("Creator.Event.Start.Success", settings); - msg = msg.replaceAll("%date%", EventMessageFormatter.getHumanReadableDate(eventDateTimeV, settings, true)).replaceAll("%time%", EventMessageFormatter.getHumanReadableTime(eventDateTimeV, settings, true)); - MessageManager.sendMessage(msg, event); - } - } else { - //Oops! Time is in the past or after end... - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.Start.Failure.Illegal", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Start.Failure.Illegal", settings), event); - } - } - } catch (ParseException e) { - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.Time.Invalid", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Time.Invalid", settings), event); - } - } - } else { - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.Time.InvalidFormat", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Time.InvalidFormat", settings), event); - } - } - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.NotInit", settings), event); - } - } else { - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.Start.Specify", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Start.Specify", settings), event); - } - } - } - - private void moduleEndDate(String[] args, MessageReceivedEvent event, GuildSettings settings) { - long guildId = event.getGuild().getLongID(); - if (args.length == 2) { - if (EventCreator.getCreator().hasPreEvent(guildId)) { - String dateRaw = args[1].trim(); - if (dateRaw.length() > 10) { - try { - //Do a lot of date shuffling to get to proper formats and shit like that. - SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd-HH:mm:ss"); - TimeZone tz = TimeZone.getTimeZone(EventCreator.getCreator().getPreEvent(guildId).getTimeZone()); - sdf.setTimeZone(tz); - Date dateObj = sdf.parse(dateRaw); - DateTime dateTime = new DateTime(dateObj); - EventDateTime eventDateTime = new EventDateTime(); - eventDateTime.setDateTime(dateTime); - - //Wait! Lets check now if its in the future and not the past! - if (!TimeUtils.inPast(dateRaw, tz) && !TimeUtils.endBeforeStart(dateRaw, tz, EventCreator.getCreator().getPreEvent(guildId))) { - //Date shuffling done, now actually apply all that damn stuff here. - EventCreator.getCreator().getPreEvent(guildId).setEndDateTime(eventDateTime); - - //Apply viewable date/times... - SimpleDateFormat sdfV = new SimpleDateFormat("yyyy/MM/dd-HH:mm:ss"); - Date dateObjV = sdfV.parse(dateRaw); - DateTime dateTimeV = new DateTime(dateObjV); - EventDateTime eventDateTimeV = new EventDateTime(); - eventDateTimeV.setDateTime(dateTimeV); - EventCreator.getCreator().getPreEvent(guildId).setViewableEndDate(eventDateTimeV); - - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.End.Success.New", settings), event)); - } else { - String msg = MessageManager.getMessage("Creator.Event.End.Success", settings); - msg = msg.replaceAll("%date%", EventMessageFormatter.getHumanReadableDate(eventDateTimeV, settings, true)).replaceAll("%time%", EventMessageFormatter.getHumanReadableTime(eventDateTimeV, settings, true)); - MessageManager.sendMessage(msg, event); - } - } else { - //Oops! Time is in the past or before the starting time... - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.End.Failure.Illegal", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.End.Failure.Illegal", settings), event); - } - } - } catch (ParseException e) { - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.Time.Invalid", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Time.Invalid", settings), event); - } - } - } else { - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.Time.InvalidFormat", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Time.InvalidFormat", settings), event); - } - } - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.NotInit", settings), event); - } - } else { - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.End.Specify", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.End.Specify", settings), event); - } - } - } - - private void moduleSummary(String[] args, MessageReceivedEvent event, GuildSettings settings) { - long guildId = event.getGuild().getLongID(); - if (args.length > 1) { - if (EventCreator.getCreator().hasPreEvent(guildId)) { - String content = GeneralUtils.getContent(args, 1); - EventCreator.getCreator().getPreEvent(guildId).setSummary(content); - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.Summary.Success.New", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Summary.Success", "%summary%", GeneralUtils.getContent(args, 1), settings), event); - } - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.NotInit", settings), event); - } - } else { - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.Summary.Specify", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Summary.Specify", settings), event); - } - } - } - - private void moduleDescription(String[] args, MessageReceivedEvent event, GuildSettings settings) { - long guildId = event.getGuild().getLongID(); - if (args.length > 1) { - if (EventCreator.getCreator().hasPreEvent(guildId)) { - String content = GeneralUtils.getContent(args, 1); - EventCreator.getCreator().getPreEvent(guildId).setDescription(content); - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.Description.Success.New", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Description.Success", "%description%", content, settings), event); - } - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.NotInit", settings), event); - } - } else { - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.Description.Specify", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Description.Specify", settings), event); - } - } - } - - private void moduleColor(String[] args, MessageReceivedEvent event, GuildSettings settings) { - long guildId = event.getGuild().getLongID(); - if (args.length == 2) { - String value = args[1]; - if (value.equalsIgnoreCase("list") || value.equalsIgnoreCase("colors") || value.equalsIgnoreCase("colours")) { - EmbedBuilder em = new EmbedBuilder(); - em.withAuthorIcon(DisCalAPI.getAPI().iconUrl); - em.withAuthorName("DisCal!"); - - em.withTitle("Available Colors"); - em.withUrl("https://discalbot.com/docs/event/colors"); - em.withColor(56, 138, 237); - em.withFooterText("Click Title for previews of the colors!"); - - for (EventColor ec : EventColor.values()) { - em.appendField(ec.name(), ec.getId() + "", true); - } - - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(em.build(), "All Supported Colors. Use either the name or ID in the command: `!event color `", event)); - } else { - MessageManager.sendMessage(em.build(), "All Supported Colors. Use either the name or ID in the command: `!event color `", event); - } - } else { - if (EventCreator.getCreator().hasPreEvent(guildId)) { - //Attempt to get color. - if (EventColor.exists(value)) { - EventColor color = EventColor.fromNameOrHexOrID(value); - EventCreator.getCreator().getPreEvent(guildId).setColor(color); - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.Color.Success.New", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Color.Success", "%color%", color.name(), settings), event); - } - } else { - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.Color.Invalid", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Color.Invalid", settings), event); - } - } - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.NotInit", settings), event); - } - } - } else { - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.Color.Specify", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Color.Specify", settings), event); - } - } - } - - private void moduleLocation(String[] args, MessageReceivedEvent event, GuildSettings settings) { - long guildId = event.getGuild().getLongID(); - if (args.length > 1) { - if (EventCreator.getCreator().hasPreEvent(guildId)) { - String content = GeneralUtils.getContent(args, 1); - if (!content.equalsIgnoreCase("clear")) { - EventCreator.getCreator().getPreEvent(guildId).setLocation(content); - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.Location.Success.New", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Location.Success", "%location%", content, settings), event); - } - } else { - EventCreator.getCreator().getPreEvent(guildId).setLocation(null); - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.Location.Success.Clear", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Location.Success.Clear", settings), event); - } - } - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.NotInit", settings), event); - } - } else { - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.Location.Specify", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Location.Specify", settings), event); - } - } - } - - private void moduleAttachment(String[] args, MessageReceivedEvent event, GuildSettings settings) { - long guildId = event.getGuild().getLongID(); - if (args.length == 2) { - String value = args[1]; - if (EventCreator.getCreator().hasPreEvent(guildId)) { - if (value.equalsIgnoreCase("delete") || value.equalsIgnoreCase("remove") || value.equalsIgnoreCase("clear")) { - //Delete picture from event - EventCreator.getCreator().getPreEvent(guildId).getEventData().setImageLink(null); - - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.Attachment.Delete", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Attachment.Delete", settings), event); - } - } else if (ImageUtils.validate(value)) { - EventCreator.getCreator().getPreEvent(guildId).getEventData().setImageLink(value); - - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.Attachment.Success", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Attachment.Success", settings), event); - } - } else { - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.Attachment.Failure", settings), event)); - } - } - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.NotInit", settings), event); - } - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Attachment.Specify", settings), event); - } - } - - //Event recurrence settings - private void moduleRecur(String[] args, MessageReceivedEvent event, GuildSettings settings) { - long guildId = event.getGuild().getLongID(); - if (args.length == 2) { - String valueString = args[1]; - if (EventCreator.getCreator().hasPreEvent(guildId)) { - PreEvent pre = EventCreator.getCreator().getPreEvent(guildId); - if (pre.isEditing() && pre.getEventId().contains("_")) { - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.Recur.Failure.Child", "%id%", pre.getEventId().split("_")[0], settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Recur.Failure.Child", "%id%", pre.getEventId().split("_")[0], settings), event); - } - return; - } - try { - boolean value = Boolean.valueOf(valueString); - EventCreator.getCreator().getPreEvent(guildId).setShouldRecur(value); - if (value) { - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.Recur.True", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Recur.True", settings), event); - } - } else { - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.Recur.False", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Recur.False", settings), event); - } - } - } catch (Exception e) { - //Could not convert to boolean - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.Recur.Failure.Invalid", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Recur.Failure.Invalid", settings), event); - } - } - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.NotInit", settings), event); - } - } else { - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.Recur.Specify", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Recur.Specify", settings), event); - } - } - } - - private void moduleFrequency(String[] args, MessageReceivedEvent event, GuildSettings settings) { - long guildId = event.getGuild().getLongID(); - if (args.length == 2) { - if (EventCreator.getCreator().hasPreEvent(guildId)) { - if (EventCreator.getCreator().getPreEvent(guildId).shouldRecur()) { - String value = args[1]; - if (EventFrequency.isValid(value)) { - EventFrequency freq = EventFrequency.fromValue(value); - EventCreator.getCreator().getPreEvent(guildId).getRecurrence().setFrequency(freq); - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.Frequency.Success.New", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Frequency.Success", "%freq%", freq.name(), settings), event); - } - } else { - String values = Arrays.toString(EventFrequency.values()).replace("[", "").replace("]", ""); - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.Frequency.List", "%types%", value, settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Frequency.List", "%types%", values, settings), event); - } - } - } else { - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.Recur.Not", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Recur.Not", settings), event); - } - } - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.NotInit", settings), event); - } - } else { - String values = Arrays.toString(EventFrequency.values()).replace("[", "").replace("]", ""); - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.Frequency.Specify", "%types%", values, settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Frequency.Specify", "%types%", values, settings), event); - } - } - } - - private void moduleCount(String[] args, MessageReceivedEvent event, GuildSettings settings) { - long guildId = event.getGuild().getLongID(); - if (args.length == 2) { - if (EventCreator.getCreator().hasPreEvent(guildId)) { - if (EventCreator.getCreator().getPreEvent(guildId).shouldRecur()) { - try { - Integer amount = Integer.valueOf(args[1]); - EventCreator.getCreator().getPreEvent(guildId).getRecurrence().setCount(amount); - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.Count.Success.New", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Count.Success", "%count%", amount + "", settings), event); - } - } catch (NumberFormatException e) { - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Notification.Args.Value.Integer", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Notification.Args.Value.Integer", settings), event); - } - } - } else { - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.Recur.Not", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Recur.Not", settings), event); - } - } - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.NotInit", settings), event); - } - } else { - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.Count.Specify", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Count.Specify", settings), event); - } - } - } - - private void moduleInterval(String[] args, MessageReceivedEvent event, GuildSettings settings) { - long guildId = event.getGuild().getLongID(); - if (args.length == 2) { - if (EventCreator.getCreator().hasPreEvent(guildId)) { - if (EventCreator.getCreator().getPreEvent(guildId).shouldRecur()) { - try { - Integer amount = Integer.valueOf(args[1]); - EventCreator.getCreator().getPreEvent(guildId).getRecurrence().setInterval(amount); - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.Interval.Success.New", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Interval.Success", "%amount%", amount + "", settings), event); - } - } catch (NumberFormatException e) { - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Notification.Args.Value.Integer", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Notification.Args.Value.Integer", settings), event); - } - } - } else { - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.Recur.Not", settings), event)); - } - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Recur.Not", settings), event); - } - } else { - MessageManager.sendMessage("Event Creator not initialized!", event); - } - } else { - if (EventCreator.getCreator().hasCreatorMessage(guildId)) { - MessageManager.deleteMessage(event); - MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(guildId)); - EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessage(EventMessageFormatter.getPreEventEmbed(EventCreator.getCreator().getPreEvent(guildId), settings), MessageManager.getMessage("Creator.Event.Interval.Specify", settings), event)); - } else { - MessageManager.sendMessage(MessageManager.getMessage("Creator.Event.Interval.Specify", settings), event); - } - } - } -} \ No newline at end of file