Fix message handling when confirming creation/edit.

This commit is contained in:
NovaFox161
2019-03-18 19:37:22 -05:00
parent 1050638288
commit 31f2d0d94c
8 changed files with 53 additions and 31 deletions

View File

@@ -108,21 +108,19 @@ public class AnnouncementCreator {
return getAnnouncement(settings.getGuildID());
}
public boolean terminate(Snowflake guildId) {
if (hasAnnouncement(guildId)) {
public void terminate(Snowflake guildId) {
if (hasAnnouncement(guildId))
announcements.remove(getAnnouncement(guildId));
return true;
}
return false;
}
public AnnouncementCreatorResponse confirmAnnouncement(Snowflake guildId) {
if (hasAnnouncement(guildId)) {
Announcement a = getAnnouncement(guildId);
if (a.hasRequiredValues()) {
DatabaseManager.getManager().updateAnnouncement(a);
terminate(guildId);
return new AnnouncementCreatorResponse(true, a);
if (DatabaseManager.getManager().updateAnnouncement(a)) {
terminate(guildId);
return new AnnouncementCreatorResponse(true, a);
}
}
}
return new AnnouncementCreatorResponse(false);
@@ -138,7 +136,7 @@ public class AnnouncementCreator {
*/
public Announcement getAnnouncement(Snowflake guildId) {
for (Announcement a: announcements) {
if (a.getGuildId().asLong() == guildId.asLong()) {
if (a.getGuildId().equals(guildId)) {
a.setLastEdit(System.currentTimeMillis());
return a;
}
@@ -172,7 +170,7 @@ public class AnnouncementCreator {
*/
public boolean hasAnnouncement(Snowflake guildId) {
for (Announcement a: announcements) {
if (a.getGuildId().asLong() == guildId.asLong())
if (a.getGuildId().equals(guildId))
return true;
}
return false;

View File

@@ -141,13 +141,16 @@ public class CalendarCreator {
calendarData.setCalendarId(confirmed.getId());
calendarData.setCalendarAddress(confirmed.getId());
DatabaseManager.getManager().updateCalendar(calendarData);
terminate(settings.getGuildID());
CalendarCreatorResponse response = new CalendarCreatorResponse(true, confirmed);
response.setEdited(false);
response.setCreatorMessage(preCalendar.getCreatorMessage());
terminate(settings.getGuildID());
return response;
} catch (Exception ex) {
Logger.getLogger().exception(e.getMember().get(), "Failed to confirm calendar.", ex, this.getClass());
CalendarCreatorResponse response = new CalendarCreatorResponse(false);
response.setEdited(false);
response.setCreatorMessage(preCalendar.getCreatorMessage());
@@ -169,13 +172,16 @@ public class CalendarCreator {
scope.setType("default");
rule.setScope(scope).setRole("reader");
service.acl().insert(confirmed.getId(), rule).execute();
terminate(settings.getGuildID());
CalendarCreatorResponse response = new CalendarCreatorResponse(true, confirmed);
response.setEdited(true);
response.setCreatorMessage(preCalendar.getCreatorMessage());
terminate(settings.getGuildID());
return response;
} catch (Exception ex) {
Logger.getLogger().exception(e.getMember().get(), "Failed to update calendar.", ex, this.getClass());
CalendarCreatorResponse response = new CalendarCreatorResponse(false);
response.setEdited(true);
response.setCreatorMessage(preCalendar.getCreatorMessage());
@@ -197,7 +203,7 @@ public class CalendarCreator {
*/
public PreCalendar getPreCalendar(Snowflake guildId) {
for (PreCalendar c: calendars) {
if (c.getGuildId().asLong() == guildId.asLong()) {
if (c.getGuildId().equals(guildId)) {
c.setLastEdit(System.currentTimeMillis());
return c;
}
@@ -225,7 +231,7 @@ public class CalendarCreator {
*/
public Boolean hasPreCalendar(Snowflake guildId) {
for (PreCalendar c: calendars) {
if (c.getGuildId().asLong() == guildId.asLong())
if (c.getGuildId().equals(guildId))
return true;
}
return false;

View File

@@ -235,14 +235,18 @@ public class EventCreator {
preEvent.getEventData().setEventEnd(confirmed.getEnd().getDateTime().getValue());
DatabaseManager.getManager().updateEventData(preEvent.getEventData());
}
terminate(settings.getGuildID());
EventCreatorResponse response = new EventCreatorResponse(true, confirmed);
response.setCreatorMessage(getCreatorMessage(settings.getGuildID()));
response.setEdited(false);
terminate(settings.getGuildID());
return response;
} catch (Exception ex) {
Logger.getLogger().exception(e.getMember().get(), "Failed to create event.", ex, this.getClass());
EventCreatorResponse response = new EventCreatorResponse(false);
response.setCreatorMessage(getCreatorMessage(settings.getGuildID()));
response.setEdited(false);
return response;
}
} else {
@@ -254,14 +258,17 @@ public class EventCreator {
preEvent.getEventData().setEventEnd(confirmed.getEnd().getDateTime().getValue());
DatabaseManager.getManager().updateEventData(preEvent.getEventData());
}
terminate(settings.getGuildID());
EventCreatorResponse response = new EventCreatorResponse(true, confirmed);
response.setCreatorMessage(getCreatorMessage(settings.getGuildID()));
response.setEdited(true);
terminate(settings.getGuildID());
return response;
} catch (Exception ex) {
Logger.getLogger().exception(e.getMember().get(), "Failed to update event.", ex, this.getClass());
EventCreatorResponse response = new EventCreatorResponse(false);
response.setCreatorMessage(getCreatorMessage(settings.getGuildID()));
response.setEdited(true);
return response;
}
@@ -281,7 +288,7 @@ public class EventCreator {
*/
public PreEvent getPreEvent(Snowflake guildId) {
for (PreEvent e: events) {
if (e.getGuildId().asLong() == guildId.asLong()) {
if (e.getGuildId().equals(guildId)) {
e.setLastEdit(System.currentTimeMillis());
return e;
}
@@ -309,7 +316,7 @@ public class EventCreator {
*/
public boolean hasPreEvent(Snowflake guildId) {
for (PreEvent e: events) {
if (e.getGuildId().asLong() == guildId.asLong())
if (e.getGuildId().equals(guildId))
return true;
}
return false;

View File

@@ -232,16 +232,16 @@ public class CalendarCommand implements ICommand {
if (response.isEdited()) {
if (response.getCreatorMessage() != null) {
MessageManager.deleteMessage(event);
MessageManager.deleteMessage(CalendarCreator.getCreator().getCreatorMessage(settings.getGuildID()));
CalendarCreator.getCreator().setCreatorMessage(MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Calendar.Confirm.Edit.Success", settings), CalendarMessageFormatter.getCalendarLinkEmbed(response.getCalendar(), settings), event));
MessageManager.deleteMessage(response.getCreatorMessage());
MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Calendar.Confirm.Edit.Success", settings), CalendarMessageFormatter.getCalendarLinkEmbed(response.getCalendar(), settings), event);
} else {
MessageManager.sendMessageAsync(MessageManager.getMessage("Creator.Calendar.Confirm.Edit.Success", settings), CalendarMessageFormatter.getCalendarLinkEmbed(response.getCalendar(), settings), event);
}
} else {
if (response.getCalendar() != null) {
if (response.getCreatorMessage() != null) {
MessageManager.deleteMessage(event);
MessageManager.deleteMessage(CalendarCreator.getCreator().getCreatorMessage(settings.getGuildID()));
CalendarCreator.getCreator().setCreatorMessage(MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Calendar.Confirm.Create.Success", settings), CalendarMessageFormatter.getCalendarLinkEmbed(response.getCalendar(), settings), event));
MessageManager.deleteMessage(response.getCreatorMessage());
MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Calendar.Confirm.Create.Success", settings), CalendarMessageFormatter.getCalendarLinkEmbed(response.getCalendar(), settings), event);
} else {
MessageManager.sendMessageAsync(MessageManager.getMessage("Creator.Calendar.Confirm.Create.Success", settings), CalendarMessageFormatter.getCalendarLinkEmbed(response.getCalendar(), settings), event);
}

View File

@@ -19,7 +19,7 @@ import java.util.Arrays;
class CommandListener {
/**
* Checks for command validity and calls the command executor if valid.
* Checks for command validity and ca lls the command executor if valid.
*
* @param event The event received to check for a command.
*/

View File

@@ -134,7 +134,7 @@ public class DisCalCommand implements ICommand {
spec.setTitle(MessageManager.getMessage("Embed.DisCal.Info.Title", settings));
spec.addField(MessageManager.getMessage("Embed.DisCal.Info.Developer", settings), "DreamExposure", true);
spec.addField(MessageManager.getMessage("Embed.Discal.Info.Version", settings), GlobalConst.version, true);
spec.addField(MessageManager.getMessage("Embed.DisCal.Info.Library", settings), "Discord4J, version 2.10.1", false);
spec.addField(MessageManager.getMessage("Embed.DisCal.Info.Library", settings), "Discord4J, version 3.0.0", false);
spec.addField(MessageManager.getMessage("Embed.DisCal.Info.TotalGuilds", settings), DisCalClient.getClient().getGuilds().count().block() + "", true);
spec.addField(MessageManager.getMessage("Embed.DisCal.Info.TotalCalendars", settings), DatabaseManager.getManager().getCalendarCount() + "", true);
spec.addField(MessageManager.getMessage("Embed.DisCal.Info.TotalAnnouncements", settings), DatabaseManager.getManager().getAnnouncementCount() + "", true);

View File

@@ -424,18 +424,18 @@ public class EventCommand implements ICommand {
EventCreatorResponse response = EventCreator.getCreator().confirmEvent(event, settings);
if (response.isSuccessful()) {
if (!response.isEdited()) {
if (EventCreator.getCreator().hasCreatorMessage(settings.getGuildID())) {
if (response.getCreatorMessage() != null) {
MessageManager.deleteMessage(event);
MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(settings.getGuildID()));
EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Event.Confirm.Create", settings), EventMessageFormatter.getEventConfirmationEmbed(response, settings), event));
MessageManager.deleteMessage(response.getCreatorMessage());
MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Event.Confirm.Create", settings), EventMessageFormatter.getEventConfirmationEmbed(response, settings), event);
} else {
MessageManager.sendMessageAsync(MessageManager.getMessage("Creator.Event.Confirm.Create", settings), EventMessageFormatter.getEventConfirmationEmbed(response, settings), event);
}
} else {
if (EventCreator.getCreator().hasCreatorMessage(settings.getGuildID())) {
if (response.getCreatorMessage() != null) {
MessageManager.deleteMessage(event);
MessageManager.deleteMessage(EventCreator.getCreator().getCreatorMessage(settings.getGuildID()));
EventCreator.getCreator().setCreatorMessage(MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Event.Confirm.Edit", settings), EventMessageFormatter.getEventConfirmationEmbed(response, settings), event));
MessageManager.deleteMessage(response.getCreatorMessage());
MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Event.Confirm.Edit", settings), EventMessageFormatter.getEventConfirmationEmbed(response, settings), event);
} else {
MessageManager.sendMessageAsync(MessageManager.getMessage("Creator.Event.Confirm.Edit", settings), EventMessageFormatter.getEventConfirmationEmbed(response, settings), event);
}

View File

@@ -1,5 +1,7 @@
package org.dreamexposure.discal.core.object.announcement;
import discord4j.core.object.entity.Message;
/**
* Created by Nova Fox on 11/10/17.
* Website: www.cloudcraftgaming.com
@@ -9,6 +11,7 @@ public class AnnouncementCreatorResponse {
private final boolean successful;
private Announcement announcement;
private Message creatorMessage;
/**
* Creates an AnnouncementCreatorResponse.
@@ -50,6 +53,10 @@ public class AnnouncementCreatorResponse {
return announcement;
}
public Message getCreatorMessage() {
return creatorMessage;
}
//Setters
/**
@@ -60,4 +67,8 @@ public class AnnouncementCreatorResponse {
public void setAnnouncement(Announcement _announcement) {
announcement = _announcement;
}
public void setCreatorMessage(Message creatorMessage) {
this.creatorMessage = creatorMessage;
}
}