mirror of
https://github.com/DreamExposure/DisCal-Discord-Bot.git
synced 2026-02-11 22:18:27 -06:00
Fix message handling when confirming creation/edit.
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user