diff --git a/src/main/java/com/cloudcraftgaming/discal/bot/module/announcement/AnnouncementMessageFormatter.java b/src/main/java/com/cloudcraftgaming/discal/bot/module/announcement/AnnouncementMessageFormatter.java index a1a11dc3..c7fed97c 100644 --- a/src/main/java/com/cloudcraftgaming/discal/bot/module/announcement/AnnouncementMessageFormatter.java +++ b/src/main/java/com/cloudcraftgaming/discal/bot/module/announcement/AnnouncementMessageFormatter.java @@ -150,111 +150,111 @@ public class AnnouncementMessageFormatter { IGuild guild = DisCalAPI.getAPI().getClient().getGuildByID(announcement.getGuildId()); - assert guild != null; + if (guild != null) { + //Set all of the stuff for embeds regardless of announcement settings + if (settings.isBranded()) + em.withAuthorName(guild.getName()); + else + em.withAuthorName("DisCal"); - //Set all of the stuff for embeds regardless of announcement settings - if (settings.isBranded()) - em.withAuthorName(guild.getName()); - else - em.withAuthorName("DisCal"); - - em.withTitle(MessageManager.getMessage("Embed.Announcement.Announce.Title", settings)); - EventData ed = DatabaseManager.getManager().getEventData(announcement.getGuildId(), event.getId()); - if (ed.getImageLink() != null && ImageUtils.validate(ed.getImageLink())) { - em.withImage(ed.getImageLink()); - } - - em.withUrl(event.getHtmlLink()); - - try { - EventColor ec = EventColor.fromNameOrHexOrID(event.getColorId()); - em.withColor(ec.getR(), ec.getG(), ec.getB()); - } catch (Exception e) { - //I dunno, color probably null. - em.withColor(56, 138, 237); - } - - if (!settings.usingSimpleAnnouncements()) { - em.withFooterText(MessageManager.getMessage("Embed.Announcement.Announce.ID", "%id%", announcement.getAnnouncementId().toString(), settings)); - } - - if (announcement.isInfoOnly() && announcement.getInfo() != null && !announcement.getInfo().equalsIgnoreCase("none")) { - //Only send info... - em.appendField(MessageManager.getMessage("Embed.Announcement.Announce.Info", settings), announcement.getInfo(), false); - } else { - //Requires all announcement data - if (event.getSummary() != null) { - String summary = event.getSummary(); - if (summary.length() > 250) { - summary = summary.substring(0, 250); - summary = summary + " (continues on Google Calendar View)"; - } - em.appendField(MessageManager.getMessage("Embed.Announcement.Announce.Summary", settings), summary, true); - } - if (event.getDescription() != null) { - String description = event.getDescription(); - if (description.length() > 250) { - description = description.substring(0, 250); - description = description + " (continues on Google Calendar View)"; - } - em.appendField(MessageManager.getMessage("Embed.Announcement.Announce.Description", settings), description, true); - } - if (!settings.usingSimpleAnnouncements()) { - em.appendField(MessageManager.getMessage("Embed.Announcement.Announce.Date", settings), EventMessageFormatter.getHumanReadableDate(event.getStart(), settings, false), true); - em.appendField(MessageManager.getMessage("Embed.Announcement.Announce.Time", settings), EventMessageFormatter.getHumanReadableTime(event.getStart(), settings, false), true); - try { - Calendar service = CalendarAuth.getCalendarService(settings); - String tz = service.calendars().get(data.getCalendarAddress()).execute().getTimeZone(); - em.appendField(MessageManager.getMessage("Embed.Announcement.Announce.TimeZone", settings), tz, true); - } catch (Exception e1) { - em.appendField(MessageManager.getMessage("Embed.Announcement.Announce.TimeZone", settings), "Unknown *Error Occurred", true); - } - } else { - String start = EventMessageFormatter.getHumanReadableDate(event.getStart(), settings, false) + " at " + EventMessageFormatter.getHumanReadableTime(event.getStart(), settings, false); - try { - Calendar service = CalendarAuth.getCalendarService(settings); - String tz = service.calendars().get(data.getCalendarAddress()).execute().getTimeZone(); - start = start + " " + tz; - } catch (Exception e1) { - start = start + " (TZ UNKNOWN/ERROR)"; - } - - em.appendField(MessageManager.getMessage("Embed.Announcement.Announce.Start", settings), start, false); + em.withTitle(MessageManager.getMessage("Embed.Announcement.Announce.Title", settings)); + EventData ed = DatabaseManager.getManager().getEventData(announcement.getGuildId(), event.getId()); + if (ed.getImageLink() != null && ImageUtils.validate(ed.getImageLink())) { + em.withImage(ed.getImageLink()); } - if (event.getLocation() != null && !event.getLocation().equalsIgnoreCase("")) { - if (event.getLocation().length() > 300) { - String location = event.getLocation().substring(0, 300).trim() + "... (cont. on Google Cal)"; - em.appendField(MessageManager.getMessage("Embed.Event.Confirm.Location", settings), location, true); - } else { - em.appendField(MessageManager.getMessage("Embed.Event.Confirm.Location", settings), event.getLocation(), true); - } + em.withUrl(event.getHtmlLink()); + + try { + EventColor ec = EventColor.fromNameOrHexOrID(event.getColorId()); + em.withColor(ec.getR(), ec.getG(), ec.getB()); + } catch (Exception e) { + //I dunno, color probably null. + em.withColor(56, 138, 237); } if (!settings.usingSimpleAnnouncements()) { - em.appendField(MessageManager.getMessage("Embed.Announcement.Announce.EventID", settings), event.getId(), false); + em.withFooterText(MessageManager.getMessage("Embed.Announcement.Announce.ID", "%id%", announcement.getAnnouncementId().toString(), settings)); } - if (!announcement.getInfo().equalsIgnoreCase("None") && !announcement.getInfo().equalsIgnoreCase("")) { + + if (announcement.isInfoOnly() && announcement.getInfo() != null && !announcement.getInfo().equalsIgnoreCase("none")) { + //Only send info... em.appendField(MessageManager.getMessage("Embed.Announcement.Announce.Info", settings), announcement.getInfo(), false); + } else { + //Requires all announcement data + if (event.getSummary() != null) { + String summary = event.getSummary(); + if (summary.length() > 250) { + summary = summary.substring(0, 250); + summary = summary + " (continues on Google Calendar View)"; + } + em.appendField(MessageManager.getMessage("Embed.Announcement.Announce.Summary", settings), summary, true); + } + if (event.getDescription() != null) { + String description = event.getDescription(); + if (description.length() > 250) { + description = description.substring(0, 250); + description = description + " (continues on Google Calendar View)"; + } + em.appendField(MessageManager.getMessage("Embed.Announcement.Announce.Description", settings), description, true); + } + if (!settings.usingSimpleAnnouncements()) { + em.appendField(MessageManager.getMessage("Embed.Announcement.Announce.Date", settings), EventMessageFormatter.getHumanReadableDate(event.getStart(), settings, false), true); + em.appendField(MessageManager.getMessage("Embed.Announcement.Announce.Time", settings), EventMessageFormatter.getHumanReadableTime(event.getStart(), settings, false), true); + try { + Calendar service = CalendarAuth.getCalendarService(settings); + String tz = service.calendars().get(data.getCalendarAddress()).execute().getTimeZone(); + em.appendField(MessageManager.getMessage("Embed.Announcement.Announce.TimeZone", settings), tz, true); + } catch (Exception e1) { + em.appendField(MessageManager.getMessage("Embed.Announcement.Announce.TimeZone", settings), "Unknown *Error Occurred", true); + } + } else { + String start = EventMessageFormatter.getHumanReadableDate(event.getStart(), settings, false) + " at " + EventMessageFormatter.getHumanReadableTime(event.getStart(), settings, false); + try { + Calendar service = CalendarAuth.getCalendarService(settings); + String tz = service.calendars().get(data.getCalendarAddress()).execute().getTimeZone(); + start = start + " " + tz; + } catch (Exception e1) { + start = start + " (TZ UNKNOWN/ERROR)"; + } + + em.appendField(MessageManager.getMessage("Embed.Announcement.Announce.Start", settings), start, false); + } + + if (event.getLocation() != null && !event.getLocation().equalsIgnoreCase("")) { + if (event.getLocation().length() > 300) { + String location = event.getLocation().substring(0, 300).trim() + "... (cont. on Google Cal)"; + em.appendField(MessageManager.getMessage("Embed.Event.Confirm.Location", settings), location, true); + } else { + em.appendField(MessageManager.getMessage("Embed.Event.Confirm.Location", settings), event.getLocation(), true); + } + } + + if (!settings.usingSimpleAnnouncements()) { + em.appendField(MessageManager.getMessage("Embed.Announcement.Announce.EventID", settings), event.getId(), false); + } + if (!announcement.getInfo().equalsIgnoreCase("None") && !announcement.getInfo().equalsIgnoreCase("")) { + em.appendField(MessageManager.getMessage("Embed.Announcement.Announce.Info", settings), announcement.getInfo(), false); + } } + + + IChannel channel = null; + + try { + channel = guild.getChannelByID(Long.valueOf(announcement.getAnnouncementChannelId())); + } catch (Exception e) { + Logger.getLogger().exception(null, "An error occurred when looking for announcement channel! | Announcement: " + announcement.getAnnouncementId() + " | TYPE: " + announcement.getAnnouncementType() + " | Guild: " + announcement.getGuildId(), e, AnnouncementMessageFormatter.class, true); + } + + if (channel == null) { + //Channel does not exist or could not be found, automatically delete announcement to prevent issues. + DatabaseManager.getManager().deleteAnnouncement(announcement.getAnnouncementId().toString()); + return; + } + + MessageManager.sendMessageAsync(em.build(), getSubscriberMentions(announcement, guild), channel); } - - - IChannel channel = null; - - try { - channel = guild.getChannelByID(Long.valueOf(announcement.getAnnouncementChannelId())); - } catch (Exception e) { - Logger.getLogger().exception(null, "An error occurred when looking for announcement channel! | Announcement: " + announcement.getAnnouncementId() + " | TYPE: " + announcement.getAnnouncementType() + " | Guild: " + announcement.getGuildId(), e, AnnouncementMessageFormatter.class, true); - } - - if (channel == null) { - //Channel does not exist or could not be found, automatically delete announcement to prevent issues. - DatabaseManager.getManager().deleteAnnouncement(announcement.getAnnouncementId().toString()); - return; - } - - MessageManager.sendMessageAsync(em.build(), getSubscriberMentions(announcement, guild), channel); } static void sendAnnouncementDM(Announcement announcement, Event event, IUser user, CalendarData data, GuildSettings settings) {