mirror of
https://github.com/DreamExposure/DisCal-Discord-Bot.git
synced 2026-05-08 10:50:44 -05:00
Back to d4j v2
This commit is contained in:
@@ -1,9 +1,19 @@
|
||||
package org.dreamexposure.discal.client;
|
||||
|
||||
import discord4j.core.DiscordClient;
|
||||
import discord4j.core.DiscordClientBuilder;
|
||||
import org.dreamexposure.discal.client.listeners.discal.CrossTalkEventListener;
|
||||
import org.dreamexposure.discal.client.listeners.discord.ReadyEventListener;
|
||||
import org.dreamexposure.discal.client.message.MessageManager;
|
||||
import org.dreamexposure.discal.client.module.command.*;
|
||||
import org.dreamexposure.discal.client.service.KeepAliveHandler;
|
||||
import org.dreamexposure.discal.core.database.DatabaseManager;
|
||||
import org.dreamexposure.discal.core.logger.Logger;
|
||||
import org.dreamexposure.discal.core.network.google.Authorization;
|
||||
import org.dreamexposure.discal.core.object.BotSettings;
|
||||
import org.dreamexposure.novautils.event.EventManager;
|
||||
import org.dreamexposure.novautils.network.crosstalk.ClientSocketHandler;
|
||||
import sx.blah.discord.api.ClientBuilder;
|
||||
import sx.blah.discord.api.IDiscordClient;
|
||||
import sx.blah.discord.api.events.EventDispatcher;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
@@ -11,7 +21,7 @@ import java.io.IOException;
|
||||
import java.util.Properties;
|
||||
|
||||
public class DisCalClient {
|
||||
private static DiscordClient client;
|
||||
private static IDiscordClient client;
|
||||
|
||||
public static void main(String[] args) throws IOException {
|
||||
//Get settings
|
||||
@@ -25,13 +35,16 @@ public class DisCalClient {
|
||||
//Handle client setup
|
||||
client = createClient();
|
||||
|
||||
/*
|
||||
//Register discord events
|
||||
client.getEventDispatcher().on(ReadyEvent.class).subscribe(ReadyEventListener::handle);
|
||||
EventDispatcher dispatcher = client.getDispatcher();
|
||||
dispatcher.registerListener(new ReadyEventListener());
|
||||
|
||||
//Register discal events
|
||||
EventManager.get().registerEventListener(new CrossTalkEventListener());
|
||||
|
||||
//Login
|
||||
client.login();
|
||||
|
||||
//Register commands
|
||||
CommandExecutor executor = CommandExecutor.getExecutor().enable();
|
||||
executor.registerCommand(new HelpCommand());
|
||||
@@ -62,10 +75,6 @@ public class DisCalClient {
|
||||
ClientSocketHandler.initListener();
|
||||
|
||||
KeepAliveHandler.startKeepAlive(60);
|
||||
*/
|
||||
|
||||
//Login
|
||||
client.login().block();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -73,16 +82,18 @@ public class DisCalClient {
|
||||
*
|
||||
* @return The client if successful, otherwise <code>null</code>.
|
||||
*/
|
||||
private static DiscordClient createClient() {
|
||||
DiscordClientBuilder clientBuilder = new DiscordClientBuilder(BotSettings.TOKEN.get());
|
||||
private static IDiscordClient createClient() {
|
||||
ClientBuilder clientBuilder = new ClientBuilder().withToken(BotSettings.TOKEN.get());
|
||||
//In case of disconnects and shit
|
||||
clientBuilder.setMaxReconnectAttempts(10);
|
||||
clientBuilder.setMaxReconnectAttempts(10);
|
||||
//Handle shard count and index.
|
||||
clientBuilder.setShardCount(Integer.valueOf(BotSettings.SHARD_COUNT.get()));
|
||||
clientBuilder.setShardIndex(Integer.valueOf(BotSettings.SHARD_INDEX.get()));
|
||||
clientBuilder.setShard(Integer.valueOf(BotSettings.SHARD_INDEX.get()), Integer.valueOf(BotSettings.SHARD_COUNT.get()));
|
||||
return clientBuilder.build();
|
||||
}
|
||||
|
||||
//Public stuffs
|
||||
public static DiscordClient getClient() {
|
||||
public static IDiscordClient getClient() {
|
||||
return client;
|
||||
}
|
||||
}
|
||||
+18
-19
@@ -1,8 +1,5 @@
|
||||
package org.dreamexposure.discal.client.announcement;
|
||||
|
||||
import discord4j.core.event.domain.message.MessageCreateEvent;
|
||||
import discord4j.core.object.entity.Message;
|
||||
import discord4j.core.object.util.Snowflake;
|
||||
import org.dreamexposure.discal.client.message.AnnouncementMessageFormatter;
|
||||
import org.dreamexposure.discal.client.message.MessageManager;
|
||||
import org.dreamexposure.discal.core.database.DatabaseManager;
|
||||
@@ -11,6 +8,8 @@ import org.dreamexposure.discal.core.object.announcement.Announcement;
|
||||
import org.dreamexposure.discal.core.object.announcement.AnnouncementCreatorResponse;
|
||||
import org.dreamexposure.discal.core.utils.AnnouncementUtils;
|
||||
import org.dreamexposure.discal.core.utils.PermissionChecker;
|
||||
import sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent;
|
||||
import sx.blah.discord.handle.obj.IMessage;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.UUID;
|
||||
@@ -49,13 +48,13 @@ public class AnnouncementCreator {
|
||||
* @param e The event received upon init.
|
||||
* @return A new Announcement.
|
||||
*/
|
||||
public Announcement init(MessageCreateEvent e, GuildSettings settings) {
|
||||
public Announcement init(MessageReceivedEvent e, GuildSettings settings) {
|
||||
if (!hasAnnouncement(settings.getGuildID())) {
|
||||
Announcement a = new Announcement(settings.getGuildID());
|
||||
a.setAnnouncementChannelId(e.getMessage().getChannelId().asString());
|
||||
a.setAnnouncementChannelId(e.getMessage().getChannel().getStringID());
|
||||
|
||||
if (PermissionChecker.botHasMessageManagePerms(e)) {
|
||||
Message msg = MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Announcement.Create.Init", settings), AnnouncementMessageFormatter.getFormatAnnouncementEmbed(a, settings, e.getGuild().block()), e);
|
||||
IMessage msg = MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Announcement.Create.Init", settings), AnnouncementMessageFormatter.getFormatAnnouncementEmbed(a, settings), e);
|
||||
a.setCreatorMessage(msg);
|
||||
} else {
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("Creator.Notif.MANAGE_MESSAGES", settings), e);
|
||||
@@ -67,7 +66,7 @@ public class AnnouncementCreator {
|
||||
return getAnnouncement(settings.getGuildID());
|
||||
}
|
||||
|
||||
public Announcement init(MessageCreateEvent e, String announcementId, GuildSettings settings) {
|
||||
public Announcement init(MessageReceivedEvent e, String announcementId, GuildSettings settings) {
|
||||
if (!hasAnnouncement(settings.getGuildID()) && AnnouncementUtils.announcementExists(announcementId, settings.getGuildID())) {
|
||||
Announcement toCopy = DatabaseManager.getManager().getAnnouncement(UUID.fromString(announcementId), settings.getGuildID());
|
||||
|
||||
@@ -75,7 +74,7 @@ public class AnnouncementCreator {
|
||||
Announcement a = new Announcement(toCopy);
|
||||
|
||||
if (PermissionChecker.botHasMessageManagePerms(e)) {
|
||||
Message msg = MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Announcement.Copy.Success", settings), AnnouncementMessageFormatter.getFormatAnnouncementEmbed(a, settings, e.getGuild().block()), e);
|
||||
IMessage msg = MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Announcement.Copy.Success", settings), AnnouncementMessageFormatter.getFormatAnnouncementEmbed(a, settings), e);
|
||||
a.setCreatorMessage(msg);
|
||||
} else {
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("Creator.Notif.MANAGE_MESSAGES", settings), e);
|
||||
@@ -87,7 +86,7 @@ public class AnnouncementCreator {
|
||||
return getAnnouncement(settings.getGuildID());
|
||||
}
|
||||
|
||||
public Announcement edit(MessageCreateEvent e, String announcementId, GuildSettings settings) {
|
||||
public Announcement edit(MessageReceivedEvent e, String announcementId, GuildSettings settings) {
|
||||
if (!hasAnnouncement(settings.getGuildID()) && AnnouncementUtils.announcementExists(announcementId, settings.getGuildID())) {
|
||||
Announcement edit = DatabaseManager.getManager().getAnnouncement(UUID.fromString(announcementId), settings.getGuildID());
|
||||
|
||||
@@ -96,7 +95,7 @@ public class AnnouncementCreator {
|
||||
a.setEditing(true);
|
||||
|
||||
if (PermissionChecker.botHasMessageManagePerms(e)) {
|
||||
Message msg = MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Announcement.Edit.Init", settings), AnnouncementMessageFormatter.getFormatAnnouncementEmbed(a, settings, e.getGuild().block()), e);
|
||||
IMessage msg = MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Announcement.Edit.Init", settings), AnnouncementMessageFormatter.getFormatAnnouncementEmbed(a, settings), e);
|
||||
a.setCreatorMessage(msg);
|
||||
} else {
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("Creator.Notif.MANAGE_MESSAGES", settings), e);
|
||||
@@ -108,7 +107,7 @@ public class AnnouncementCreator {
|
||||
return getAnnouncement(settings.getGuildID());
|
||||
}
|
||||
|
||||
public boolean terminate(Snowflake guildId) {
|
||||
public boolean terminate(long guildId) {
|
||||
if (hasAnnouncement(guildId)) {
|
||||
announcements.remove(getAnnouncement(guildId));
|
||||
return true;
|
||||
@@ -116,7 +115,7 @@ public class AnnouncementCreator {
|
||||
return false;
|
||||
}
|
||||
|
||||
public AnnouncementCreatorResponse confirmAnnouncement(Snowflake guildId) {
|
||||
public AnnouncementCreatorResponse confirmAnnouncement(long guildId) {
|
||||
if (hasAnnouncement(guildId)) {
|
||||
Announcement a = getAnnouncement(guildId);
|
||||
if (a.hasRequiredValues()) {
|
||||
@@ -136,7 +135,7 @@ public class AnnouncementCreator {
|
||||
* @param guildId The ID of the guild
|
||||
* @return The Announcement in the creator for the guild.
|
||||
*/
|
||||
public Announcement getAnnouncement(Snowflake guildId) {
|
||||
public Announcement getAnnouncement(long guildId) {
|
||||
for (Announcement a: announcements) {
|
||||
if (a.getGuildId() == guildId) {
|
||||
a.setLastEdit(System.currentTimeMillis());
|
||||
@@ -146,7 +145,7 @@ public class AnnouncementCreator {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Message getCreatorMessage(Snowflake guildId) {
|
||||
public IMessage getCreatorMessage(long guildId) {
|
||||
if (hasAnnouncement(guildId))
|
||||
return getAnnouncement(guildId).getCreatorMessage();
|
||||
return null;
|
||||
@@ -157,9 +156,9 @@ public class AnnouncementCreator {
|
||||
}
|
||||
|
||||
//Setters
|
||||
public void setCreatorMessage(Message message) {
|
||||
if (message != null && hasCreatorMessage(message.getGuild().block().getId()))
|
||||
getAnnouncement(message.getGuild().block().getId()).setCreatorMessage(message);
|
||||
public void setCreatorMessage(IMessage message) {
|
||||
if (message != null && hasCreatorMessage(message.getGuild().getLongID()))
|
||||
getAnnouncement(message.getGuild().getLongID()).setCreatorMessage(message);
|
||||
}
|
||||
|
||||
//Booleans/Checkers
|
||||
@@ -170,7 +169,7 @@ public class AnnouncementCreator {
|
||||
* @param guildId The ID of the guild.
|
||||
* @return <code>true</code> if active, else <code>false</code>.
|
||||
*/
|
||||
public boolean hasAnnouncement(Snowflake guildId) {
|
||||
public boolean hasAnnouncement(long guildId) {
|
||||
for (Announcement a: announcements) {
|
||||
if (a.getGuildId() == guildId)
|
||||
return true;
|
||||
@@ -178,7 +177,7 @@ public class AnnouncementCreator {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean hasCreatorMessage(Snowflake guildId) {
|
||||
public boolean hasCreatorMessage(long guildId) {
|
||||
return hasAnnouncement(guildId) && getAnnouncement(guildId).getCreatorMessage() != null;
|
||||
}
|
||||
}
|
||||
+18
-19
@@ -2,9 +2,6 @@ package org.dreamexposure.discal.client.calendar;
|
||||
|
||||
import com.google.api.services.calendar.model.AclRule;
|
||||
import com.google.api.services.calendar.model.Calendar;
|
||||
import discord4j.core.event.domain.message.MessageCreateEvent;
|
||||
import discord4j.core.object.entity.Message;
|
||||
import discord4j.core.object.util.Snowflake;
|
||||
import org.dreamexposure.discal.client.message.CalendarMessageFormatter;
|
||||
import org.dreamexposure.discal.client.message.MessageManager;
|
||||
import org.dreamexposure.discal.core.calendar.CalendarAuth;
|
||||
@@ -15,6 +12,8 @@ import org.dreamexposure.discal.core.object.calendar.CalendarCreatorResponse;
|
||||
import org.dreamexposure.discal.core.object.calendar.CalendarData;
|
||||
import org.dreamexposure.discal.core.object.calendar.PreCalendar;
|
||||
import org.dreamexposure.discal.core.utils.PermissionChecker;
|
||||
import sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent;
|
||||
import sx.blah.discord.handle.obj.IMessage;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
@@ -52,13 +51,13 @@ public class CalendarCreator {
|
||||
* @param calendarName The name of the calendar to create.
|
||||
* @return The PreCalendar object created.
|
||||
*/
|
||||
public PreCalendar init(MessageCreateEvent e, String calendarName, GuildSettings settings, boolean handleCreatorMessage) {
|
||||
public PreCalendar init(MessageReceivedEvent e, String calendarName, GuildSettings settings, boolean handleCreatorMessage) {
|
||||
if (!hasPreCalendar(settings.getGuildID())) {
|
||||
PreCalendar calendar = new PreCalendar(settings.getGuildID(), calendarName);
|
||||
|
||||
if (handleCreatorMessage) {
|
||||
if (PermissionChecker.botHasMessageManagePerms(e)) {
|
||||
Message msg = MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Calendar.Create.Init", settings), CalendarMessageFormatter.getPreCalendarEmbed(calendar, settings), e);
|
||||
IMessage msg = MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Calendar.Create.Init", settings), CalendarMessageFormatter.getPreCalendarEmbed(calendar, settings), e);
|
||||
calendar.setCreatorMessage(msg);
|
||||
} else {
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("Creator.Notif.MANAGE_MESSAGES", settings), e);
|
||||
@@ -71,7 +70,7 @@ public class CalendarCreator {
|
||||
}
|
||||
|
||||
@SuppressWarnings("SameParameterValue")
|
||||
public PreCalendar edit(MessageCreateEvent event, GuildSettings settings, boolean handleCreatorMessage) {
|
||||
public PreCalendar edit(MessageReceivedEvent event, GuildSettings settings, boolean handleCreatorMessage) {
|
||||
if (!hasPreCalendar(settings.getGuildID())) {
|
||||
//TODO: Support multiple calendars
|
||||
CalendarData data = DatabaseManager.getManager().getMainCalendar(settings.getGuildID());
|
||||
@@ -87,7 +86,7 @@ public class CalendarCreator {
|
||||
|
||||
if (handleCreatorMessage) {
|
||||
if (PermissionChecker.botHasMessageManagePerms(event)) {
|
||||
Message msg = MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Calendar.Edit.Init", settings), CalendarMessageFormatter.getPreCalendarEmbed(preCalendar, settings), event);
|
||||
IMessage msg = MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Calendar.Edit.Init", settings), CalendarMessageFormatter.getPreCalendarEmbed(preCalendar, settings), event);
|
||||
preCalendar.setCreatorMessage(msg);
|
||||
} else {
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("Creator.Notif.MANAGE_MESSAGES", settings), event);
|
||||
@@ -97,7 +96,7 @@ public class CalendarCreator {
|
||||
calendars.add(preCalendar);
|
||||
return preCalendar;
|
||||
} catch (Exception e) {
|
||||
Logger.getLogger().exception(event.getMessage().getAuthor().block(), "Failed to init calendar editor", e, this.getClass());
|
||||
Logger.getLogger().exception(event.getAuthor(), "Failed to init calendar editor", e, this.getClass());
|
||||
return null;
|
||||
}
|
||||
} else {
|
||||
@@ -105,7 +104,7 @@ public class CalendarCreator {
|
||||
}
|
||||
}
|
||||
|
||||
public boolean terminate(Snowflake guildId) {
|
||||
public boolean terminate(long guildId) {
|
||||
if (hasPreCalendar(guildId)) {
|
||||
calendars.remove(getPreCalendar(guildId));
|
||||
return true;
|
||||
@@ -119,7 +118,7 @@ public class CalendarCreator {
|
||||
* @param e The event received upon confirmation.
|
||||
* @return A CalendarCreatorResponse Object with detailed info about the confirmation.
|
||||
*/
|
||||
public CalendarCreatorResponse confirmCalendar(MessageCreateEvent e, GuildSettings settings) {
|
||||
public CalendarCreatorResponse confirmCalendar(MessageReceivedEvent e, GuildSettings settings) {
|
||||
if (hasPreCalendar(settings.getGuildID())) {
|
||||
PreCalendar preCalendar = getPreCalendar(settings.getGuildID());
|
||||
if (preCalendar.hasRequiredValues()) {
|
||||
@@ -147,7 +146,7 @@ public class CalendarCreator {
|
||||
response.setCreatorMessage(preCalendar.getCreatorMessage());
|
||||
return response;
|
||||
} catch (Exception ex) {
|
||||
Logger.getLogger().exception(e.getMessage().getAuthor().block(), "Failed to confirm calendar.", ex, this.getClass());
|
||||
Logger.getLogger().exception(e.getAuthor(), "Failed to confirm calendar.", ex, this.getClass());
|
||||
CalendarCreatorResponse response = new CalendarCreatorResponse(false);
|
||||
response.setEdited(false);
|
||||
response.setCreatorMessage(preCalendar.getCreatorMessage());
|
||||
@@ -175,7 +174,7 @@ public class CalendarCreator {
|
||||
response.setCreatorMessage(preCalendar.getCreatorMessage());
|
||||
return response;
|
||||
} catch (Exception ex) {
|
||||
Logger.getLogger().exception(e.getMessage().getAuthor().block(), "Failed to update calendar.", ex, this.getClass());
|
||||
Logger.getLogger().exception(e.getAuthor(), "Failed to update calendar.", ex, this.getClass());
|
||||
CalendarCreatorResponse response = new CalendarCreatorResponse(false);
|
||||
response.setEdited(true);
|
||||
response.setCreatorMessage(preCalendar.getCreatorMessage());
|
||||
@@ -195,7 +194,7 @@ public class CalendarCreator {
|
||||
* @param guildId The ID of the guild whose PreCalendar is to be returned.
|
||||
* @return The PreCalendar belonging to the guild.
|
||||
*/
|
||||
public PreCalendar getPreCalendar(Snowflake guildId) {
|
||||
public PreCalendar getPreCalendar(long guildId) {
|
||||
for (PreCalendar c: calendars) {
|
||||
if (c.getGuildId() == guildId) {
|
||||
c.setLastEdit(System.currentTimeMillis());
|
||||
@@ -205,7 +204,7 @@ public class CalendarCreator {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Message getCreatorMessage(Snowflake guildId) {
|
||||
public IMessage getCreatorMessage(long guildId) {
|
||||
if (hasPreCalendar(guildId))
|
||||
return getPreCalendar(guildId).getCreatorMessage();
|
||||
return null;
|
||||
@@ -223,7 +222,7 @@ public class CalendarCreator {
|
||||
* @param guildId The ID of the guild to check for.
|
||||
* @return <code>true</code> if a PreCalendar exists, else <code>false</code>.
|
||||
*/
|
||||
public Boolean hasPreCalendar(Snowflake guildId) {
|
||||
public Boolean hasPreCalendar(long guildId) {
|
||||
for (PreCalendar c: calendars) {
|
||||
if (c.getGuildId() == guildId)
|
||||
return true;
|
||||
@@ -231,13 +230,13 @@ public class CalendarCreator {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean hasCreatorMessage(Snowflake guildId) {
|
||||
public boolean hasCreatorMessage(long guildId) {
|
||||
return hasPreCalendar(guildId) && getPreCalendar(guildId).getCreatorMessage() != null;
|
||||
}
|
||||
|
||||
//Setters
|
||||
public void setCreatorMessage(Message msg) {
|
||||
if (msg != null && hasPreCalendar(msg.getGuild().block().getId()))
|
||||
getPreCalendar(msg.getGuild().block().getId()).setCreatorMessage(msg);
|
||||
public void setCreatorMessage(IMessage msg) {
|
||||
if (msg != null && hasPreCalendar(msg.getGuild().getLongID()))
|
||||
getPreCalendar(msg.getGuild().getLongID()).setCreatorMessage(msg);
|
||||
}
|
||||
}
|
||||
@@ -2,9 +2,6 @@ package org.dreamexposure.discal.client.event;
|
||||
|
||||
import com.google.api.services.calendar.Calendar;
|
||||
import com.google.api.services.calendar.model.Event;
|
||||
import discord4j.core.event.domain.message.MessageCreateEvent;
|
||||
import discord4j.core.object.entity.Message;
|
||||
import discord4j.core.object.util.Snowflake;
|
||||
import org.dreamexposure.discal.client.message.EventMessageFormatter;
|
||||
import org.dreamexposure.discal.client.message.MessageManager;
|
||||
import org.dreamexposure.discal.core.calendar.CalendarAuth;
|
||||
@@ -17,6 +14,8 @@ import org.dreamexposure.discal.core.object.event.EventCreatorResponse;
|
||||
import org.dreamexposure.discal.core.object.event.PreEvent;
|
||||
import org.dreamexposure.discal.core.utils.EventUtils;
|
||||
import org.dreamexposure.discal.core.utils.PermissionChecker;
|
||||
import sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent;
|
||||
import sx.blah.discord.handle.obj.IMessage;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
@@ -55,7 +54,7 @@ public class EventCreator {
|
||||
* @param e The event received upon initialization.
|
||||
* @return The PreEvent for the guild.
|
||||
*/
|
||||
public PreEvent init(MessageCreateEvent e, GuildSettings settings, boolean handleMessage) {
|
||||
public PreEvent init(MessageReceivedEvent e, GuildSettings settings, boolean handleMessage) {
|
||||
if (!hasPreEvent(settings.getGuildID())) {
|
||||
PreEvent event = new PreEvent(settings.getGuildID());
|
||||
try {
|
||||
@@ -67,7 +66,7 @@ public class EventCreator {
|
||||
}
|
||||
if (handleMessage) {
|
||||
if (PermissionChecker.botHasMessageManagePerms(e)) {
|
||||
Message message = MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Event.Create.Init", settings), EventMessageFormatter.getPreEventEmbed(event, settings), e);
|
||||
IMessage message = MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Event.Create.Init", settings), EventMessageFormatter.getPreEventEmbed(event, settings), e);
|
||||
event.setCreatorMessage(message);
|
||||
MessageManager.deleteMessage(e);
|
||||
} else {
|
||||
@@ -81,7 +80,7 @@ public class EventCreator {
|
||||
return getPreEvent(settings.getGuildID());
|
||||
}
|
||||
|
||||
public PreEvent init(MessageCreateEvent e, GuildSettings settings, String summary, boolean handleMessage) {
|
||||
public PreEvent init(MessageReceivedEvent e, GuildSettings settings, String summary, boolean handleMessage) {
|
||||
if (!hasPreEvent(settings.getGuildID())) {
|
||||
PreEvent event = new PreEvent(settings.getGuildID());
|
||||
event.setSummary(summary);
|
||||
@@ -95,7 +94,7 @@ public class EventCreator {
|
||||
}
|
||||
if (handleMessage) {
|
||||
if (PermissionChecker.botHasMessageManagePerms(e)) {
|
||||
Message message = MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Event.Create.Init", settings), EventMessageFormatter.getPreEventEmbed(event, settings), e);
|
||||
IMessage message = MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Event.Create.Init", settings), EventMessageFormatter.getPreEventEmbed(event, settings), e);
|
||||
event.setCreatorMessage(message);
|
||||
MessageManager.deleteMessage(e);
|
||||
} else {
|
||||
@@ -110,7 +109,7 @@ public class EventCreator {
|
||||
}
|
||||
|
||||
//Copy event
|
||||
public PreEvent init(MessageCreateEvent e, String eventId, GuildSettings settings, boolean handleMessage) {
|
||||
public PreEvent init(MessageReceivedEvent e, String eventId, GuildSettings settings, boolean handleMessage) {
|
||||
if (!hasPreEvent(settings.getGuildID())) {
|
||||
//TODO: Handle multiple calendars...
|
||||
try {
|
||||
@@ -129,7 +128,7 @@ public class EventCreator {
|
||||
|
||||
if (handleMessage) {
|
||||
if (PermissionChecker.botHasMessageManagePerms(e)) {
|
||||
Message message = MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Event.Copy.Init", settings), EventMessageFormatter.getPreEventEmbed(event, settings), e);
|
||||
IMessage message = MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Event.Copy.Init", settings), EventMessageFormatter.getPreEventEmbed(event, settings), e);
|
||||
event.setCreatorMessage(message);
|
||||
MessageManager.deleteMessage(e);
|
||||
} else {
|
||||
@@ -147,7 +146,7 @@ public class EventCreator {
|
||||
return getPreEvent(settings.getGuildID());
|
||||
}
|
||||
|
||||
public PreEvent edit(MessageCreateEvent e, String eventId, GuildSettings settings, boolean handleMessage) {
|
||||
public PreEvent edit(MessageReceivedEvent e, String eventId, GuildSettings settings, boolean handleMessage) {
|
||||
if (!hasPreEvent(settings.getGuildID())) {
|
||||
//TODO: Handle multiple calendars...
|
||||
try {
|
||||
@@ -167,7 +166,7 @@ public class EventCreator {
|
||||
|
||||
if (handleMessage) {
|
||||
if (PermissionChecker.botHasMessageManagePerms(e)) {
|
||||
Message message = MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Event.Edit.Init", settings), EventMessageFormatter.getPreEventEmbed(event, settings), e);
|
||||
IMessage message = MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Event.Edit.Init", settings), EventMessageFormatter.getPreEventEmbed(event, settings), e);
|
||||
event.setCreatorMessage(message);
|
||||
MessageManager.deleteMessage(e);
|
||||
} else {
|
||||
@@ -185,7 +184,7 @@ public class EventCreator {
|
||||
return getPreEvent(settings.getGuildID());
|
||||
}
|
||||
|
||||
public boolean terminate(Snowflake guildId) {
|
||||
public boolean terminate(long guildId) {
|
||||
if (hasPreEvent(guildId)) {
|
||||
events.remove(getPreEvent(guildId));
|
||||
return true;
|
||||
@@ -199,7 +198,7 @@ public class EventCreator {
|
||||
* @param e The event received upon confirmation.
|
||||
* @return The response containing detailed info about the confirmation.
|
||||
*/
|
||||
public EventCreatorResponse confirmEvent(MessageCreateEvent e, GuildSettings settings) {
|
||||
public EventCreatorResponse confirmEvent(MessageReceivedEvent e, GuildSettings settings) {
|
||||
if (hasPreEvent(settings.getGuildID())) {
|
||||
PreEvent preEvent = getPreEvent(settings.getGuildID());
|
||||
if (preEvent.hasRequiredValues()) {
|
||||
@@ -240,7 +239,7 @@ public class EventCreator {
|
||||
response.setEdited(false);
|
||||
return response;
|
||||
} catch (Exception ex) {
|
||||
Logger.getLogger().exception(e.getMember().get(), "Failed to create event.", ex, this.getClass());
|
||||
Logger.getLogger().exception(e.getAuthor(), "Failed to create event.", ex, this.getClass());
|
||||
EventCreatorResponse response = new EventCreatorResponse(false);
|
||||
response.setEdited(false);
|
||||
return response;
|
||||
@@ -260,7 +259,7 @@ public class EventCreator {
|
||||
response.setEdited(true);
|
||||
return response;
|
||||
} catch (Exception ex) {
|
||||
Logger.getLogger().exception(e.getMember().get(), "Failed to update event.", ex, this.getClass());
|
||||
Logger.getLogger().exception(e.getAuthor(), "Failed to update event.", ex, this.getClass());
|
||||
EventCreatorResponse response = new EventCreatorResponse(false);
|
||||
response.setEdited(true);
|
||||
return response;
|
||||
@@ -279,7 +278,7 @@ public class EventCreator {
|
||||
* @param guildId The ID of the guild.
|
||||
* @return The PreEvent belonging to the guild.
|
||||
*/
|
||||
public PreEvent getPreEvent(Snowflake guildId) {
|
||||
public PreEvent getPreEvent(long guildId) {
|
||||
for (PreEvent e: events) {
|
||||
if (e.getGuildId() == guildId) {
|
||||
e.setLastEdit(System.currentTimeMillis());
|
||||
@@ -289,7 +288,7 @@ public class EventCreator {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Message getCreatorMessage(Snowflake guildId) {
|
||||
public IMessage getCreatorMessage(long guildId) {
|
||||
if (hasPreEvent(guildId))
|
||||
return getPreEvent(guildId).getCreatorMessage();
|
||||
return null;
|
||||
@@ -307,7 +306,7 @@ public class EventCreator {
|
||||
* @param guildId The ID of the guild.
|
||||
* @return <code>true</code> if a PreEvent exists, otherwise <code>false</code>.
|
||||
*/
|
||||
public boolean hasPreEvent(Snowflake guildId) {
|
||||
public boolean hasPreEvent(long guildId) {
|
||||
for (PreEvent e: events) {
|
||||
if (e.getGuildId() == guildId)
|
||||
return true;
|
||||
@@ -315,13 +314,13 @@ public class EventCreator {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean hasCreatorMessage(Snowflake guildId) {
|
||||
public boolean hasCreatorMessage(long guildId) {
|
||||
return hasPreEvent(guildId) && getPreEvent(guildId).getCreatorMessage() != null;
|
||||
}
|
||||
|
||||
//Setters
|
||||
public void setCreatorMessage(Message msg) {
|
||||
if (msg != null && hasPreEvent(msg.getGuild().block().getId()))
|
||||
getPreEvent(msg.getGuild().block().getId()).setCreatorMessage(msg);
|
||||
public void setCreatorMessage(IMessage msg) {
|
||||
if (msg != null && hasPreEvent(msg.getGuild().getLongID()))
|
||||
getPreEvent(msg.getGuild().getLongID()).setCreatorMessage(msg);
|
||||
}
|
||||
}
|
||||
+11
-12
@@ -1,8 +1,5 @@
|
||||
package org.dreamexposure.discal.client.listeners.discal;
|
||||
|
||||
import discord4j.core.object.entity.Guild;
|
||||
import discord4j.core.object.entity.Member;
|
||||
import discord4j.core.object.util.Snowflake;
|
||||
import org.dreamexposure.discal.client.DisCalClient;
|
||||
import org.dreamexposure.discal.client.message.MessageManager;
|
||||
import org.dreamexposure.discal.core.database.DatabaseManager;
|
||||
@@ -18,6 +15,8 @@ import org.dreamexposure.novautils.events.network.crosstalk.CrossTalkReceiveEven
|
||||
import org.dreamexposure.novautils.network.crosstalk.ClientSocketHandler;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
import sx.blah.discord.handle.obj.IGuild;
|
||||
import sx.blah.discord.handle.obj.IUser;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -33,10 +32,10 @@ import java.util.List;
|
||||
public class CrossTalkEventListener implements EventListener {
|
||||
@SuppressWarnings("unused")
|
||||
public void handle(CrossTalkReceiveEvent event) {
|
||||
Guild g = null;
|
||||
IGuild g = null;
|
||||
//Check if this even applies to us!
|
||||
if (event.getData().has("Guild-Id")) {
|
||||
g = DisCalClient.getClient().getGuildById(Snowflake.of(event.getData().getString("Guild-Id"))).block();
|
||||
g = DisCalClient.getClient().getGuildByID(Long.valueOf(event.getData().getString("Guild-Id")));
|
||||
if (g == null) return; //Guild not connected to this client, correct client will handle this.
|
||||
}
|
||||
if (event.getData().getString("Reason").equals(CrossTalkReason.UPDATE.name())) {
|
||||
@@ -44,7 +43,7 @@ public class CrossTalkEventListener implements EventListener {
|
||||
if (event.getData().getString("Realm").equals(DisCalRealm.BOT_SETTINGS.name())) {
|
||||
//Handle bot settings updates...
|
||||
if (event.getData().has("Bot-Nick")) {
|
||||
g.changeSelfNickname(event.getData().getString("Bot-Nick")).subscribe();
|
||||
g.setUserNickname(g.getClient().getOurUser(), event.getData().getString("Bot-Nick"));
|
||||
}
|
||||
}
|
||||
} else if (event.getData().getString("Reason").equals(CrossTalkReason.HANDLE.name())) {
|
||||
@@ -53,22 +52,22 @@ public class CrossTalkEventListener implements EventListener {
|
||||
MessageManager.reloadLangs();
|
||||
} else if (!event.getData().getString("Realm").equals(DisCalRealm.GUILD_LEAVE.name())) {
|
||||
//Leave guild...
|
||||
g.leave().subscribe();
|
||||
g.leave();
|
||||
} else if (!event.getData().getString("Realm").equals(DisCalRealm.GUILD_MAX_CALENDARS.name())) {
|
||||
//Change max calendar limit..
|
||||
GuildSettings settings = DatabaseManager.getManager().getSettings(g.getId());
|
||||
GuildSettings settings = DatabaseManager.getManager().getSettings(g.getLongID());
|
||||
|
||||
settings.setMaxCalendars(event.getData().getInt("Max-Calendars"));
|
||||
DatabaseManager.getManager().updateSettings(settings);
|
||||
} else if (!event.getData().getString("Realm").equals(DisCalRealm.GUILD_IS_DEV.name())) {
|
||||
//Change if the guild is a dev guild or not
|
||||
GuildSettings settings = DatabaseManager.getManager().getSettings(g.getId());
|
||||
GuildSettings settings = DatabaseManager.getManager().getSettings(g.getLongID());
|
||||
|
||||
settings.setDevGuild(!settings.isDevGuild());
|
||||
DatabaseManager.getManager().updateSettings(settings);
|
||||
} else if (!event.getData().getString("Realm").equals(DisCalRealm.GUILD_IS_PATRON.name())) {
|
||||
//Change if the guild is a patron guild or not
|
||||
GuildSettings settings = DatabaseManager.getManager().getSettings(g.getId());
|
||||
GuildSettings settings = DatabaseManager.getManager().getSettings(g.getLongID());
|
||||
|
||||
settings.setPatronGuild(!settings.isPatronGuild());
|
||||
DatabaseManager.getManager().updateSettings(settings);
|
||||
@@ -79,12 +78,12 @@ public class CrossTalkEventListener implements EventListener {
|
||||
if (event.getData().getString("Realm").equals(DisCalRealm.WEBSITE_DASHBOARD_GUILD.name())) {
|
||||
//Requires us to grab data for guild and return a response containing the WebGuild with needed info...
|
||||
String memId = event.getData().getString("Member-Id");
|
||||
Member member = g.getMembers().filter(m -> m.getId().asString().equals(memId)).blockLast();
|
||||
IUser member = g.getUserByID(Long.valueOf(memId));
|
||||
|
||||
JSONObject newData = new JSONObject();
|
||||
newData.put("Guild", new WebGuild().fromGuild(g));
|
||||
newData.put("Sufficient-Role", PermissionChecker.hasSufficientRole(g, member));
|
||||
newData.put("Manager-Server", PermissionChecker.hasManageServerRole(member));
|
||||
newData.put("Manager-Server", PermissionChecker.hasManageServerRole(g, member));
|
||||
|
||||
ClientSocketHandler.sendToServer(Integer.valueOf(BotSettings.SHARD_INDEX.get()), newData, BotSettings.CROSSTALK_SERVER_HOST.get(), event.getOneTimeResponsePort());
|
||||
} else if (event.getData().getString("Realm").equals(DisCalRealm.WEBSITE_DASHBOARD_DEFAULTS.name())) {
|
||||
|
||||
+6
-4
@@ -1,10 +1,11 @@
|
||||
package org.dreamexposure.discal.client.listeners.discord;
|
||||
|
||||
import discord4j.core.event.domain.lifecycle.ReadyEvent;
|
||||
import org.dreamexposure.discal.client.message.MessageManager;
|
||||
import org.dreamexposure.discal.client.module.announcement.AnnouncementThreader;
|
||||
import org.dreamexposure.discal.client.service.TimeManager;
|
||||
import org.dreamexposure.discal.core.logger.Logger;
|
||||
import sx.blah.discord.api.events.EventSubscriber;
|
||||
import sx.blah.discord.handle.impl.events.ReadyEvent;
|
||||
|
||||
/**
|
||||
* @author NovaFox161
|
||||
@@ -15,19 +16,20 @@ import org.dreamexposure.discal.core.logger.Logger;
|
||||
* Contact: nova@dreamexposure.org
|
||||
*/
|
||||
public class ReadyEventListener {
|
||||
public static void handle(ReadyEvent event) {
|
||||
@EventSubscriber
|
||||
public void onReadyEvent(ReadyEvent event) {
|
||||
Logger.getLogger().debug("Ready!");
|
||||
try {
|
||||
TimeManager.getManager().init();
|
||||
|
||||
//START ANNOUNCEMENT THREADER HERE
|
||||
//Lets test the new announcement multi-threader...
|
||||
AnnouncementThreader.getThreader().init();
|
||||
|
||||
MessageManager.reloadLangs();
|
||||
|
||||
Logger.getLogger().debug("[ReadyEvent] Connection success!");
|
||||
} catch (Exception e) {
|
||||
Logger.getLogger().exception(null, "BAD!!!", e, ReadyEventListener.class);
|
||||
Logger.getLogger().exception(null, "BAD!!!", e, this.getClass());
|
||||
}
|
||||
}
|
||||
}
|
||||
+110
-103
@@ -2,13 +2,6 @@ package org.dreamexposure.discal.client.message;
|
||||
|
||||
import com.google.api.services.calendar.Calendar;
|
||||
import com.google.api.services.calendar.model.Event;
|
||||
import discord4j.core.object.entity.Guild;
|
||||
import discord4j.core.object.entity.Role;
|
||||
import discord4j.core.object.entity.TextChannel;
|
||||
import discord4j.core.object.entity.User;
|
||||
import discord4j.core.object.util.Image;
|
||||
import discord4j.core.object.util.Snowflake;
|
||||
import discord4j.core.spec.EmbedCreateSpec;
|
||||
import org.dreamexposure.discal.client.DisCalClient;
|
||||
import org.dreamexposure.discal.core.calendar.CalendarAuth;
|
||||
import org.dreamexposure.discal.core.database.DatabaseManager;
|
||||
@@ -22,13 +15,19 @@ import org.dreamexposure.discal.core.object.event.EventData;
|
||||
import org.dreamexposure.discal.core.utils.ChannelUtils;
|
||||
import org.dreamexposure.discal.core.utils.GlobalConst;
|
||||
import org.dreamexposure.discal.core.utils.ImageUtils;
|
||||
import sx.blah.discord.api.internal.json.objects.EmbedObject;
|
||||
import sx.blah.discord.handle.obj.IChannel;
|
||||
import sx.blah.discord.handle.obj.IGuild;
|
||||
import sx.blah.discord.handle.obj.IRole;
|
||||
import sx.blah.discord.handle.obj.IUser;
|
||||
import sx.blah.discord.util.EmbedBuilder;
|
||||
|
||||
/**
|
||||
* Created by Nova Fox on 3/4/2017.
|
||||
* Website: www.cloudcraftgaming.com
|
||||
* For Project: DisCal
|
||||
*/
|
||||
@SuppressWarnings({"Duplicates", "OptionalGetWithoutIsPresent", "ConstantConditions"})
|
||||
@SuppressWarnings({"Duplicates"})
|
||||
public class AnnouncementMessageFormatter {
|
||||
|
||||
/**
|
||||
@@ -37,47 +36,49 @@ public class AnnouncementMessageFormatter {
|
||||
* @param a The Announcement to embed.
|
||||
* @return The EmbedObject for the Announcement.
|
||||
*/
|
||||
public static EmbedCreateSpec getFormatAnnouncementEmbed(Announcement a, GuildSettings settings, Guild guild) {
|
||||
EmbedCreateSpec em = new EmbedCreateSpec();
|
||||
em.setAuthor("DisCal", GlobalConst.discalSite, GlobalConst.iconUrl);
|
||||
em.setTitle(MessageManager.getMessage("Embed.Announcement.Info.Title", settings));
|
||||
public static EmbedObject getFormatAnnouncementEmbed(Announcement a, GuildSettings settings) {
|
||||
EmbedBuilder em = new EmbedBuilder();
|
||||
em.withAuthorIcon(GlobalConst.discalSite);
|
||||
em.withAuthorName("DisCal");
|
||||
em.withAuthorUrl(GlobalConst.discalSite);
|
||||
em.withTitle(MessageManager.getMessage("Embed.Announcement.Info.Title", settings));
|
||||
try {
|
||||
em.addField(MessageManager.getMessage("Embed.Announcement.Info.ID", settings), a.getAnnouncementId().toString(), true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Announcement.Info.ID", settings), a.getAnnouncementId().toString(), true);
|
||||
} catch (NullPointerException e) {
|
||||
em.addField(MessageManager.getMessage("Embed.Announcement.Info.ID", settings), "ID IS NULL???", true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Announcement.Info.ID", settings), "ID IS NULL???", true);
|
||||
}
|
||||
|
||||
em.addField(MessageManager.getMessage("Embed.Announcement.Info.Type", settings), a.getAnnouncementType().name(), true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Announcement.Info.Type", settings), a.getAnnouncementType().name(), true);
|
||||
|
||||
|
||||
if (a.getAnnouncementType().equals(AnnouncementType.SPECIFIC)) {
|
||||
em.addField(MessageManager.getMessage("Embed.Announcement.Info.EventID", settings), a.getEventId(), true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Announcement.Info.EventID", settings), a.getEventId(), true);
|
||||
EventData ed = DatabaseManager.getManager().getEventData(a.getGuildId(), a.getEventId());
|
||||
if (ed.getImageLink() != null && ImageUtils.validate(ed.getImageLink()))
|
||||
em.setImage(ed.getImageLink());
|
||||
em.withImage(ed.getImageLink());
|
||||
|
||||
} else if (a.getAnnouncementType().equals(AnnouncementType.COLOR)) {
|
||||
em.addField(MessageManager.getMessage("Embed.Announcement.Info.Color", settings), a.getEventColor().name(), true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Announcement.Info.Color", settings), a.getEventColor().name(), true);
|
||||
} else if (a.getAnnouncementType().equals(AnnouncementType.RECUR)) {
|
||||
em.addField(MessageManager.getMessage("Embed.Announcement.Info.RecurID", settings), a.getEventId(), true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Announcement.Info.RecurID", settings), a.getEventId(), true);
|
||||
EventData ed = DatabaseManager.getManager().getEventData(a.getGuildId(), a.getEventId());
|
||||
if (ed.getImageLink() != null && ImageUtils.validate(ed.getImageLink()))
|
||||
em.setImage(ed.getImageLink());
|
||||
em.withImage(ed.getImageLink());
|
||||
}
|
||||
em.addField(MessageManager.getMessage("Embed.Announcement.Info.Hours", settings), String.valueOf(a.getHoursBefore()), true);
|
||||
em.addField(MessageManager.getMessage("Embed.Announcement.Info.Minutes", settings), String.valueOf(a.getMinutesBefore()), true);
|
||||
em.addField(MessageManager.getMessage("Embed.Announcement.Info.Channel", settings), ChannelUtils.getChannelNameFromNameOrId(a.getAnnouncementChannelId(), guild), true);
|
||||
em.addField(MessageManager.getMessage("Embed.Announcement.Info.Info", settings), a.getInfo(), false);
|
||||
em.appendField(MessageManager.getMessage("Embed.Announcement.Info.Hours", settings), String.valueOf(a.getHoursBefore()), true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Announcement.Info.Minutes", settings), String.valueOf(a.getMinutesBefore()), true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Announcement.Info.Channel", settings), ChannelUtils.getChannelNameFromNameOrId(a.getAnnouncementChannelId(), DisCalClient.getClient().getGuildByID(a.getGuildId())), true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Announcement.Info.Info", settings), a.getInfo(), false);
|
||||
if (a.getAnnouncementType().equals(AnnouncementType.COLOR)) {
|
||||
EventColor c = a.getEventColor();
|
||||
em.setColor(c.asColor());
|
||||
em.withColor(c.getR(), c.getG(), c.getB());
|
||||
} else {
|
||||
em.setColor(GlobalConst.discalColor);
|
||||
em.withColor(GlobalConst.discalColor);
|
||||
}
|
||||
|
||||
em.addField(MessageManager.getMessage("Embed.Announcement.Info.Enabled", settings), a.isEnabled() + "", true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Announcement.Info.Enabled", settings), a.isEnabled() + "", true);
|
||||
|
||||
return em;
|
||||
return em.build();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -86,15 +87,17 @@ public class AnnouncementMessageFormatter {
|
||||
* @param a The Announcement to embed.
|
||||
* @return The EmbedObject for a Condensed Announcement.
|
||||
*/
|
||||
public static EmbedCreateSpec getCondensedAnnouncementEmbed(Announcement a, GuildSettings settings) {
|
||||
EmbedCreateSpec em = new EmbedCreateSpec();
|
||||
em.setAuthor("DisCal", GlobalConst.discalSite, GlobalConst.iconUrl);
|
||||
em.setTitle(MessageManager.getMessage("Embed.Announcement.Condensed.Title", settings));
|
||||
em.addField(MessageManager.getMessage("Embed.Announcement.Condensed.ID", settings), a.getAnnouncementId().toString(), false);
|
||||
em.addField(MessageManager.getMessage("Embed.Announcement.Condensed.Time", settings), condensedTime(a), false);
|
||||
public static EmbedObject getCondensedAnnouncementEmbed(Announcement a, GuildSettings settings) {
|
||||
EmbedBuilder em = new EmbedBuilder();
|
||||
em.withAuthorIcon(GlobalConst.discalSite);
|
||||
em.withAuthorName("DisCal");
|
||||
em.withAuthorUrl(GlobalConst.discalSite);
|
||||
em.withTitle(MessageManager.getMessage("Embed.Announcement.Condensed.Title", settings));
|
||||
em.appendField(MessageManager.getMessage("Embed.Announcement.Condensed.ID", settings), a.getAnnouncementId().toString(), false);
|
||||
em.appendField(MessageManager.getMessage("Embed.Announcement.Condensed.Time", settings), condensedTime(a), false);
|
||||
|
||||
if (a.getAnnouncementType().equals(AnnouncementType.SPECIFIC)) {
|
||||
em.addField(MessageManager.getMessage("Embed.Announcement.Condensed.EventID", settings), a.getEventId(), false);
|
||||
em.appendField(MessageManager.getMessage("Embed.Announcement.Condensed.EventID", settings), a.getEventId(), false);
|
||||
try {
|
||||
Calendar service = CalendarAuth.getCalendarService(settings);
|
||||
|
||||
@@ -104,7 +107,7 @@ public class AnnouncementMessageFormatter {
|
||||
Event event = service.events().get(data.getCalendarAddress(), a.getEventId()).execute();
|
||||
EventData ed = DatabaseManager.getManager().getEventData(settings.getGuildID(), event.getId());
|
||||
if (ed.getImageLink() != null && ImageUtils.validate(ed.getImageLink()))
|
||||
em.setThumbnail(ed.getImageLink());
|
||||
em.withThumbnail(ed.getImageLink());
|
||||
|
||||
if (event.getSummary() != null) {
|
||||
String summary = event.getSummary();
|
||||
@@ -112,29 +115,29 @@ public class AnnouncementMessageFormatter {
|
||||
summary = summary.substring(0, 250);
|
||||
summary = summary + " (continues on Google Calendar View)";
|
||||
}
|
||||
em.addField(MessageManager.getMessage("Embed.Announcement.Condensed.Summary", settings), summary, true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Announcement.Condensed.Summary", settings), summary, true);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
//Failed to get from google cal.
|
||||
Logger.getLogger().exception(null, "Failed to get event for announcement.", e, AnnouncementMessageFormatter.class);
|
||||
}
|
||||
} else if (a.getAnnouncementType().equals(AnnouncementType.COLOR)) {
|
||||
em.addField(MessageManager.getMessage("Embed.Announcement.Condensed.Color", settings), a.getEventColor().name(), true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Announcement.Condensed.Color", settings), a.getEventColor().name(), true);
|
||||
} else if (a.getAnnouncementType().equals(AnnouncementType.RECUR)) {
|
||||
em.addField(MessageManager.getMessage("Embed.Announcement.Condensed.RecurID", settings), a.getEventId(), true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Announcement.Condensed.RecurID", settings), a.getEventId(), true);
|
||||
}
|
||||
em.setFooter(MessageManager.getMessage("Embed.Announcement.Condensed.Type", "%type%", a.getAnnouncementType().name(), settings), null);
|
||||
em.withFooterText(MessageManager.getMessage("Embed.Announcement.Condensed.Type", "%type%", a.getAnnouncementType().name(), settings));
|
||||
|
||||
if (a.getAnnouncementType().equals(AnnouncementType.COLOR)) {
|
||||
EventColor c = a.getEventColor();
|
||||
em.setColor(c.asColor());
|
||||
em.withColor(c.getR(), c.getG(), c.getB());
|
||||
} else {
|
||||
em.setColor(GlobalConst.discalColor);
|
||||
em.withColor(56, 138, 237);
|
||||
}
|
||||
|
||||
em.addField(MessageManager.getMessage("Embed.Announcement.Info.Enabled", settings), a.isEnabled() + "", true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Announcement.Info.Enabled", settings), a.isEnabled() + "", true);
|
||||
|
||||
return em;
|
||||
return em.build();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -145,38 +148,41 @@ public class AnnouncementMessageFormatter {
|
||||
* @param data The BotData belonging to the guild.
|
||||
*/
|
||||
public static void sendAnnouncementMessage(Announcement announcement, Event event, CalendarData data, GuildSettings settings) {
|
||||
EmbedCreateSpec em = new EmbedCreateSpec();
|
||||
Guild guild = DisCalClient.getClient().getGuildById(announcement.getGuildId()).block();
|
||||
EmbedBuilder em = new EmbedBuilder();
|
||||
em.withAuthorIcon(GlobalConst.discalSite);
|
||||
em.withAuthorUrl(GlobalConst.discalSite);
|
||||
|
||||
IGuild guild = DisCalClient.getClient().getGuildByID(announcement.getGuildId());
|
||||
|
||||
if (guild != null) {
|
||||
//Set all of the stuff for embeds regardless of announcement settings
|
||||
if (settings.isBranded())
|
||||
em.setAuthor(guild.getName(), null, guild.getIconUrl(Image.Format.PNG).get());
|
||||
em.withAuthorName(guild.getName());
|
||||
else
|
||||
em.setAuthor("DisCal", GlobalConst.discalSite, GlobalConst.iconUrl);
|
||||
em.withAuthorName("DisCal");
|
||||
|
||||
em.setTitle(MessageManager.getMessage("Embed.Announcement.Announce.Title", settings));
|
||||
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.setImage(ed.getImageLink());
|
||||
em.withImage(ed.getImageLink());
|
||||
|
||||
em.setUrl(event.getHtmlLink());
|
||||
em.withUrl(event.getHtmlLink());
|
||||
|
||||
try {
|
||||
EventColor ec = EventColor.fromNameOrHexOrID(event.getColorId());
|
||||
em.setColor(ec.asColor());
|
||||
em.withColor(ec.getR(), ec.getG(), ec.getB());
|
||||
} catch (Exception e) {
|
||||
//I dunno, color probably null.
|
||||
em.setColor(GlobalConst.discalColor);
|
||||
em.withColor(56, 138, 237);
|
||||
}
|
||||
|
||||
if (!settings.usingSimpleAnnouncements()) {
|
||||
em.setFooter(MessageManager.getMessage("Embed.Announcement.Announce.ID", "%id%", announcement.getAnnouncementId().toString(), settings), null);
|
||||
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.addField(MessageManager.getMessage("Embed.Announcement.Announce.Info", settings), announcement.getInfo(), false);
|
||||
em.appendField(MessageManager.getMessage("Embed.Announcement.Announce.Info", settings), announcement.getInfo(), false);
|
||||
} else {
|
||||
//Requires all announcement data
|
||||
if (event.getSummary() != null) {
|
||||
@@ -185,7 +191,7 @@ public class AnnouncementMessageFormatter {
|
||||
summary = summary.substring(0, 250);
|
||||
summary = summary + " (continues on Google Calendar View)";
|
||||
}
|
||||
em.addField(MessageManager.getMessage("Embed.Announcement.Announce.Summary", settings), summary, true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Announcement.Announce.Summary", settings), summary, true);
|
||||
}
|
||||
if (event.getDescription() != null) {
|
||||
String description = event.getDescription();
|
||||
@@ -193,17 +199,17 @@ public class AnnouncementMessageFormatter {
|
||||
description = description.substring(0, 250);
|
||||
description = description + " (continues on Google Calendar View)";
|
||||
}
|
||||
em.addField(MessageManager.getMessage("Embed.Announcement.Announce.Description", settings), description, true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Announcement.Announce.Description", settings), description, true);
|
||||
}
|
||||
if (!settings.usingSimpleAnnouncements()) {
|
||||
em.addField(MessageManager.getMessage("Embed.Announcement.Announce.Date", settings), EventMessageFormatter.getHumanReadableDate(event.getStart(), settings, false), true);
|
||||
em.addField(MessageManager.getMessage("Embed.Announcement.Announce.Time", settings), EventMessageFormatter.getHumanReadableTime(event.getStart(), settings, false), true);
|
||||
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.addField(MessageManager.getMessage("Embed.Announcement.Announce.TimeZone", settings), tz, true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Announcement.Announce.TimeZone", settings), tz, true);
|
||||
} catch (Exception e1) {
|
||||
em.addField(MessageManager.getMessage("Embed.Announcement.Announce.TimeZone", settings), "Unknown *Error Occurred", true);
|
||||
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);
|
||||
@@ -215,29 +221,29 @@ public class AnnouncementMessageFormatter {
|
||||
start = start + " (TZ UNKNOWN/ERROR)";
|
||||
}
|
||||
|
||||
em.addField(MessageManager.getMessage("Embed.Announcement.Announce.Start", settings), start, false);
|
||||
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.addField(MessageManager.getMessage("Embed.Event.Confirm.Location", settings), location, true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Event.Confirm.Location", settings), location, true);
|
||||
} else {
|
||||
em.addField(MessageManager.getMessage("Embed.Event.Confirm.Location", settings), event.getLocation(), true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Event.Confirm.Location", settings), event.getLocation(), true);
|
||||
}
|
||||
}
|
||||
|
||||
if (!settings.usingSimpleAnnouncements())
|
||||
em.addField(MessageManager.getMessage("Embed.Announcement.Announce.EventID", settings), event.getId(), false);
|
||||
em.appendField(MessageManager.getMessage("Embed.Announcement.Announce.EventID", settings), event.getId(), false);
|
||||
if (!announcement.getInfo().equalsIgnoreCase("None") && !announcement.getInfo().equalsIgnoreCase(""))
|
||||
em.addField(MessageManager.getMessage("Embed.Announcement.Announce.Info", settings), announcement.getInfo(), false);
|
||||
em.appendField(MessageManager.getMessage("Embed.Announcement.Announce.Info", settings), announcement.getInfo(), false);
|
||||
}
|
||||
|
||||
|
||||
TextChannel channel = null;
|
||||
IChannel channel = null;
|
||||
|
||||
try {
|
||||
channel = guild.getChannels().ofType(TextChannel.class).filter(c -> c.getId().asLong() == Long.valueOf(announcement.getAnnouncementChannelId())).blockLast();
|
||||
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);
|
||||
}
|
||||
@@ -248,18 +254,19 @@ public class AnnouncementMessageFormatter {
|
||||
return;
|
||||
}
|
||||
|
||||
MessageManager.sendMessageAsync(getSubscriberMentions(announcement, guild), em, channel);
|
||||
MessageManager.sendMessageAsync(getSubscriberMentions(announcement, guild), em.build(), channel);
|
||||
}
|
||||
}
|
||||
|
||||
public static void sendAnnouncementDM(Announcement announcement, Event event, User user, CalendarData data, GuildSettings settings) {
|
||||
EmbedCreateSpec em = new EmbedCreateSpec();
|
||||
em.setAuthor("DisCal", GlobalConst.discalSite, GlobalConst.iconUrl);
|
||||
|
||||
em.setTitle(MessageManager.getMessage("Embed.Announcement.Announce.Title", settings));
|
||||
public static void sendAnnouncementDM(Announcement announcement, Event event, IUser user, CalendarData data, GuildSettings settings) {
|
||||
EmbedBuilder em = new EmbedBuilder();
|
||||
em.withAuthorIcon(GlobalConst.discalSite);
|
||||
em.withAuthorName("DisCal");
|
||||
em.withAuthorUrl(GlobalConst.discalSite);
|
||||
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.setImage(ed.getImageLink());
|
||||
em.withImage(ed.getImageLink());
|
||||
}
|
||||
if (event.getSummary() != null) {
|
||||
String summary = event.getSummary();
|
||||
@@ -267,7 +274,7 @@ public class AnnouncementMessageFormatter {
|
||||
summary = summary.substring(0, 250);
|
||||
summary = summary + " (continues on Google Calendar View)";
|
||||
}
|
||||
em.addField(MessageManager.getMessage("Embed.Announcement.Announce.Summary", settings), summary, true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Announcement.Announce.Summary", settings), summary, true);
|
||||
}
|
||||
if (event.getDescription() != null) {
|
||||
String description = event.getDescription();
|
||||
@@ -275,17 +282,17 @@ public class AnnouncementMessageFormatter {
|
||||
description = description.substring(0, 250);
|
||||
description = description + " (continues on Google Calendar View)";
|
||||
}
|
||||
em.addField(MessageManager.getMessage("Embed.Announcement.Announce.Description", settings), description, true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Announcement.Announce.Description", settings), description, true);
|
||||
}
|
||||
if (!settings.usingSimpleAnnouncements()) {
|
||||
em.addField(MessageManager.getMessage("Embed.Announcement.Announce.Date", settings), EventMessageFormatter.getHumanReadableDate(event.getStart(), settings, false), true);
|
||||
em.addField(MessageManager.getMessage("Embed.Announcement.Announce.Time", settings), EventMessageFormatter.getHumanReadableTime(event.getStart(), settings, false), true);
|
||||
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.addField(MessageManager.getMessage("Embed.Announcement.Announce.TimeZone", settings), tz, true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Announcement.Announce.TimeZone", settings), tz, true);
|
||||
} catch (Exception e1) {
|
||||
em.addField(MessageManager.getMessage("Embed.Announcement.Announce.TimeZone", settings), "Unknown *Error Occurred", true);
|
||||
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);
|
||||
@@ -297,39 +304,39 @@ public class AnnouncementMessageFormatter {
|
||||
start = start + " (TZ UNKNOWN/ERROR)";
|
||||
}
|
||||
|
||||
em.addField(MessageManager.getMessage("Embed.Announcement.Announce.Start", settings), start, false);
|
||||
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.addField(MessageManager.getMessage("Embed.Event.Confirm.Location", settings), location, true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Event.Confirm.Location", settings), location, true);
|
||||
} else {
|
||||
em.addField(MessageManager.getMessage("Embed.Event.Confirm.Location", settings), event.getLocation(), true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Event.Confirm.Location", settings), event.getLocation(), true);
|
||||
}
|
||||
}
|
||||
|
||||
if (!settings.usingSimpleAnnouncements()) {
|
||||
em.addField(MessageManager.getMessage("Embed.Announcement.Announce.EventID", settings), event.getId(), false);
|
||||
em.appendField(MessageManager.getMessage("Embed.Announcement.Announce.EventID", settings), event.getId(), false);
|
||||
}
|
||||
em.addField(MessageManager.getMessage("Embed.Announcement.Announce.Info", settings), announcement.getInfo(), false);
|
||||
em.setUrl(event.getHtmlLink());
|
||||
em.appendField(MessageManager.getMessage("Embed.Announcement.Announce.Info", settings), announcement.getInfo(), false);
|
||||
em.withUrl(event.getHtmlLink());
|
||||
if (!settings.usingSimpleAnnouncements()) {
|
||||
em.setFooter(MessageManager.getMessage("Embed.Announcement.Announce.ID", "%id%", announcement.getAnnouncementId().toString(), settings), null);
|
||||
em.withFooterText(MessageManager.getMessage("Embed.Announcement.Announce.ID", "%id%", announcement.getAnnouncementId().toString(), settings));
|
||||
}
|
||||
try {
|
||||
EventColor ec = EventColor.fromNameOrHexOrID(event.getColorId());
|
||||
em.setColor(ec.asColor());
|
||||
em.withColor(ec.getR(), ec.getG(), ec.getB());
|
||||
} catch (Exception e) {
|
||||
//I dunno, color probably null.
|
||||
em.setColor(GlobalConst.discalColor);
|
||||
em.withColor(GlobalConst.discalColor);
|
||||
}
|
||||
|
||||
Guild guild = DisCalClient.getClient().getGuildById(announcement.getGuildId()).block();
|
||||
IGuild guild = DisCalClient.getClient().getGuildByID(announcement.getGuildId());
|
||||
|
||||
String msg = MessageManager.getMessage("Embed.Announcement.Announce.Dm.Message", "%guild%", guild.getName(), settings);
|
||||
|
||||
MessageManager.sendDirectMessageAsync(msg, em, user);
|
||||
MessageManager.sendDirectMessageAsync(msg, em.build(), user);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -344,14 +351,14 @@ public class AnnouncementMessageFormatter {
|
||||
|
||||
public static String getSubscriberNames(Announcement a) {
|
||||
//Loop and get subs without mentions...
|
||||
Guild guild = DisCalClient.getClient().getGuildById(a.getGuildId()).block();
|
||||
IGuild guild = DisCalClient.getClient().getGuildByID(a.getGuildId());
|
||||
|
||||
StringBuilder userMentions = new StringBuilder();
|
||||
for (String userId: a.getSubscriberUserIds()) {
|
||||
try {
|
||||
User user = DisCalClient.getClient().getUserById(Snowflake.of(userId)).block();
|
||||
IUser user = guild.getUserByID(Long.valueOf(userId));
|
||||
if (user != null)
|
||||
userMentions.append(user.asMember(a.getGuildId()).block().getDisplayName()).append(" ");
|
||||
userMentions.append(user.getName()).append(" ");
|
||||
} catch (Exception e) {
|
||||
//User does not exist, safely ignore.
|
||||
}
|
||||
@@ -367,7 +374,7 @@ public class AnnouncementMessageFormatter {
|
||||
mentionHere = true;
|
||||
} else {
|
||||
try {
|
||||
Role role = guild.getRoles().filter(r -> r.getId().asLong() == Long.valueOf(roleId)).blockLast();
|
||||
IRole role = guild.getRoleByID(Long.valueOf(roleId));
|
||||
if (role != null)
|
||||
roleMentions.append(role.getName()).append(" ");
|
||||
} catch (Exception ignore) {
|
||||
@@ -378,7 +385,7 @@ public class AnnouncementMessageFormatter {
|
||||
|
||||
String message = "Subscribers: " + userMentions + " " + roleMentions;
|
||||
if (mentionEveryone)
|
||||
message = message + " " + guild.getEveryoneRole().block().getName();
|
||||
message = message + " " + guild.getEveryoneRole().getName();
|
||||
|
||||
if (mentionHere)
|
||||
message = message + " here";
|
||||
@@ -390,13 +397,13 @@ public class AnnouncementMessageFormatter {
|
||||
return message;
|
||||
}
|
||||
|
||||
private static String getSubscriberMentions(Announcement a, Guild guild) {
|
||||
private static String getSubscriberMentions(Announcement a, IGuild guild) {
|
||||
StringBuilder userMentions = new StringBuilder();
|
||||
for (String userId: a.getSubscriberUserIds()) {
|
||||
try {
|
||||
User user = DisCalClient.getClient().getUserById(Snowflake.of(userId)).block();
|
||||
IUser user = guild.getUserByID(Long.valueOf(userId));
|
||||
if (user != null)
|
||||
userMentions.append(user.getMention()).append(" ");
|
||||
userMentions.append(user.mention(true)).append(" ");
|
||||
|
||||
} catch (Exception e) {
|
||||
//User does not exist, safely ignore.
|
||||
@@ -413,9 +420,9 @@ public class AnnouncementMessageFormatter {
|
||||
mentionHere = true;
|
||||
} else {
|
||||
try {
|
||||
Role role = guild.getRoles().filter(r -> r.getId().asString().equalsIgnoreCase(roleId)).blockLast();
|
||||
IRole role = guild.getRoleByID(Long.valueOf(roleId));
|
||||
if (role != null)
|
||||
roleMentions.append(role.getMention()).append(" ");
|
||||
roleMentions.append(role.mention()).append(" ");
|
||||
} catch (Exception e) {
|
||||
//Role does not exist, safely ignore.
|
||||
}
|
||||
@@ -427,7 +434,7 @@ public class AnnouncementMessageFormatter {
|
||||
|
||||
String message = "Subscribers: " + userMentions + " " + roleMentions;
|
||||
if (mentionEveryone)
|
||||
message = message + " " + guild.getEveryoneRole().block().getMention();
|
||||
message = message + " " + guild.getEveryoneRole().mention();
|
||||
|
||||
if (mentionHere)
|
||||
message = message + " @here";
|
||||
|
||||
+33
-29
@@ -1,11 +1,11 @@
|
||||
package org.dreamexposure.discal.client.message;
|
||||
|
||||
import com.google.api.services.calendar.model.Calendar;
|
||||
import discord4j.core.object.util.Snowflake;
|
||||
import discord4j.core.spec.EmbedCreateSpec;
|
||||
import org.dreamexposure.discal.core.object.GuildSettings;
|
||||
import org.dreamexposure.discal.core.object.calendar.PreCalendar;
|
||||
import org.dreamexposure.discal.core.utils.GlobalConst;
|
||||
import sx.blah.discord.api.internal.json.objects.EmbedObject;
|
||||
import sx.blah.discord.util.EmbedBuilder;
|
||||
|
||||
/**
|
||||
* Created by Nova Fox on 11/10/17.
|
||||
@@ -14,26 +14,28 @@ import org.dreamexposure.discal.core.utils.GlobalConst;
|
||||
*/
|
||||
public class CalendarMessageFormatter {
|
||||
//TODO: Add support for multiple calendars.
|
||||
public static String getCalendarLink(Snowflake guildId) {
|
||||
return "https://www.discalbot.com/embed/calendar/" + guildId.asString();
|
||||
public static String getCalendarLink(long guildId) {
|
||||
return "https://www.discalbot.com/embed/calendar/" + guildId;
|
||||
}
|
||||
|
||||
public static EmbedCreateSpec getCalendarLinkEmbed(Calendar cal, GuildSettings settings) {
|
||||
EmbedCreateSpec em = new EmbedCreateSpec();
|
||||
em.setAuthor("DisCal", GlobalConst.discalSite, GlobalConst.iconUrl);
|
||||
em.setTitle(MessageManager.getMessage("Embed.Calendar.Link.Title", settings));
|
||||
em.addField(MessageManager.getMessage("Embed.Calendar.Link.Summary", settings), cal.getSummary(), true);
|
||||
public static EmbedObject getCalendarLinkEmbed(Calendar cal, GuildSettings settings) {
|
||||
EmbedBuilder em = new EmbedBuilder();
|
||||
em.withAuthorIcon(GlobalConst.discalSite);
|
||||
em.withAuthorName("DisCal");
|
||||
em.withAuthorUrl(GlobalConst.discalSite);
|
||||
em.withTitle(MessageManager.getMessage("Embed.Calendar.Link.Title", settings));
|
||||
em.appendField(MessageManager.getMessage("Embed.Calendar.Link.Summary", settings), cal.getSummary(), true);
|
||||
try {
|
||||
em.addField(MessageManager.getMessage("Embed.Calendar.Link.Description", settings), cal.getDescription(), true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Calendar.Link.Description", settings), cal.getDescription(), true);
|
||||
} catch (NullPointerException | IllegalArgumentException e) {
|
||||
//Some error, desc probably never set, just ignore no need to log.
|
||||
}
|
||||
em.addField(MessageManager.getMessage("Embed.Calendar.Link.TimeZone", settings), cal.getTimeZone(), false);
|
||||
em.setUrl(CalendarMessageFormatter.getCalendarLink(settings.getGuildID()));
|
||||
em.setFooter(MessageManager.getMessage("Embed.Calendar.Link.CalendarId", "%id%", cal.getId(), settings), null);
|
||||
em.setColor(GlobalConst.discalColor);
|
||||
em.appendField(MessageManager.getMessage("Embed.Calendar.Link.TimeZone", settings), cal.getTimeZone(), false);
|
||||
em.withUrl(CalendarMessageFormatter.getCalendarLink(settings.getGuildID()));
|
||||
em.withFooterText(MessageManager.getMessage("Embed.Calendar.Link.CalendarId", "%id%", cal.getId(), settings));
|
||||
em.withColor(GlobalConst.discalColor);
|
||||
|
||||
return em;
|
||||
return em.build();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -42,32 +44,34 @@ public class CalendarMessageFormatter {
|
||||
* @param calendar The PreCalendar to create an EmbedObject for.
|
||||
* @return The EmbedObject for the PreCalendar.
|
||||
*/
|
||||
public static EmbedCreateSpec getPreCalendarEmbed(PreCalendar calendar, GuildSettings settings) {
|
||||
EmbedCreateSpec em = new EmbedCreateSpec();
|
||||
em.setAuthor("DisCal", GlobalConst.discalSite, GlobalConst.iconUrl);
|
||||
em.setTitle(MessageManager.getMessage("Embed.Calendar.Pre.Title", settings));
|
||||
public static EmbedObject getPreCalendarEmbed(PreCalendar calendar, GuildSettings settings) {
|
||||
EmbedBuilder em = new EmbedBuilder();
|
||||
em.withAuthorIcon(GlobalConst.discalSite);
|
||||
em.withAuthorName("DisCal");
|
||||
em.withAuthorUrl(GlobalConst.discalSite);
|
||||
em.withTitle(MessageManager.getMessage("Embed.Calendar.Pre.Title", settings));
|
||||
if (calendar.getSummary() != null)
|
||||
em.addField(MessageManager.getMessage("Embed.Calendar.Pre.Summary", settings), calendar.getSummary(), true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Calendar.Pre.Summary", settings), calendar.getSummary(), true);
|
||||
else
|
||||
em.addField(MessageManager.getMessage("Embed.Calendar.Pre.Summary", settings), "***UNSET***", true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Calendar.Pre.Summary", settings), "***UNSET***", true);
|
||||
|
||||
if (calendar.getDescription() != null)
|
||||
em.addField(MessageManager.getMessage("Embed.Calendar.Pre.Description", settings), calendar.getDescription(), false);
|
||||
em.appendField(MessageManager.getMessage("Embed.Calendar.Pre.Description", settings), calendar.getDescription(), false);
|
||||
else
|
||||
em.addField(MessageManager.getMessage("Embed.Calendar.Pre.Description", settings), "***UNSET***", false);
|
||||
em.appendField(MessageManager.getMessage("Embed.Calendar.Pre.Description", settings), "***UNSET***", false);
|
||||
|
||||
if (calendar.getTimezone() != null)
|
||||
em.addField(MessageManager.getMessage("Embed.Calendar.Pre.TimeZone", settings), calendar.getTimezone(), true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Calendar.Pre.TimeZone", settings), calendar.getTimezone(), true);
|
||||
else
|
||||
em.addField(MessageManager.getMessage("Embed.Calendar.Pre.TimeZone", settings), "***UNSET***", true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Calendar.Pre.TimeZone", settings), "***UNSET***", true);
|
||||
|
||||
if (calendar.isEditing())
|
||||
em.addField(MessageManager.getMessage("Embed.Calendar.Pre.CalendarId", settings), calendar.getCalendarId(), false);
|
||||
em.appendField(MessageManager.getMessage("Embed.Calendar.Pre.CalendarId", settings), calendar.getCalendarId(), false);
|
||||
|
||||
|
||||
em.setFooter(MessageManager.getMessage("Embed.Calendar.Pre.Key", settings), null);
|
||||
em.setColor(GlobalConst.discalColor);
|
||||
em.withFooterText(MessageManager.getMessage("Embed.Calendar.Pre.Key", settings));
|
||||
em.withColor(GlobalConst.discalColor);
|
||||
|
||||
return em;
|
||||
return em.build();
|
||||
}
|
||||
}
|
||||
+81
-72
@@ -3,7 +3,6 @@ package org.dreamexposure.discal.client.message;
|
||||
import com.google.api.services.calendar.Calendar;
|
||||
import com.google.api.services.calendar.model.Event;
|
||||
import com.google.api.services.calendar.model.EventDateTime;
|
||||
import discord4j.core.spec.EmbedCreateSpec;
|
||||
import org.dreamexposure.discal.core.calendar.CalendarAuth;
|
||||
import org.dreamexposure.discal.core.database.DatabaseManager;
|
||||
import org.dreamexposure.discal.core.enums.event.EventColor;
|
||||
@@ -15,6 +14,8 @@ import org.dreamexposure.discal.core.object.event.EventData;
|
||||
import org.dreamexposure.discal.core.object.event.PreEvent;
|
||||
import org.dreamexposure.discal.core.utils.GlobalConst;
|
||||
import org.dreamexposure.discal.core.utils.ImageUtils;
|
||||
import sx.blah.discord.api.internal.json.objects.EmbedObject;
|
||||
import sx.blah.discord.util.EmbedBuilder;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.time.Instant;
|
||||
@@ -37,13 +38,15 @@ public class EventMessageFormatter {
|
||||
* @param settings The guild's settings
|
||||
* @return The EmbedObject of the event.
|
||||
*/
|
||||
public static EmbedCreateSpec getEventEmbed(Event event, GuildSettings settings) {
|
||||
public static EmbedObject getEventEmbed(Event event, GuildSettings settings) {
|
||||
EventData ed = DatabaseManager.getManager().getEventData(settings.getGuildID(), event.getId());
|
||||
EmbedCreateSpec em = new EmbedCreateSpec();
|
||||
em.setAuthor("DisCal", GlobalConst.discalSite, GlobalConst.iconUrl);
|
||||
em.setTitle(MessageManager.getMessage("Embed.Event.Info.Title", settings));
|
||||
EmbedBuilder em = new EmbedBuilder();
|
||||
em.withAuthorIcon(GlobalConst.discalSite);
|
||||
em.withAuthorName("DisCal");
|
||||
em.withAuthorUrl(GlobalConst.discalSite);
|
||||
em.withTitle(MessageManager.getMessage("Embed.Event.Info.Title", settings));
|
||||
if (ed.getImageLink() != null && ImageUtils.validate(ed.getImageLink())) {
|
||||
em.setImage(ed.getImageLink());
|
||||
em.withImage(ed.getImageLink());
|
||||
}
|
||||
if (event.getSummary() != null) {
|
||||
String summary = event.getSummary();
|
||||
@@ -52,7 +55,7 @@ public class EventMessageFormatter {
|
||||
summary = summary + " (continues on Google Calendar View)";
|
||||
}
|
||||
|
||||
em.addField(MessageManager.getMessage("Embed.Event.Info.Summary", settings), summary, true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Event.Info.Summary", settings), summary, true);
|
||||
}
|
||||
if (event.getDescription() != null) {
|
||||
String description = event.getDescription();
|
||||
@@ -60,42 +63,42 @@ public class EventMessageFormatter {
|
||||
description = description.substring(0, 500);
|
||||
description = description + " (continues on Google Calendar View)";
|
||||
}
|
||||
em.addField(MessageManager.getMessage("Embed.Event.Info.Description", settings), description, true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Event.Info.Description", settings), description, true);
|
||||
}
|
||||
em.addField(MessageManager.getMessage("Embed.Event.Info.StartDate", settings), getHumanReadableDate(event.getStart(), settings, false), true);
|
||||
em.addField(MessageManager.getMessage("Embed.Event.Info.StartTime", settings), getHumanReadableTime(event.getStart(), settings, false), true);
|
||||
em.addField(MessageManager.getMessage("Embed.Event.Info.EndDate", settings), getHumanReadableDate(event.getEnd(), settings, false), true);
|
||||
em.addField(MessageManager.getMessage("Embed.Event.Info.EndTime", settings), getHumanReadableTime(event.getEnd(), settings, false), true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Event.Info.StartDate", settings), getHumanReadableDate(event.getStart(), settings, false), true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Event.Info.StartTime", settings), getHumanReadableTime(event.getStart(), settings, false), true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Event.Info.EndDate", settings), getHumanReadableDate(event.getEnd(), settings, false), true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Event.Info.EndTime", settings), getHumanReadableTime(event.getEnd(), settings, false), true);
|
||||
|
||||
try {
|
||||
//TODO: add support for multiple calendars...
|
||||
CalendarData data = DatabaseManager.getManager().getMainCalendar(settings.getGuildID());
|
||||
Calendar service = CalendarAuth.getCalendarService(settings);
|
||||
String tz = service.calendars().get(data.getCalendarAddress()).execute().getTimeZone();
|
||||
em.addField(MessageManager.getMessage("Embed.Event.Info.TimeZone", settings), tz, true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Event.Info.TimeZone", settings), tz, true);
|
||||
} catch (Exception e1) {
|
||||
em.addField(MessageManager.getMessage("Embed.Event.Info.TimeZone", settings), "Error/Unknown", true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Event.Info.TimeZone", settings), "Error/Unknown", true);
|
||||
}
|
||||
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.addField(MessageManager.getMessage("Embed.Event.Confirm.Location", settings), location, true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Event.Confirm.Location", settings), location, true);
|
||||
} else {
|
||||
em.addField(MessageManager.getMessage("Embed.Event.Confirm.Location", settings), event.getLocation(), true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Event.Confirm.Location", settings), event.getLocation(), true);
|
||||
}
|
||||
}
|
||||
//TODO: Add info on recurrence here.
|
||||
em.setUrl(event.getHtmlLink());
|
||||
em.setFooter(MessageManager.getMessage("Embed.Event.Info.ID", "%id%", event.getId(), settings), null);
|
||||
em.withUrl(event.getHtmlLink());
|
||||
em.withFooterText(MessageManager.getMessage("Embed.Event.Info.ID", "%id%", event.getId(), settings));
|
||||
try {
|
||||
EventColor ec = EventColor.fromId(Integer.valueOf(event.getColorId()));
|
||||
em.setColor(ec.asColor());
|
||||
em.withColor(ec.getR(), ec.getG(), ec.getB());
|
||||
} catch (Exception e) {
|
||||
//Color is null, ignore and add our default.
|
||||
em.setColor(GlobalConst.discalColor);
|
||||
em.withColor(56, 138, 237);
|
||||
}
|
||||
|
||||
return em;
|
||||
return em.build();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -104,13 +107,15 @@ public class EventMessageFormatter {
|
||||
* @param event The event involved.
|
||||
* @return The EmbedObject of the event.
|
||||
*/
|
||||
public static EmbedCreateSpec getCondensedEventEmbed(Event event, GuildSettings settings) {
|
||||
EmbedCreateSpec em = new EmbedCreateSpec();
|
||||
em.setAuthor("DisCal", GlobalConst.discalSite, GlobalConst.iconUrl);
|
||||
em.setTitle(MessageManager.getMessage("Embed.Event.Condensed.Title", settings));
|
||||
public static EmbedObject getCondensedEventEmbed(Event event, GuildSettings settings) {
|
||||
EmbedBuilder em = new EmbedBuilder();
|
||||
em.withAuthorIcon(GlobalConst.discalSite);
|
||||
em.withAuthorName("DisCal");
|
||||
em.withAuthorUrl(GlobalConst.discalSite);
|
||||
em.withTitle(MessageManager.getMessage("Embed.Event.Condensed.Title", settings));
|
||||
EventData ed = DatabaseManager.getManager().getEventData(settings.getGuildID(), event.getId());
|
||||
if (ed.getImageLink() != null && ImageUtils.validate(ed.getImageLink()))
|
||||
em.setThumbnail(ed.getImageLink());
|
||||
em.withThumbnail(ed.getImageLink());
|
||||
|
||||
if (event.getSummary() != null) {
|
||||
String summary = event.getSummary();
|
||||
@@ -118,28 +123,28 @@ public class EventMessageFormatter {
|
||||
summary = summary.substring(0, 250);
|
||||
summary = summary + " (continues on Google Calendar View)";
|
||||
}
|
||||
em.addField(MessageManager.getMessage("Embed.Event.Condensed.Summary", settings), summary, true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Event.Condensed.Summary", settings), summary, true);
|
||||
}
|
||||
em.addField(MessageManager.getMessage("Embed.Event.Condensed.Date", settings), getHumanReadableDate(event.getStart(), settings, false), true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Event.Condensed.Date", settings), getHumanReadableDate(event.getStart(), settings, false), true);
|
||||
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.addField(MessageManager.getMessage("Embed.Event.Confirm.Location", settings), location, true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Event.Confirm.Location", settings), location, true);
|
||||
} else {
|
||||
em.addField(MessageManager.getMessage("Embed.Event.Confirm.Location", settings), event.getLocation(), true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Event.Confirm.Location", settings), event.getLocation(), true);
|
||||
}
|
||||
}
|
||||
em.addField(MessageManager.getMessage("Embed.Event.Condensed.ID", settings), event.getId(), false);
|
||||
em.setUrl(event.getHtmlLink());
|
||||
em.appendField(MessageManager.getMessage("Embed.Event.Condensed.ID", settings), event.getId(), false);
|
||||
em.withUrl(event.getHtmlLink());
|
||||
try {
|
||||
EventColor ec = EventColor.fromId(Integer.valueOf(event.getColorId()));
|
||||
em.setColor(ec.asColor());
|
||||
em.withColor(ec.getR(), ec.getG(), ec.getB());
|
||||
} catch (Exception e) {
|
||||
//Color is null, ignore and add our default.
|
||||
em.setColor(GlobalConst.discalColor);
|
||||
em.withColor(GlobalConst.discalColor);
|
||||
}
|
||||
|
||||
return em;
|
||||
return em.build();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -148,20 +153,22 @@ public class EventMessageFormatter {
|
||||
* @param event The PreEvent to get an embed for.
|
||||
* @return The EmbedObject of the PreEvent.
|
||||
*/
|
||||
public static EmbedCreateSpec getPreEventEmbed(PreEvent event, GuildSettings settings) {
|
||||
EmbedCreateSpec em = new EmbedCreateSpec();
|
||||
em.setAuthor("DisCal", GlobalConst.discalSite, GlobalConst.iconUrl);
|
||||
em.setTitle(MessageManager.getMessage("Embed.Event.Pre.Title", settings));
|
||||
public static EmbedObject getPreEventEmbed(PreEvent event, GuildSettings settings) {
|
||||
EmbedBuilder em = new EmbedBuilder();
|
||||
em.withAuthorIcon(GlobalConst.discalSite);
|
||||
em.withAuthorName("DisCal");
|
||||
em.withAuthorUrl(GlobalConst.discalSite);
|
||||
em.withTitle(MessageManager.getMessage("Embed.Event.Pre.Title", settings));
|
||||
try {
|
||||
if (event.getEventData() != null && event.getEventData().getImageLink() != null && ImageUtils.validate(event.getEventData().getImageLink())) {
|
||||
em.setImage(event.getEventData().getImageLink());
|
||||
em.withImage(event.getEventData().getImageLink());
|
||||
}
|
||||
} catch (NullPointerException e) {
|
||||
//TODO: find out why this is happening
|
||||
Logger.getLogger().exception(null, "[Event] Failed to handle event image. Is event null?", e, EventMessageFormatter.class);
|
||||
}
|
||||
if (event.isEditing())
|
||||
em.addField(MessageManager.getMessage("Embed.Event.Pre.Id", settings), event.getEventId(), false);
|
||||
em.appendField(MessageManager.getMessage("Embed.Event.Pre.Id", settings), event.getEventId(), false);
|
||||
|
||||
if (event.getSummary() != null) {
|
||||
String summary = event.getSummary();
|
||||
@@ -169,9 +176,9 @@ public class EventMessageFormatter {
|
||||
summary = summary.substring(0, 250);
|
||||
summary = summary + " (continues on Google Calendar View)";
|
||||
}
|
||||
em.addField(MessageManager.getMessage("Embed.Event.Pre.Summary", settings), summary, true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Event.Pre.Summary", settings), summary, true);
|
||||
} else {
|
||||
em.addField(MessageManager.getMessage("Embed.Event.Pre.Summary", settings), "NOT SET", true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Event.Pre.Summary", settings), "NOT SET", true);
|
||||
}
|
||||
if (event.getDescription() != null) {
|
||||
String description = event.getDescription();
|
||||
@@ -179,36 +186,36 @@ public class EventMessageFormatter {
|
||||
description = description.substring(0, 500);
|
||||
description = description + " (continues on Google Calendar View)";
|
||||
}
|
||||
em.addField(MessageManager.getMessage("Embed.Event.Pre.Description", settings), description, true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Event.Pre.Description", settings), description, true);
|
||||
} else {
|
||||
em.addField(MessageManager.getMessage("Embed.Event.Pre.Description", settings), "NOT SET", true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Event.Pre.Description", settings), "NOT SET", true);
|
||||
}
|
||||
if (event.shouldRecur()) {
|
||||
em.addField(MessageManager.getMessage("Embed.Event.Pre.Recurrence", settings), event.getRecurrence().toHumanReadable(), false);
|
||||
em.appendField(MessageManager.getMessage("Embed.Event.Pre.Recurrence", settings), event.getRecurrence().toHumanReadable(), false);
|
||||
} else {
|
||||
em.addField(MessageManager.getMessage("Embed.Event.Pre.Recurrence", settings), "N/a", true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Event.Pre.Recurrence", settings), "N/a", true);
|
||||
}
|
||||
em.addField(MessageManager.getMessage("Embed.Event.Pre.StartDate", settings), getHumanReadableDate(event.getViewableStartDate(), settings, true), true);
|
||||
em.addField(MessageManager.getMessage("Embed.Event.Pre.StartTime", settings), EventMessageFormatter.getHumanReadableTime(event.getViewableStartDate(), settings, true), true);
|
||||
em.addField(MessageManager.getMessage("Embed.Event.Pre.EndDate", settings), getHumanReadableDate(event.getViewableEndDate(), settings, true), true);
|
||||
em.addField(MessageManager.getMessage("Embed.Event.Pre.EndTime", settings), EventMessageFormatter.getHumanReadableTime(event.getViewableEndDate(), settings, true), true);
|
||||
em.addField(MessageManager.getMessage("Embed.Event.Pre.TimeZone", settings), event.getTimeZone(), true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Event.Pre.StartDate", settings), getHumanReadableDate(event.getViewableStartDate(), settings, true), true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Event.Pre.StartTime", settings), EventMessageFormatter.getHumanReadableTime(event.getViewableStartDate(), settings, true), true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Event.Pre.EndDate", settings), getHumanReadableDate(event.getViewableEndDate(), settings, true), true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Event.Pre.EndTime", settings), EventMessageFormatter.getHumanReadableTime(event.getViewableEndDate(), settings, true), true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Event.Pre.TimeZone", settings), event.getTimeZone(), true);
|
||||
|
||||
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.addField(MessageManager.getMessage("Embed.Event.Confirm.Location", settings), location, true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Event.Confirm.Location", settings), location, true);
|
||||
} else {
|
||||
em.addField(MessageManager.getMessage("Embed.Event.Confirm.Location", settings), event.getLocation(), true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Event.Confirm.Location", settings), event.getLocation(), true);
|
||||
}
|
||||
} else {
|
||||
em.addField(MessageManager.getMessage("Embed.Event.Confirm.Location", settings), "N/a", true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Event.Confirm.Location", settings), "N/a", true);
|
||||
}
|
||||
|
||||
em.setFooter(MessageManager.getMessage("Embed.Event.Pre.Key", settings), null);
|
||||
em.setColor(event.getColor().asColor());
|
||||
em.withFooterText(MessageManager.getMessage("Embed.Event.Pre.Key", settings));
|
||||
em.withColor(event.getColor().asColor());
|
||||
|
||||
return em;
|
||||
return em.build();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -217,35 +224,37 @@ public class EventMessageFormatter {
|
||||
* @param ecr The CreatorResponse involved.
|
||||
* @return The EmbedObject for the CreatorResponse.
|
||||
*/
|
||||
public static EmbedCreateSpec getEventConfirmationEmbed(EventCreatorResponse ecr, GuildSettings settings) {
|
||||
public static EmbedObject getEventConfirmationEmbed(EventCreatorResponse ecr, GuildSettings settings) {
|
||||
EventData ed = DatabaseManager.getManager().getEventData(settings.getGuildID(), ecr.getEvent().getId());
|
||||
EmbedCreateSpec em = new EmbedCreateSpec();
|
||||
em.setAuthor("DisCal", GlobalConst.discalSite, GlobalConst.iconUrl);
|
||||
em.setTitle(MessageManager.getMessage("Embed.Event.Confirm.Title", settings));
|
||||
EmbedBuilder em = new EmbedBuilder();
|
||||
em.withAuthorIcon(GlobalConst.discalSite);
|
||||
em.withAuthorName("DisCal");
|
||||
em.withAuthorUrl(GlobalConst.discalSite);
|
||||
em.withTitle(MessageManager.getMessage("Embed.Event.Confirm.Title", settings));
|
||||
if (ed.getImageLink() != null && ImageUtils.validate(ed.getImageLink())) {
|
||||
em.setImage(ed.getImageLink());
|
||||
em.withImage(ed.getImageLink());
|
||||
}
|
||||
em.addField(MessageManager.getMessage("Embed.Event.Confirm.ID", settings), ecr.getEvent().getId(), false);
|
||||
em.addField(MessageManager.getMessage("Embed.Event.Confirm.Date", settings), getHumanReadableDate(ecr.getEvent().getStart(), settings, false), false);
|
||||
em.appendField(MessageManager.getMessage("Embed.Event.Confirm.ID", settings), ecr.getEvent().getId(), false);
|
||||
em.appendField(MessageManager.getMessage("Embed.Event.Confirm.Date", settings), getHumanReadableDate(ecr.getEvent().getStart(), settings, false), false);
|
||||
if (ecr.getEvent().getLocation() != null && !ecr.getEvent().getLocation().equalsIgnoreCase("")) {
|
||||
if (ecr.getEvent().getLocation().length() > 300) {
|
||||
String location = ecr.getEvent().getLocation().substring(0, 300).trim() + "... (cont. on Google Cal)";
|
||||
em.addField(MessageManager.getMessage("Embed.Event.Confirm.Location", settings), location, true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Event.Confirm.Location", settings), location, true);
|
||||
} else {
|
||||
em.addField(MessageManager.getMessage("Embed.Event.Confirm.Location", settings), ecr.getEvent().getLocation(), true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Event.Confirm.Location", settings), ecr.getEvent().getLocation(), true);
|
||||
}
|
||||
}
|
||||
em.setFooter(MessageManager.getMessage("Embed.Event.Confirm.Footer", settings), null);
|
||||
em.setImage(ecr.getEvent().getHtmlLink());
|
||||
em.withFooterText(MessageManager.getMessage("Embed.Event.Confirm.Footer", settings));
|
||||
em.withUrl(ecr.getEvent().getHtmlLink());
|
||||
try {
|
||||
EventColor ec = EventColor.fromId(Integer.valueOf(ecr.getEvent().getColorId()));
|
||||
em.setColor(ec.asColor());
|
||||
em.withColor(ec.getR(), ec.getG(), ec.getB());
|
||||
} catch (Exception e) {
|
||||
//Color is null, ignore and add our default.
|
||||
em.setColor(GlobalConst.discalColor);
|
||||
em.withColor(GlobalConst.discalColor);
|
||||
}
|
||||
|
||||
return em;
|
||||
return em.build();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,18 +1,21 @@
|
||||
package org.dreamexposure.discal.client.message;
|
||||
|
||||
import discord4j.core.event.domain.message.MessageCreateEvent;
|
||||
import discord4j.core.object.entity.Message;
|
||||
import discord4j.core.object.entity.TextChannel;
|
||||
import discord4j.core.object.entity.User;
|
||||
import discord4j.core.spec.EmbedCreateSpec;
|
||||
import discord4j.core.spec.MessageCreateSpec;
|
||||
import discord4j.core.spec.MessageEditSpec;
|
||||
import org.dreamexposure.discal.core.file.ReadFile;
|
||||
import org.dreamexposure.discal.core.logger.Logger;
|
||||
import org.dreamexposure.discal.core.object.GuildSettings;
|
||||
import org.dreamexposure.discal.core.utils.GlobalConst;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
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;
|
||||
@@ -92,101 +95,286 @@ public class MessageManager {
|
||||
}
|
||||
|
||||
//Message sending
|
||||
public static void sendMessageAsync(String message, TextChannel channel) {
|
||||
channel.createMessage(new MessageCreateSpec().setContent(message)).subscribe();
|
||||
public static void sendMessageAsync(String message, IChannel channel) {
|
||||
RequestBuffer.request(() -> {
|
||||
try {
|
||||
new MessageBuilder(channel.getClient()).appendContent(message).withChannel(channel).build();
|
||||
} catch (DiscordException | MissingPermissionsException ignore) {
|
||||
//No reason to print exception.
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static void sendMessageAsync(EmbedCreateSpec embed, TextChannel channel) {
|
||||
channel.createMessage(new MessageCreateSpec().setEmbed(embed)).subscribe();
|
||||
public static void sendMessageAsync(EmbedObject embed, IChannel channel) {
|
||||
RequestBuffer.request(() -> {
|
||||
try {
|
||||
new MessageBuilder(channel.getClient()).withEmbed(embed).withChannel(channel).build();
|
||||
} catch (DiscordException | MissingPermissionsException ignore) {
|
||||
//No reason to print exception.
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static void sendMessageAsync(String message, EmbedCreateSpec embed, TextChannel channel) {
|
||||
channel.createMessage(new MessageCreateSpec().setContent(message).setEmbed(embed)).subscribe();
|
||||
public static void sendMessageAsync(String message, EmbedObject embed, IChannel channel) {
|
||||
RequestBuffer.request(() -> {
|
||||
try {
|
||||
new MessageBuilder(channel.getClient()).appendContent(message).withEmbed(embed).withChannel(channel).build();
|
||||
} catch (DiscordException | MissingPermissionsException ignore) {
|
||||
//No reason to print exception.
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static void sendMessageAsync(String message, MessageCreateEvent event) {
|
||||
event.getMessage().getChannel().flatMap(c -> c.createMessage(new MessageCreateSpec().setContent(message))).subscribe();
|
||||
public static void sendMessageAsync(String message, MessageReceivedEvent event) {
|
||||
RequestBuffer.request(() -> {
|
||||
try {
|
||||
new MessageBuilder(event.getClient()).appendContent(message).withChannel(event.getChannel()).build();
|
||||
} catch (DiscordException | MissingPermissionsException ignore) {
|
||||
//No reason to print exception.
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static void sendMessageAsync(EmbedCreateSpec embed, MessageCreateEvent event) {
|
||||
event.getMessage().getChannel().flatMap(c -> c.createMessage(new MessageCreateSpec().setEmbed(embed))).subscribe();
|
||||
public static void sendMessageAsync(EmbedObject embed, MessageReceivedEvent event) {
|
||||
RequestBuffer.request(() -> {
|
||||
try {
|
||||
new MessageBuilder(event.getClient()).withEmbed(embed).withChannel(event.getChannel()).build();
|
||||
} catch (DiscordException | MissingPermissionsException ignore) {
|
||||
//No reason to print exception.
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static void sendMessageAsync(String message, EmbedCreateSpec embed, MessageCreateEvent event) {
|
||||
event.getMessage().getChannel().flatMap(c -> c.createMessage(new MessageCreateSpec().setContent(message).setEmbed(embed))).subscribe();
|
||||
public static void sendMessageAsync(String message, EmbedObject embed, MessageReceivedEvent event) {
|
||||
RequestBuffer.request(() -> {
|
||||
try {
|
||||
new MessageBuilder(event.getClient()).appendContent(message).withEmbed(embed).withChannel(event.getChannel()).build();
|
||||
} catch (DiscordException | MissingPermissionsException ignore) {
|
||||
//No reason to print exception.
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static Message sendMessageSync(String message, MessageCreateEvent event) {
|
||||
return event.getMessage().getChannel().flatMap(c -> c.createMessage(new MessageCreateSpec().setContent(message))).block();
|
||||
public static IMessage sendMessageSync(String message, MessageReceivedEvent event) {
|
||||
return RequestBuffer.request(() -> {
|
||||
try {
|
||||
return new MessageBuilder(event.getClient()).appendContent(message).withChannel(event.getMessage().getChannel()).build();
|
||||
} catch (DiscordException | MissingPermissionsException e) {
|
||||
//Failed to send message.
|
||||
return null;
|
||||
}
|
||||
}).get();
|
||||
}
|
||||
|
||||
public static Message sendMessageSync(EmbedCreateSpec embed, MessageCreateEvent event) {
|
||||
return event.getMessage().getChannel().flatMap(c -> c.createMessage(new MessageCreateSpec().setEmbed(embed))).block();
|
||||
public static IMessage sendMessageSync(EmbedObject embed, MessageReceivedEvent event) {
|
||||
return RequestBuffer.request(() -> {
|
||||
try {
|
||||
return new MessageBuilder(event.getClient()).withEmbed(embed).withChannel(event.getMessage().getChannel()).build();
|
||||
} catch (DiscordException | MissingPermissionsException e) {
|
||||
//Failed to send message.
|
||||
return null;
|
||||
}
|
||||
}).get();
|
||||
}
|
||||
|
||||
public static Message sendMessageSync(String message, EmbedCreateSpec embed, MessageCreateEvent event) {
|
||||
return event.getMessage().getChannel().flatMap(c -> c.createMessage(new MessageCreateSpec().setContent(message).setEmbed(embed))).block();
|
||||
public static IMessage sendMessageSync(String message, EmbedObject embed, MessageReceivedEvent event) {
|
||||
return RequestBuffer.request(() -> {
|
||||
try {
|
||||
return new MessageBuilder(event.getClient()).appendContent(message).withEmbed(embed).withChannel(event.getMessage().getChannel()).build();
|
||||
} catch (DiscordException | MissingPermissionsException e) {
|
||||
//Failed to send message.
|
||||
return null;
|
||||
}
|
||||
}).get();
|
||||
}
|
||||
|
||||
public static Message sendMessageSync(String message, TextChannel channel) {
|
||||
return channel.createMessage(new MessageCreateSpec().setContent(message)).block();
|
||||
public static IMessage sendMessageSync(String message, IChannel channel) {
|
||||
return RequestBuffer.request(() -> {
|
||||
try {
|
||||
return new MessageBuilder(channel.getClient()).appendContent(message).withChannel(channel).build();
|
||||
} catch (DiscordException | MissingPermissionsException e) {
|
||||
//Failed to send message.
|
||||
return null;
|
||||
}
|
||||
}).get();
|
||||
}
|
||||
|
||||
public static Message sendMessageSync(EmbedCreateSpec embed, TextChannel channel) {
|
||||
return channel.createMessage(new MessageCreateSpec().setEmbed(embed)).block();
|
||||
public static IMessage sendMessageSync(EmbedObject embed, IChannel channel) {
|
||||
return RequestBuffer.request(() -> {
|
||||
try {
|
||||
return new MessageBuilder(channel.getClient()).withEmbed(embed).withChannel(channel).build();
|
||||
} catch (DiscordException | MissingPermissionsException e) {
|
||||
//Failed to send message.
|
||||
return null;
|
||||
}
|
||||
}).get();
|
||||
}
|
||||
|
||||
public static Message sendMessageSync(String message, EmbedCreateSpec embed, TextChannel channel) {
|
||||
return channel.createMessage(new MessageCreateSpec().setContent(message).setEmbed(embed)).block();
|
||||
public static IMessage sendMessageSync(String message, EmbedObject embed, IChannel channel) {
|
||||
return RequestBuffer.request(() -> {
|
||||
try {
|
||||
return new MessageBuilder(channel.getClient()).appendContent(message).withEmbed(embed).withChannel(channel).build();
|
||||
} catch (DiscordException | MissingPermissionsException e) {
|
||||
//Failed to send message.
|
||||
return null;
|
||||
}
|
||||
}).get();
|
||||
}
|
||||
|
||||
public static void sendDirectMessageAsync(String message, User user) {
|
||||
user.getPrivateChannel().flatMap(c -> c.createMessage(new MessageCreateSpec().setContent(message))).subscribe();
|
||||
public static void sendDirectMessageAsync(String message, IUser user) {
|
||||
RequestBuffer.request(() -> {
|
||||
try {
|
||||
IPrivateChannel pc = user.getOrCreatePMChannel();
|
||||
new MessageBuilder(user.getClient()).withChannel(pc).appendContent(message).build();
|
||||
} catch (DiscordException | MissingPermissionsException ignore) {
|
||||
//Failed to send message.
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static void sendDirectMessageAsync(EmbedCreateSpec embed, User user) {
|
||||
user.getPrivateChannel().flatMap(c -> c.createMessage(new MessageCreateSpec().setEmbed(embed))).subscribe();
|
||||
public static void sendDirectMessageAsync(EmbedObject embed, IUser user) {
|
||||
RequestBuffer.request(() -> {
|
||||
try {
|
||||
IPrivateChannel pc = user.getOrCreatePMChannel();
|
||||
new MessageBuilder(user.getClient()).withChannel(pc).withEmbed(embed).build();
|
||||
} catch (DiscordException | MissingPermissionsException ignore) {
|
||||
//Failed to send message.
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static void sendDirectMessageAsync(String message, EmbedCreateSpec embed, User user) {
|
||||
user.getPrivateChannel().flatMap(c -> c.createMessage(new MessageCreateSpec().setContent(message).setEmbed(embed))).subscribe();
|
||||
public static void sendDirectMessageAsync(String message, EmbedObject embed, IUser user) {
|
||||
RequestBuffer.request(() -> {
|
||||
try {
|
||||
IPrivateChannel pc = user.getOrCreatePMChannel();
|
||||
new MessageBuilder(user.getClient()).withChannel(pc).appendContent(message).withEmbed(embed).build();
|
||||
} catch (DiscordException | MissingPermissionsException ignore) {
|
||||
//Failed to send message.
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static Message sendDirectMessageSync(String message, User user) {
|
||||
return user.getPrivateChannel().flatMap(c -> c.createMessage(new MessageCreateSpec().setContent(message))).block();
|
||||
public static IMessage sendDirectMessageSync(String message, IUser user) {
|
||||
return RequestBuffer.request(() -> {
|
||||
try {
|
||||
IPrivateChannel pc = user.getOrCreatePMChannel();
|
||||
return new MessageBuilder(user.getClient()).withChannel(pc).appendContent(message).build();
|
||||
} catch (DiscordException | MissingPermissionsException ignore) {
|
||||
//Failed to send message.
|
||||
return null;
|
||||
}
|
||||
}).get();
|
||||
}
|
||||
|
||||
public static Message sendDirectMessageSync(EmbedCreateSpec embed, User user) {
|
||||
return user.getPrivateChannel().flatMap(c -> c.createMessage(new MessageCreateSpec().setEmbed(embed))).block();
|
||||
public static IMessage sendDirectMessageSync(EmbedObject embed, IUser user) {
|
||||
return RequestBuffer.request(() -> {
|
||||
try {
|
||||
IPrivateChannel pc = user.getOrCreatePMChannel();
|
||||
return new MessageBuilder(user.getClient()).withChannel(pc).withEmbed(embed).build();
|
||||
} catch (DiscordException | MissingPermissionsException ignore) {
|
||||
//Failed to send message.
|
||||
return null;
|
||||
}
|
||||
}).get();
|
||||
}
|
||||
|
||||
public static Message sendDirectMessageSync(String message, EmbedCreateSpec embed, User user) {
|
||||
return user.getPrivateChannel().flatMap(c -> c.createMessage(new MessageCreateSpec().setContent(message).setEmbed(embed))).block();
|
||||
public static IMessage sendDirectMessageSync(EmbedObject embed, String message, IUser user) {
|
||||
return RequestBuffer.request(() -> {
|
||||
try {
|
||||
IPrivateChannel pc = user.getOrCreatePMChannel();
|
||||
return new MessageBuilder(user.getClient()).withChannel(pc).appendContent(message).withEmbed(embed).build();
|
||||
} catch (DiscordException | MissingPermissionsException ignore) {
|
||||
//Failed to send message.
|
||||
return null;
|
||||
}
|
||||
}).get();
|
||||
}
|
||||
|
||||
//Message editing
|
||||
public static void editMessage(String message, Message original) {
|
||||
original.edit(new MessageEditSpec().setContent(message)).subscribe();
|
||||
public static void editMessage(String content, IMessage message) {
|
||||
try {
|
||||
RequestBuffer.request(() -> {
|
||||
try {
|
||||
if (message != null && !message.isDeleted())
|
||||
message.edit(content);
|
||||
} catch (DiscordException | MissingPermissionsException e) {
|
||||
//Failed to edit.
|
||||
}
|
||||
});
|
||||
} catch (NullPointerException ignore) {
|
||||
}
|
||||
}
|
||||
|
||||
public static void editMessage(String message, EmbedCreateSpec embed, Message original) {
|
||||
original.edit(new MessageEditSpec().setContent(message).setEmbed(embed)).subscribe();
|
||||
public static void editMessage(String content, EmbedObject embed, IMessage message) {
|
||||
try {
|
||||
RequestBuffer.request(() -> {
|
||||
try {
|
||||
if (message != null && !message.isDeleted())
|
||||
message.edit(content, embed);
|
||||
} catch (DiscordException | MissingPermissionsException e) {
|
||||
//Failed to edit.
|
||||
}
|
||||
});
|
||||
} catch (NullPointerException ignore) {
|
||||
}
|
||||
}
|
||||
|
||||
public static void editMessage(String message, MessageCreateEvent event) {
|
||||
event.getMessage().edit(new MessageEditSpec().setContent(message)).subscribe();
|
||||
public static void editMessage(String content, MessageReceivedEvent event) {
|
||||
try {
|
||||
RequestBuffer.request(() -> {
|
||||
try {
|
||||
if (event.getMessage() != null && !event.getMessage().isDeleted())
|
||||
event.getMessage().edit(content);
|
||||
|
||||
} catch (DiscordException | MissingPermissionsException e) {
|
||||
//Failed to edit.
|
||||
}
|
||||
});
|
||||
} catch (NullPointerException ignore) {
|
||||
}
|
||||
}
|
||||
|
||||
public static void editMessage(String message, EmbedCreateSpec embed, MessageCreateEvent event) {
|
||||
event.getMessage().edit(new MessageEditSpec().setContent(message).setEmbed(embed)).subscribe();
|
||||
public static void editMessage(String content, EmbedObject embed, MessageReceivedEvent event) {
|
||||
try {
|
||||
RequestBuffer.request(() -> {
|
||||
try {
|
||||
if (event.getMessage() != null && !event.getMessage().isDeleted())
|
||||
event.getMessage().edit(content, embed);
|
||||
|
||||
} catch (DiscordException | MissingPermissionsException e) {
|
||||
//Failed to edit.
|
||||
}
|
||||
});
|
||||
} catch (NullPointerException ignore) {
|
||||
}
|
||||
}
|
||||
|
||||
//Message deleting
|
||||
public static void deleteMessage(Message message) {
|
||||
message.delete().subscribe();
|
||||
public static void deleteMessage(IMessage message) {
|
||||
try {
|
||||
RequestBuffer.request(() -> {
|
||||
try {
|
||||
if (!message.isDeleted())
|
||||
message.delete();
|
||||
} catch (DiscordException | MissingPermissionsException e) {
|
||||
//Failed to delete.
|
||||
}
|
||||
});
|
||||
} catch (NullPointerException ignore) {
|
||||
}
|
||||
}
|
||||
|
||||
public static void deleteMessage(MessageCreateEvent event) {
|
||||
event.getMessage().delete().subscribe();
|
||||
public static void deleteMessage(MessageReceivedEvent event) {
|
||||
try {
|
||||
RequestBuffer.request(() -> {
|
||||
try {
|
||||
if (!event.getMessage().isDeleted())
|
||||
event.getMessage().delete();
|
||||
} catch (DiscordException | MissingPermissionsException e) {
|
||||
//Failed to delete.
|
||||
}
|
||||
});
|
||||
} catch (NullPointerException ignore) {
|
||||
}
|
||||
}
|
||||
}
|
||||
+7
-8
@@ -4,8 +4,6 @@ import com.google.api.client.util.DateTime;
|
||||
import com.google.api.services.calendar.Calendar;
|
||||
import com.google.api.services.calendar.model.Event;
|
||||
import com.google.api.services.calendar.model.Events;
|
||||
import discord4j.core.object.entity.Guild;
|
||||
import discord4j.core.object.util.Snowflake;
|
||||
import org.dreamexposure.discal.client.DisCalClient;
|
||||
import org.dreamexposure.discal.client.message.AnnouncementMessageFormatter;
|
||||
import org.dreamexposure.discal.core.calendar.CalendarAuth;
|
||||
@@ -18,6 +16,7 @@ import org.dreamexposure.discal.core.object.announcement.Announcement;
|
||||
import org.dreamexposure.discal.core.object.calendar.CalendarData;
|
||||
import org.dreamexposure.discal.core.utils.EventUtils;
|
||||
import org.dreamexposure.discal.core.utils.GuildUtils;
|
||||
import sx.blah.discord.handle.obj.IGuild;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
@@ -29,10 +28,10 @@ public class AnnouncementThread extends Thread {
|
||||
|
||||
private Calendar discalService;
|
||||
|
||||
private HashMap<Snowflake, GuildSettings> allSettings = new HashMap<>();
|
||||
private HashMap<Snowflake, CalendarData> calendars = new HashMap<>();
|
||||
private HashMap<Snowflake, Calendar> customServices = new HashMap<>();
|
||||
private HashMap<Snowflake, List<Event>> allEvents = new HashMap<>();
|
||||
private HashMap<Long, GuildSettings> allSettings = new HashMap<>();
|
||||
private HashMap<Long, CalendarData> calendars = new HashMap<>();
|
||||
private HashMap<Long, Calendar> customServices = new HashMap<>();
|
||||
private HashMap<Long, List<Event>> allEvents = new HashMap<>();
|
||||
|
||||
public AnnouncementThread() {
|
||||
}
|
||||
@@ -49,8 +48,8 @@ public class AnnouncementThread extends Thread {
|
||||
Logger.getLogger().exception(null, "Failed to get service! 01a0101", e, this.getClass());
|
||||
}
|
||||
|
||||
for (Guild g : DisCalClient.getClient().getGuilds().toIterable()) {
|
||||
List<Announcement> allAnnouncements = DatabaseManager.getManager().getEnabledAnnouncements(g.getId());
|
||||
for (IGuild g : DisCalClient.getClient().getGuilds()) {
|
||||
List<Announcement> allAnnouncements = DatabaseManager.getManager().getEnabledAnnouncements(g.getLongID());
|
||||
for (Announcement a : allAnnouncements) {
|
||||
try {
|
||||
Logger.getLogger().announcement("starting an announcement", a.getGuildId() + "", a.getAnnouncementId() + "", "N/a");
|
||||
|
||||
+4
-5
@@ -2,7 +2,6 @@ package org.dreamexposure.discal.client.module.command;
|
||||
|
||||
import com.google.api.services.calendar.Calendar;
|
||||
import com.google.api.services.calendar.model.CalendarListEntry;
|
||||
import discord4j.core.event.domain.message.MessageCreateEvent;
|
||||
import org.dreamexposure.discal.client.message.MessageManager;
|
||||
import org.dreamexposure.discal.client.network.google.GoogleExternalAuth;
|
||||
import org.dreamexposure.discal.core.calendar.CalendarAuth;
|
||||
@@ -12,6 +11,7 @@ import org.dreamexposure.discal.core.object.GuildSettings;
|
||||
import org.dreamexposure.discal.core.object.calendar.CalendarData;
|
||||
import org.dreamexposure.discal.core.object.command.CommandInfo;
|
||||
import org.dreamexposure.discal.core.utils.PermissionChecker;
|
||||
import sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -21,7 +21,6 @@ import java.util.List;
|
||||
* Website: www.cloudcraftgaming.com
|
||||
* For Project: DisCal
|
||||
*/
|
||||
@SuppressWarnings("OptionalGetWithoutIsPresent")
|
||||
public class AddCalendarCommand implements ICommand {
|
||||
/**
|
||||
* Gets the command this Object is responsible for.
|
||||
@@ -70,7 +69,7 @@ public class AddCalendarCommand implements ICommand {
|
||||
* @return <code>true</code> if successful, else <code>false</code>.
|
||||
*/
|
||||
@Override
|
||||
public boolean issueCommand(String[] args, MessageCreateEvent event, GuildSettings settings) {
|
||||
public boolean issueCommand(String[] args, MessageReceivedEvent event, GuildSettings settings) {
|
||||
if (settings.isDevGuild() || settings.isPatronGuild()) {
|
||||
if (PermissionChecker.hasManageServerRole(event)) {
|
||||
if (args.length == 0) {
|
||||
@@ -100,7 +99,7 @@ public class AddCalendarCommand implements ICommand {
|
||||
}
|
||||
if (valid) {
|
||||
//Update and save.
|
||||
CalendarData data = new CalendarData(settings.getGuildID(), 1);
|
||||
CalendarData data = new CalendarData(event.getGuild().getLongID(), 1);
|
||||
data.setCalendarId(args[0]);
|
||||
data.setCalendarAddress(args[0]);
|
||||
data.setExternal(true);
|
||||
@@ -117,7 +116,7 @@ public class AddCalendarCommand implements ICommand {
|
||||
}
|
||||
} catch (Exception e) {
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("AddCalendar.Select.Failure.Unknown", settings), event);
|
||||
Logger.getLogger().exception(event.getMember().get(), "Failed to connect external calendar!", e, this.getClass());
|
||||
Logger.getLogger().exception(event.getAuthor(), "Failed to connect external calendar!", e, this.getClass());
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
+324
-295
File diff suppressed because it is too large
Load Diff
+83
-72
@@ -1,7 +1,5 @@
|
||||
package org.dreamexposure.discal.client.module.command;
|
||||
|
||||
import discord4j.core.event.domain.message.MessageCreateEvent;
|
||||
import discord4j.core.object.entity.Message;
|
||||
import org.dreamexposure.discal.client.calendar.CalendarCreator;
|
||||
import org.dreamexposure.discal.client.message.CalendarMessageFormatter;
|
||||
import org.dreamexposure.discal.client.message.MessageManager;
|
||||
@@ -15,6 +13,9 @@ import org.dreamexposure.discal.core.utils.CalendarUtils;
|
||||
import org.dreamexposure.discal.core.utils.GeneralUtils;
|
||||
import org.dreamexposure.discal.core.utils.PermissionChecker;
|
||||
import org.dreamexposure.discal.core.utils.TimeZoneUtils;
|
||||
import sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent;
|
||||
import sx.blah.discord.handle.obj.IMessage;
|
||||
import sx.blah.discord.handle.obj.Permissions;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
@@ -87,12 +88,13 @@ public class CalendarCommand implements ICommand {
|
||||
* @return <code>true</code> if successful, else <code>false</code>.
|
||||
*/
|
||||
@Override
|
||||
public boolean issueCommand(String[] args, MessageCreateEvent event, GuildSettings settings) {
|
||||
public boolean issueCommand(String[] args, MessageReceivedEvent event, GuildSettings settings) {
|
||||
if (args.length < 1) {
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("Notification.Args.Few", settings), event);
|
||||
} else {
|
||||
long guildId = event.getGuild().getLongID();
|
||||
//TODO: Add support for multiple calendars...
|
||||
CalendarData calendarData = DatabaseManager.getManager().getMainCalendar(settings.getGuildID());
|
||||
CalendarData calendarData = DatabaseManager.getManager().getMainCalendar(guildId);
|
||||
|
||||
switch (args[0].toLowerCase()) {
|
||||
case "create":
|
||||
@@ -157,12 +159,13 @@ public class CalendarCommand implements ICommand {
|
||||
return false;
|
||||
}
|
||||
|
||||
private void moduleCreate(String[] args, MessageCreateEvent event, CalendarData calendarData, GuildSettings settings) {
|
||||
if (CalendarCreator.getCreator().hasPreCalendar(settings.getGuildID())) {
|
||||
if (CalendarCreator.getCreator().getPreCalendar(settings.getGuildID()).getCreatorMessage() != null) {
|
||||
private void moduleCreate(String[] args, MessageReceivedEvent event, CalendarData calendarData, GuildSettings settings) {
|
||||
long guildId = event.getGuild().getLongID();
|
||||
if (CalendarCreator.getCreator().hasPreCalendar(guildId)) {
|
||||
if (CalendarCreator.getCreator().getPreCalendar(guildId).getCreatorMessage() != null) {
|
||||
MessageManager.deleteMessage(event);
|
||||
MessageManager.deleteMessage(CalendarCreator.getCreator().getCreatorMessage(settings.getGuildID()));
|
||||
CalendarCreator.getCreator().setCreatorMessage(MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Calendar.AlreadyInit", settings), CalendarMessageFormatter.getPreCalendarEmbed(CalendarCreator.getCreator().getPreCalendar(settings.getGuildID()), settings), event));
|
||||
MessageManager.deleteMessage(CalendarCreator.getCreator().getCreatorMessage(guildId));
|
||||
CalendarCreator.getCreator().setCreatorMessage(MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Calendar.AlreadyInit", settings), CalendarMessageFormatter.getPreCalendarEmbed(CalendarCreator.getCreator().getPreCalendar(guildId), settings), event));
|
||||
} else {
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("Creator.Calendar.AlreadyInit", settings), event);
|
||||
}
|
||||
@@ -184,18 +187,19 @@ public class CalendarCommand implements ICommand {
|
||||
}
|
||||
}
|
||||
|
||||
private void moduleCancel(MessageCreateEvent event, CalendarData calendarData, GuildSettings settings) {
|
||||
if (CalendarCreator.getCreator().hasPreCalendar(settings.getGuildID())) {
|
||||
Message message = CalendarCreator.getCreator().getPreCalendar(settings.getGuildID()).getCreatorMessage();
|
||||
boolean editing = CalendarCreator.getCreator().getPreCalendar(settings.getGuildID()).isEditing();
|
||||
if (CalendarCreator.getCreator().terminate(settings.getGuildID())) {
|
||||
private void moduleCancel(MessageReceivedEvent event, CalendarData calendarData, GuildSettings settings) {
|
||||
long guildId = event.getGuild().getLongID();
|
||||
if (CalendarCreator.getCreator().hasPreCalendar(guildId)) {
|
||||
IMessage message = CalendarCreator.getCreator().getPreCalendar(guildId).getCreatorMessage();
|
||||
boolean editing = CalendarCreator.getCreator().getPreCalendar(guildId).isEditing();
|
||||
if (CalendarCreator.getCreator().terminate(guildId)) {
|
||||
if (message != null) {
|
||||
if (!editing) {
|
||||
MessageManager.deleteMessage(event);
|
||||
MessageManager.deleteMessage(CalendarCreator.getCreator().getCreatorMessage(settings.getGuildID()));
|
||||
MessageManager.deleteMessage(CalendarCreator.getCreator().getCreatorMessage(guildId));
|
||||
} else {
|
||||
MessageManager.deleteMessage(event);
|
||||
MessageManager.deleteMessage(CalendarCreator.getCreator().getCreatorMessage(settings.getGuildID()));
|
||||
MessageManager.deleteMessage(CalendarCreator.getCreator().getCreatorMessage(guildId));
|
||||
CalendarCreator.getCreator().setCreatorMessage(MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Calendar.Cancel.Edit.Success", settings), event));
|
||||
}
|
||||
} else {
|
||||
@@ -216,13 +220,14 @@ public class CalendarCommand implements ICommand {
|
||||
}
|
||||
}
|
||||
|
||||
private void moduleView(MessageCreateEvent event, CalendarData calendarData, GuildSettings settings) {
|
||||
if (CalendarCreator.getCreator().hasPreCalendar(settings.getGuildID())) {
|
||||
PreCalendar preCalendar = CalendarCreator.getCreator().getPreCalendar(settings.getGuildID());
|
||||
private void moduleView(MessageReceivedEvent event, CalendarData calendarData, GuildSettings settings) {
|
||||
long guildId = event.getGuild().getLongID();
|
||||
if (CalendarCreator.getCreator().hasPreCalendar(guildId)) {
|
||||
PreCalendar preCalendar = CalendarCreator.getCreator().getPreCalendar(guildId);
|
||||
if (preCalendar.getCreatorMessage() != null) {
|
||||
MessageManager.deleteMessage(event);
|
||||
MessageManager.deleteMessage(CalendarCreator.getCreator().getCreatorMessage(settings.getGuildID()));
|
||||
CalendarCreator.getCreator().setCreatorMessage(MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Calendar.Review", settings), CalendarMessageFormatter.getPreCalendarEmbed(CalendarCreator.getCreator().getPreCalendar(settings.getGuildID()), settings), event));
|
||||
MessageManager.deleteMessage(CalendarCreator.getCreator().getCreatorMessage(guildId));
|
||||
CalendarCreator.getCreator().setCreatorMessage(MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Calendar.Review", settings), CalendarMessageFormatter.getPreCalendarEmbed(CalendarCreator.getCreator().getPreCalendar(guildId), settings), event));
|
||||
} else {
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("Creator.Calendar.Review", settings), CalendarMessageFormatter.getPreCalendarEmbed(preCalendar, settings), event);
|
||||
}
|
||||
@@ -234,14 +239,15 @@ public class CalendarCommand implements ICommand {
|
||||
}
|
||||
}
|
||||
|
||||
private void moduleConfirm(MessageCreateEvent event, CalendarData calendarData, GuildSettings settings) {
|
||||
if (CalendarCreator.getCreator().hasPreCalendar(settings.getGuildID())) {
|
||||
private void moduleConfirm(MessageReceivedEvent event, CalendarData calendarData, GuildSettings settings) {
|
||||
long guildId = event.getGuild().getLongID();
|
||||
if (CalendarCreator.getCreator().hasPreCalendar(guildId)) {
|
||||
CalendarCreatorResponse response = CalendarCreator.getCreator().confirmCalendar(event, settings);
|
||||
if (response.isSuccessful()) {
|
||||
if (response.isEdited()) {
|
||||
if (response.getCreatorMessage() != null) {
|
||||
MessageManager.deleteMessage(event);
|
||||
MessageManager.deleteMessage(CalendarCreator.getCreator().getCreatorMessage(settings.getGuildID()));
|
||||
MessageManager.deleteMessage(CalendarCreator.getCreator().getCreatorMessage(guildId));
|
||||
CalendarCreator.getCreator().setCreatorMessage(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);
|
||||
@@ -249,7 +255,7 @@ public class CalendarCommand implements ICommand {
|
||||
} else {
|
||||
if (response.getCalendar() != null) {
|
||||
MessageManager.deleteMessage(event);
|
||||
MessageManager.deleteMessage(CalendarCreator.getCreator().getCreatorMessage(settings.getGuildID()));
|
||||
MessageManager.deleteMessage(CalendarCreator.getCreator().getCreatorMessage(guildId));
|
||||
CalendarCreator.getCreator().setCreatorMessage(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);
|
||||
@@ -259,16 +265,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.Failure", settings), CalendarMessageFormatter.getPreCalendarEmbed(CalendarCreator.getCreator().getPreCalendar(settings.getGuildID()), settings), event));
|
||||
MessageManager.deleteMessage(CalendarCreator.getCreator().getCreatorMessage(guildId));
|
||||
CalendarCreator.getCreator().setCreatorMessage(MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Calendar.Confirm.Edit.Failure", settings), CalendarMessageFormatter.getPreCalendarEmbed(CalendarCreator.getCreator().getPreCalendar(guildId), settings), event));
|
||||
} else {
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("Creator.Calendar.Confirm.Edit.Failure", settings), event);
|
||||
}
|
||||
} else {
|
||||
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.Failure", settings), CalendarMessageFormatter.getPreCalendarEmbed(CalendarCreator.getCreator().getPreCalendar(settings.getGuildID()), settings), event));
|
||||
MessageManager.deleteMessage(CalendarCreator.getCreator().getCreatorMessage(guildId));
|
||||
CalendarCreator.getCreator().setCreatorMessage(MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Calendar.Confirm.Create.Failure", settings), CalendarMessageFormatter.getPreCalendarEmbed(CalendarCreator.getCreator().getPreCalendar(guildId), settings), event));
|
||||
} else {
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("Creator.Calendar.Confirm.Create.Failure", settings), event);
|
||||
}
|
||||
@@ -282,18 +288,19 @@ public class CalendarCommand implements ICommand {
|
||||
}
|
||||
}
|
||||
|
||||
private void moduleDelete(MessageCreateEvent event, CalendarData calendarData, GuildSettings settings) {
|
||||
if (CalendarCreator.getCreator().hasPreCalendar(settings.getGuildID())) {
|
||||
if (CalendarCreator.getCreator().getPreCalendar(settings.getGuildID()).getCreatorMessage() != null) {
|
||||
private void moduleDelete(MessageReceivedEvent event, CalendarData calendarData, GuildSettings settings) {
|
||||
long guildId = event.getMessage().getGuild().getLongID();
|
||||
if (CalendarCreator.getCreator().hasPreCalendar(guildId)) {
|
||||
if (CalendarCreator.getCreator().getPreCalendar(guildId).getCreatorMessage() != null) {
|
||||
MessageManager.deleteMessage(event);
|
||||
MessageManager.deleteMessage(CalendarCreator.getCreator().getCreatorMessage(settings.getGuildID()));
|
||||
CalendarCreator.getCreator().setCreatorMessage(MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Calendar.Delete.Failure.InCreator", settings), CalendarMessageFormatter.getPreCalendarEmbed(CalendarCreator.getCreator().getPreCalendar(settings.getGuildID()), settings), event));
|
||||
MessageManager.deleteMessage(CalendarCreator.getCreator().getCreatorMessage(guildId));
|
||||
CalendarCreator.getCreator().setCreatorMessage(MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Calendar.Delete.Failure.InCreator", settings), CalendarMessageFormatter.getPreCalendarEmbed(CalendarCreator.getCreator().getPreCalendar(guildId), settings), event));
|
||||
} else {
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("Creator.Calendar.Delete.Failure.InCreator", settings), event);
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (!PermissionChecker.hasManageServerRole(event)) {
|
||||
if (!event.getMessage().getAuthor().getPermissionsForGuild(event.getMessage().getGuild()).contains(Permissions.MANAGE_SERVER)) {
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("Notification.Perm.MANAGE_SERVER", settings), event);
|
||||
return;
|
||||
}
|
||||
@@ -309,14 +316,15 @@ public class CalendarCommand implements ICommand {
|
||||
}
|
||||
}
|
||||
|
||||
private void moduleSummary(String[] args, MessageCreateEvent event, CalendarData calendarData, GuildSettings settings) {
|
||||
private void moduleSummary(String[] args, MessageReceivedEvent event, CalendarData calendarData, GuildSettings settings) {
|
||||
long guildId = event.getGuild().getLongID();
|
||||
if (args.length > 1) {
|
||||
if (CalendarCreator.getCreator().hasPreCalendar(settings.getGuildID())) {
|
||||
if (CalendarCreator.getCreator().getPreCalendar(settings.getGuildID()).getCreatorMessage() != null) {
|
||||
CalendarCreator.getCreator().getPreCalendar(settings.getGuildID()).setSummary(GeneralUtils.getContent(args, 1));
|
||||
if (CalendarCreator.getCreator().hasPreCalendar(guildId)) {
|
||||
if (CalendarCreator.getCreator().getPreCalendar(guildId).getCreatorMessage() != null) {
|
||||
CalendarCreator.getCreator().getPreCalendar(guildId).setSummary(GeneralUtils.getContent(args, 1));
|
||||
MessageManager.deleteMessage(event);
|
||||
MessageManager.deleteMessage(CalendarCreator.getCreator().getCreatorMessage(settings.getGuildID()));
|
||||
CalendarCreator.getCreator().setCreatorMessage(MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Calendar.Summary.N.Success", settings), CalendarMessageFormatter.getPreCalendarEmbed(CalendarCreator.getCreator().getPreCalendar(settings.getGuildID()), settings), event));
|
||||
MessageManager.deleteMessage(CalendarCreator.getCreator().getCreatorMessage(guildId));
|
||||
CalendarCreator.getCreator().setCreatorMessage(MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Calendar.Summary.N.Success", settings), CalendarMessageFormatter.getPreCalendarEmbed(CalendarCreator.getCreator().getPreCalendar(guildId), settings), event));
|
||||
} else {
|
||||
String msg = MessageManager.getMessage("Creator.Calendar.Summary.O.Success", "%summary%", GeneralUtils.getContent(args, 1), settings);
|
||||
MessageManager.sendMessageAsync(msg, event);
|
||||
@@ -328,11 +336,11 @@ public class CalendarCommand implements ICommand {
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("Creator.Calendar.HasCalendar", settings), event);
|
||||
}
|
||||
} else {
|
||||
if (CalendarCreator.getCreator().hasPreCalendar(settings.getGuildID())) {
|
||||
if (CalendarCreator.getCreator().getPreCalendar(settings.getGuildID()).getCreatorMessage() != null) {
|
||||
if (CalendarCreator.getCreator().hasPreCalendar(guildId)) {
|
||||
if (CalendarCreator.getCreator().getPreCalendar(guildId).getCreatorMessage() != null) {
|
||||
MessageManager.deleteMessage(event);
|
||||
MessageManager.deleteMessage(CalendarCreator.getCreator().getCreatorMessage(settings.getGuildID()));
|
||||
CalendarCreator.getCreator().setCreatorMessage(MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Calendar.Summary.Specify", settings), CalendarMessageFormatter.getPreCalendarEmbed(CalendarCreator.getCreator().getPreCalendar(settings.getGuildID()), settings), event));
|
||||
MessageManager.deleteMessage(CalendarCreator.getCreator().getCreatorMessage(guildId));
|
||||
CalendarCreator.getCreator().setCreatorMessage(MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Calendar.Summary.Specify", settings), CalendarMessageFormatter.getPreCalendarEmbed(CalendarCreator.getCreator().getPreCalendar(guildId), settings), event));
|
||||
} else {
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("Creator.Calendar.Summary.Specify", settings), event);
|
||||
}
|
||||
@@ -342,14 +350,15 @@ public class CalendarCommand implements ICommand {
|
||||
}
|
||||
}
|
||||
|
||||
private void moduleDescription(String[] args, MessageCreateEvent event, CalendarData calendarData, GuildSettings settings) {
|
||||
private void moduleDescription(String[] args, MessageReceivedEvent event, CalendarData calendarData, GuildSettings settings) {
|
||||
long guildId = event.getGuild().getLongID();
|
||||
if (args.length > 1) {
|
||||
if (CalendarCreator.getCreator().hasPreCalendar(settings.getGuildID())) {
|
||||
CalendarCreator.getCreator().getPreCalendar(settings.getGuildID()).setDescription(GeneralUtils.getContent(args, 1));
|
||||
if (CalendarCreator.getCreator().getPreCalendar(settings.getGuildID()).getCreatorMessage() != null) {
|
||||
if (CalendarCreator.getCreator().hasPreCalendar(guildId)) {
|
||||
CalendarCreator.getCreator().getPreCalendar(guildId).setDescription(GeneralUtils.getContent(args, 1));
|
||||
if (CalendarCreator.getCreator().getPreCalendar(guildId).getCreatorMessage() != null) {
|
||||
MessageManager.deleteMessage(event);
|
||||
MessageManager.deleteMessage(CalendarCreator.getCreator().getCreatorMessage(settings.getGuildID()));
|
||||
CalendarCreator.getCreator().setCreatorMessage(MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Calendar.Description.N.Success", settings) + TIME_ZONE_DB, CalendarMessageFormatter.getPreCalendarEmbed(CalendarCreator.getCreator().getPreCalendar(settings.getGuildID()), settings), event));
|
||||
MessageManager.deleteMessage(CalendarCreator.getCreator().getCreatorMessage(guildId));
|
||||
CalendarCreator.getCreator().setCreatorMessage(MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Calendar.Description.N.Success", settings) + TIME_ZONE_DB, CalendarMessageFormatter.getPreCalendarEmbed(CalendarCreator.getCreator().getPreCalendar(guildId), settings), event));
|
||||
} else {
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("Creator.Calendar.Description.O.Success", "%desc%", GeneralUtils.getContent(args, 1), settings) + TIME_ZONE_DB, event);
|
||||
}
|
||||
@@ -360,11 +369,11 @@ public class CalendarCommand implements ICommand {
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("Creator.Calendar.HasCalendar", settings), event);
|
||||
}
|
||||
} else {
|
||||
if (CalendarCreator.getCreator().hasPreCalendar(settings.getGuildID())) {
|
||||
if (CalendarCreator.getCreator().getPreCalendar(settings.getGuildID()).getCreatorMessage() != null) {
|
||||
if (CalendarCreator.getCreator().hasPreCalendar(guildId)) {
|
||||
if (CalendarCreator.getCreator().getPreCalendar(guildId).getCreatorMessage() != null) {
|
||||
MessageManager.deleteMessage(event);
|
||||
MessageManager.deleteMessage(CalendarCreator.getCreator().getCreatorMessage(settings.getGuildID()));
|
||||
CalendarCreator.getCreator().setCreatorMessage(MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Calendar.Description.Specify", settings), CalendarMessageFormatter.getPreCalendarEmbed(CalendarCreator.getCreator().getPreCalendar(settings.getGuildID()), settings), event));
|
||||
MessageManager.deleteMessage(CalendarCreator.getCreator().getCreatorMessage(guildId));
|
||||
CalendarCreator.getCreator().setCreatorMessage(MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Calendar.Description.Specify", settings), CalendarMessageFormatter.getPreCalendarEmbed(CalendarCreator.getCreator().getPreCalendar(guildId), settings), event));
|
||||
} else {
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("Creator.Calendar.Description.Specify", settings), event);
|
||||
}
|
||||
@@ -374,25 +383,26 @@ public class CalendarCommand implements ICommand {
|
||||
}
|
||||
}
|
||||
|
||||
private void moduleTimezone(String[] args, MessageCreateEvent event, CalendarData calendarData, GuildSettings settings) {
|
||||
private void moduleTimezone(String[] args, MessageReceivedEvent event, CalendarData calendarData, GuildSettings settings) {
|
||||
long guildId = event.getGuild().getLongID();
|
||||
if (args.length == 2) {
|
||||
String value = args[1];
|
||||
if (CalendarCreator.getCreator().hasPreCalendar(settings.getGuildID())) {
|
||||
if (CalendarCreator.getCreator().hasPreCalendar(guildId)) {
|
||||
if (TimeZoneUtils.isValid(value)) {
|
||||
CalendarCreator.getCreator().getPreCalendar(settings.getGuildID()).setTimezone(value);
|
||||
CalendarCreator.getCreator().getPreCalendar(guildId).setTimezone(value);
|
||||
|
||||
if (CalendarCreator.getCreator().getPreCalendar(settings.getGuildID()).getCreatorMessage() != null) {
|
||||
if (CalendarCreator.getCreator().getPreCalendar(guildId).getCreatorMessage() != null) {
|
||||
MessageManager.deleteMessage(event);
|
||||
MessageManager.deleteMessage(CalendarCreator.getCreator().getCreatorMessage(settings.getGuildID()));
|
||||
CalendarCreator.getCreator().setCreatorMessage(MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Calendar.TimeZone.N.Success", settings), CalendarMessageFormatter.getPreCalendarEmbed(CalendarCreator.getCreator().getPreCalendar(settings.getGuildID()), settings), event));
|
||||
MessageManager.deleteMessage(CalendarCreator.getCreator().getCreatorMessage(guildId));
|
||||
CalendarCreator.getCreator().setCreatorMessage(MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Calendar.TimeZone.N.Success", settings), CalendarMessageFormatter.getPreCalendarEmbed(CalendarCreator.getCreator().getPreCalendar(guildId), settings), event));
|
||||
} else {
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("Creator.Calendar.TimeZone.O.Success", "%tz%", value, settings), event);
|
||||
}
|
||||
} else {
|
||||
if (CalendarCreator.getCreator().getPreCalendar(settings.getGuildID()).getCreatorMessage() != null) {
|
||||
if (CalendarCreator.getCreator().getPreCalendar(guildId).getCreatorMessage() != null) {
|
||||
MessageManager.deleteMessage(event);
|
||||
MessageManager.deleteMessage(CalendarCreator.getCreator().getCreatorMessage(settings.getGuildID()));
|
||||
CalendarCreator.getCreator().setCreatorMessage(MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Calendar.TimeZone.Invalid", "%tz_db%", TIME_ZONE_DB, settings), CalendarMessageFormatter.getPreCalendarEmbed(CalendarCreator.getCreator().getPreCalendar(settings.getGuildID()), settings), event));
|
||||
MessageManager.deleteMessage(CalendarCreator.getCreator().getCreatorMessage(guildId));
|
||||
CalendarCreator.getCreator().setCreatorMessage(MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Calendar.TimeZone.Invalid", "%tz_db%", TIME_ZONE_DB, settings), CalendarMessageFormatter.getPreCalendarEmbed(CalendarCreator.getCreator().getPreCalendar(guildId), settings), event));
|
||||
} else {
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("Creator.Calendar.TimeZone.Invalid", "%tz_db%", TIME_ZONE_DB, settings), event);
|
||||
}
|
||||
@@ -404,18 +414,19 @@ public class CalendarCommand implements ICommand {
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("Creator.Calendar.HasCalendar", settings), event);
|
||||
}
|
||||
} else {
|
||||
if (CalendarCreator.getCreator().hasPreCalendar(settings.getGuildID())) {
|
||||
if (CalendarCreator.getCreator().hasPreCalendar(guildId)) {
|
||||
MessageManager.deleteMessage(event);
|
||||
MessageManager.deleteMessage(CalendarCreator.getCreator().getCreatorMessage(settings.getGuildID()));
|
||||
CalendarCreator.getCreator().setCreatorMessage(MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Calendar.TimeZone.Specify", settings) + TIME_ZONE_DB, CalendarMessageFormatter.getPreCalendarEmbed(CalendarCreator.getCreator().getPreCalendar(settings.getGuildID()), settings), event));
|
||||
MessageManager.deleteMessage(CalendarCreator.getCreator().getCreatorMessage(guildId));
|
||||
CalendarCreator.getCreator().setCreatorMessage(MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Calendar.TimeZone.Specify", settings) + TIME_ZONE_DB, CalendarMessageFormatter.getPreCalendarEmbed(CalendarCreator.getCreator().getPreCalendar(guildId), settings), event));
|
||||
} else {
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("Creator.Calendar.TimeZone.Specify", settings) + TIME_ZONE_DB, event);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void moduleEdit(MessageCreateEvent event, CalendarData calendarData, GuildSettings settings) {
|
||||
if (!CalendarCreator.getCreator().hasPreCalendar(settings.getGuildID())) {
|
||||
private void moduleEdit(MessageReceivedEvent event, CalendarData calendarData, GuildSettings settings) {
|
||||
long guildId = event.getGuild().getLongID();
|
||||
if (!CalendarCreator.getCreator().hasPreCalendar(guildId)) {
|
||||
if (!calendarData.getCalendarAddress().equalsIgnoreCase("primary")) {
|
||||
PreCalendar calendar = CalendarCreator.getCreator().edit(event, settings, true);
|
||||
if (calendar.getCreatorMessage() != null) {
|
||||
@@ -427,10 +438,10 @@ public class CalendarCommand implements ICommand {
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("Creator.Calendar.NoCalendar", settings), event);
|
||||
}
|
||||
} else {
|
||||
if (CalendarCreator.getCreator().getPreCalendar(settings.getGuildID()).getCreatorMessage() != null) {
|
||||
if (CalendarCreator.getCreator().getPreCalendar(guildId).getCreatorMessage() != null) {
|
||||
MessageManager.deleteMessage(event);
|
||||
MessageManager.deleteMessage(CalendarCreator.getCreator().getCreatorMessage(settings.getGuildID()));
|
||||
CalendarCreator.getCreator().setCreatorMessage(MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Calendar.AlreadyInit", settings), CalendarMessageFormatter.getPreCalendarEmbed(CalendarCreator.getCreator().getPreCalendar(settings.getGuildID()), settings), event));
|
||||
MessageManager.deleteMessage(CalendarCreator.getCreator().getCreatorMessage(guildId));
|
||||
CalendarCreator.getCreator().setCreatorMessage(MessageManager.sendMessageSync(MessageManager.getMessage("Creator.Calendar.AlreadyInit", settings), CalendarMessageFormatter.getPreCalendarEmbed(CalendarCreator.getCreator().getPreCalendar(guildId), settings), event));
|
||||
} else {
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("Creator.Calendar.AlreadyInit", settings), event);
|
||||
}
|
||||
|
||||
+6
-4
@@ -1,9 +1,10 @@
|
||||
package org.dreamexposure.discal.client.module.command;
|
||||
|
||||
import discord4j.core.event.domain.message.MessageCreateEvent;
|
||||
import org.dreamexposure.discal.client.DisCalClient;
|
||||
import org.dreamexposure.discal.core.object.GuildSettings;
|
||||
import org.dreamexposure.discal.core.utils.GeneralUtils;
|
||||
import sx.blah.discord.api.events.EventDispatcher;
|
||||
import sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
@@ -37,11 +38,12 @@ public class CommandExecutor {
|
||||
* @return The CommandExecutor's instance.
|
||||
*/
|
||||
public CommandExecutor enable() {
|
||||
DisCalClient.getClient().getEventDispatcher().on(MessageCreateEvent.class).subscribe(CommandListener::onMessageEvent);
|
||||
|
||||
EventDispatcher dispatcher = DisCalClient.getClient().getDispatcher();
|
||||
dispatcher.registerListener(new CommandListener(this));
|
||||
return instance;
|
||||
}
|
||||
|
||||
|
||||
//Functionals
|
||||
|
||||
/**
|
||||
@@ -60,7 +62,7 @@ public class CommandExecutor {
|
||||
* @param argsOr The command arguments used.
|
||||
* @param event The Event received.
|
||||
*/
|
||||
void issueCommand(String cmd, String[] argsOr, MessageCreateEvent event, GuildSettings settings) {
|
||||
void issueCommand(String cmd, String[] argsOr, MessageReceivedEvent event, GuildSettings settings) {
|
||||
|
||||
String[] args;
|
||||
if (argsOr.length > 0) {
|
||||
|
||||
+15
-14
@@ -1,11 +1,12 @@
|
||||
package org.dreamexposure.discal.client.module.command;
|
||||
|
||||
import discord4j.core.event.domain.message.MessageCreateEvent;
|
||||
import org.dreamexposure.discal.client.DisCalClient;
|
||||
import org.dreamexposure.discal.core.database.DatabaseManager;
|
||||
import org.dreamexposure.discal.core.logger.Logger;
|
||||
import org.dreamexposure.discal.core.object.GuildSettings;
|
||||
import org.dreamexposure.discal.core.utils.PermissionChecker;
|
||||
import sx.blah.discord.api.events.EventSubscriber;
|
||||
import sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
@@ -15,9 +16,9 @@ import java.util.Arrays;
|
||||
* Website: www.cloudcraftgaming.com
|
||||
* For Project: DisCal
|
||||
*/
|
||||
@SuppressWarnings({"unused", "OptionalGetWithoutIsPresent", "ToArrayCallWithZeroLengthArrayArgument"})
|
||||
@SuppressWarnings({"unused", "ToArrayCallWithZeroLengthArrayArgument"})
|
||||
class CommandListener {
|
||||
private static CommandExecutor cmd;
|
||||
private CommandExecutor cmd;
|
||||
|
||||
/**
|
||||
* Creates a new CommandListener listener.
|
||||
@@ -33,16 +34,16 @@ class CommandListener {
|
||||
*
|
||||
* @param event The event received to check for a command.
|
||||
*/
|
||||
@SuppressWarnings("WeakerAccess")
|
||||
public static void onMessageEvent(MessageCreateEvent event) {
|
||||
@EventSubscriber
|
||||
public void onMessageEvent(MessageReceivedEvent event) {
|
||||
try {
|
||||
if (event.getMessage().getContent().get().isEmpty() && !event.getMember().get().isBot()) {
|
||||
if (event.getMessage() != null && event.getGuild() != null && event.getChannel() != null && !event.getChannel().isPrivate() && event.getMessage().getContent() != null && event.getMessage().getContent().length() > 0 && !event.getAuthor().isBot()) {
|
||||
//Message is a valid guild message (not DM and not from a bot). Check if in correct channel.
|
||||
GuildSettings settings = DatabaseManager.getManager().getSettings(event.getGuildId().get());
|
||||
if (event.getMessage().getContent().get().startsWith(settings.getPrefix())) {
|
||||
if (PermissionChecker.isCorrectChannel(event, settings)) {
|
||||
GuildSettings settings = DatabaseManager.getManager().getSettings(event.getGuild().getLongID());
|
||||
if (event.getMessage().getContent().startsWith(settings.getPrefix())) {
|
||||
if (PermissionChecker.isCorrectChannel(event)) {
|
||||
//Prefixed with ! which should mean it is a command, convert and confirm.
|
||||
String[] argsOr = event.getMessage().getContent().get().split("\\s+");
|
||||
String[] argsOr = event.getMessage().getContent().split("\\s+");
|
||||
if (argsOr.length > 1) {
|
||||
ArrayList<String> argsOr2 = new ArrayList<>(Arrays.asList(argsOr).subList(1, argsOr.length));
|
||||
String[] args = argsOr2.toArray(new String[argsOr2.size()]);
|
||||
@@ -54,9 +55,9 @@ class CommandListener {
|
||||
cmd.issueCommand(argsOr[0].replace(settings.getPrefix(), ""), new String[0], event, settings);
|
||||
}
|
||||
}
|
||||
} else if (!event.getMessage().mentionsEveryone() && !event.getMessage().getContent().get().contains("@here") && (event.getMessage().toString().startsWith("<@" + DisCalClient.getClient().getSelfId().get() + ">") || event.getMessage().toString().startsWith("<@!" + DisCalClient.getClient().getSelfId().get() + ">"))) {
|
||||
if (PermissionChecker.isCorrectChannel(event, settings)) {
|
||||
String[] argsOr = event.getMessage().getContent().get().split("\\s+");
|
||||
} else if (!event.getMessage().mentionsEveryone() && !event.getMessage().mentionsHere() && (event.getMessage().toString().startsWith("<@" + DisCalClient.getClient().getOurUser().getStringID() + ">") || event.getMessage().toString().startsWith("<@!" + DisCalClient.getClient().getOurUser().getStringID() + ">"))) {
|
||||
if (PermissionChecker.isCorrectChannel(event)) {
|
||||
String[] argsOr = event.getMessage().getContent().split("\\s+");
|
||||
if (argsOr.length > 2) {
|
||||
ArrayList<String> argsOr2 = new ArrayList<>(Arrays.asList(argsOr).subList(2, argsOr.length));
|
||||
String[] args = argsOr2.toArray(new String[argsOr2.size()]);
|
||||
@@ -74,7 +75,7 @@ class CommandListener {
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Logger.getLogger().exception(event.getMember().get(), "Command error; event message: " + event.getMessage().getContent(), e, CommandListener.class);
|
||||
Logger.getLogger().exception(event.getAuthor(), "Command error; event message: " + event.getMessage().getContent(), e, this.getClass());
|
||||
}
|
||||
}
|
||||
}
|
||||
+46
-42
@@ -1,12 +1,5 @@
|
||||
package org.dreamexposure.discal.client.module.command;
|
||||
|
||||
import discord4j.core.DiscordClient;
|
||||
import discord4j.core.event.domain.message.MessageCreateEvent;
|
||||
import discord4j.core.object.entity.Channel;
|
||||
import discord4j.core.object.entity.Guild;
|
||||
import discord4j.core.object.entity.Member;
|
||||
import discord4j.core.object.entity.Message;
|
||||
import discord4j.core.spec.EmbedCreateSpec;
|
||||
import org.dreamexposure.discal.client.message.MessageManager;
|
||||
import org.dreamexposure.discal.core.crypto.KeyGenerator;
|
||||
import org.dreamexposure.discal.core.database.DatabaseManager;
|
||||
@@ -19,6 +12,13 @@ import org.dreamexposure.discal.core.object.web.UserAPIAccount;
|
||||
import org.dreamexposure.discal.core.utils.GlobalConst;
|
||||
import org.dreamexposure.novautils.network.crosstalk.ClientSocketHandler;
|
||||
import org.json.JSONObject;
|
||||
import sx.blah.discord.api.IDiscordClient;
|
||||
import sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent;
|
||||
import sx.blah.discord.handle.obj.IChannel;
|
||||
import sx.blah.discord.handle.obj.IGuild;
|
||||
import sx.blah.discord.handle.obj.IMessage;
|
||||
import sx.blah.discord.handle.obj.IUser;
|
||||
import sx.blah.discord.util.EmbedBuilder;
|
||||
|
||||
import javax.script.ScriptEngine;
|
||||
import javax.script.ScriptEngineManager;
|
||||
@@ -87,8 +87,8 @@ public class DevCommand implements ICommand {
|
||||
* @return <code>true</code> if successful, else <code>false</code>.
|
||||
*/
|
||||
@Override
|
||||
public boolean issueCommand(String[] args, MessageCreateEvent event, GuildSettings settings) {
|
||||
if (event.getMember().get().getId() == GlobalConst.novaId || event.getMember().get().getId() == GlobalConst.xaanitId || event.getMember().get().getId() == GlobalConst.calId || event.getMember().get().getId() == GlobalConst.dreamId) {
|
||||
public boolean issueCommand(String[] args, MessageReceivedEvent event, GuildSettings settings) {
|
||||
if (event.getAuthor().getLongID() == GlobalConst.novaId || event.getAuthor().getLongID() == GlobalConst.xaanitId || event.getAuthor().getLongID() == GlobalConst.calId || event.getAuthor().getLongID() == GlobalConst.dreamId) {
|
||||
if (args.length < 1) {
|
||||
MessageManager.sendMessageAsync("Please specify the function you would like to execute. To view valid functions use `!help dev`", event);
|
||||
} else {
|
||||
@@ -131,7 +131,7 @@ public class DevCommand implements ICommand {
|
||||
return false;
|
||||
}
|
||||
|
||||
private void modulePatron(String[] args, MessageCreateEvent event) {
|
||||
private void modulePatron(String[] args, MessageReceivedEvent event) {
|
||||
if (args.length == 2) {
|
||||
try {
|
||||
Long.valueOf(args[1]);
|
||||
@@ -156,13 +156,13 @@ public class DevCommand implements ICommand {
|
||||
}
|
||||
|
||||
@SuppressWarnings("all")
|
||||
private void moduleEval(MessageCreateEvent event) {
|
||||
Guild guild = event.getGuild().block();
|
||||
Member user = event.getMember().get();
|
||||
Message message = event.getMessage();
|
||||
DiscordClient client = event.getClient();
|
||||
Channel channel = event.getMessage().getChannel().block();
|
||||
String input = message.getContent().get().substring(message.getContent().get().indexOf("eval") + 5).replaceAll("`", "");
|
||||
private void moduleEval(MessageReceivedEvent event) {
|
||||
IGuild guild = event.getGuild();
|
||||
IUser user = event.getAuthor();
|
||||
IMessage message = event.getMessage();
|
||||
IDiscordClient client = event.getClient();
|
||||
IChannel channel = event.getMessage().getChannel();
|
||||
String input = message.getContent().substring(message.getContent().indexOf("eval") + 5).replaceAll("`", "");
|
||||
Object o = null;
|
||||
factory.put("guild", guild);
|
||||
factory.put("channel", channel);
|
||||
@@ -170,33 +170,37 @@ public class DevCommand implements ICommand {
|
||||
factory.put("message", message);
|
||||
factory.put("command", this);
|
||||
factory.put("client", client);
|
||||
factory.put("builder", new EmbedCreateSpec());
|
||||
factory.put("cUser", client.getSelf().block());
|
||||
factory.put("builder", new EmbedBuilder());
|
||||
factory.put("cUser", client.getOurUser());
|
||||
|
||||
try {
|
||||
o = factory.eval(input);
|
||||
} catch (Exception ex) {
|
||||
EmbedCreateSpec em = new EmbedCreateSpec();
|
||||
em.setAuthor("DisCal", GlobalConst.discalSite, GlobalConst.iconUrl);
|
||||
em.setTitle("Error");
|
||||
em.setDescription(ex.getMessage());
|
||||
em.setFooter("Eval failed", null);
|
||||
em.setColor(GlobalConst.discalColor);
|
||||
MessageManager.sendMessageAsync(em, event);
|
||||
EmbedBuilder em = new EmbedBuilder();
|
||||
em.withAuthorName("DisCal");
|
||||
em.withAuthorUrl(GlobalConst.discalSite);
|
||||
em.withAuthorIcon(GlobalConst.iconUrl);
|
||||
em.withTitle("Error");
|
||||
em.appendDesc(ex.getMessage());
|
||||
em.withFooterText("Eval failed");
|
||||
em.withColor(GlobalConst.discalColor);
|
||||
MessageManager.sendMessageAsync(em.build(), event);
|
||||
return;
|
||||
}
|
||||
|
||||
EmbedCreateSpec em = new EmbedCreateSpec();
|
||||
em.setAuthor("DisCal", GlobalConst.discalSite, GlobalConst.iconUrl);
|
||||
em.setTitle("Success! -- Eval Output.");
|
||||
em.setColor(GlobalConst.discalColor);
|
||||
em.setDescription(o == null ? "No output, object is null" : o.toString());
|
||||
em.addField("Input", "```java\n" + input + "\n```", false);
|
||||
em.setFooter("Eval successful!", null);
|
||||
MessageManager.sendMessageAsync(em, event);
|
||||
EmbedBuilder em = new EmbedBuilder();
|
||||
em.withAuthorName("DisCal");
|
||||
em.withAuthorUrl(GlobalConst.discalSite);
|
||||
em.withAuthorIcon(GlobalConst.iconUrl);
|
||||
em.withTitle("Success! -- Eval Output.");
|
||||
em.withColor(GlobalConst.discalColor);
|
||||
em.appendDesc(o == null ? "No output, object is null" : o.toString());
|
||||
em.appendField("Input", "```java\n" + input + "\n```", false);
|
||||
em.withFooterText("Eval successful!");
|
||||
MessageManager.sendMessageAsync(em.build(), event);
|
||||
}
|
||||
|
||||
private void moduleDevGuild(String[] args, MessageCreateEvent event) {
|
||||
private void moduleDevGuild(String[] args, MessageReceivedEvent event) {
|
||||
if (args.length == 2) {
|
||||
try {
|
||||
Long.valueOf(args[1]);
|
||||
@@ -220,7 +224,7 @@ public class DevCommand implements ICommand {
|
||||
}
|
||||
}
|
||||
|
||||
private void moduleMaxCalendars(String[] args, MessageCreateEvent event) {
|
||||
private void moduleMaxCalendars(String[] args, MessageReceivedEvent event) {
|
||||
if (args.length == 3) {
|
||||
try {
|
||||
int mc = Integer.valueOf(args[2]);
|
||||
@@ -252,7 +256,7 @@ public class DevCommand implements ICommand {
|
||||
}
|
||||
}
|
||||
|
||||
private void moduleLeaveGuild(String[] args, MessageCreateEvent event) {
|
||||
private void moduleLeaveGuild(String[] args, MessageReceivedEvent event) {
|
||||
if (args.length == 2) {
|
||||
try {
|
||||
Long.valueOf(args[1]);
|
||||
@@ -276,7 +280,7 @@ public class DevCommand implements ICommand {
|
||||
}
|
||||
}
|
||||
|
||||
private void moduleReloadLangs(MessageCreateEvent event) {
|
||||
private void moduleReloadLangs(MessageReceivedEvent event) {
|
||||
MessageManager.reloadLangs();
|
||||
|
||||
//Just send this across the network with CrossTalk... and let the changes propagate
|
||||
@@ -291,7 +295,7 @@ public class DevCommand implements ICommand {
|
||||
}
|
||||
|
||||
|
||||
private void registerApiKey(String[] args, MessageCreateEvent event) {
|
||||
private void registerApiKey(String[] args, MessageReceivedEvent event) {
|
||||
if (args.length == 2) {
|
||||
MessageManager.sendMessageAsync("Registering new API key...", event);
|
||||
|
||||
@@ -306,7 +310,7 @@ public class DevCommand implements ICommand {
|
||||
|
||||
if (DatabaseManager.getManager().updateAPIAccount(account)) {
|
||||
MessageManager.sendMessageAsync("Check your DMs for the new API Key!", event);
|
||||
MessageManager.sendDirectMessageAsync(account.getAPIKey(), event.getMember().get());
|
||||
MessageManager.sendDirectMessageAsync(account.getAPIKey(), event.getAuthor());
|
||||
} else {
|
||||
MessageManager.sendMessageAsync("Error occurred! Could not register new API key!", event);
|
||||
}
|
||||
@@ -315,7 +319,7 @@ public class DevCommand implements ICommand {
|
||||
}
|
||||
}
|
||||
|
||||
private void blockAPIKey(String[] args, MessageCreateEvent event) {
|
||||
private void blockAPIKey(String[] args, MessageReceivedEvent event) {
|
||||
if (args.length == 2) {
|
||||
MessageManager.sendMessageAsync("Blocking API key...", event);
|
||||
|
||||
@@ -333,7 +337,7 @@ public class DevCommand implements ICommand {
|
||||
}
|
||||
}
|
||||
|
||||
private void moduleCheckSettings(String[] args, MessageCreateEvent event) {
|
||||
private void moduleCheckSettings(String[] args, MessageReceivedEvent event) {
|
||||
if (args.length == 2) {
|
||||
//String id = args[1];
|
||||
|
||||
|
||||
+65
-58
@@ -1,16 +1,17 @@
|
||||
package org.dreamexposure.discal.client.module.command;
|
||||
|
||||
import discord4j.core.event.domain.message.MessageCreateEvent;
|
||||
import discord4j.core.object.entity.GuildChannel;
|
||||
import discord4j.core.object.entity.Member;
|
||||
import discord4j.core.object.entity.Role;
|
||||
import discord4j.core.spec.EmbedCreateSpec;
|
||||
import org.dreamexposure.discal.client.DisCalClient;
|
||||
import org.dreamexposure.discal.client.message.MessageManager;
|
||||
import org.dreamexposure.discal.core.database.DatabaseManager;
|
||||
import org.dreamexposure.discal.core.object.GuildSettings;
|
||||
import org.dreamexposure.discal.core.object.command.CommandInfo;
|
||||
import org.dreamexposure.discal.core.utils.*;
|
||||
import sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent;
|
||||
import sx.blah.discord.handle.obj.IChannel;
|
||||
import sx.blah.discord.handle.obj.IGuild;
|
||||
import sx.blah.discord.handle.obj.IRole;
|
||||
import sx.blah.discord.handle.obj.IUser;
|
||||
import sx.blah.discord.util.EmbedBuilder;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
@@ -19,7 +20,6 @@ import java.util.ArrayList;
|
||||
* Website: www.cloudcraftgaming.com
|
||||
* For Project: DisCal
|
||||
*/
|
||||
@SuppressWarnings({"OptionalGetWithoutIsPresent", "ConstantConditions"})
|
||||
public class DisCalCommand implements ICommand {
|
||||
|
||||
/**
|
||||
@@ -79,7 +79,7 @@ public class DisCalCommand implements ICommand {
|
||||
* @return <code>true</code> if successful, else <code>false</code>.
|
||||
*/
|
||||
@Override
|
||||
public boolean issueCommand(String[] args, MessageCreateEvent event, GuildSettings settings) {
|
||||
public boolean issueCommand(String[] args, MessageReceivedEvent event, GuildSettings settings) {
|
||||
if (args.length < 1) {
|
||||
moduleDisCalInfo(event, settings);
|
||||
} else {
|
||||
@@ -131,20 +131,25 @@ public class DisCalCommand implements ICommand {
|
||||
return false;
|
||||
}
|
||||
|
||||
private void moduleDisCalInfo(MessageCreateEvent event, GuildSettings settings) {
|
||||
EmbedCreateSpec em = new EmbedCreateSpec();
|
||||
em.setAuthor("DisCal", GlobalConst.discalSite, GlobalConst.iconUrl);
|
||||
em.setTitle(MessageManager.getMessage("Embed.DisCal.Info.Title", settings));
|
||||
em.addField(MessageManager.getMessage("Embed.DisCal.Info.Developer", settings), "NovaFox161", true);
|
||||
em.addField(MessageManager.getMessage("Embed.Discal.Info.Version", settings), GlobalConst.version, true);
|
||||
em.addField(MessageManager.getMessage("Embed.DisCal.Info.Library", settings), "Discord4J, version 2.9.2", false);
|
||||
em.addField(MessageManager.getMessage("Embed.DisCal.Info.TotalGuilds", settings), DisCalClient.getClient().getGuilds().count().block().intValue() + "", true);
|
||||
em.addField(MessageManager.getMessage("Embed.DisCal.Info.TotalCalendars", settings), DatabaseManager.getManager().getCalendarCount() + "", true);
|
||||
em.addField(MessageManager.getMessage("Embed.DisCal.Info.TotalAnnouncements", settings), DatabaseManager.getManager().getAnnouncementCount() + "", true);
|
||||
em.setFooter(MessageManager.getMessage("Embed.DisCal.Info.Patron", settings) + ": https://www.patreon.com/Novafox", null);
|
||||
em.setUrl("https://www.discalbot.com");
|
||||
em.setColor(GlobalConst.discalColor);
|
||||
MessageManager.sendMessageAsync(em, event);
|
||||
private void moduleDisCalInfo(MessageReceivedEvent event, GuildSettings settings) {
|
||||
IGuild guild = event.getGuild();
|
||||
|
||||
EmbedBuilder em = new EmbedBuilder();
|
||||
em.withAuthorIcon(GlobalConst.discalSite);
|
||||
em.withAuthorName("DisCal");
|
||||
em.withAuthorUrl(GlobalConst.discalSite);
|
||||
em.withTitle(MessageManager.getMessage("Embed.DisCal.Info.Title", settings));
|
||||
em.appendField(MessageManager.getMessage("Embed.DisCal.Info.Developer", settings), "NovaFox161", true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Discal.Info.Version", settings), GlobalConst.version, true);
|
||||
em.appendField(MessageManager.getMessage("Embed.DisCal.Info.Library", settings), "Discord4J, version 2.10.1", false);
|
||||
em.appendField(MessageManager.getMessage("Embed.DisCal.Info.TotalGuilds", settings), DisCalClient.getClient().getGuilds().size() + "", true);
|
||||
em.appendField(MessageManager.getMessage("Embed.DisCal.Info.TotalCalendars", settings), DatabaseManager.getManager().getCalendarCount() + "", true);
|
||||
em.appendField(MessageManager.getMessage("Embed.DisCal.Info.TotalAnnouncements", settings), DatabaseManager.getManager().getAnnouncementCount() + "", true);
|
||||
em.appendField(MessageManager.getMessage("Embed.DisCal.Info.Ping", "%shard%", (guild.getShard().getInfo()[0] + 1) + "/" + DisCalClient.getClient().getShardCount(), settings), guild.getShard().getResponseTime() + "ms", false);
|
||||
em.withFooterText(MessageManager.getMessage("Embed.DisCal.Info.Patron", settings) + ": https://www.patreon.com/Novafox");
|
||||
em.withUrl("https://www.discalbot.com");
|
||||
em.withColor(GlobalConst.discalColor);
|
||||
MessageManager.sendMessageAsync(em.build(), event);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -153,17 +158,17 @@ public class DisCalCommand implements ICommand {
|
||||
* @param args The args of the command.
|
||||
* @param event The event received.
|
||||
*/
|
||||
private void moduleControlRole(String[] args, MessageCreateEvent event, GuildSettings settings) {
|
||||
private void moduleControlRole(String[] args, MessageReceivedEvent event, GuildSettings settings) {
|
||||
if (PermissionChecker.hasSufficientRole(event)) {
|
||||
if (args.length > 1) {
|
||||
String roleName = GeneralUtils.getContent(args, 1);
|
||||
Role controlRole;
|
||||
IRole controlRole;
|
||||
|
||||
if (!"everyone".equalsIgnoreCase(roleName)) {
|
||||
controlRole = RoleUtils.getRoleFromID(roleName, event);
|
||||
|
||||
if (controlRole != null) {
|
||||
settings.setControlRole(controlRole.getId().asString());
|
||||
settings.setControlRole(controlRole.getStringID());
|
||||
DatabaseManager.getManager().updateSettings(settings);
|
||||
//Send message.
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("DisCal.ControlRole.Set", "%role%", controlRole.getName(), settings), event);
|
||||
@@ -193,7 +198,7 @@ public class DisCalCommand implements ICommand {
|
||||
* @param args The command args
|
||||
* @param event The event received.
|
||||
*/
|
||||
private void moduleDisCalChannel(String[] args, MessageCreateEvent event, GuildSettings settings) {
|
||||
private void moduleDisCalChannel(String[] args, MessageReceivedEvent event, GuildSettings settings) {
|
||||
if (args.length == 2) {
|
||||
String channelName = args[1];
|
||||
if (channelName.equalsIgnoreCase("all")) {
|
||||
@@ -203,9 +208,9 @@ public class DisCalCommand implements ICommand {
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("DisCal.Channel.All", settings), event);
|
||||
} else {
|
||||
if (ChannelUtils.channelExists(channelName, event)) {
|
||||
GuildChannel channel = ChannelUtils.getChannelFromNameOrId(channelName, event);
|
||||
IChannel channel = ChannelUtils.getChannelFromNameOrId(channelName, event);
|
||||
if (channel != null) {
|
||||
settings.setDiscalChannel(channel.getId().asString());
|
||||
settings.setDiscalChannel(channel.getStringID());
|
||||
DatabaseManager.getManager().updateSettings(settings);
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("DisCal.Channel.Set", "%channel%", channel.getName(), settings), event);
|
||||
} else {
|
||||
@@ -220,52 +225,54 @@ public class DisCalCommand implements ICommand {
|
||||
}
|
||||
}
|
||||
|
||||
private void moduleSimpleAnnouncement(MessageCreateEvent event, GuildSettings settings) {
|
||||
private void moduleSimpleAnnouncement(MessageReceivedEvent event, GuildSettings settings) {
|
||||
settings.setSimpleAnnouncements(!settings.usingSimpleAnnouncements());
|
||||
DatabaseManager.getManager().updateSettings(settings);
|
||||
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("DisCal.SimpleAnnouncement", "%value%", settings.usingSimpleAnnouncements() + "", settings), event);
|
||||
}
|
||||
|
||||
private void moduleSettings(MessageCreateEvent event, GuildSettings settings) {
|
||||
EmbedCreateSpec em = new EmbedCreateSpec();
|
||||
em.setAuthor("DisCal", GlobalConst.discalSite, GlobalConst.iconUrl);
|
||||
em.setTitle(MessageManager.getMessage("Embed.DisCal.Settings.Title", settings));
|
||||
em.addField(MessageManager.getMessage("Embed.DisCal.Settings.ExternalCal", settings), String.valueOf(settings.useExternalCalendar()), true);
|
||||
private void moduleSettings(MessageReceivedEvent event, GuildSettings settings) {
|
||||
EmbedBuilder em = new EmbedBuilder();
|
||||
em.withAuthorIcon(GlobalConst.discalSite);
|
||||
em.withAuthorName("DisCal");
|
||||
em.withAuthorUrl(GlobalConst.discalSite);
|
||||
em.withTitle(MessageManager.getMessage("Embed.DisCal.Settings.Title", settings));
|
||||
em.appendField(MessageManager.getMessage("Embed.DisCal.Settings.ExternalCal", settings), String.valueOf(settings.useExternalCalendar()), true);
|
||||
if (RoleUtils.roleExists(settings.getControlRole(), event)) {
|
||||
em.addField(MessageManager.getMessage("Embed.Discal.Settings.Role", settings), RoleUtils.getRoleNameFromID(settings.getControlRole(), event), true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Discal.Settings.Role", settings), RoleUtils.getRoleNameFromID(settings.getControlRole(), event), true);
|
||||
} else {
|
||||
em.addField(MessageManager.getMessage("Embed.Discal.Settings.Role", settings), "everyone", true);
|
||||
em.appendField(MessageManager.getMessage("Embed.Discal.Settings.Role", settings), "everyone", true);
|
||||
}
|
||||
if (ChannelUtils.channelExists(settings.getDiscalChannel(), event)) {
|
||||
em.addField(MessageManager.getMessage("Embed.DisCal.Settings.Channel", settings), ChannelUtils.getChannelNameFromNameOrId(settings.getDiscalChannel(), event.getGuild().block()), false);
|
||||
em.appendField(MessageManager.getMessage("Embed.DisCal.Settings.Channel", settings), ChannelUtils.getChannelNameFromNameOrId(settings.getDiscalChannel(), event.getGuild()), false);
|
||||
} else {
|
||||
em.addField(MessageManager.getMessage("Embed.DisCal.Settings.Channel", settings), "All Channels", true);
|
||||
em.appendField(MessageManager.getMessage("Embed.DisCal.Settings.Channel", settings), "All Channels", true);
|
||||
}
|
||||
em.addField(MessageManager.getMessage("Embed.DisCal.Settings.SimpleAnn", settings), String.valueOf(settings.usingSimpleAnnouncements()), true);
|
||||
em.addField(MessageManager.getMessage("Embed.DisCal.Settings.Patron", settings), String.valueOf(settings.isPatronGuild()), true);
|
||||
em.addField(MessageManager.getMessage("Embed.DisCal.Settings.Dev", settings), String.valueOf(settings.isDevGuild()), true);
|
||||
em.addField(MessageManager.getMessage("Embed.DisCal.Settings.MaxCal", settings), String.valueOf(settings.getMaxCalendars()), true);
|
||||
em.addField(MessageManager.getMessage("Embed.DisCal.Settings.Language", settings), settings.getLang(), true);
|
||||
em.addField(MessageManager.getMessage("Embed.DisCal.Settings.Prefix", settings), settings.getPrefix(), true);
|
||||
em.appendField(MessageManager.getMessage("Embed.DisCal.Settings.SimpleAnn", settings), String.valueOf(settings.usingSimpleAnnouncements()), true);
|
||||
em.appendField(MessageManager.getMessage("Embed.DisCal.Settings.Patron", settings), String.valueOf(settings.isPatronGuild()), true);
|
||||
em.appendField(MessageManager.getMessage("Embed.DisCal.Settings.Dev", settings), String.valueOf(settings.isDevGuild()), true);
|
||||
em.appendField(MessageManager.getMessage("Embed.DisCal.Settings.MaxCal", settings), String.valueOf(settings.getMaxCalendars()), true);
|
||||
em.appendField(MessageManager.getMessage("Embed.DisCal.Settings.Language", settings), settings.getLang(), true);
|
||||
em.appendField(MessageManager.getMessage("Embed.DisCal.Settings.Prefix", settings), settings.getPrefix(), true);
|
||||
//TODO: Add translations...
|
||||
em.addField("Using Branding", settings.isBranded() + "", true);
|
||||
em.setFooter(MessageManager.getMessage("Embed.DisCal.Info.Patron", settings) + ": https://www.patreon.com/Novafox", null);
|
||||
em.setUrl("https://www.discalbot.com/");
|
||||
em.setColor(GlobalConst.discalColor);
|
||||
MessageManager.sendMessageAsync(em, event);
|
||||
em.appendField("Using Branding", settings.isBranded() + "", true);
|
||||
em.withFooterText(MessageManager.getMessage("Embed.DisCal.Info.Patron", settings) + ": https://www.patreon.com/Novafox");
|
||||
em.withUrl("https://www.discalbot.com/");
|
||||
em.withColor(GlobalConst.discalColor);
|
||||
MessageManager.sendMessageAsync(em.build(), event);
|
||||
}
|
||||
|
||||
private void moduleDmAnnouncements(MessageCreateEvent event, GuildSettings settings) {
|
||||
private void moduleDmAnnouncements(MessageReceivedEvent event, GuildSettings settings) {
|
||||
if (settings.isDevGuild()) {
|
||||
Member user = event.getMember().get();
|
||||
IUser user = event.getAuthor();
|
||||
|
||||
if (settings.getDmAnnouncements().contains(user.getId().asString())) {
|
||||
settings.getDmAnnouncements().remove(user.getId().asString());
|
||||
if (settings.getDmAnnouncements().contains(user.getStringID())) {
|
||||
settings.getDmAnnouncements().remove(user.getStringID());
|
||||
DatabaseManager.getManager().updateSettings(settings);
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("DisCal.DmAnnouncements.Off", settings), event);
|
||||
} else {
|
||||
settings.getDmAnnouncements().add(user.getId().asString());
|
||||
settings.getDmAnnouncements().add(user.getStringID());
|
||||
DatabaseManager.getManager().updateSettings(settings);
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("DisCal.DmAnnouncements.On", settings), event);
|
||||
}
|
||||
@@ -274,7 +281,7 @@ public class DisCalCommand implements ICommand {
|
||||
}
|
||||
}
|
||||
|
||||
private void modulePrefix(String[] args, MessageCreateEvent event, GuildSettings settings) {
|
||||
private void modulePrefix(String[] args, MessageReceivedEvent event, GuildSettings settings) {
|
||||
if (PermissionChecker.hasManageServerRole(event)) {
|
||||
if (args.length == 2) {
|
||||
String prefix = args[1];
|
||||
@@ -291,7 +298,7 @@ public class DisCalCommand implements ICommand {
|
||||
}
|
||||
}
|
||||
|
||||
private void moduleLanguage(String[] args, MessageCreateEvent event, GuildSettings settings) {
|
||||
private void moduleLanguage(String[] args, MessageReceivedEvent event, GuildSettings settings) {
|
||||
if (PermissionChecker.hasManageServerRole(event)) {
|
||||
if (args.length == 2) {
|
||||
String value = args[1];
|
||||
@@ -315,11 +322,11 @@ public class DisCalCommand implements ICommand {
|
||||
}
|
||||
}
|
||||
|
||||
private void moduleInvite(MessageCreateEvent event, GuildSettings settings) {
|
||||
private void moduleInvite(MessageReceivedEvent event, GuildSettings settings) {
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("DisCal.InviteLink", "%link%", GlobalConst.supportInviteLink, settings), event);
|
||||
}
|
||||
|
||||
private void moduleBrand(MessageCreateEvent event, GuildSettings settings) {
|
||||
private void moduleBrand(MessageReceivedEvent event, GuildSettings settings) {
|
||||
if (PermissionChecker.hasSufficientRole(event)) {
|
||||
if (settings.isPatronGuild()) {
|
||||
settings.setBranded(!settings.isBranded());
|
||||
@@ -334,7 +341,7 @@ public class DisCalCommand implements ICommand {
|
||||
}
|
||||
}
|
||||
|
||||
private void moduleDashboard(MessageCreateEvent event, GuildSettings settings) {
|
||||
private void moduleDashboard(MessageReceivedEvent event, GuildSettings settings) {
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("DisCal.DashboardLink", "%link%", GlobalConst.discalDashboardLink, settings), event);
|
||||
}
|
||||
}
|
||||
+270
-249
File diff suppressed because it is too large
Load Diff
+11
-12
@@ -4,7 +4,6 @@ import com.google.api.client.util.DateTime;
|
||||
import com.google.api.services.calendar.Calendar;
|
||||
import com.google.api.services.calendar.model.Event;
|
||||
import com.google.api.services.calendar.model.Events;
|
||||
import discord4j.core.event.domain.message.MessageCreateEvent;
|
||||
import org.dreamexposure.discal.client.message.EventMessageFormatter;
|
||||
import org.dreamexposure.discal.client.message.MessageManager;
|
||||
import org.dreamexposure.discal.core.calendar.CalendarAuth;
|
||||
@@ -13,6 +12,7 @@ import org.dreamexposure.discal.core.logger.Logger;
|
||||
import org.dreamexposure.discal.core.object.GuildSettings;
|
||||
import org.dreamexposure.discal.core.object.calendar.CalendarData;
|
||||
import org.dreamexposure.discal.core.object.command.CommandInfo;
|
||||
import sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -22,7 +22,6 @@ import java.util.List;
|
||||
* Website: www.cloudcraftgaming.com
|
||||
* For Project: DisCal
|
||||
*/
|
||||
@SuppressWarnings("OptionalGetWithoutIsPresent")
|
||||
public class EventListCommand implements ICommand {
|
||||
/**
|
||||
* Gets the command this Object is responsible for.
|
||||
@@ -69,7 +68,7 @@ public class EventListCommand implements ICommand {
|
||||
* @return <code>true</code> if successful, else <code>false</code>.
|
||||
*/
|
||||
@Override
|
||||
public boolean issueCommand(String[] args, MessageCreateEvent event, GuildSettings settings) {
|
||||
public boolean issueCommand(String[] args, MessageReceivedEvent event, GuildSettings settings) {
|
||||
//Get events from calendar
|
||||
if (args.length < 1) {
|
||||
moduleSimpleList(args, event, settings);
|
||||
@@ -96,13 +95,13 @@ public class EventListCommand implements ICommand {
|
||||
}
|
||||
|
||||
@SuppressWarnings("Duplicates")
|
||||
private void moduleSimpleList(String[] args, MessageCreateEvent event, GuildSettings settings) {
|
||||
private void moduleSimpleList(String[] args, MessageReceivedEvent event, GuildSettings settings) {
|
||||
if (args.length == 0) {
|
||||
try {
|
||||
Calendar service = CalendarAuth.getCalendarService(settings);
|
||||
|
||||
DateTime now = new DateTime(System.currentTimeMillis());
|
||||
CalendarData calendarData = DatabaseManager.getManager().getMainCalendar(settings.getGuildID());
|
||||
CalendarData calendarData = DatabaseManager.getManager().getMainCalendar(event.getGuild().getLongID());
|
||||
Events events = service.events().list(calendarData.getCalendarAddress())
|
||||
.setMaxResults(1)
|
||||
.setTimeMin(now)
|
||||
@@ -118,7 +117,7 @@ public class EventListCommand implements ICommand {
|
||||
}
|
||||
} catch (Exception e) {
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("Notification.Error.Unknown", settings), event);
|
||||
Logger.getLogger().exception(event.getMember().get(), "Failed to list events.", e, this.getClass());
|
||||
Logger.getLogger().exception(event.getAuthor(), "Failed to list events.", e, this.getClass());
|
||||
e.printStackTrace();
|
||||
}
|
||||
} else if (args.length == 1) {
|
||||
@@ -136,7 +135,7 @@ public class EventListCommand implements ICommand {
|
||||
Calendar service = CalendarAuth.getCalendarService(settings);
|
||||
|
||||
DateTime now = new DateTime(System.currentTimeMillis());
|
||||
CalendarData calendarData = DatabaseManager.getManager().getMainCalendar(settings.getGuildID());
|
||||
CalendarData calendarData = DatabaseManager.getManager().getMainCalendar(event.getGuild().getLongID());
|
||||
Events events = service.events().list(calendarData.getCalendarAddress())
|
||||
.setMaxResults(eventNum)
|
||||
.setTimeMin(now)
|
||||
@@ -157,7 +156,7 @@ public class EventListCommand implements ICommand {
|
||||
}
|
||||
} catch (Exception e) {
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("Notification.Error.Unknown", settings), event);
|
||||
Logger.getLogger().exception(event.getMember().get(), "Failed to list events.", e, this.getClass());
|
||||
Logger.getLogger().exception(event.getAuthor(), "Failed to list events.", e, this.getClass());
|
||||
e.printStackTrace();
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
@@ -168,12 +167,12 @@ public class EventListCommand implements ICommand {
|
||||
}
|
||||
}
|
||||
|
||||
private void moduleSearch(String[] args, MessageCreateEvent event, GuildSettings settings) {
|
||||
private void moduleSearch(String[] args, MessageReceivedEvent event, GuildSettings settings) {
|
||||
|
||||
}
|
||||
|
||||
@SuppressWarnings("Duplicates")
|
||||
private void moduleDay(String[] args, MessageCreateEvent event, GuildSettings settings) {
|
||||
private void moduleDay(String[] args, MessageReceivedEvent event, GuildSettings settings) {
|
||||
if (args.length == 1) {
|
||||
//Get the upcoming events in the next 24 hours.
|
||||
try {
|
||||
@@ -181,7 +180,7 @@ public class EventListCommand implements ICommand {
|
||||
|
||||
DateTime now = new DateTime(System.currentTimeMillis());
|
||||
DateTime twentyFourHoursFromNow = new DateTime(now.getValue() + 86400000L);
|
||||
CalendarData calendarData = DatabaseManager.getManager().getMainCalendar(settings.getGuildID());
|
||||
CalendarData calendarData = DatabaseManager.getManager().getMainCalendar(event.getGuild().getLongID());
|
||||
Events events = service.events().list(calendarData.getCalendarAddress())
|
||||
.setMaxResults(20)
|
||||
.setTimeMin(now)
|
||||
@@ -204,7 +203,7 @@ public class EventListCommand implements ICommand {
|
||||
}
|
||||
} catch (Exception e) {
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("Notification.Error.Unknown", settings), event);
|
||||
Logger.getLogger().exception(event.getMember().get(), "Failed to list events.", e, this.getClass());
|
||||
Logger.getLogger().exception(event.getAuthor(), "Failed to list events.", e, this.getClass());
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
+41
-33
@@ -1,11 +1,12 @@
|
||||
package org.dreamexposure.discal.client.module.command;
|
||||
|
||||
import discord4j.core.event.domain.message.MessageCreateEvent;
|
||||
import discord4j.core.spec.EmbedCreateSpec;
|
||||
import org.dreamexposure.discal.client.message.MessageManager;
|
||||
import org.dreamexposure.discal.core.object.GuildSettings;
|
||||
import org.dreamexposure.discal.core.object.command.CommandInfo;
|
||||
import org.dreamexposure.discal.core.utils.GlobalConst;
|
||||
import sx.blah.discord.api.internal.json.objects.EmbedObject;
|
||||
import sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent;
|
||||
import sx.blah.discord.util.EmbedBuilder;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
@@ -14,6 +15,7 @@ import java.util.ArrayList;
|
||||
* Website: www.cloudcraftgaming.com
|
||||
* For Project: DisCal
|
||||
*/
|
||||
@SuppressWarnings("Duplicates")
|
||||
public class HelpCommand implements ICommand {
|
||||
/**
|
||||
* Gets the command this Object is responsible for.
|
||||
@@ -59,23 +61,25 @@ public class HelpCommand implements ICommand {
|
||||
* @return <code>true</code> if successful, else <code>false</code>.
|
||||
*/
|
||||
@Override
|
||||
public boolean issueCommand(String[] args, MessageCreateEvent event, GuildSettings settings) {
|
||||
public boolean issueCommand(String[] args, MessageReceivedEvent event, GuildSettings settings) {
|
||||
if (args.length < 1) {
|
||||
EmbedCreateSpec em = new EmbedCreateSpec();
|
||||
em.setAuthor("DisCal", GlobalConst.discalSite, GlobalConst.iconUrl);
|
||||
em.setTitle("DisCal Command Help");
|
||||
EmbedBuilder em = new EmbedBuilder();
|
||||
em.withAuthorIcon(GlobalConst.discalSite);
|
||||
em.withAuthorName("DisCal");
|
||||
em.withAuthorUrl(GlobalConst.discalSite);
|
||||
em.withTitle("DisCal Command Help");
|
||||
for (ICommand c: CommandExecutor.getExecutor().getCommands()) {
|
||||
if (c.getAliases().size() > 0) {
|
||||
String al = c.getAliases().toString();
|
||||
em.addField(c.getCommand() + " " + al, c.getCommandInfo().getDescription(), true);
|
||||
em.appendField(c.getCommand() + " " + al, c.getCommandInfo().getDescription(), true);
|
||||
} else {
|
||||
em.addField(c.getCommand(), c.getCommandInfo().getDescription(), true);
|
||||
em.appendField(c.getCommand(), c.getCommandInfo().getDescription(), true);
|
||||
}
|
||||
}
|
||||
em.setFooter("Check out the official site for more command info!", null);
|
||||
em.setUrl("https://www.discalbot.com/commands");
|
||||
em.setColor(GlobalConst.discalColor);
|
||||
MessageManager.sendMessageAsync(em, event);
|
||||
em.withFooterText("Check out the official site for more command info!");
|
||||
em.withUrl("https://www.discalbot.com/commands");
|
||||
em.withColor(GlobalConst.discalColor);
|
||||
MessageManager.sendMessageAsync(em.build(), event);
|
||||
} else if (args.length == 1) {
|
||||
String cmdFor = args[0];
|
||||
ICommand cmd = CommandExecutor.getExecutor().getCommand(cmdFor);
|
||||
@@ -98,43 +102,47 @@ public class HelpCommand implements ICommand {
|
||||
}
|
||||
|
||||
//Embed formatters
|
||||
private EmbedCreateSpec getCommandInfoEmbed(ICommand cmd) {
|
||||
EmbedCreateSpec em = new EmbedCreateSpec();
|
||||
em.setAuthor("DisCal", GlobalConst.discalSite, GlobalConst.iconUrl);
|
||||
em.addField("Command", cmd.getCommand(), true);
|
||||
em.addField("Description", cmd.getCommandInfo().getDescription(), true);
|
||||
em.addField("Example", cmd.getCommandInfo().getExample(), true);
|
||||
private EmbedObject getCommandInfoEmbed(ICommand cmd) {
|
||||
EmbedBuilder em = new EmbedBuilder();
|
||||
em.withAuthorIcon(GlobalConst.discalSite);
|
||||
em.withAuthorName("DisCal");
|
||||
em.withAuthorUrl(GlobalConst.discalSite);
|
||||
em.appendField("Command", cmd.getCommand(), true);
|
||||
em.appendField("Description", cmd.getCommandInfo().getDescription(), true);
|
||||
em.appendField("Example", cmd.getCommandInfo().getExample(), true);
|
||||
|
||||
//Loop through sub commands
|
||||
if (cmd.getCommandInfo().getSubCommands().size() > 0) {
|
||||
String subs = cmd.getCommandInfo().getSubCommands().keySet().toString();
|
||||
subs = subs.replace("[", "").replace("]", "");
|
||||
em.addField("Sub-Commands", subs, false);
|
||||
em.appendField("Sub-Commands", subs, false);
|
||||
}
|
||||
|
||||
em.setFooter("<> = required | () = optional", null);
|
||||
em.withFooterText("<> = required | () = optional");
|
||||
|
||||
em.setUrl("https://www.discalbot.com/commands");
|
||||
em.withUrl("https://www.discalbot.com/commands");
|
||||
|
||||
em.setColor(GlobalConst.discalColor);
|
||||
em.withColor(GlobalConst.discalColor);
|
||||
|
||||
return em;
|
||||
return em.build();
|
||||
}
|
||||
|
||||
private EmbedCreateSpec getSubCommandEmbed(ICommand cmd, String subCommand) {
|
||||
EmbedCreateSpec em = new EmbedCreateSpec();
|
||||
em.setAuthor("DisCal", GlobalConst.discalSite, GlobalConst.iconUrl);
|
||||
em.addField("Command", cmd.getCommand(), true);
|
||||
em.addField("Sub Command", subCommand, true);
|
||||
private EmbedObject getSubCommandEmbed(ICommand cmd, String subCommand) {
|
||||
EmbedBuilder em = new EmbedBuilder();
|
||||
em.withAuthorIcon(GlobalConst.discalSite);
|
||||
em.withAuthorName("DisCal");
|
||||
em.withAuthorUrl(GlobalConst.discalSite);
|
||||
em.appendField("Command", cmd.getCommand(), true);
|
||||
em.appendField("Sub Command", subCommand, true);
|
||||
|
||||
em.addField("Usage", cmd.getCommandInfo().getSubCommands().get(subCommand), false);
|
||||
em.appendField("Usage", cmd.getCommandInfo().getSubCommands().get(subCommand), false);
|
||||
|
||||
em.setFooter("<> = required | () = optional", null);
|
||||
em.withFooterText("<> = required | () = optional");
|
||||
|
||||
em.setUrl("https://www.discalbot.com/commands");
|
||||
em.withUrl("https://www.discalbot.com/commands");
|
||||
|
||||
em.setColor(GlobalConst.discalColor);
|
||||
em.withColor(GlobalConst.discalColor);
|
||||
|
||||
return em;
|
||||
return em.build();
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
package org.dreamexposure.discal.client.module.command;
|
||||
|
||||
import discord4j.core.event.domain.message.MessageCreateEvent;
|
||||
import org.dreamexposure.discal.core.object.GuildSettings;
|
||||
import org.dreamexposure.discal.core.object.command.CommandInfo;
|
||||
import sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -38,5 +38,5 @@ public interface ICommand {
|
||||
return info;
|
||||
}
|
||||
|
||||
boolean issueCommand(String[] args, MessageCreateEvent event, GuildSettings settings);
|
||||
boolean issueCommand(String[] args, MessageReceivedEvent event, GuildSettings settings);
|
||||
}
|
||||
+4
-5
@@ -1,7 +1,6 @@
|
||||
package org.dreamexposure.discal.client.module.command;
|
||||
|
||||
import com.google.api.services.calendar.model.Calendar;
|
||||
import discord4j.core.event.domain.message.MessageCreateEvent;
|
||||
import org.dreamexposure.discal.client.message.CalendarMessageFormatter;
|
||||
import org.dreamexposure.discal.client.message.MessageManager;
|
||||
import org.dreamexposure.discal.core.calendar.CalendarAuth;
|
||||
@@ -10,6 +9,7 @@ import org.dreamexposure.discal.core.logger.Logger;
|
||||
import org.dreamexposure.discal.core.object.GuildSettings;
|
||||
import org.dreamexposure.discal.core.object.calendar.CalendarData;
|
||||
import org.dreamexposure.discal.core.object.command.CommandInfo;
|
||||
import sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
@@ -18,7 +18,6 @@ import java.util.ArrayList;
|
||||
* Website: www.cloudcraftgaming.com
|
||||
* For Project: DisCal
|
||||
*/
|
||||
@SuppressWarnings("OptionalGetWithoutIsPresent")
|
||||
public class LinkCalendarCommand implements ICommand {
|
||||
/**
|
||||
* Gets the command this Object is responsible for.
|
||||
@@ -68,10 +67,10 @@ public class LinkCalendarCommand implements ICommand {
|
||||
* @return <code>true</code> if successful, else <code>false</code>.
|
||||
*/
|
||||
@Override
|
||||
public boolean issueCommand(String[] args, MessageCreateEvent event, GuildSettings settings) {
|
||||
public boolean issueCommand(String[] args, MessageReceivedEvent event, GuildSettings settings) {
|
||||
try {
|
||||
//TODO: Handle multiple calendars...
|
||||
CalendarData data = DatabaseManager.getManager().getMainCalendar(settings.getGuildID());
|
||||
CalendarData data = DatabaseManager.getManager().getMainCalendar(event.getGuild().getLongID());
|
||||
|
||||
if (data.getCalendarAddress().equalsIgnoreCase("primary")) {
|
||||
//Does not have a calendar.
|
||||
@@ -82,7 +81,7 @@ public class LinkCalendarCommand implements ICommand {
|
||||
MessageManager.sendMessageAsync(CalendarMessageFormatter.getCalendarLinkEmbed(cal, settings), event);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Logger.getLogger().exception(event.getMember().get(), "Failed to connect to Google Cal.", e, this.getClass());
|
||||
Logger.getLogger().exception(event.getAuthor(), "Failed to connect to Google Cal.", e, this.getClass());
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("Notification.Error.Unknown", settings), event);
|
||||
}
|
||||
return false;
|
||||
|
||||
+48
-46
@@ -1,9 +1,5 @@
|
||||
package org.dreamexposure.discal.client.module.command;
|
||||
|
||||
import discord4j.core.event.domain.message.MessageCreateEvent;
|
||||
import discord4j.core.object.entity.Guild;
|
||||
import discord4j.core.object.entity.User;
|
||||
import discord4j.core.spec.EmbedCreateSpec;
|
||||
import org.dreamexposure.discal.client.DisCalClient;
|
||||
import org.dreamexposure.discal.client.message.MessageManager;
|
||||
import org.dreamexposure.discal.core.database.DatabaseManager;
|
||||
@@ -14,6 +10,11 @@ import org.dreamexposure.discal.core.utils.EventUtils;
|
||||
import org.dreamexposure.discal.core.utils.GlobalConst;
|
||||
import org.dreamexposure.discal.core.utils.TimeUtils;
|
||||
import org.dreamexposure.discal.core.utils.UserUtils;
|
||||
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.IGuild;
|
||||
import sx.blah.discord.handle.obj.IUser;
|
||||
import sx.blah.discord.util.EmbedBuilder;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
@@ -75,7 +76,7 @@ public class RsvpCommand implements ICommand {
|
||||
* @return <code>true</code> if successful, else <code>false</code>.
|
||||
*/
|
||||
@Override
|
||||
public boolean issueCommand(String[] args, MessageCreateEvent event, GuildSettings settings) {
|
||||
public boolean issueCommand(String[] args, MessageReceivedEvent event, GuildSettings settings) {
|
||||
if (args.length > 0) {
|
||||
switch (args[0].toLowerCase()) {
|
||||
case "ontime":
|
||||
@@ -106,14 +107,14 @@ public class RsvpCommand implements ICommand {
|
||||
return false;
|
||||
}
|
||||
|
||||
private void moduleGoing(String[] args, MessageCreateEvent event, GuildSettings settings) {
|
||||
private void moduleGoing(String[] args, MessageReceivedEvent event, GuildSettings settings) {
|
||||
if (args.length == 2) {
|
||||
String eventId = args[1];
|
||||
if (EventUtils.eventExists(settings, eventId)) {
|
||||
if (!TimeUtils.inPast(eventId, settings)) {
|
||||
RsvpData data = DatabaseManager.getManager().getRsvpData(settings.getGuildID(), eventId);
|
||||
data.removeCompletely(event.getMember().get().getId().asString());
|
||||
data.getGoingOnTime().add(event.getMember().get().getId().asString());
|
||||
data.removeCompletely(event.getAuthor().getStringID());
|
||||
data.getGoingOnTime().add(event.getAuthor().getStringID());
|
||||
|
||||
DatabaseManager.getManager().updateRsvpData(data);
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("RSVP.going.success", settings), getRsvpEmbed(data, settings), event);
|
||||
@@ -128,14 +129,14 @@ public class RsvpCommand implements ICommand {
|
||||
}
|
||||
}
|
||||
|
||||
private void moduleGoingLate(String[] args, MessageCreateEvent event, GuildSettings settings) {
|
||||
private void moduleGoingLate(String[] args, MessageReceivedEvent event, GuildSettings settings) {
|
||||
if (args.length == 2) {
|
||||
String eventId = args[1];
|
||||
if (EventUtils.eventExists(settings, eventId)) {
|
||||
if (!TimeUtils.inPast(eventId, settings)) {
|
||||
RsvpData data = DatabaseManager.getManager().getRsvpData(settings.getGuildID(), eventId);
|
||||
data.removeCompletely(event.getMember().get().getId().asString());
|
||||
data.getGoingLate().add(event.getMember().get().getId().asString());
|
||||
data.removeCompletely(event.getAuthor().getStringID());
|
||||
data.getGoingLate().add(event.getAuthor().getStringID());
|
||||
|
||||
DatabaseManager.getManager().updateRsvpData(data);
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("RSVP.late.success", settings), getRsvpEmbed(data, settings), event);
|
||||
@@ -150,14 +151,14 @@ public class RsvpCommand implements ICommand {
|
||||
}
|
||||
}
|
||||
|
||||
private void moduleNotGoing(String[] args, MessageCreateEvent event, GuildSettings settings) {
|
||||
private void moduleNotGoing(String[] args, MessageReceivedEvent event, GuildSettings settings) {
|
||||
if (args.length == 2) {
|
||||
String eventId = args[1];
|
||||
if (EventUtils.eventExists(settings, eventId)) {
|
||||
if (!TimeUtils.inPast(eventId, settings)) {
|
||||
RsvpData data = DatabaseManager.getManager().getRsvpData(settings.getGuildID(), eventId);
|
||||
data.removeCompletely(event.getMember().get().getId().asString());
|
||||
data.getNotGoing().add(event.getMember().get().getId().asString());
|
||||
data.removeCompletely(event.getAuthor().getStringID());
|
||||
data.getNotGoing().add(event.getAuthor().getStringID());
|
||||
|
||||
DatabaseManager.getManager().updateRsvpData(data);
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("RSVP.not.success", settings), getRsvpEmbed(data, settings), event);
|
||||
@@ -172,13 +173,13 @@ public class RsvpCommand implements ICommand {
|
||||
}
|
||||
}
|
||||
|
||||
private void moduleRemove(String[] args, MessageCreateEvent event, GuildSettings settings) {
|
||||
private void moduleRemove(String[] args, MessageReceivedEvent event, GuildSettings settings) {
|
||||
if (args.length == 2) {
|
||||
String eventId = args[1];
|
||||
if (EventUtils.eventExists(settings, eventId)) {
|
||||
if (!TimeUtils.inPast(eventId, settings)) {
|
||||
RsvpData data = DatabaseManager.getManager().getRsvpData(settings.getGuildID(), eventId);
|
||||
data.removeCompletely(event.getMember().get().getId().asString());
|
||||
data.removeCompletely(event.getAuthor().getStringID());
|
||||
|
||||
DatabaseManager.getManager().updateRsvpData(data);
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("RSVP.remove.success", settings), getRsvpEmbed(data, settings), event);
|
||||
@@ -193,18 +194,17 @@ public class RsvpCommand implements ICommand {
|
||||
}
|
||||
}
|
||||
|
||||
private void moduleUnsure(String[] args, MessageCreateEvent event, GuildSettings settings) {
|
||||
private void moduleUnsure(String[] args, MessageReceivedEvent event, GuildSettings settings) {
|
||||
if (args.length == 2) {
|
||||
String eventId = args[1];
|
||||
if (EventUtils.eventExists(settings, eventId)) {
|
||||
if (!TimeUtils.inPast(eventId, settings)) {
|
||||
RsvpData data = DatabaseManager.getManager().getRsvpData(settings.getGuildID(), eventId);
|
||||
data.removeCompletely(event.getMember().get().getId().asString());
|
||||
data.getUndecided().add(event.getMember().get().getId().asString());
|
||||
data.removeCompletely(event.getAuthor().getStringID());
|
||||
data.getUndecided().add(event.getAuthor().getStringID());
|
||||
|
||||
DatabaseManager.getManager().updateRsvpData(data);
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("RSVP.unsure.success", settings), getRsvpEmbed(data, settings), event);
|
||||
|
||||
} else {
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("Notifications.Event.InPast", settings), event);
|
||||
}
|
||||
@@ -216,7 +216,7 @@ public class RsvpCommand implements ICommand {
|
||||
}
|
||||
}
|
||||
|
||||
private void moduleList(String[] args, MessageCreateEvent event, GuildSettings settings) {
|
||||
private void moduleList(String[] args, MessageReceivedEvent event, GuildSettings settings) {
|
||||
if (args.length == 2) {
|
||||
String eventId = args[1];
|
||||
if (EventUtils.eventExists(settings, eventId)) {
|
||||
@@ -232,57 +232,59 @@ public class RsvpCommand implements ICommand {
|
||||
}
|
||||
|
||||
|
||||
private EmbedCreateSpec getRsvpEmbed(RsvpData data, GuildSettings settings) {
|
||||
EmbedCreateSpec em = new EmbedCreateSpec();
|
||||
em.setAuthor("DisCal", GlobalConst.discalSite, GlobalConst.iconUrl);
|
||||
em.setTitle(MessageManager.getMessage("Embed.RSVP.List.Title", settings));
|
||||
em.addField("Event ID", data.getEventId(), false);
|
||||
private EmbedObject getRsvpEmbed(RsvpData data, GuildSettings settings) {
|
||||
EmbedBuilder em = new EmbedBuilder();
|
||||
em.withAuthorIcon(GlobalConst.discalSite);
|
||||
em.withAuthorName("DisCal");
|
||||
em.withAuthorUrl(GlobalConst.discalSite);
|
||||
em.withTitle(MessageManager.getMessage("Embed.RSVP.List.Title", settings));
|
||||
em.appendField("Event ID", data.getEventId(), false);
|
||||
|
||||
Guild g = DisCalClient.getClient().getGuildById(settings.getGuildID()).block();
|
||||
IGuild g = DisCalClient.getClient().getGuildByID(settings.getGuildID());
|
||||
|
||||
StringBuilder onTime = new StringBuilder();
|
||||
for (User u : UserUtils.getUsers(data.getGoingOnTime(), g)) {
|
||||
onTime.append(u.asMember(settings.getGuildID()).block().getDisplayName()).append(", ");
|
||||
for (IUser u : UserUtils.getUsers(data.getGoingOnTime(), g)) {
|
||||
onTime.append(u.getDisplayName(g)).append(", ");
|
||||
}
|
||||
|
||||
StringBuilder late = new StringBuilder();
|
||||
for (User u : UserUtils.getUsers(data.getGoingLate(), g)) {
|
||||
late.append(u.asMember(settings.getGuildID()).block().getDisplayName()).append(", ");
|
||||
for (IUser u : UserUtils.getUsers(data.getGoingLate(), g)) {
|
||||
late.append(u.getDisplayName(g)).append(", ");
|
||||
}
|
||||
|
||||
StringBuilder unsure = new StringBuilder();
|
||||
for (User u : UserUtils.getUsers(data.getUndecided(), g)) {
|
||||
unsure.append(u.asMember(settings.getGuildID()).block().getDisplayName()).append(", ");
|
||||
for (IUser u : UserUtils.getUsers(data.getUndecided(), g)) {
|
||||
unsure.append(u.getDisplayName(g)).append(", ");
|
||||
}
|
||||
|
||||
StringBuilder notGoing = new StringBuilder();
|
||||
for (User u : UserUtils.getUsers(data.getNotGoing(), g)) {
|
||||
notGoing.append(u.asMember(settings.getGuildID()).block().getDisplayName()).append(", ");
|
||||
for (IUser u : UserUtils.getUsers(data.getNotGoing(), g)) {
|
||||
notGoing.append(u.getDisplayName(g)).append(", ");
|
||||
}
|
||||
|
||||
if (onTime.toString().isEmpty())
|
||||
em.addField("On time", "N/a", true);
|
||||
em.appendField("On time", "N/a", true);
|
||||
else
|
||||
em.addField("On Time", onTime.toString(), true);
|
||||
em.appendField("On Time", onTime.toString(), true);
|
||||
|
||||
if (late.toString().isEmpty())
|
||||
em.addField("Late", "N/a", true);
|
||||
em.appendField("Late", "N/a", true);
|
||||
else
|
||||
em.addField("Late", late.toString(), true);
|
||||
em.appendField("Late", late.toString(), true);
|
||||
|
||||
if (unsure.toString().isEmpty())
|
||||
em.addField("Unsure", "N/a", true);
|
||||
em.appendField("Unsure", "N/a", true);
|
||||
else
|
||||
em.addField("Unsure", unsure.toString(), true);
|
||||
em.appendField("Unsure", unsure.toString(), true);
|
||||
|
||||
if (notGoing.toString().isEmpty())
|
||||
em.addField("Not Going", "N/a", true);
|
||||
em.appendField("Not Going", "N/a", true);
|
||||
else
|
||||
em.addField("Not Going", notGoing.toString(), true);
|
||||
em.appendField("Not Going", notGoing.toString(), true);
|
||||
|
||||
em.setFooter(MessageManager.getMessage("Embed.RSVP.List.Footer", settings), null);
|
||||
em.setColor(GlobalConst.discalColor);
|
||||
em.withFooterText(MessageManager.getMessage("Embed.RSVP.List.Footer", settings));
|
||||
em.withColor(GlobalConst.discalColor);
|
||||
|
||||
return em;
|
||||
return em.build();
|
||||
}
|
||||
}
|
||||
+17
-16
@@ -1,8 +1,6 @@
|
||||
package org.dreamexposure.discal.client.module.command;
|
||||
|
||||
import com.google.api.services.calendar.model.Calendar;
|
||||
import discord4j.core.event.domain.message.MessageCreateEvent;
|
||||
import discord4j.core.spec.EmbedCreateSpec;
|
||||
import org.dreamexposure.discal.client.message.CalendarMessageFormatter;
|
||||
import org.dreamexposure.discal.client.message.MessageManager;
|
||||
import org.dreamexposure.discal.core.calendar.CalendarAuth;
|
||||
@@ -12,6 +10,8 @@ import org.dreamexposure.discal.core.object.GuildSettings;
|
||||
import org.dreamexposure.discal.core.object.calendar.CalendarData;
|
||||
import org.dreamexposure.discal.core.object.command.CommandInfo;
|
||||
import org.dreamexposure.discal.core.utils.GlobalConst;
|
||||
import sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent;
|
||||
import sx.blah.discord.util.EmbedBuilder;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
@@ -69,16 +69,15 @@ public class TimeCommand implements ICommand {
|
||||
* @return <code>true</code> if successful, else <code>false</code>.
|
||||
*/
|
||||
@Override
|
||||
public boolean issueCommand(String[] args, MessageCreateEvent event, GuildSettings settings) {
|
||||
public boolean issueCommand(String[] args, MessageReceivedEvent event, GuildSettings settings) {
|
||||
calendarTime(event, settings);
|
||||
return false;
|
||||
}
|
||||
|
||||
@SuppressWarnings("OptionalGetWithoutIsPresent")
|
||||
private void calendarTime(MessageCreateEvent event, GuildSettings settings) {
|
||||
private void calendarTime(MessageReceivedEvent event, GuildSettings settings) {
|
||||
try {
|
||||
//TODO: Handle multiple calendars...
|
||||
CalendarData data = DatabaseManager.getManager().getMainCalendar(settings.getGuildID());
|
||||
CalendarData data = DatabaseManager.getManager().getMainCalendar(event.getGuild().getLongID());
|
||||
|
||||
if (data.getCalendarAddress().equalsIgnoreCase("primary")) {
|
||||
//Does not have a calendar.
|
||||
@@ -93,19 +92,21 @@ public class TimeCommand implements ICommand {
|
||||
String thisIsTheCorrectTime = format.format(ldt);
|
||||
|
||||
//Build embed and send.
|
||||
EmbedCreateSpec em = new EmbedCreateSpec();
|
||||
em.setAuthor("DisCal", GlobalConst.discalSite, GlobalConst.iconUrl);
|
||||
em.setTitle(MessageManager.getMessage("Embed.Time.Title", settings));
|
||||
em.addField(MessageManager.getMessage("Embed.Time.Time", settings), thisIsTheCorrectTime, false);
|
||||
em.addField(MessageManager.getMessage("Embed.Time.TimeZone", settings), cal.getTimeZone(), false);
|
||||
EmbedBuilder em = new EmbedBuilder();
|
||||
em.withAuthorIcon(GlobalConst.discalSite);
|
||||
em.withAuthorName("DisCal");
|
||||
em.withAuthorUrl(GlobalConst.discalSite);
|
||||
em.withTitle(MessageManager.getMessage("Embed.Time.Title", settings));
|
||||
em.appendField(MessageManager.getMessage("Embed.Time.Time", settings), thisIsTheCorrectTime, false);
|
||||
em.appendField(MessageManager.getMessage("Embed.Time.TimeZone", settings), cal.getTimeZone(), false);
|
||||
|
||||
em.setFooter(MessageManager.getMessage("Embed.Time.Footer", settings), null);
|
||||
em.setUrl(CalendarMessageFormatter.getCalendarLink(settings.getGuildID()));
|
||||
em.setColor(GlobalConst.discalColor);
|
||||
MessageManager.sendMessageAsync(em, event);
|
||||
em.withFooterText(MessageManager.getMessage("Embed.Time.Footer", settings));
|
||||
em.withUrl(CalendarMessageFormatter.getCalendarLink(settings.getGuildID()));
|
||||
em.withColor(GlobalConst.discalColor);
|
||||
MessageManager.sendMessageAsync(em.build(), event);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Logger.getLogger().exception(event.getMember().get(), "Failed to connect to Google Cal.", e, this.getClass());
|
||||
Logger.getLogger().exception(event.getAuthor(), "Failed to connect to Google Cal.", e, this.getClass());
|
||||
MessageManager.sendMessageAsync(MessageManager.getMessage("Notification.Error.Unknown", settings), event);
|
||||
}
|
||||
}
|
||||
|
||||
+25
-31
@@ -1,11 +1,11 @@
|
||||
package org.dreamexposure.discal.client.module.misc;
|
||||
|
||||
import discord4j.core.object.data.stored.PresenceBean;
|
||||
import discord4j.core.object.presence.Presence;
|
||||
import org.dreamexposure.discal.client.DisCalClient;
|
||||
import org.dreamexposure.discal.core.database.DatabaseManager;
|
||||
import org.dreamexposure.discal.core.object.BotSettings;
|
||||
import org.dreamexposure.discal.core.utils.GlobalConst;
|
||||
import sx.blah.discord.handle.obj.ActivityType;
|
||||
import sx.blah.discord.handle.obj.StatusType;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.TimerTask;
|
||||
@@ -22,41 +22,35 @@ public class StatusChanger extends TimerTask {
|
||||
/**
|
||||
* Creates the StatusChanger and its Statuses list.
|
||||
*/
|
||||
public StatusChanger() {
|
||||
statuses.add("Discord Calendar");
|
||||
statuses.add("!help for help");
|
||||
statuses.add("!DisCal for info");
|
||||
public StatusChanger() {
|
||||
statuses.add("Discord Calendar");
|
||||
statuses.add("!help for help");
|
||||
statuses.add("!DisCal for info");
|
||||
statuses.add("Powered by DreamExposure");
|
||||
statuses.add("Ultimate calendar bot!");
|
||||
statuses.add("%guCount% guilds on shard!");
|
||||
statuses.add("%calCount% calendars!");
|
||||
statuses.add("%annCount% announcements!");
|
||||
statuses.add("%shards% shards!");
|
||||
|
||||
statuses.add("Used on %guCount% guilds!");
|
||||
statuses.add("%calCount% calendars!");
|
||||
statuses.add("%annCount% announcements!");
|
||||
statuses.add("%shards% shards!");
|
||||
statuses.add("Version " + GlobalConst.version);
|
||||
statuses.add("DisCal is on Patreon!");
|
||||
statuses.add("Share DisCal!!");
|
||||
index = 0;
|
||||
}
|
||||
statuses.add("DisCal is on Patreon!");
|
||||
statuses.add("Share DisCal!!");
|
||||
index = 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
String status = statuses.get(index);
|
||||
status = status.replace("%guCount%", DisCalClient.getClient().getGuilds().count().block() + "");
|
||||
status = status.replace("%calCount%", DatabaseManager.getManager().getCalendarCount() + "");
|
||||
status = status.replace("%annCount%", DatabaseManager.getManager().getAnnouncementCount() + "");
|
||||
@Override
|
||||
public void run() {
|
||||
String status = statuses.get(index);
|
||||
status = status.replace("%guCount%", DisCalClient.getClient().getGuilds().size() + "");
|
||||
status = status.replace("%calCount%", DatabaseManager.getManager().getCalendarCount() + "");
|
||||
status = status.replace("%annCount%", DatabaseManager.getManager().getAnnouncementCount() + "");
|
||||
status = status.replace("%shards%", BotSettings.SHARD_COUNT.get());
|
||||
DisCalClient.getClient().changePresence(StatusType.ONLINE, ActivityType.PLAYING, status);
|
||||
|
||||
|
||||
PresenceBean pb = new PresenceBean();
|
||||
pb.setStatus(status);
|
||||
Presence presence = new Presence(pb);
|
||||
DisCalClient.getClient().updatePresence(presence).subscribe();
|
||||
|
||||
//Set new index.
|
||||
//Set new index.
|
||||
if (index + 1 >= statuses.size())
|
||||
index = 0;
|
||||
index = 0;
|
||||
else
|
||||
index++;
|
||||
}
|
||||
index++;
|
||||
}
|
||||
}
|
||||
+33
-29
@@ -4,9 +4,6 @@ import com.google.api.client.http.HttpStatusCodes;
|
||||
import com.google.api.services.calendar.Calendar;
|
||||
import com.google.api.services.calendar.CalendarScopes;
|
||||
import com.google.api.services.calendar.model.CalendarListEntry;
|
||||
import discord4j.core.event.domain.message.MessageCreateEvent;
|
||||
import discord4j.core.object.entity.User;
|
||||
import discord4j.core.spec.EmbedCreateSpec;
|
||||
import okhttp3.FormBody;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.RequestBody;
|
||||
@@ -22,6 +19,9 @@ import org.dreamexposure.discal.core.object.GuildSettings;
|
||||
import org.dreamexposure.discal.core.object.network.google.Poll;
|
||||
import org.dreamexposure.discal.core.utils.GlobalConst;
|
||||
import org.json.JSONObject;
|
||||
import sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent;
|
||||
import sx.blah.discord.handle.obj.IUser;
|
||||
import sx.blah.discord.util.EmbedBuilder;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
@@ -48,7 +48,7 @@ public class GoogleExternalAuth {
|
||||
return auth;
|
||||
}
|
||||
|
||||
public void requestCode(MessageCreateEvent event, GuildSettings settings) {
|
||||
public void requestCode(MessageReceivedEvent event, GuildSettings settings) {
|
||||
try {
|
||||
RequestBody body = new FormBody.Builder()
|
||||
.addEncoded("client_id", Authorization.getAuth().getClientData().getClientId())
|
||||
@@ -67,20 +67,22 @@ public class GoogleExternalAuth {
|
||||
JSONObject codeResponse = new JSONObject(response.body().string());
|
||||
|
||||
//Send DM to user with code.
|
||||
EmbedCreateSpec em = new EmbedCreateSpec();
|
||||
em.setAuthor("DisCal", GlobalConst.discalSite, GlobalConst.iconUrl);
|
||||
em.setTitle(MessageManager.getMessage("Embed.AddCalendar.Code.Title", settings));
|
||||
em.addField(MessageManager.getMessage("Embed.AddCalendar.Code.Code", settings), codeResponse.getString("user_code"), true);
|
||||
em.setFooter(MessageManager.getMessage("Embed.AddCalendar.Code.Footer", settings), null);
|
||||
EmbedBuilder em = new EmbedBuilder();
|
||||
em.withAuthorIcon(GlobalConst.discalSite);
|
||||
em.withAuthorName("DisCal");
|
||||
em.withAuthorUrl(GlobalConst.discalSite);
|
||||
em.withTitle(MessageManager.getMessage("Embed.AddCalendar.Code.Title", settings));
|
||||
em.appendField(MessageManager.getMessage("Embed.AddCalendar.Code.Code", settings), codeResponse.getString("user_code"), true);
|
||||
em.withFooterText(MessageManager.getMessage("Embed.AddCalendar.Code.Footer", settings));
|
||||
|
||||
em.setUrl(codeResponse.getString("verification_url"));
|
||||
em.setColor(GlobalConst.discalColor);
|
||||
em.withUrl(codeResponse.getString("verification_url"));
|
||||
em.withColor(GlobalConst.discalColor);
|
||||
|
||||
User user = event.getMember().get();
|
||||
MessageManager.sendDirectMessageAsync(MessageManager.getMessage("AddCalendar.Auth.Code.Request.Success", settings), em, user);
|
||||
IUser user = event.getAuthor();
|
||||
MessageManager.sendDirectMessageAsync(MessageManager.getMessage("AddCalendar.Auth.Code.Request.Success", settings), em.build(), user);
|
||||
|
||||
//Start timer to poll Google Cal for auth
|
||||
Poll poll = new Poll(user, event.getGuild().block());
|
||||
Poll poll = new Poll(user, event.getGuild());
|
||||
|
||||
poll.setDevice_code(codeResponse.getString("device_code"));
|
||||
poll.setRemainingSeconds(codeResponse.getInt("expires_in"));
|
||||
@@ -88,20 +90,20 @@ public class GoogleExternalAuth {
|
||||
poll.setInterval(codeResponse.getInt("interval"));
|
||||
pollForAuth(poll);
|
||||
} else {
|
||||
MessageManager.sendDirectMessageAsync(MessageManager.getMessage("AddCalendar.Auth.Code.Request.Failure.NotOkay", settings), event.getMember().get());
|
||||
MessageManager.sendDirectMessageAsync(MessageManager.getMessage("AddCalendar.Auth.Code.Request.Failure.NotOkay", settings), event.getAuthor());
|
||||
|
||||
Logger.getLogger().debug(event.getMember().get(), "Error requesting access token.", "Status code: " + response.code() + " | " + response.message() + " | " + response.body().string(), this.getClass());
|
||||
Logger.getLogger().debug(event.getAuthor(), "Error requesting access token.", "Status code: " + response.code() + " | " + response.message() + " | " + response.body().string(), this.getClass());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
//Failed, report issue to dev.
|
||||
Logger.getLogger().exception(event.getMember().get(), "Failed to request Google Access Code", e, this.getClass());
|
||||
User u = event.getMember().get();
|
||||
Logger.getLogger().exception(event.getAuthor(), "Failed to request Google Access Code", e, this.getClass());
|
||||
IUser u = event.getAuthor();
|
||||
MessageManager.sendDirectMessageAsync(MessageManager.getMessage("AddCalendar.Auth.Code.Request.Failure.Unknown", settings), u);
|
||||
}
|
||||
}
|
||||
|
||||
void pollForAuth(Poll poll) {
|
||||
GuildSettings settings = DatabaseManager.getManager().getSettings(poll.getGuild().getId());
|
||||
GuildSettings settings = DatabaseManager.getManager().getSettings(poll.getGuild().getLongID());
|
||||
try {
|
||||
RequestBody body = new FormBody.Builder()
|
||||
.addEncoded("client_id", Authorization.getAuth().getClientData().getClientId())
|
||||
@@ -153,7 +155,7 @@ public class GoogleExternalAuth {
|
||||
JSONObject aprGrant = new JSONObject(response.body().string());
|
||||
|
||||
//Save credentials securely.
|
||||
GuildSettings gs = DatabaseManager.getManager().getSettings(poll.getGuild().getId());
|
||||
GuildSettings gs = DatabaseManager.getManager().getSettings(poll.getGuild().getLongID());
|
||||
AESEncryption encryption = new AESEncryption(gs);
|
||||
gs.setEncryptedAccessToken(encryption.encrypt(aprGrant.getString("access_token")));
|
||||
gs.setEncryptedRefreshToken(encryption.encrypt(aprGrant.getString("refresh_token")));
|
||||
@@ -166,16 +168,18 @@ public class GoogleExternalAuth {
|
||||
MessageManager.sendDirectMessageAsync(MessageManager.getMessage("AddCalendar.Auth.Poll.Success", settings), poll.getUser());
|
||||
for (CalendarListEntry i : items) {
|
||||
if (!i.isDeleted()) {
|
||||
EmbedCreateSpec em = new EmbedCreateSpec();
|
||||
em.setAuthor("DisCal", GlobalConst.discalSite, GlobalConst.iconUrl);
|
||||
em.setTitle(MessageManager.getMessage("Embed.AddCalendar.List.Title", settings));
|
||||
em.addField(MessageManager.getMessage("Embed.AddCalendar.List.Name", settings), i.getSummary(), false);
|
||||
em.addField(MessageManager.getMessage("Embed.AddCalendar.List.TimeZone", settings), i.getTimeZone(), false);
|
||||
em.addField(MessageManager.getMessage("Embed.AddCalendar.List.ID", settings), i.getId(), false);
|
||||
EmbedBuilder em = new EmbedBuilder();
|
||||
em.withAuthorIcon(GlobalConst.discalSite);
|
||||
em.withAuthorName("DisCal");
|
||||
em.withAuthorUrl(GlobalConst.discalSite);
|
||||
em.withTitle(MessageManager.getMessage("Embed.AddCalendar.List.Title", settings));
|
||||
em.appendField(MessageManager.getMessage("Embed.AddCalendar.List.Name", settings), i.getSummary(), false);
|
||||
em.appendField(MessageManager.getMessage("Embed.AddCalendar.List.TimeZone", settings), i.getTimeZone(), false);
|
||||
em.appendField(MessageManager.getMessage("Embed.AddCalendar.List.ID", settings), i.getId(), false);
|
||||
|
||||
em.setUrl(CalendarMessageFormatter.getCalendarLink(settings.getGuildID()));
|
||||
em.setColor(GlobalConst.discalColor);
|
||||
MessageManager.sendDirectMessageAsync(em, poll.getUser());
|
||||
em.withUrl(CalendarMessageFormatter.getCalendarLink(settings.getGuildID()));
|
||||
em.withColor(GlobalConst.discalColor);
|
||||
MessageManager.sendDirectMessageAsync(em.build(), poll.getUser());
|
||||
}
|
||||
}
|
||||
//Response will be handled in guild, and will check. We already saved the tokens anyway.
|
||||
|
||||
@@ -26,7 +26,7 @@ public class KeepAliveHandler {
|
||||
public void run() {
|
||||
JSONObject data = new JSONObject();
|
||||
data.put("Reason", "Keep-Alive");
|
||||
data.put("Server-Count", DisCalClient.getClient().getGuilds().count().block().intValue());
|
||||
data.put("Server-Count", DisCalClient.getClient().getGuilds().size());
|
||||
data.put("Mem-Used", usedMemory());
|
||||
data.put("Uptime", getUptime());
|
||||
//TODO: Add announcement count!!!
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package org.dreamexposure.discal.core.database;
|
||||
|
||||
import discord4j.core.object.util.Snowflake;
|
||||
import org.dreamexposure.discal.core.crypto.KeyGenerator;
|
||||
import org.dreamexposure.discal.core.enums.announcement.AnnouncementType;
|
||||
import org.dreamexposure.discal.core.enums.event.EventColor;
|
||||
@@ -30,7 +29,7 @@ public class DatabaseManager {
|
||||
private static DatabaseManager instance;
|
||||
private DatabaseInfo databaseInfo;
|
||||
|
||||
private Map<Snowflake, GuildSettings> guildSettingsCache = new HashMap<>();
|
||||
private Map<Long, GuildSettings> guildSettingsCache = new HashMap<>();
|
||||
|
||||
private DatabaseManager() {
|
||||
} //Prevent initialization.
|
||||
@@ -244,7 +243,7 @@ public class DatabaseManager {
|
||||
"(GUILD_ID, EXTERNAL_CALENDAR, PRIVATE_KEY, ACCESS_TOKEN, REFRESH_TOKEN, CONTROL_ROLE, DISCAL_CHANNEL, SIMPLE_ANNOUNCEMENT, LANG, PREFIX, PATRON_GUILD, DEV_GUILD, MAX_CALENDARS, DM_ANNOUNCEMENTS, 12_HOUR, BRANDED)" +
|
||||
" VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);";
|
||||
PreparedStatement ps = databaseInfo.getConnection().prepareStatement(insertCommand);
|
||||
ps.setString(1, settings.getGuildID().asString());
|
||||
ps.setString(1, String.valueOf(settings.getGuildID()));
|
||||
ps.setBoolean(2, settings.useExternalCalendar());
|
||||
ps.setString(3, settings.getPrivateKey());
|
||||
ps.setString(4, settings.getEncryptedAccessToken());
|
||||
@@ -291,7 +290,7 @@ public class DatabaseManager {
|
||||
ps.setString(13, settings.getDmAnnouncementsString());
|
||||
ps.setBoolean(14, settings.useTwelveHour());
|
||||
ps.setBoolean(15, settings.isBranded());
|
||||
ps.setString(16, settings.getGuildID().asString());
|
||||
ps.setString(16, String.valueOf(settings.getGuildID()));
|
||||
|
||||
ps.executeUpdate();
|
||||
|
||||
@@ -325,7 +324,7 @@ public class DatabaseManager {
|
||||
"(GUILD_ID, CALENDAR_NUMBER, CALENDAR_ID, CALENDAR_ADDRESS, EXTERNAL)" +
|
||||
" VALUES (?, ?, ?, ?, ?);";
|
||||
PreparedStatement ps = databaseInfo.getConnection().prepareStatement(insertCommand);
|
||||
ps.setString(1, calData.getGuildId().asString());
|
||||
ps.setString(1, String.valueOf(calData.getGuildId()));
|
||||
ps.setInt(2, calData.getCalendarNumber());
|
||||
ps.setString(3, calData.getCalendarId());
|
||||
ps.setString(4, calData.getCalendarAddress());
|
||||
@@ -345,7 +344,7 @@ public class DatabaseManager {
|
||||
ps.setString(2, calData.getCalendarId());
|
||||
ps.setString(3, calData.getCalendarAddress());
|
||||
ps.setBoolean(4, calData.isExternal());
|
||||
ps.setString(5, calData.getGuildId().asString());
|
||||
ps.setString(5, String.valueOf(calData.getGuildId()));
|
||||
|
||||
ps.executeUpdate();
|
||||
|
||||
@@ -384,7 +383,7 @@ public class DatabaseManager {
|
||||
" VALUE (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
||||
PreparedStatement ps = databaseInfo.getConnection().prepareStatement(insertCommand);
|
||||
ps.setString(1, announcement.getAnnouncementId().toString());
|
||||
ps.setString(2, announcement.getGuildId().asString());
|
||||
ps.setString(2, String.valueOf(announcement.getGuildId()));
|
||||
ps.setString(3, announcement.getSubscriberRoleIdString());
|
||||
ps.setString(4, announcement.getSubscriberUserIdString());
|
||||
ps.setString(5, announcement.getAnnouncementChannelId());
|
||||
@@ -461,7 +460,7 @@ public class DatabaseManager {
|
||||
"(GUILD_ID, EVENT_ID, EVENT_END, IMAGE_LINK)" +
|
||||
" VALUES (?, ?, ?, ?)";
|
||||
PreparedStatement ps = databaseInfo.getConnection().prepareStatement(insertCommand);
|
||||
ps.setString(1, data.getGuildId().asString());
|
||||
ps.setString(1, String.valueOf(data.getGuildId()));
|
||||
ps.setString(2, data.getEventId());
|
||||
ps.setLong(3, data.getEventEnd());
|
||||
ps.setString(4, data.getImageLink());
|
||||
@@ -510,7 +509,7 @@ public class DatabaseManager {
|
||||
"(GUILD_ID, EVENT_ID, EVENT_END, GOING_ON_TIME, GOING_LATE, NOT_GOING, UNDECIDED)" +
|
||||
" VALUES (?, ?, ?, ?, ?, ?, ?)";
|
||||
PreparedStatement ps = databaseInfo.getConnection().prepareStatement(insertCommand);
|
||||
ps.setString(1, data.getGuildId().asString());
|
||||
ps.setString(1, String.valueOf(data.getGuildId()));
|
||||
ps.setString(2, data.getEventId());
|
||||
ps.setLong(3, data.getEventEnd());
|
||||
ps.setString(4, data.getGoingOnTimeString());
|
||||
@@ -586,7 +585,7 @@ public class DatabaseManager {
|
||||
return null;
|
||||
}
|
||||
|
||||
public GuildSettings getSettings(Snowflake guildId) {
|
||||
public GuildSettings getSettings(long guildId) {
|
||||
if (guildSettingsCache.containsKey(guildId))
|
||||
return guildSettingsCache.get(guildId);
|
||||
|
||||
@@ -645,7 +644,7 @@ public class DatabaseManager {
|
||||
|
||||
while (res.next()) {
|
||||
if (res.getString("GUILD_ID") != null) {
|
||||
GuildSettings settings = new GuildSettings(Snowflake.of(res.getString("GUILD_ID")));
|
||||
GuildSettings settings = new GuildSettings(Long.valueOf(res.getString("GUILD_ID")));
|
||||
settings.setUseExternalCalendar(res.getBoolean("EXTERNAL_CALENDAR"));
|
||||
settings.setPrivateKey(res.getString("PRIVATE_KEY"));
|
||||
settings.setEncryptedAccessToken(res.getString("ACCESS_TOKEN"));
|
||||
@@ -672,13 +671,13 @@ public class DatabaseManager {
|
||||
return allSettings;
|
||||
}
|
||||
|
||||
public CalendarData getMainCalendar(Snowflake guildId) {
|
||||
public CalendarData getMainCalendar(long guildId) {
|
||||
CalendarData calData = new CalendarData(guildId, 1);
|
||||
try {
|
||||
if (databaseInfo.getMySQL().checkConnection()) {
|
||||
String calendarTableName = String.format("%scalendars", databaseInfo.getPrefix());
|
||||
|
||||
String query = "SELECT * FROM " + calendarTableName + " WHERE GUILD_ID = '" + guildId.asString() + "';";
|
||||
String query = "SELECT * FROM " + calendarTableName + " WHERE GUILD_ID = '" + guildId + "';";
|
||||
PreparedStatement statement = databaseInfo.getConnection().prepareStatement(query);
|
||||
ResultSet res = statement.executeQuery();
|
||||
|
||||
@@ -698,13 +697,13 @@ public class DatabaseManager {
|
||||
return calData;
|
||||
}
|
||||
|
||||
public CalendarData getCalendar(Snowflake guildId, int calendarNumber) {
|
||||
public CalendarData getCalendar(long guildId, int calendarNumber) {
|
||||
CalendarData calData = new CalendarData(guildId, calendarNumber);
|
||||
try {
|
||||
if (databaseInfo.getMySQL().checkConnection()) {
|
||||
String calendarTableName = String.format("%scalendars", databaseInfo.getPrefix());
|
||||
|
||||
String query = "SELECT * FROM " + calendarTableName + " WHERE GUILD_ID = '" + guildId.asString() + "';";
|
||||
String query = "SELECT * FROM " + calendarTableName + " WHERE GUILD_ID = '" + guildId + "';";
|
||||
PreparedStatement statement = databaseInfo.getConnection().prepareStatement(query);
|
||||
ResultSet res = statement.executeQuery();
|
||||
|
||||
@@ -724,13 +723,13 @@ public class DatabaseManager {
|
||||
return calData;
|
||||
}
|
||||
|
||||
public ArrayList<CalendarData> getAllCalendars(Snowflake guildId) {
|
||||
public ArrayList<CalendarData> getAllCalendars(long guildId) {
|
||||
ArrayList<CalendarData> calendars = new ArrayList<>();
|
||||
try {
|
||||
if (databaseInfo.getMySQL().checkConnection()) {
|
||||
String calendarTableName = String.format("%scalendars", databaseInfo.getPrefix());
|
||||
|
||||
String query = "SELECT * FROM " + calendarTableName + " WHERE GUILD_ID = '" + guildId.asString() + "';";
|
||||
String query = "SELECT * FROM " + calendarTableName + " WHERE GUILD_ID = '" + guildId + "';";
|
||||
PreparedStatement statement = databaseInfo.getConnection().prepareStatement(query);
|
||||
ResultSet res = statement.executeQuery();
|
||||
|
||||
@@ -759,7 +758,7 @@ public class DatabaseManager {
|
||||
ResultSet res = stmt.executeQuery();
|
||||
|
||||
while (res.next()) {
|
||||
CalendarData calData = new CalendarData(Snowflake.of(res.getString("GUILD_ID")), res.getInt("CALENDAR_NUMBER"));
|
||||
CalendarData calData = new CalendarData(Long.valueOf(res.getString("GUILD_ID")), res.getInt("CALENDAR_NUMBER"));
|
||||
calData.setCalendarId(res.getString("CALENDAR_ID"));
|
||||
calData.setCalendarAddress(res.getString("CALENDAR_ADDRESS"));
|
||||
calData.setExternal(res.getBoolean("EXTERNAL"));
|
||||
@@ -798,7 +797,7 @@ public class DatabaseManager {
|
||||
return amount;
|
||||
}
|
||||
|
||||
public EventData getEventData(Snowflake guildId, String eventId) {
|
||||
public EventData getEventData(long guildId, String eventId) {
|
||||
EventData data = new EventData(guildId);
|
||||
|
||||
if (eventId.contains("_"))
|
||||
@@ -811,7 +810,7 @@ public class DatabaseManager {
|
||||
if (databaseInfo.getMySQL().checkConnection()) {
|
||||
String eventTableName = String.format("%sevents", databaseInfo.getPrefix());
|
||||
|
||||
String query = "SELECT * FROM " + eventTableName + " WHERE GUILD_ID= '" + guildId.asString() + "';";
|
||||
String query = "SELECT * FROM " + eventTableName + " WHERE GUILD_ID= '" + guildId + "';";
|
||||
PreparedStatement statement = databaseInfo.getConnection().prepareStatement(query);
|
||||
ResultSet res = statement.executeQuery();
|
||||
|
||||
@@ -841,7 +840,7 @@ public class DatabaseManager {
|
||||
|
||||
while (res.next()) {
|
||||
if (res.getString("EVENT_ID") != null) {
|
||||
EventData data = new EventData(Snowflake.of(res.getString("GUILD_ID")));
|
||||
EventData data = new EventData(Long.valueOf(res.getString("GUILD_ID")));
|
||||
|
||||
data.setEventId(res.getString("EVENT_ID"));
|
||||
data.setEventEnd(res.getLong("EVENT_END"));
|
||||
@@ -858,14 +857,14 @@ public class DatabaseManager {
|
||||
return allData;
|
||||
}
|
||||
|
||||
public RsvpData getRsvpData(Snowflake guildId, String eventId) {
|
||||
public RsvpData getRsvpData(long guildId, String eventId) {
|
||||
RsvpData data = new RsvpData(guildId);
|
||||
data.setEventId(eventId);
|
||||
try {
|
||||
if (databaseInfo.getMySQL().checkConnection()) {
|
||||
String rsvpTableName = String.format("%srsvp", databaseInfo.getPrefix());
|
||||
|
||||
String query = "SELECT * FROM " + rsvpTableName + " WHERE GUILD_ID= '" + guildId.asString() + "';";
|
||||
String query = "SELECT * FROM " + rsvpTableName + " WHERE GUILD_ID= '" + guildId + "';";
|
||||
PreparedStatement statement = databaseInfo.getConnection().prepareStatement(query);
|
||||
ResultSet res = statement.executeQuery();
|
||||
|
||||
@@ -897,7 +896,7 @@ public class DatabaseManager {
|
||||
|
||||
while (res.next()) {
|
||||
if (res.getString("GUILD_ID") != null) {
|
||||
RsvpData data = new RsvpData(Snowflake.of(res.getString("GUILD_ID")));
|
||||
RsvpData data = new RsvpData(Long.valueOf(res.getString("GUILD_ID")));
|
||||
data.setEventId(res.getString("EVENT_ID"));
|
||||
data.setEventEnd(res.getLong("EVENT_END"));
|
||||
data.setGoingOnTimeFromString(res.getString("GOING_ON_TIME"));
|
||||
@@ -923,7 +922,7 @@ public class DatabaseManager {
|
||||
* @param guildId The ID of the guild the Announcement belongs to.
|
||||
* @return The {@link Announcement} with the specified ID if it exists, otherwise <c>null</c>.
|
||||
*/
|
||||
public Announcement getAnnouncement(UUID announcementId, Snowflake guildId) {
|
||||
public Announcement getAnnouncement(UUID announcementId, long guildId) {
|
||||
try {
|
||||
if (databaseInfo.getMySQL().checkConnection()) {
|
||||
String announcementTableName = String.format("%sannouncements", databaseInfo.getPrefix());
|
||||
@@ -965,13 +964,13 @@ public class DatabaseManager {
|
||||
* @param guildId The ID of the guild whose data is to be retrieved.
|
||||
* @return An ArrayList of Announcements that belong to the specified Guild.
|
||||
*/
|
||||
public ArrayList<Announcement> getAnnouncements(Snowflake guildId) {
|
||||
public ArrayList<Announcement> getAnnouncements(long guildId) {
|
||||
ArrayList<Announcement> announcements = new ArrayList<>();
|
||||
try {
|
||||
if (databaseInfo.getMySQL().checkConnection()) {
|
||||
String announcementTableName = String.format("%sannouncements", databaseInfo.getPrefix());
|
||||
|
||||
String query = "SELECT * FROM " + announcementTableName + " WHERE GUILD_ID = '" + guildId.asString() + "';";
|
||||
String query = "SELECT * FROM " + announcementTableName + " WHERE GUILD_ID = '" + guildId + "';";
|
||||
PreparedStatement statement = databaseInfo.getConnection().prepareStatement(query);
|
||||
ResultSet res = statement.executeQuery();
|
||||
|
||||
@@ -1014,7 +1013,7 @@ public class DatabaseManager {
|
||||
|
||||
while (res.next()) {
|
||||
if (res.getString("ANNOUNCEMENT_ID") != null) {
|
||||
Announcement announcement = new Announcement(UUID.fromString(res.getString("ANNOUNCEMENT_ID")), Snowflake.of(res.getString("GUILD_ID")));
|
||||
Announcement announcement = new Announcement(UUID.fromString(res.getString("ANNOUNCEMENT_ID")), Long.valueOf(res.getString("GUILD_ID")));
|
||||
announcement.setSubscriberRoleIdsFromString(res.getString("SUBSCRIBERS_ROLE"));
|
||||
announcement.setSubscriberUserIdsFromString(res.getString("SUBSCRIBERS_USER"));
|
||||
announcement.setAnnouncementChannelId(res.getString("CHANNEL_ID"));
|
||||
@@ -1052,7 +1051,7 @@ public class DatabaseManager {
|
||||
|
||||
while (res.next()) {
|
||||
if (res.getString("ANNOUNCEMENT_ID") != null) {
|
||||
Announcement announcement = new Announcement(UUID.fromString(res.getString("ANNOUNCEMENT_ID")), Snowflake.of(res.getString("GUILD_ID")));
|
||||
Announcement announcement = new Announcement(UUID.fromString(res.getString("ANNOUNCEMENT_ID")), Long.valueOf(res.getString("GUILD_ID")));
|
||||
announcement.setSubscriberRoleIdsFromString(res.getString("SUBSCRIBERS_ROLE"));
|
||||
announcement.setSubscriberUserIdsFromString(res.getString("SUBSCRIBERS_USER"));
|
||||
announcement.setAnnouncementChannelId(res.getString("CHANNEL_ID"));
|
||||
@@ -1089,7 +1088,7 @@ public class DatabaseManager {
|
||||
|
||||
while (res.next()) {
|
||||
if (res.getString("ANNOUNCEMENT_ID") != null) {
|
||||
Announcement announcement = new Announcement(UUID.fromString(res.getString("ANNOUNCEMENT_ID")), Snowflake.of(res.getString("GUILD_ID")));
|
||||
Announcement announcement = new Announcement(UUID.fromString(res.getString("ANNOUNCEMENT_ID")), Long.valueOf(res.getString("GUILD_ID")));
|
||||
announcement.setSubscriberRoleIdsFromString(res.getString("SUBSCRIBERS_ROLE"));
|
||||
announcement.setSubscriberUserIdsFromString(res.getString("SUBSCRIBERS_USER"));
|
||||
announcement.setAnnouncementChannelId(res.getString("CHANNEL_ID"));
|
||||
@@ -1129,7 +1128,7 @@ public class DatabaseManager {
|
||||
|
||||
while (res.next()) {
|
||||
if (res.getString("ANNOUNCEMENT_ID") != null) {
|
||||
Announcement announcement = new Announcement(UUID.fromString(res.getString("ANNOUNCEMENT_ID")), Snowflake.of(res.getString("GUILD_ID")));
|
||||
Announcement announcement = new Announcement(UUID.fromString(res.getString("ANNOUNCEMENT_ID")), Long.valueOf(res.getString("GUILD_ID")));
|
||||
announcement.setSubscriberRoleIdsFromString(res.getString("SUBSCRIBERS_ROLE"));
|
||||
announcement.setSubscriberUserIdsFromString(res.getString("SUBSCRIBERS_USER"));
|
||||
announcement.setAnnouncementChannelId(res.getString("CHANNEL_ID"));
|
||||
@@ -1157,14 +1156,14 @@ public class DatabaseManager {
|
||||
return announcements;
|
||||
}
|
||||
|
||||
public ArrayList<Announcement> getEnabledAnnouncements(Snowflake guildId) {
|
||||
public ArrayList<Announcement> getEnabledAnnouncements(long guildId) {
|
||||
ArrayList<Announcement> announcements = new ArrayList<>();
|
||||
try {
|
||||
if (databaseInfo.getMySQL().checkConnection()) {
|
||||
String announcementTableName = String.format("%sannouncements", databaseInfo.getPrefix());
|
||||
|
||||
PreparedStatement stmt = databaseInfo.getConnection().prepareStatement("SELECT * FROM " + announcementTableName + " WHERE ENABLED = 1 AND GUILD_ID = ?");
|
||||
stmt.setString(1, guildId.asString());
|
||||
stmt.setString(1, String.valueOf(guildId));
|
||||
ResultSet res = stmt.executeQuery();
|
||||
|
||||
while (res.next()) {
|
||||
@@ -1246,7 +1245,7 @@ public class DatabaseManager {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean deleteAnnouncementsForEvent(Snowflake guildId, String eventId) {
|
||||
public boolean deleteAnnouncementsForEvent(long guildId, String eventId) {
|
||||
try {
|
||||
if (databaseInfo.getMySQL().checkConnection()) {
|
||||
String announcementTableName = String.format("%sannouncements", databaseInfo.getPrefix());
|
||||
@@ -1254,7 +1253,7 @@ public class DatabaseManager {
|
||||
String query = "DELETE FROM " + announcementTableName + " WHERE EVENT_ID = ? AND GUILD_ID = ? AND ANNOUNCEMENT_TYPE = ?";
|
||||
PreparedStatement preparedStmt = databaseInfo.getConnection().prepareStatement(query);
|
||||
preparedStmt.setString(1, eventId);
|
||||
preparedStmt.setString(2, guildId.asString());
|
||||
preparedStmt.setString(2, String.valueOf(guildId));
|
||||
preparedStmt.setString(3, AnnouncementType.SPECIFIC.name());
|
||||
|
||||
preparedStmt.execute();
|
||||
@@ -1291,14 +1290,14 @@ public class DatabaseManager {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean deleteAllEventData(Snowflake guildId) {
|
||||
public boolean deleteAllEventData(long guildId) {
|
||||
try {
|
||||
if (databaseInfo.getMySQL().checkConnection()) {
|
||||
String eventTable = String.format("%sevents", databaseInfo.getPrefix());
|
||||
|
||||
String query = "DELETE FROM " + eventTable + " WHERE GUILD_ID = ?";
|
||||
PreparedStatement preparedStmt = databaseInfo.getConnection().prepareStatement(query);
|
||||
preparedStmt.setString(1, guildId.asString());
|
||||
preparedStmt.setString(1, String.valueOf(guildId));
|
||||
|
||||
preparedStmt.execute();
|
||||
preparedStmt.close();
|
||||
@@ -1310,14 +1309,14 @@ public class DatabaseManager {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean deleteAllAnnouncementData(Snowflake guildId) {
|
||||
public boolean deleteAllAnnouncementData(long guildId) {
|
||||
try {
|
||||
if (databaseInfo.getMySQL().checkConnection()) {
|
||||
String announcementTable = String.format("%sannouncements", databaseInfo.getPrefix());
|
||||
|
||||
String query = "DELETE FROM " + announcementTable + " WHERE GUILD_ID = ?";
|
||||
PreparedStatement preparedStmt = databaseInfo.getConnection().prepareStatement(query);
|
||||
preparedStmt.setString(1, guildId.asString());
|
||||
preparedStmt.setString(1, String.valueOf(guildId));
|
||||
|
||||
preparedStmt.execute();
|
||||
preparedStmt.close();
|
||||
@@ -1329,14 +1328,14 @@ public class DatabaseManager {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean deleteAllRSVPData(Snowflake guildId) {
|
||||
public boolean deleteAllRSVPData(long guildId) {
|
||||
try {
|
||||
if (databaseInfo.getMySQL().checkConnection()) {
|
||||
String rsvpTable = String.format("%srsvp", databaseInfo.getPrefix());
|
||||
|
||||
String query = "DELETE FROM " + rsvpTable + " WHERE GUILD_ID = ?";
|
||||
PreparedStatement preparedStmt = databaseInfo.getConnection().prepareStatement(query);
|
||||
preparedStmt.setString(1, guildId.asString());
|
||||
preparedStmt.setString(1, String.valueOf(guildId));
|
||||
|
||||
preparedStmt.execute();
|
||||
preparedStmt.close();
|
||||
@@ -1355,7 +1354,7 @@ public class DatabaseManager {
|
||||
|
||||
String query = "DELETE FROM " + calendarTable + " WHERE GUILD_ID = ? AND CALENDAR_ADDRESS = ?";
|
||||
PreparedStatement preparedStmt = databaseInfo.getConnection().prepareStatement(query);
|
||||
preparedStmt.setString(1, data.getGuildId().asString());
|
||||
preparedStmt.setString(1, String.valueOf(data.getGuildId()));
|
||||
preparedStmt.setString(2, data.getCalendarAddress());
|
||||
|
||||
preparedStmt.execute();
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package org.dreamexposure.discal.core.logger;
|
||||
|
||||
import discord4j.core.object.entity.User;
|
||||
import org.dreamexposure.discal.core.object.BotSettings;
|
||||
import org.dreamexposure.discal.core.utils.GlobalConst;
|
||||
import sx.blah.discord.handle.obj.IUser;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.io.FileWriter;
|
||||
@@ -59,7 +59,7 @@ public class Logger {
|
||||
}
|
||||
}
|
||||
|
||||
public void exception(@Nullable User author, @Nullable String message, Exception e, Class clazz) {
|
||||
public void exception(@Nullable IUser author, @Nullable String message, Exception e, Class clazz) {
|
||||
String timeStamp = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(Calendar.getInstance().getTime());
|
||||
StringWriter sw = new StringWriter();
|
||||
PrintWriter pw = new PrintWriter(sw);
|
||||
@@ -77,7 +77,7 @@ public class Logger {
|
||||
FileWriter exceptions = new FileWriter(exceptionsFile, true);
|
||||
exceptions.write("ERROR --- " + timeStamp + " ---" + GlobalConst.lineBreak);
|
||||
if (author != null)
|
||||
exceptions.write("user: " + author.getUsername() + "#" + author.getDiscriminator() + GlobalConst.lineBreak);
|
||||
exceptions.write("user: " + author.getName() + "#" + author.getDiscriminator() + GlobalConst.lineBreak);
|
||||
|
||||
if (message != null)
|
||||
exceptions.write("message: " + message + GlobalConst.lineBreak);
|
||||
@@ -91,14 +91,14 @@ public class Logger {
|
||||
}
|
||||
}
|
||||
|
||||
public void debug(@Nullable User author, String message, @Nullable String info, Class clazz) {
|
||||
public void debug(@Nullable IUser author, String message, @Nullable String info, Class clazz) {
|
||||
String timeStamp = new SimpleDateFormat("yyyy/MM/dd-HH:mm:ss").format(Calendar.getInstance().getTime());
|
||||
//ALWAYS LOG TO FILE!
|
||||
try {
|
||||
FileWriter file = new FileWriter(debugFile, true);
|
||||
file.write("DEBUG --- " + timeStamp + " ---" + GlobalConst.lineBreak);
|
||||
if (author != null)
|
||||
file.write("user: " + author.getUsername() + "#" + author.getDiscriminator() + GlobalConst.lineBreak);
|
||||
file.write("user: " + author.getName() + "#" + author.getDiscriminator() + GlobalConst.lineBreak);
|
||||
|
||||
if (message != null)
|
||||
file.write("message: " + message + GlobalConst.lineBreak);
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
package org.dreamexposure.discal.core.object;
|
||||
|
||||
import discord4j.core.object.util.Snowflake;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
|
||||
@@ -11,7 +9,7 @@ import java.util.Collections;
|
||||
* For Project: DisCal-Discord-Bot
|
||||
*/
|
||||
public class GuildSettings {
|
||||
private final Snowflake guildID;
|
||||
private final long guildID;
|
||||
|
||||
private boolean externalCalendar;
|
||||
private String privateKey;
|
||||
@@ -35,7 +33,7 @@ public class GuildSettings {
|
||||
|
||||
private final ArrayList<String> dmAnnouncements = new ArrayList<>();
|
||||
|
||||
public GuildSettings(Snowflake _guildId) {
|
||||
public GuildSettings(long _guildId) {
|
||||
guildID = _guildId;
|
||||
|
||||
externalCalendar = false;
|
||||
@@ -59,7 +57,7 @@ public class GuildSettings {
|
||||
}
|
||||
|
||||
//Getters
|
||||
public Snowflake getGuildID() {
|
||||
public long getGuildID() {
|
||||
return guildID;
|
||||
}
|
||||
|
||||
|
||||
+10
-11
@@ -1,9 +1,8 @@
|
||||
package org.dreamexposure.discal.core.object.announcement;
|
||||
|
||||
import discord4j.core.object.entity.Message;
|
||||
import discord4j.core.object.util.Snowflake;
|
||||
import org.dreamexposure.discal.core.enums.announcement.AnnouncementType;
|
||||
import org.dreamexposure.discal.core.enums.event.EventColor;
|
||||
import sx.blah.discord.handle.obj.IMessage;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
@@ -17,7 +16,7 @@ import java.util.UUID;
|
||||
@SuppressWarnings("WeakerAccess")
|
||||
public class Announcement {
|
||||
private final UUID announcementId;
|
||||
private final Snowflake guildId;
|
||||
private final long guildId;
|
||||
|
||||
private final ArrayList<String> subscriberRoleIds = new ArrayList<>();
|
||||
private final ArrayList<String> subscriberUserIds = new ArrayList<>();
|
||||
@@ -33,7 +32,7 @@ public class Announcement {
|
||||
private boolean enabled;
|
||||
private boolean infoOnly;
|
||||
|
||||
private Message creatorMessage;
|
||||
private IMessage creatorMessage;
|
||||
|
||||
private boolean editing;
|
||||
|
||||
@@ -44,7 +43,7 @@ public class Announcement {
|
||||
*
|
||||
* @param _guildId The ID of the Guild this announcement belongs to.
|
||||
*/
|
||||
public Announcement(Snowflake _guildId) {
|
||||
public Announcement(long _guildId) {
|
||||
guildId = _guildId;
|
||||
announcementId = UUID.randomUUID();
|
||||
announcementChannelId = "N/a";
|
||||
@@ -66,7 +65,7 @@ public class Announcement {
|
||||
* @param _announcementId The ID of the announcement object.
|
||||
* @param _guildId The ID of the guild the announcement belongs to.
|
||||
*/
|
||||
public Announcement(UUID _announcementId, Snowflake _guildId) {
|
||||
public Announcement(UUID _announcementId, long _guildId) {
|
||||
announcementId = _announcementId;
|
||||
guildId = _guildId;
|
||||
announcementChannelId = "N/a";
|
||||
@@ -144,7 +143,7 @@ public class Announcement {
|
||||
*
|
||||
* @return The Guild ID the announcement belongs to.
|
||||
*/
|
||||
public Snowflake getGuildId() {
|
||||
public long getGuildId() {
|
||||
return guildId;
|
||||
}
|
||||
|
||||
@@ -182,7 +181,7 @@ public class Announcement {
|
||||
*/
|
||||
public String getSubscriberRoleIdString() {
|
||||
StringBuilder subs = new StringBuilder();
|
||||
Integer i = 0;
|
||||
int i = 0;
|
||||
for (String sub: subscriberRoleIds) {
|
||||
if (i == 0) {
|
||||
subs = new StringBuilder(sub);
|
||||
@@ -201,7 +200,7 @@ public class Announcement {
|
||||
*/
|
||||
public String getSubscriberUserIdString() {
|
||||
StringBuilder subs = new StringBuilder();
|
||||
Integer i = 0;
|
||||
int i = 0;
|
||||
for (String sub: subscriberUserIds) {
|
||||
if (i == 0) {
|
||||
subs = new StringBuilder(sub);
|
||||
@@ -273,7 +272,7 @@ public class Announcement {
|
||||
return infoOnly;
|
||||
}
|
||||
|
||||
public Message getCreatorMessage() {
|
||||
public IMessage getCreatorMessage() {
|
||||
return creatorMessage;
|
||||
}
|
||||
|
||||
@@ -368,7 +367,7 @@ public class Announcement {
|
||||
Collections.addAll(subscriberUserIds, subs);
|
||||
}
|
||||
|
||||
public void setCreatorMessage(Message _message) {
|
||||
public void setCreatorMessage(IMessage _message) {
|
||||
creatorMessage = _message;
|
||||
}
|
||||
|
||||
|
||||
+4
-4
@@ -1,7 +1,7 @@
|
||||
package org.dreamexposure.discal.core.object.calendar;
|
||||
|
||||
import com.google.api.services.calendar.model.Calendar;
|
||||
import discord4j.core.object.entity.Message;
|
||||
import sx.blah.discord.handle.obj.IMessage;
|
||||
|
||||
/**
|
||||
* Created by Nova Fox on 11/10/17.
|
||||
@@ -12,7 +12,7 @@ public class CalendarCreatorResponse {
|
||||
private final boolean successful;
|
||||
|
||||
private boolean edited;
|
||||
private Message creatorMessage;
|
||||
private IMessage creatorMessage;
|
||||
private Calendar calendar;
|
||||
|
||||
/**
|
||||
@@ -59,7 +59,7 @@ public class CalendarCreatorResponse {
|
||||
return edited;
|
||||
}
|
||||
|
||||
public Message getCreatorMessage() {
|
||||
public IMessage getCreatorMessage() {
|
||||
return creatorMessage;
|
||||
}
|
||||
|
||||
@@ -78,7 +78,7 @@ public class CalendarCreatorResponse {
|
||||
edited = _edit;
|
||||
}
|
||||
|
||||
public void setCreatorMessage(Message msg) {
|
||||
public void setCreatorMessage(IMessage msg) {
|
||||
creatorMessage = msg;
|
||||
}
|
||||
}
|
||||
@@ -1,14 +1,12 @@
|
||||
package org.dreamexposure.discal.core.object.calendar;
|
||||
|
||||
import discord4j.core.object.util.Snowflake;
|
||||
|
||||
/**
|
||||
* Created by Nova Fox on 11/10/17.
|
||||
* Website: www.cloudcraftgaming.com
|
||||
* For Project: DisCal-Discord-Bot
|
||||
*/
|
||||
public class CalendarData {
|
||||
private final Snowflake guildId;
|
||||
private final long guildId;
|
||||
private final int calendarNumber;
|
||||
|
||||
private String calendarId;
|
||||
@@ -16,7 +14,7 @@ public class CalendarData {
|
||||
|
||||
private boolean external;
|
||||
|
||||
public CalendarData(Snowflake _guildID, int _calendarNumber) {
|
||||
public CalendarData(long _guildID, int _calendarNumber) {
|
||||
guildId = _guildID;
|
||||
calendarNumber = _calendarNumber;
|
||||
|
||||
@@ -27,7 +25,7 @@ public class CalendarData {
|
||||
}
|
||||
|
||||
//Getters
|
||||
public Snowflake getGuildId() {
|
||||
public long getGuildId() {
|
||||
return guildId;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
package org.dreamexposure.discal.core.object.calendar;
|
||||
|
||||
import com.google.api.services.calendar.model.Calendar;
|
||||
import discord4j.core.object.entity.Message;
|
||||
import discord4j.core.object.util.Snowflake;
|
||||
import sx.blah.discord.handle.obj.IMessage;
|
||||
|
||||
/**
|
||||
* Created by Nova Fox on 11/10/17.
|
||||
@@ -10,7 +9,7 @@ import discord4j.core.object.util.Snowflake;
|
||||
* For Project: DisCal-Discord-Bot
|
||||
*/
|
||||
public class PreCalendar {
|
||||
private final Snowflake guildId;
|
||||
private final long guildId;
|
||||
|
||||
private String summary;
|
||||
private String description;
|
||||
@@ -19,7 +18,7 @@ public class PreCalendar {
|
||||
private boolean editing;
|
||||
private String calendarId;
|
||||
|
||||
private Message creatorMessage;
|
||||
private IMessage creatorMessage;
|
||||
|
||||
private long lastEdit;
|
||||
|
||||
@@ -29,7 +28,7 @@ public class PreCalendar {
|
||||
* @param _guildId The ID of the guild.
|
||||
* @param _summary The summary/name of the calendar.
|
||||
*/
|
||||
public PreCalendar(Snowflake _guildId, String _summary) {
|
||||
public PreCalendar(long _guildId, String _summary) {
|
||||
guildId = _guildId;
|
||||
summary = _summary;
|
||||
|
||||
@@ -38,7 +37,7 @@ public class PreCalendar {
|
||||
lastEdit = System.currentTimeMillis();
|
||||
}
|
||||
|
||||
public PreCalendar(Snowflake _guildId, Calendar calendar) {
|
||||
public PreCalendar(long _guildId, Calendar calendar) {
|
||||
guildId = _guildId;
|
||||
summary = calendar.getSummary();
|
||||
|
||||
@@ -61,7 +60,7 @@ public class PreCalendar {
|
||||
*
|
||||
* @return The ID of the guild this PreCalendar belongs to.
|
||||
*/
|
||||
public Snowflake getGuildId() {
|
||||
public long getGuildId() {
|
||||
return guildId;
|
||||
}
|
||||
|
||||
@@ -100,7 +99,7 @@ public class PreCalendar {
|
||||
return calendarId;
|
||||
}
|
||||
|
||||
public Message getCreatorMessage() {
|
||||
public IMessage getCreatorMessage() {
|
||||
return creatorMessage;
|
||||
}
|
||||
|
||||
@@ -145,7 +144,7 @@ public class PreCalendar {
|
||||
calendarId = _id;
|
||||
}
|
||||
|
||||
public void setCreatorMessage(Message _message) {
|
||||
public void setCreatorMessage(IMessage _message) {
|
||||
creatorMessage = _message;
|
||||
}
|
||||
|
||||
|
||||
+4
-4
@@ -1,7 +1,7 @@
|
||||
package org.dreamexposure.discal.core.object.event;
|
||||
|
||||
import com.google.api.services.calendar.model.Event;
|
||||
import discord4j.core.object.entity.Message;
|
||||
import sx.blah.discord.handle.obj.IMessage;
|
||||
|
||||
/**
|
||||
* Created by Nova Fox on 11/10/17.
|
||||
@@ -11,7 +11,7 @@ import discord4j.core.object.entity.Message;
|
||||
public class EventCreatorResponse {
|
||||
private final boolean successful;
|
||||
|
||||
private Message creatorMessage;
|
||||
private IMessage creatorMessage;
|
||||
|
||||
private Event event;
|
||||
private boolean edited;
|
||||
@@ -48,7 +48,7 @@ public class EventCreatorResponse {
|
||||
return successful;
|
||||
}
|
||||
|
||||
public Message getCreatorMessage() {
|
||||
public IMessage getCreatorMessage() {
|
||||
return creatorMessage;
|
||||
}
|
||||
|
||||
@@ -66,7 +66,7 @@ public class EventCreatorResponse {
|
||||
}
|
||||
|
||||
//Setters
|
||||
public void setCreatorMessage(Message _creatorMessage) {
|
||||
public void setCreatorMessage(IMessage _creatorMessage) {
|
||||
creatorMessage = _creatorMessage;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
package org.dreamexposure.discal.core.object.event;
|
||||
|
||||
import discord4j.core.object.util.Snowflake;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
/**
|
||||
@@ -10,18 +8,18 @@ import javax.annotation.Nullable;
|
||||
* For Project: DisCal-Discord-Bot
|
||||
*/
|
||||
public class EventData {
|
||||
private final Snowflake guildId;
|
||||
private final long guildId;
|
||||
|
||||
private String eventId;
|
||||
private long eventEnd;
|
||||
private String imageLink;
|
||||
|
||||
public EventData(Snowflake _guildId) {
|
||||
public EventData(long _guildId) {
|
||||
guildId = _guildId;
|
||||
}
|
||||
|
||||
//Getters
|
||||
public Snowflake getGuildId() {
|
||||
public long getGuildId() {
|
||||
return guildId;
|
||||
}
|
||||
|
||||
|
||||
@@ -4,8 +4,6 @@ import com.google.api.client.util.DateTime;
|
||||
import com.google.api.services.calendar.model.Calendar;
|
||||
import com.google.api.services.calendar.model.Event;
|
||||
import com.google.api.services.calendar.model.EventDateTime;
|
||||
import discord4j.core.object.entity.Message;
|
||||
import discord4j.core.object.util.Snowflake;
|
||||
import org.dreamexposure.discal.core.calendar.CalendarAuth;
|
||||
import org.dreamexposure.discal.core.database.DatabaseManager;
|
||||
import org.dreamexposure.discal.core.enums.event.EventColor;
|
||||
@@ -13,6 +11,7 @@ import org.dreamexposure.discal.core.logger.Logger;
|
||||
import org.dreamexposure.discal.core.object.GuildSettings;
|
||||
import org.dreamexposure.discal.core.object.calendar.CalendarData;
|
||||
import org.dreamexposure.discal.core.utils.TimeUtils;
|
||||
import sx.blah.discord.handle.obj.IMessage;
|
||||
|
||||
/**
|
||||
* Created by Nova Fox on 11/10/17.
|
||||
@@ -20,7 +19,7 @@ import org.dreamexposure.discal.core.utils.TimeUtils;
|
||||
* For Project: DisCal-Discord-Bot
|
||||
*/
|
||||
public class PreEvent {
|
||||
private final Snowflake guildId;
|
||||
private final long guildId;
|
||||
private final String eventId;
|
||||
|
||||
private String summary;
|
||||
@@ -44,7 +43,7 @@ public class PreEvent {
|
||||
|
||||
private boolean editing;
|
||||
|
||||
private Message creatorMessage;
|
||||
private IMessage creatorMessage;
|
||||
|
||||
private long lastEdit;
|
||||
|
||||
@@ -54,7 +53,7 @@ public class PreEvent {
|
||||
*
|
||||
* @param _guildId The ID of the guild.
|
||||
*/
|
||||
public PreEvent(Snowflake _guildId) {
|
||||
public PreEvent(long _guildId) {
|
||||
guildId = _guildId;
|
||||
eventId = "N/a";
|
||||
|
||||
@@ -71,7 +70,7 @@ public class PreEvent {
|
||||
lastEdit = System.currentTimeMillis();
|
||||
}
|
||||
|
||||
public PreEvent(Snowflake _guildId, Event e) {
|
||||
public PreEvent(long _guildId, Event e) {
|
||||
guildId = _guildId;
|
||||
eventId = e.getId();
|
||||
|
||||
@@ -140,7 +139,7 @@ public class PreEvent {
|
||||
*
|
||||
* @return The ID of the guild who owns this PreEvent.
|
||||
*/
|
||||
public Snowflake getGuildId() {
|
||||
public long getGuildId() {
|
||||
return guildId;
|
||||
}
|
||||
|
||||
@@ -250,7 +249,7 @@ public class PreEvent {
|
||||
return editing;
|
||||
}
|
||||
|
||||
public Message getCreatorMessage() {
|
||||
public IMessage getCreatorMessage() {
|
||||
return creatorMessage;
|
||||
}
|
||||
|
||||
@@ -353,7 +352,7 @@ public class PreEvent {
|
||||
editing = _editing;
|
||||
}
|
||||
|
||||
public void setCreatorMessage(Message _creatorMessage) {
|
||||
public void setCreatorMessage(IMessage _creatorMessage) {
|
||||
creatorMessage = _creatorMessage;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
package org.dreamexposure.discal.core.object.event;
|
||||
|
||||
import discord4j.core.object.util.Snowflake;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
|
||||
@@ -11,7 +9,7 @@ import java.util.Collections;
|
||||
* For Project: DisCal-Discord-Bot
|
||||
*/
|
||||
public class RsvpData {
|
||||
private final Snowflake guildId;
|
||||
private final long guildId;
|
||||
|
||||
private String eventId;
|
||||
private long eventEnd;
|
||||
@@ -21,12 +19,12 @@ public class RsvpData {
|
||||
private final ArrayList<String> notGoing = new ArrayList<>();
|
||||
private final ArrayList<String> undecided = new ArrayList<>();
|
||||
|
||||
public RsvpData(Snowflake _guildId) {
|
||||
public RsvpData(long _guildId) {
|
||||
guildId = _guildId;
|
||||
}
|
||||
|
||||
//Getters
|
||||
public Snowflake getGuildId() {
|
||||
public long getGuildId() {
|
||||
return guildId;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package org.dreamexposure.discal.core.object.network.google;
|
||||
|
||||
import discord4j.core.object.entity.Guild;
|
||||
import discord4j.core.object.entity.User;
|
||||
import sx.blah.discord.handle.obj.IGuild;
|
||||
import sx.blah.discord.handle.obj.IUser;
|
||||
|
||||
/**
|
||||
* Created by Nova Fox on 11/10/17.
|
||||
@@ -9,25 +9,25 @@ import discord4j.core.object.entity.User;
|
||||
* For Project: DisCal-Discord-Bot
|
||||
*/
|
||||
public class Poll {
|
||||
private final User user;
|
||||
private final Guild guild;
|
||||
private final IUser user;
|
||||
private final IGuild guild;
|
||||
|
||||
private int interval;
|
||||
private int expires_in;
|
||||
private int remainingSeconds;
|
||||
private String device_code;
|
||||
|
||||
public Poll(User _user, Guild _guild) {
|
||||
public Poll(IUser _user, IGuild _guild) {
|
||||
user = _user;
|
||||
guild = _guild;
|
||||
}
|
||||
|
||||
//Getters
|
||||
public User getUser() {
|
||||
public IUser getUser() {
|
||||
return user;
|
||||
}
|
||||
|
||||
public Guild getGuild() {
|
||||
public IGuild getGuild() {
|
||||
return guild;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package org.dreamexposure.discal.core.object.web;
|
||||
|
||||
import discord4j.core.object.entity.TextChannel;
|
||||
import org.dreamexposure.discal.core.object.GuildSettings;
|
||||
import sx.blah.discord.handle.obj.IChannel;
|
||||
|
||||
/**
|
||||
* Created by Nova Fox on 1/6/18.
|
||||
@@ -41,8 +41,8 @@ public class WebChannel {
|
||||
}
|
||||
|
||||
//Functions
|
||||
public WebChannel fromChannel(TextChannel c, GuildSettings settings) {
|
||||
id = c.getId().asLong();
|
||||
public WebChannel fromChannel(IChannel c, GuildSettings settings) {
|
||||
id = c.getLongID();
|
||||
name = c.getName();
|
||||
|
||||
discalChannel = settings.getDiscalChannel().equalsIgnoreCase(String.valueOf(id));
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
package org.dreamexposure.discal.core.object.web;
|
||||
|
||||
import discord4j.core.object.entity.Guild;
|
||||
import discord4j.core.object.entity.Role;
|
||||
import discord4j.core.object.entity.TextChannel;
|
||||
import discord4j.core.object.util.Image;
|
||||
import discord4j.core.object.util.Snowflake;
|
||||
import org.dreamexposure.discal.core.database.DatabaseManager;
|
||||
import org.dreamexposure.discal.core.object.GuildSettings;
|
||||
import org.dreamexposure.discal.core.object.announcement.Announcement;
|
||||
import sx.blah.discord.handle.obj.IChannel;
|
||||
import sx.blah.discord.handle.obj.IGuild;
|
||||
import sx.blah.discord.handle.obj.IRole;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -134,17 +132,16 @@ public class WebGuild {
|
||||
|
||||
|
||||
//Functions
|
||||
public WebGuild fromGuild(Guild g) {
|
||||
id = g.getId().asString();
|
||||
public WebGuild fromGuild(IGuild g) {
|
||||
id = g.getStringID();
|
||||
name = g.getName();
|
||||
iconUrl = g.getIconUrl(Image.Format.PNG).get();
|
||||
botNick = g.getClient().getSelf().block().asMember(Snowflake.of(id)).block().getNickname().get();
|
||||
iconUrl = g.getIconURL();
|
||||
botNick = g.getClient().getOurUser().getNicknameForGuild(g);
|
||||
|
||||
settings = DatabaseManager.getManager().getSettings(g.getId());
|
||||
settings = DatabaseManager.getManager().getSettings(g.getLongID());
|
||||
|
||||
//Handle lists and stuffs
|
||||
|
||||
for (Role r : g.getRoles().toIterable()) {
|
||||
for (IRole r : g.getRoles()) {
|
||||
roles.add(new WebRole().fromRole(r, settings));
|
||||
}
|
||||
|
||||
@@ -153,12 +150,12 @@ public class WebGuild {
|
||||
all.setName("All Channels");
|
||||
all.setDiscalChannel(settings.getDiscalChannel().equalsIgnoreCase("all"));
|
||||
channels.add(all);
|
||||
for (TextChannel c : g.getChannels().ofType(TextChannel.class).toIterable()) {
|
||||
for (IChannel c : g.getChannels()) {
|
||||
channels.add(new WebChannel().fromChannel(c, settings));
|
||||
}
|
||||
announcements.addAll(DatabaseManager.getManager().getAnnouncements(g.getId()));
|
||||
announcements.addAll(DatabaseManager.getManager().getAnnouncements(g.getLongID()));
|
||||
|
||||
calendar = new WebCalendar().fromCalendar(DatabaseManager.getManager().getMainCalendar(Snowflake.of(id)), settings);
|
||||
calendar = new WebCalendar().fromCalendar(DatabaseManager.getManager().getMainCalendar(Long.valueOf(id)), settings);
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package org.dreamexposure.discal.core.object.web;
|
||||
|
||||
import discord4j.core.object.entity.Role;
|
||||
import org.dreamexposure.discal.core.object.GuildSettings;
|
||||
import sx.blah.discord.handle.obj.IRole;
|
||||
|
||||
/**
|
||||
* Created by Nova Fox on 1/6/18.
|
||||
@@ -61,15 +61,15 @@ public class WebRole {
|
||||
}
|
||||
|
||||
//functions
|
||||
public WebRole fromRole(Role r, GuildSettings settings) {
|
||||
id = r.getId().asLong();
|
||||
public WebRole fromRole(IRole r, GuildSettings settings) {
|
||||
id = r.getLongID();
|
||||
name = r.getName();
|
||||
|
||||
managed = r.isManaged();
|
||||
|
||||
everyone = r.isEveryone();
|
||||
everyone = r.isEveryoneRole();
|
||||
|
||||
if (r.isEveryone() && settings.getControlRole().equalsIgnoreCase("everyone"))
|
||||
if (r.isEveryoneRole() && settings.getControlRole().equalsIgnoreCase("everyone"))
|
||||
controlRole = true;
|
||||
else
|
||||
controlRole = settings.getControlRole().equalsIgnoreCase(String.valueOf(id));
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package org.dreamexposure.discal.core.utils;
|
||||
|
||||
import discord4j.core.object.util.Snowflake;
|
||||
import org.dreamexposure.discal.core.database.DatabaseManager;
|
||||
import org.dreamexposure.discal.core.object.announcement.Announcement;
|
||||
|
||||
@@ -16,7 +15,7 @@ public class AnnouncementUtils {
|
||||
* @param value The announcement ID.
|
||||
* @return <code>true</code> if the announcement exists, else <code>false</code>.
|
||||
*/
|
||||
public static Boolean announcementExists(String value, Snowflake guildId) {
|
||||
public static Boolean announcementExists(String value, long guildId) {
|
||||
for (Announcement a : DatabaseManager.getManager().getAnnouncements(guildId)) {
|
||||
if (a.getAnnouncementId().toString().equals(value))
|
||||
return true;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package org.dreamexposure.discal.core.utils;
|
||||
|
||||
import discord4j.core.event.domain.message.MessageCreateEvent;
|
||||
import discord4j.core.object.entity.Guild;
|
||||
import discord4j.core.object.entity.GuildChannel;
|
||||
import sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent;
|
||||
import sx.blah.discord.handle.obj.IChannel;
|
||||
import sx.blah.discord.handle.obj.IGuild;
|
||||
|
||||
/**
|
||||
* Created by Nova Fox on 3/29/2017.
|
||||
@@ -18,23 +18,23 @@ public class ChannelUtils {
|
||||
* @param event The event received.
|
||||
* @return <code>true</code> if exists, else <code>false</code>.
|
||||
*/
|
||||
public static boolean channelExists(String nameOrId, MessageCreateEvent event) {
|
||||
public static boolean channelExists(String nameOrId, MessageReceivedEvent event) {
|
||||
if (nameOrId.contains("#"))
|
||||
nameOrId = nameOrId.replace("#", "");
|
||||
|
||||
for (GuildChannel c : event.getGuild().block().getChannels().toIterable()) {
|
||||
if (c.getName().equalsIgnoreCase(nameOrId) || c.getId().asString().equals(nameOrId))
|
||||
for (IChannel c : event.getGuild().getChannels()) {
|
||||
if (c.getName().equalsIgnoreCase(nameOrId) || c.getStringID().equals(nameOrId))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean channelExists(String nameOrId, Guild guild) {
|
||||
public static boolean channelExists(String nameOrId, IGuild guild) {
|
||||
if (nameOrId.contains("#"))
|
||||
nameOrId = nameOrId.replace("#", "");
|
||||
|
||||
for (GuildChannel c : guild.getChannels().toIterable()) {
|
||||
if (c.getName().equalsIgnoreCase(nameOrId) || c.getId().asString().equals(nameOrId))
|
||||
for (IChannel c : guild.getChannels()) {
|
||||
if (c.getName().equalsIgnoreCase(nameOrId) || c.getStringID().equals(nameOrId))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@@ -47,12 +47,12 @@ public class ChannelUtils {
|
||||
* @param event The event received.
|
||||
* @return the IChannel if successful, else <code>null</code>.
|
||||
*/
|
||||
public static GuildChannel getChannelFromNameOrId(String nameOrId, MessageCreateEvent event) {
|
||||
public static IChannel getChannelFromNameOrId(String nameOrId, MessageReceivedEvent event) {
|
||||
if (nameOrId.contains("#"))
|
||||
nameOrId = nameOrId.replace("#", "");
|
||||
|
||||
for (GuildChannel c : event.getGuild().block().getChannels().toIterable()) {
|
||||
if (c.getName().equalsIgnoreCase(nameOrId) || c.getId().asString().equals(nameOrId))
|
||||
for (IChannel c : event.getGuild().getChannels()) {
|
||||
if (c.getName().equalsIgnoreCase(nameOrId) || c.getStringID().equals(nameOrId))
|
||||
return c;
|
||||
}
|
||||
return null;
|
||||
@@ -64,12 +64,12 @@ public class ChannelUtils {
|
||||
* @param nameOrId The channel name or ID.
|
||||
* @return the IChannel if successful, else <code>null</code>.
|
||||
*/
|
||||
public static GuildChannel getChannelFromNameOrId(String nameOrId, Guild guild) {
|
||||
public static IChannel getChannelFromNameOrId(String nameOrId, IGuild guild) {
|
||||
if (nameOrId.contains("#"))
|
||||
nameOrId = nameOrId.replace("#", "");
|
||||
|
||||
for (GuildChannel c : guild.getChannels().toIterable()) {
|
||||
if (c.getName().equalsIgnoreCase(nameOrId) || c.getId().asString().equals(nameOrId))
|
||||
for (IChannel c : guild.getChannels()) {
|
||||
if (c.getName().equalsIgnoreCase(nameOrId) || c.getStringID().equals(nameOrId))
|
||||
return c;
|
||||
}
|
||||
return null;
|
||||
@@ -81,11 +81,14 @@ public class ChannelUtils {
|
||||
* @param nameOrId The channel name or ID.
|
||||
* @return the IChannel if successful, else <code>null</code>.
|
||||
*/
|
||||
public static String getChannelNameFromNameOrId(String nameOrId, Guild guild) {
|
||||
GuildChannel channel = getChannelFromNameOrId(nameOrId, guild);
|
||||
if (channel != null)
|
||||
return channel.getName();
|
||||
else
|
||||
return "ERROR";
|
||||
public static String getChannelNameFromNameOrId(String nameOrId, IGuild guild) {
|
||||
if (nameOrId.contains("#"))
|
||||
nameOrId = nameOrId.replace("#", "");
|
||||
|
||||
for (IChannel c : guild.getChannels()) {
|
||||
if (c.getName().equalsIgnoreCase(nameOrId) || c.getStringID().equals(nameOrId))
|
||||
return c.getName();
|
||||
}
|
||||
return "ERROR";
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,6 @@ package org.dreamexposure.discal.core.utils;
|
||||
|
||||
import com.google.api.services.calendar.Calendar;
|
||||
import com.google.api.services.calendar.model.Event;
|
||||
import discord4j.core.object.util.Snowflake;
|
||||
import org.dreamexposure.discal.core.calendar.CalendarAuth;
|
||||
import org.dreamexposure.discal.core.database.DatabaseManager;
|
||||
import org.dreamexposure.discal.core.enums.event.EventColor;
|
||||
@@ -58,7 +57,7 @@ public class EventUtils {
|
||||
return false;
|
||||
}
|
||||
|
||||
public static PreEvent copyEvent(Snowflake guildId, Event event) {
|
||||
public static PreEvent copyEvent(long guildId, Event event) {
|
||||
PreEvent pe = new PreEvent(guildId);
|
||||
pe.setSummary(event.getSummary());
|
||||
pe.setDescription(event.getDescription());
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
package org.dreamexposure.discal.core.utils;
|
||||
|
||||
import discord4j.core.object.util.Snowflake;
|
||||
|
||||
import java.awt.*;
|
||||
|
||||
public class GlobalConst {
|
||||
@@ -9,13 +7,13 @@ public class GlobalConst {
|
||||
|
||||
public static final String iconUrl = "https://www.discalbot.com/assets/images/logos/Dark/Opaque/Logo%20Dark%20+bg.png";
|
||||
public static final String lineBreak = System.getProperty("line.separator");
|
||||
public static final Snowflake novaId = Snowflake.of(130510525770629121L);
|
||||
public static final Snowflake xaanitId = Snowflake.of(233611560545812480L);
|
||||
public static final Snowflake calId = Snowflake.of(142107863307780097L);
|
||||
public static final Snowflake dreamId = Snowflake.of(142107863307780097L);
|
||||
public static final long novaId = 130510525770629121L;
|
||||
public static final long xaanitId = 233611560545812480L;
|
||||
public static final long calId = 142107863307780097L;
|
||||
public static final long dreamId = 142107863307780097L;
|
||||
|
||||
public static final Snowflake errorLog = Snowflake.of(142107863307780097L);
|
||||
public static final Snowflake serverId = Snowflake.of(142107863307780097L);
|
||||
public static final long errorLog = 142107863307780097L;
|
||||
public static final long serverId = 142107863307780097L;
|
||||
|
||||
public static final Color discalColor = new Color(56, 138, 237);
|
||||
public static final String discalSite = "https://www.discalbot.com";
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
package org.dreamexposure.discal.core.utils;
|
||||
|
||||
import discord4j.core.DiscordClient;
|
||||
import discord4j.core.object.entity.Guild;
|
||||
import discord4j.core.object.entity.Member;
|
||||
import discord4j.core.object.util.Snowflake;
|
||||
import org.dreamexposure.discal.core.object.web.WebGuild;
|
||||
import sx.blah.discord.api.IDiscordClient;
|
||||
import sx.blah.discord.handle.obj.IGuild;
|
||||
import sx.blah.discord.handle.obj.IUser;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -15,20 +14,19 @@ import java.util.List;
|
||||
* For Project: DisCal-Discord-Bot
|
||||
*/
|
||||
public class GuildUtils {
|
||||
public static boolean active(Snowflake id) {
|
||||
public static boolean active(long id) {
|
||||
//TODO: Determine an accurate way to detect if a guild is still connected to DisCal
|
||||
return true;
|
||||
//return Main.client.getGuildByID(id) != null;
|
||||
}
|
||||
|
||||
public static List<WebGuild> getGuilds(String userId, DiscordClient client) {
|
||||
public static List<WebGuild> getGuilds(String userId, IDiscordClient client) {
|
||||
List<WebGuild> guilds = new ArrayList<>();
|
||||
|
||||
for (Guild g : client.getGuilds().toIterable()) {
|
||||
for (Member m : g.getMembers().toIterable()) {
|
||||
if (m.getId().asString().equals(userId)) {
|
||||
for (IGuild g : client.getGuilds()) {
|
||||
for (IUser m : g.getUsers()) {
|
||||
if (m.getStringID().equals(userId)) {
|
||||
WebGuild wg = new WebGuild().fromGuild(g);
|
||||
wg.setManageServer(PermissionChecker.hasManageServerRole(m));
|
||||
wg.setManageServer(PermissionChecker.hasManageServerRole(g, m));
|
||||
wg.setDiscalRole(PermissionChecker.hasSufficientRole(g, m));
|
||||
|
||||
guilds.add(new WebGuild().fromGuild(g));
|
||||
|
||||
@@ -1,14 +1,10 @@
|
||||
package org.dreamexposure.discal.core.utils;
|
||||
|
||||
import discord4j.core.event.domain.message.MessageCreateEvent;
|
||||
import discord4j.core.object.entity.Guild;
|
||||
import discord4j.core.object.entity.GuildChannel;
|
||||
import discord4j.core.object.entity.Member;
|
||||
import discord4j.core.object.entity.Role;
|
||||
import discord4j.core.object.util.Permission;
|
||||
import org.dreamexposure.discal.core.database.DatabaseManager;
|
||||
import org.dreamexposure.discal.core.logger.Logger;
|
||||
import org.dreamexposure.discal.core.object.GuildSettings;
|
||||
import sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent;
|
||||
import sx.blah.discord.handle.obj.*;
|
||||
|
||||
/**
|
||||
* Created by Nova Fox on 1/19/17.
|
||||
@@ -23,24 +19,25 @@ public class PermissionChecker {
|
||||
* @param event The Event received to check for the user and guild.
|
||||
* @return <code>true</code> if the user has the proper role, otherwise <code>false</code>.
|
||||
*/
|
||||
public static boolean hasSufficientRole(MessageCreateEvent event) {
|
||||
public static boolean hasSufficientRole(MessageReceivedEvent event) {
|
||||
//TODO: Figure out exactly what is causing a NPE here...
|
||||
try {
|
||||
GuildSettings settings = DatabaseManager.getManager().getSettings(event.getGuild().block().getId());
|
||||
GuildSettings settings = DatabaseManager.getManager().getSettings(event.getGuild().getLongID());
|
||||
if (!settings.getControlRole().equalsIgnoreCase("everyone")) {
|
||||
IUser sender = event.getMessage().getAuthor();
|
||||
String roleId = settings.getControlRole();
|
||||
Role role = null;
|
||||
IRole role = null;
|
||||
|
||||
for (Role r : event.getGuild().map(Guild::getRoles).block().toIterable()) {
|
||||
if (r.getId().asString().equalsIgnoreCase(roleId)) {
|
||||
for (IRole r : event.getMessage().getGuild().getRoles()) {
|
||||
if (r.getStringID().equals(roleId)) {
|
||||
role = r;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (role != null) {
|
||||
for (Role r : event.getMember().get().getRoles().toIterable()) {
|
||||
if (r.getId() == role.getId() || r.getPosition().block() > role.getPosition().block())
|
||||
for (IRole r : sender.getRolesForGuild(event.getMessage().getGuild())) {
|
||||
if (r.getStringID().equals(role.getStringID()) || r.getPosition() > role.getPosition())
|
||||
return true;
|
||||
|
||||
}
|
||||
@@ -54,30 +51,30 @@ public class PermissionChecker {
|
||||
}
|
||||
} catch (Exception e) {
|
||||
//Something broke so we will harmlessly allow access and email the dev.
|
||||
Logger.getLogger().exception(event.getMessage().getAuthor().block(), "Failed to check for sufficient control role.", e, PermissionChecker.class);
|
||||
Logger.getLogger().exception(event.getMessage().getAuthor(), "Failed to check for sufficient control role.", e, PermissionChecker.class);
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public static boolean hasSufficientRole(Guild guild, Member member) {
|
||||
public static boolean hasSufficientRole(IGuild guild, IUser user) {
|
||||
//TODO: Figure out exactly what is causing a NPE here...
|
||||
try {
|
||||
GuildSettings settings = DatabaseManager.getManager().getSettings(guild.getId());
|
||||
GuildSettings settings = DatabaseManager.getManager().getSettings(guild.getLongID());
|
||||
if (!settings.getControlRole().equalsIgnoreCase("everyone")) {
|
||||
String roleId = settings.getControlRole();
|
||||
Role role = null;
|
||||
IRole role = null;
|
||||
|
||||
for (Role r : guild.getRoles().toIterable()) {
|
||||
if (r.getId().asString().equals(roleId)) {
|
||||
for (IRole r : guild.getRoles()) {
|
||||
if (r.getStringID().equals(roleId)) {
|
||||
role = r;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (role != null) {
|
||||
for (Role r : member.getRoles().toIterable()) {
|
||||
if (r.getId().equals(role.getId()) || r.getPosition().block() > role.getPosition().block())
|
||||
for (IRole r : user.getRolesForGuild(guild)) {
|
||||
if (r.getStringID().equals(role.getStringID()) || r.getPosition() > role.getPosition())
|
||||
return true;
|
||||
|
||||
}
|
||||
@@ -91,26 +88,18 @@ public class PermissionChecker {
|
||||
}
|
||||
} catch (Exception e) {
|
||||
//Something broke so we will harmlessly allow access and notify the dev team
|
||||
Logger.getLogger().exception(member, "Failed to check for sufficient control role.", e, PermissionChecker.class);
|
||||
Logger.getLogger().exception(user, "Failed to check for sufficient control role.", e, PermissionChecker.class);
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public static boolean hasManageServerRole(MessageCreateEvent event) {
|
||||
//PermissionSet set = event.getMessage().getChannel().ofType(TextChannel.class)
|
||||
//.flatMap(c -> c.getEffectivePermissions(event.getMember().get().getId())).block();
|
||||
|
||||
//return set.contains(Permission.MANAGE_GUILD);
|
||||
return true;
|
||||
public static boolean hasManageServerRole(MessageReceivedEvent event) {
|
||||
return event.getMessage().getAuthor().getPermissionsForGuild(event.getMessage().getGuild()).contains(Permissions.MANAGE_SERVER);
|
||||
}
|
||||
|
||||
public static boolean hasManageServerRole(Member m) {
|
||||
for (Role r : m.getRoles().toIterable()) {
|
||||
if (r.getPermissions().contains(Permission.MANAGE_GUILD))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
public static boolean hasManageServerRole(IGuild g, IUser u) {
|
||||
return u.getPermissionsForGuild(g).contains(Permissions.MANAGE_SERVER);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -119,22 +108,24 @@ public class PermissionChecker {
|
||||
* @param event The event received to check for the correct channel.
|
||||
* @return <code>true</code> if in correct channel, otherwise <code>false</code>.
|
||||
*/
|
||||
public static boolean isCorrectChannel(MessageCreateEvent event, GuildSettings settings) {
|
||||
public static boolean isCorrectChannel(MessageReceivedEvent event) {
|
||||
try {
|
||||
GuildSettings settings = DatabaseManager.getManager().getSettings(event.getGuild().getLongID());
|
||||
if (settings.getDiscalChannel().equalsIgnoreCase("all"))
|
||||
return true;
|
||||
|
||||
|
||||
GuildChannel channel = null;
|
||||
for (GuildChannel c : event.getGuild().block().getChannels().toIterable()) {
|
||||
if (c.getId().toString().equals(settings.getDiscalChannel())) {
|
||||
IChannel channel = null;
|
||||
for (IChannel c : event.getMessage().getGuild().getChannels()) {
|
||||
if (c.getStringID().equals(settings.getDiscalChannel())) {
|
||||
channel = c;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (channel != null)
|
||||
return event.getMessage().getChannel().block().getId().equals(channel.getId());
|
||||
return event.getMessage().getChannel().getStringID().equals(channel.getStringID());
|
||||
|
||||
|
||||
//If we got here, the channel no longer exists, reset data and return true.
|
||||
settings.setDiscalChannel("all");
|
||||
@@ -142,17 +133,12 @@ public class PermissionChecker {
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
//Catch any errors so that the bot always responds...
|
||||
Logger.getLogger().exception(event.getMessage().getAuthor().block(), "Failed to check for discal channel.", e, PermissionChecker.class);
|
||||
Logger.getLogger().exception(event.getMessage().getAuthor(), "Failed to check for discal channel.", e, PermissionChecker.class);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean botHasMessageManagePerms(MessageCreateEvent event) {
|
||||
//PermissionSet set = event.getMessage().getChannel().ofType(TextChannel.class)
|
||||
//.flatMap(c -> c.getEffectivePermissions(c.getClient().getSelfId().get())).block();
|
||||
|
||||
//return set.contains(Permission.MANAGE_MESSAGES);
|
||||
return true;
|
||||
public static boolean botHasMessageManagePerms(MessageReceivedEvent event) {
|
||||
return event.getGuild().getClient().getOurUser().getPermissionsForGuild(event.getMessage().getGuild()).contains(Permissions.MANAGE_MESSAGES);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
package org.dreamexposure.discal.core.utils;
|
||||
|
||||
import discord4j.core.event.domain.message.MessageCreateEvent;
|
||||
import discord4j.core.object.entity.Guild;
|
||||
import discord4j.core.object.entity.Message;
|
||||
import discord4j.core.object.entity.Role;
|
||||
import discord4j.core.object.util.Snowflake;
|
||||
import sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent;
|
||||
import sx.blah.discord.handle.obj.IGuild;
|
||||
import sx.blah.discord.handle.obj.IMessage;
|
||||
import sx.blah.discord.handle.obj.IRole;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* Created by Nova Fox on 3/29/2017.
|
||||
@@ -13,89 +16,84 @@ import discord4j.core.object.util.Snowflake;
|
||||
*/
|
||||
@SuppressWarnings("ConstantConditions")
|
||||
public class RoleUtils {
|
||||
public static Role getRoleFromMention(String mention, MessageCreateEvent event) {
|
||||
for (Role r : event.getMessage().getGuild().block().getRoles().toIterable()) {
|
||||
if (mention.equalsIgnoreCase("<@&" + r.getId().asString() + ">") || mention.equalsIgnoreCase("<@&!" + r.getId().asString() + ">"))
|
||||
public static IRole getRoleFromMention(String mention, MessageReceivedEvent event) {
|
||||
for (IRole r : event.getMessage().getGuild().getRoles()) {
|
||||
if (mention.equalsIgnoreCase("<@&" + r.getStringID() + ">") || mention.equalsIgnoreCase("<@&!" + r.getStringID() + ">"))
|
||||
return r;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static Role getRoleFromID(String id, MessageCreateEvent event) {
|
||||
for (Role r : event.getMessage().getGuild().block().getRoles().toIterable()) {
|
||||
if (id.equals(r.getId().asString()) || id.equals(r.getName()))
|
||||
public static IRole getRoleFromID(String id, MessageReceivedEvent event) {
|
||||
for (IRole r : event.getMessage().getGuild().getRoles()) {
|
||||
if (id.equals(r.getStringID()) || id.equals(r.getName()))
|
||||
return r;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static Role getRoleFromID(String id, Guild guild) {
|
||||
for (Role r : guild.getRoles().toIterable()) {
|
||||
if (id.equalsIgnoreCase(r.getId().asString()) || id.equals(r.getName()))
|
||||
public static IRole getRoleFromID(String id, IGuild guild) {
|
||||
for (IRole r : guild.getRoles()) {
|
||||
if (id.equalsIgnoreCase(r.getStringID()) || id.equals(r.getName()))
|
||||
return r;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static boolean roleExists(String id, MessageCreateEvent event) {
|
||||
for (Role r : event.getGuild().block().getRoles().toIterable()) {
|
||||
if (id.equals(r.getId().asString()))
|
||||
public static boolean roleExists(String id, MessageReceivedEvent event) {
|
||||
for (IRole r : event.getMessage().getGuild().getRoles()) {
|
||||
if (id.equals(r.getStringID()))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean roleExists(String id, Guild guild) {
|
||||
for (Role r : guild.getRoles().toIterable()) {
|
||||
if (id.equals(r.getId().asString()))
|
||||
public static boolean roleExists(String id, IGuild guild) {
|
||||
for (IRole r : guild.getRoles()) {
|
||||
if (id.equals(r.getStringID()))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static String getRoleNameFromID(String id, MessageCreateEvent event) {
|
||||
Role role = getRoleFromID(id, event);
|
||||
public static String getRoleNameFromID(String id, MessageReceivedEvent event) {
|
||||
IRole role = getRoleFromID(id, event);
|
||||
if (role != null)
|
||||
return role.getName();
|
||||
else
|
||||
return "ERROR";
|
||||
}
|
||||
|
||||
public static String getRoleNameFromID(String id, Guild guild) {
|
||||
Role role = getRoleFromID(id, guild);
|
||||
public static String getRoleNameFromID(String id, IGuild guild) {
|
||||
IRole role = getRoleFromID(id, guild);
|
||||
if (role != null)
|
||||
return role.getName();
|
||||
else
|
||||
return "ERROR";
|
||||
}
|
||||
|
||||
public static Snowflake getRole(String toLookFor, Message m) {
|
||||
return getRole(toLookFor, m.getGuild().block());
|
||||
public static long getRole(String toLookFor, IMessage m) {
|
||||
return getRole(toLookFor, m.getGuild());
|
||||
}
|
||||
|
||||
public static Snowflake getRole(String toLookFor, Guild guild) {
|
||||
public static long getRole(String toLookFor, IGuild guild) {
|
||||
toLookFor = GeneralUtils.trim(toLookFor);
|
||||
final String lower = toLookFor.toLowerCase();
|
||||
if (lower.matches("@&[0-9]+") || lower.matches("[0-9]+")) {
|
||||
final String parse = toLookFor.replaceAll("[<@&>]", "");
|
||||
Role exists = getRoleFromID((toLookFor.replaceAll("[<@&>]", "")), guild);
|
||||
IRole exists = guild.getRoleByID(Long.parseLong(toLookFor.replaceAll("[<@&>]", "")));
|
||||
if (exists != null)
|
||||
return exists.getId();
|
||||
return exists.getLongID();
|
||||
}
|
||||
|
||||
return getRoleFromID(toLookFor, guild).getId();
|
||||
}
|
||||
|
||||
public static Role getRoleFromSearch(String toLookFor, Guild guild) {
|
||||
toLookFor = GeneralUtils.trim(toLookFor);
|
||||
final String lower = toLookFor.toLowerCase();
|
||||
if (lower.matches("@&[0-9]+") || lower.matches("[0-9]+")) {
|
||||
final String parse = toLookFor.replaceAll("[<@&>]", "");
|
||||
Role exists = getRoleFromID((toLookFor.replaceAll("[<@&>]", "")), guild);
|
||||
if (exists != null)
|
||||
return exists;
|
||||
}
|
||||
List<IRole> roles = new ArrayList<>();
|
||||
List<IRole> rs = guild.getRoles();
|
||||
roles.addAll(rs.stream().filter(r -> r.getName().equalsIgnoreCase(lower)).collect(Collectors.toList()));
|
||||
roles.addAll(rs.stream().filter(r -> r.getName().toLowerCase().contains(lower)).collect(Collectors.toList()));
|
||||
if (!roles.isEmpty())
|
||||
return roles.get(0).getLongID();
|
||||
|
||||
return getRoleFromID(toLookFor, guild);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@@ -1,14 +1,13 @@
|
||||
package org.dreamexposure.discal.core.utils;
|
||||
|
||||
import discord4j.core.event.domain.message.MessageCreateEvent;
|
||||
import discord4j.core.object.entity.Guild;
|
||||
import discord4j.core.object.entity.Member;
|
||||
import discord4j.core.object.entity.Message;
|
||||
import discord4j.core.object.entity.User;
|
||||
import discord4j.core.object.util.Snowflake;
|
||||
import sx.blah.discord.handle.impl.events.guild.channel.message.MessageReceivedEvent;
|
||||
import sx.blah.discord.handle.obj.IGuild;
|
||||
import sx.blah.discord.handle.obj.IMessage;
|
||||
import sx.blah.discord.handle.obj.IUser;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* Created by Nova Fox on 3/29/2017.
|
||||
@@ -17,18 +16,17 @@ import java.util.List;
|
||||
*/
|
||||
@SuppressWarnings("ConstantConditions")
|
||||
public class UserUtils {
|
||||
public static Member getUserFromMention(String mention, MessageCreateEvent event) {
|
||||
for (Member u : event.getGuild().block().getMembers().toIterable()) {
|
||||
if (mention.equalsIgnoreCase("<@" + u.getId().asString() + ">") || mention.equalsIgnoreCase("<@!" + u.getId().asString() + ">"))
|
||||
public static IUser getUserFromMention(String mention, MessageReceivedEvent event) {
|
||||
for (IUser u : event.getGuild().getUsers()) {
|
||||
if (mention.equalsIgnoreCase("<@" + u.getStringID() + ">") || mention.equalsIgnoreCase("<@!" + u.getStringID() + ">"))
|
||||
return u;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public static Snowflake getUserID(String toLookFor, MessageCreateEvent m) {
|
||||
return getUserID(toLookFor, m.getGuild().block());
|
||||
public static long getUser(String toLookFor, IMessage m) {
|
||||
return getUser(toLookFor, m.getGuild());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -38,80 +36,73 @@ public class UserUtils {
|
||||
* @param guild The guild
|
||||
* @return The user if found, null otherwise
|
||||
*/
|
||||
@SuppressWarnings("OptionalGetWithoutIsPresent")
|
||||
public static Snowflake getUserID(String toLookFor, Guild guild) {
|
||||
public static long getUser(String toLookFor, IGuild guild) {
|
||||
toLookFor = GeneralUtils.trim(toLookFor);
|
||||
final String lower = toLookFor.toLowerCase();
|
||||
if (lower.matches("@!?[0-9]+") || lower.matches("[0-9]+")) {
|
||||
final String parse = toLookFor.replaceAll("[<@!>]", "");
|
||||
|
||||
String finalToLookFor = toLookFor;
|
||||
Member exists = guild.getMembers().filter(m -> m.getId().asString().equalsIgnoreCase(finalToLookFor.replaceAll("[<@!>]", ""))).blockLast();
|
||||
IUser exists = guild.getUserByID(Long.parseLong(toLookFor.replaceAll("[<@!>]", "")));
|
||||
if (exists != null)
|
||||
return exists.getId();
|
||||
return exists.getLongID();
|
||||
}
|
||||
|
||||
|
||||
List<Member> users = new ArrayList<>();
|
||||
|
||||
|
||||
for (Member m : guild.getMembers().toIterable()) {
|
||||
if (m.getUsername().equalsIgnoreCase(lower))
|
||||
users.add(m);
|
||||
if (m.getUsername().toLowerCase().contains(lower))
|
||||
users.add(m);
|
||||
if ((m.getUsername() + "#" + m.getDiscriminator()).equalsIgnoreCase(lower))
|
||||
users.add(m);
|
||||
if (m.getDiscriminator().equalsIgnoreCase(lower))
|
||||
users.add(m);
|
||||
if (m.getDisplayName().equalsIgnoreCase(lower))
|
||||
users.add(m);
|
||||
if (m.getDisplayName().toLowerCase().equalsIgnoreCase(lower))
|
||||
users.add(m);
|
||||
if (m.getNickname().get().equalsIgnoreCase(lower))
|
||||
users.add(m);
|
||||
if (m.getNickname().get().toLowerCase().contains(lower))
|
||||
users.add(m);
|
||||
}
|
||||
List<IUser> users = new ArrayList<>();
|
||||
List<IUser> us = guild.getUsers();
|
||||
users.addAll(us.stream().filter(u -> u.getName().equalsIgnoreCase(lower)).collect(Collectors.toList()));
|
||||
users.addAll(us.stream().filter(u -> u.getName().toLowerCase().contains(lower)).collect(Collectors.toList()));
|
||||
users.addAll(us.stream().filter(u -> (u.getName() + "#" + u.getDiscriminator()).equalsIgnoreCase(lower)).collect(Collectors.toList()));
|
||||
users.addAll(us.stream().filter(u -> u.getDiscriminator().equalsIgnoreCase(lower)).collect(Collectors.toList()));
|
||||
users.addAll(us.stream().filter(u -> u.getDisplayName(guild).equalsIgnoreCase(lower)).collect(Collectors.toList()));
|
||||
users.addAll(us.stream().filter(u -> u.getDisplayName(guild).toLowerCase().contains(lower)).collect(Collectors.toList()));
|
||||
|
||||
|
||||
if (!users.isEmpty())
|
||||
return users.get(0).getId();
|
||||
return users.get(0).getLongID();
|
||||
|
||||
return Snowflake.of(0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
public static Member getUser(String toLookFor, Message m, Guild guild) {
|
||||
public static IUser getIUser(String toLookFor, IMessage m, IGuild guild) {
|
||||
toLookFor = toLookFor.trim();
|
||||
final String lower = toLookFor.toLowerCase();
|
||||
|
||||
Member res = null;
|
||||
IUser res = null;
|
||||
|
||||
if (m != null && m.getUserMentions().count().block() > 0)
|
||||
res = m.getUserMentions().blockFirst().asMember(guild.getId()).block();
|
||||
if (m != null && !m.getMentions().isEmpty())
|
||||
res = m.getMentions().get(0);
|
||||
|
||||
if (toLookFor.matches("<@!?[0-9]+>")) {
|
||||
Member u = getUserFromID(toLookFor.replaceAll("[^0-9]", ""), guild);
|
||||
IUser u = guild.getUserByID(Long.parseUnsignedLong(toLookFor.replaceAll("[^0-9]", "")));
|
||||
if (u != null)
|
||||
return u;
|
||||
}
|
||||
|
||||
return guild.getClient().getMemberById(guild.getId(), getUserID(toLookFor, guild)).block();
|
||||
List<IUser> users = guild.getUsers().stream()
|
||||
.filter(u -> u.getName().toLowerCase().contains(lower)
|
||||
|| u.getName().equalsIgnoreCase(lower) || u.getStringID().equals(lower)
|
||||
|| u.getDisplayName(guild).toLowerCase().contains(lower)
|
||||
|| u.getDisplayName(guild).equalsIgnoreCase(lower))
|
||||
.collect(Collectors.toList());
|
||||
if (!users.isEmpty())
|
||||
res = users.get(0);
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
private static Member getUserFromID(String id, Guild guild) {
|
||||
private static IUser getUserFromID(String id, IGuild guild) {
|
||||
try {
|
||||
return guild.getClient().getMemberById(guild.getId(), Snowflake.of(id)).block();
|
||||
return guild.getUserByID(Long.parseUnsignedLong(id));
|
||||
} catch (Exception e) {
|
||||
//Ignore. Probably invalid ID.
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static ArrayList<User> getUsers(ArrayList<String> userIds, Guild guild) {
|
||||
ArrayList<User> users = new ArrayList<>();
|
||||
public static ArrayList<IUser> getUsers(ArrayList<String> userIds, IGuild guild) {
|
||||
ArrayList<IUser> users = new ArrayList<>();
|
||||
for (String u : userIds) {
|
||||
User user = getUserFromID(u, guild);
|
||||
IUser user = getUserFromID(u, guild);
|
||||
if (user != null)
|
||||
users.add(user);
|
||||
}
|
||||
|
||||
@@ -49,10 +49,6 @@
|
||||
<id>jitpack.io</id>
|
||||
<url>https://jitpack.io</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>repository.spring.milestone</id>
|
||||
<url>http://repo.spring.io/milestone</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>spring-releases</id>
|
||||
<url>https://repo.spring.io/libs-release</url>
|
||||
@@ -72,7 +68,6 @@
|
||||
<groupId>org.jetbrains</groupId>
|
||||
<artifactId>annotations</artifactId>
|
||||
<version>RELEASE</version>
|
||||
<optional>false</optional>
|
||||
</dependency>
|
||||
<!--NovaUtils API-->
|
||||
<dependency>
|
||||
@@ -81,80 +76,40 @@
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
<type>jar</type>
|
||||
<scope>compile</scope>
|
||||
<optional>false</optional>
|
||||
</dependency>
|
||||
<!--Discord4J API-->
|
||||
<dependency>
|
||||
<groupId>com.discord4j.discord4j</groupId>
|
||||
<artifactId>discord4j-core</artifactId>
|
||||
<version>074aff1</version>
|
||||
<exclusions>
|
||||
<!--
|
||||
<exclusion>
|
||||
<groupId>io.projectreactor</groupId>
|
||||
<artifactId>reactor-core</artifactId>
|
||||
</exclusion>
|
||||
-->
|
||||
<exclusion>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-core</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-databind</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-annotations</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
<groupId>com.discord4j</groupId>
|
||||
<artifactId>Discord4J</artifactId>
|
||||
<version>2.10.1</version>
|
||||
</dependency>
|
||||
<!-- Allows you to log events from Discord4J -->
|
||||
<dependency>
|
||||
<groupId>ch.qos.logback</groupId>
|
||||
<artifactId>logback-classic</artifactId>
|
||||
<version>1.1.7</version>
|
||||
<optional>false</optional>
|
||||
</dependency>
|
||||
<!--discordbots.net API library-->
|
||||
<dependency>
|
||||
<groupId>com.github.DiscordBotList</groupId>
|
||||
<artifactId>Java-Wrapper</artifactId>
|
||||
<version>v1.0</version>
|
||||
<optional>false</optional>
|
||||
</dependency>
|
||||
<!--Google Calendar API-->
|
||||
<dependency>
|
||||
<groupId>com.google.api-client</groupId>
|
||||
<artifactId>google-api-client</artifactId>
|
||||
<version>1.22.0</version>
|
||||
<optional>false</optional>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-core</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-databind</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-annotations</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.apis</groupId>
|
||||
<artifactId>google-api-services-calendar</artifactId>
|
||||
<version>v3-rev225-1.22.0</version>
|
||||
<optional>false</optional>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.oauth-client</groupId>
|
||||
<artifactId>google-oauth-client-jetty</artifactId>
|
||||
<version>1.22.0</version>
|
||||
<optional>false</optional>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.mortbay.jetty</groupId>
|
||||
@@ -167,61 +122,30 @@
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<version>LATEST</version>
|
||||
<optional>false</optional>
|
||||
</dependency>
|
||||
<!--JSON API-->
|
||||
<dependency>
|
||||
<groupId>org.json</groupId>
|
||||
<artifactId>json</artifactId>
|
||||
<version>20140107</version>
|
||||
<optional>false</optional>
|
||||
</dependency>
|
||||
<!--Joda Time-->
|
||||
<dependency>
|
||||
<groupId>joda-time</groupId>
|
||||
<artifactId>joda-time</artifactId>
|
||||
<version>2.9.9</version>
|
||||
<optional>false</optional>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/commons-logging/commons-logging -->
|
||||
<dependency>
|
||||
<groupId>commons-logging</groupId>
|
||||
<artifactId>commons-logging</artifactId>
|
||||
<version>1.1.1</version>
|
||||
<optional>false</optional>
|
||||
</dependency>
|
||||
<!--OkHTTP API-->
|
||||
<dependency>
|
||||
<groupId>com.squareup.okhttp3</groupId>
|
||||
<artifactId>okhttp</artifactId>
|
||||
<version>3.10.0</version>
|
||||
<optional>false</optional>
|
||||
</dependency>
|
||||
<!--Reactor Core-->
|
||||
<dependency>
|
||||
<groupId>io.projectreactor</groupId>
|
||||
<artifactId>reactor-core</artifactId>
|
||||
<version>3.2.0.M3</version>
|
||||
<optional>false</optional>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-core</artifactId>
|
||||
<version>2.9.6</version>
|
||||
<optional>false</optional>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-databind</artifactId>
|
||||
<version>2.9.6</version>
|
||||
<optional>false</optional>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-annotations</artifactId>
|
||||
<version>2.9.6</version>
|
||||
<optional>false</optional>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
|
||||
@@ -19,14 +19,6 @@
|
||||
<thymeleaf-layout-dialect.version>2.2.1</thymeleaf-layout-dialect.version>
|
||||
</properties>
|
||||
|
||||
<!--
|
||||
<parent>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-parent</artifactId>
|
||||
<version>1.5.6.RELEASE</version>
|
||||
</parent>
|
||||
-->
|
||||
|
||||
<parent>
|
||||
<groupId>org.dreamexposure</groupId>
|
||||
<artifactId>DisCal</artifactId>
|
||||
|
||||
+6
-7
@@ -1,6 +1,5 @@
|
||||
package org.dreamexposure.discal.server.api.endpoints.v1;
|
||||
|
||||
import discord4j.core.object.util.Snowflake;
|
||||
import org.dreamexposure.discal.core.database.DatabaseManager;
|
||||
import org.dreamexposure.discal.core.enums.announcement.AnnouncementType;
|
||||
import org.dreamexposure.discal.core.enums.event.EventColor;
|
||||
@@ -47,7 +46,7 @@ public class AnnouncementEndpoint {
|
||||
Long guildId = jsonMain.getLong("guild_id");
|
||||
String announcementId = jsonMain.getString("id");
|
||||
|
||||
Announcement a = DatabaseManager.getManager().getAnnouncement(UUID.fromString(announcementId), Snowflake.of(guildId));
|
||||
Announcement a = DatabaseManager.getManager().getAnnouncement(UUID.fromString(announcementId), guildId);
|
||||
|
||||
if (a != null) {
|
||||
|
||||
@@ -103,7 +102,7 @@ public class AnnouncementEndpoint {
|
||||
JSONObject jsonMain = new JSONObject(requestBody);
|
||||
Long guildId = jsonMain.getLong("guild_id");
|
||||
|
||||
Announcement a = new Announcement(Snowflake.of(guildId));
|
||||
Announcement a = new Announcement(guildId);
|
||||
|
||||
JSONObject body = new JSONObject(requestBody);
|
||||
a.setAnnouncementChannelId(body.getString("channel"));
|
||||
@@ -165,7 +164,7 @@ public class AnnouncementEndpoint {
|
||||
Long guildId = jsonMain.getLong("guild_id");
|
||||
String announcementId = jsonMain.getString("id");
|
||||
|
||||
Announcement a = DatabaseManager.getManager().getAnnouncement(UUID.fromString(announcementId), Snowflake.of(guildId));
|
||||
Announcement a = DatabaseManager.getManager().getAnnouncement(UUID.fromString(announcementId), guildId);
|
||||
|
||||
if (a != null) {
|
||||
|
||||
@@ -235,7 +234,7 @@ public class AnnouncementEndpoint {
|
||||
long guildId = jsonMain.getLong("guild_id");
|
||||
String announcementId = jsonMain.getString("id");
|
||||
|
||||
if (DatabaseManager.getManager().getAnnouncement(UUID.fromString(announcementId), Snowflake.of(guildId)) != null) {
|
||||
if (DatabaseManager.getManager().getAnnouncement(UUID.fromString(announcementId), guildId) != null) {
|
||||
if (DatabaseManager.getManager().deleteAnnouncement(announcementId)) {
|
||||
response.setContentType("application/json");
|
||||
response.setStatus(200);
|
||||
@@ -284,7 +283,7 @@ public class AnnouncementEndpoint {
|
||||
|
||||
ArrayList<JSONObject> announcements = new ArrayList<>();
|
||||
if (amount == -1) {
|
||||
for (Announcement a : DatabaseManager.getManager().getAnnouncements(Snowflake.of(guildId))) {
|
||||
for (Announcement a : DatabaseManager.getManager().getAnnouncements(guildId)) {
|
||||
JSONObject obj = new JSONObject();
|
||||
obj.put("id", a.getAnnouncementId().toString());
|
||||
obj.put("channel", a.getAnnouncementChannelId());
|
||||
@@ -303,7 +302,7 @@ public class AnnouncementEndpoint {
|
||||
}
|
||||
} else {
|
||||
int i = 0;
|
||||
for (Announcement a : DatabaseManager.getManager().getAnnouncements(Snowflake.of(guildId))) {
|
||||
for (Announcement a : DatabaseManager.getManager().getAnnouncements(guildId)) {
|
||||
if (i < amount) {
|
||||
JSONObject obj = new JSONObject();
|
||||
obj.put("id", a.getAnnouncementId().toString());
|
||||
|
||||
+2
-3
@@ -1,6 +1,5 @@
|
||||
package org.dreamexposure.discal.server.api.endpoints.v1;
|
||||
|
||||
import discord4j.core.object.util.Snowflake;
|
||||
import org.dreamexposure.discal.core.database.DatabaseManager;
|
||||
import org.dreamexposure.discal.core.logger.Logger;
|
||||
import org.dreamexposure.discal.core.object.calendar.CalendarData;
|
||||
@@ -44,7 +43,7 @@ public class CalendarEndpoint {
|
||||
long guildId = jsonMain.getLong("guild_id");
|
||||
int calNumber = jsonMain.getInt("number");
|
||||
|
||||
CalendarData calendar = DatabaseManager.getManager().getCalendar(Snowflake.of(guildId), calNumber);
|
||||
CalendarData calendar = DatabaseManager.getManager().getCalendar(guildId, calNumber);
|
||||
|
||||
if (!calendar.getCalendarAddress().equalsIgnoreCase("primary")) {
|
||||
|
||||
@@ -92,7 +91,7 @@ public class CalendarEndpoint {
|
||||
long guildId = jsonMain.getLong("guild_id");
|
||||
|
||||
ArrayList<JSONObject> cals = new ArrayList<>();
|
||||
for (CalendarData cal : DatabaseManager.getManager().getAllCalendars(Snowflake.of(guildId))) {
|
||||
for (CalendarData cal : DatabaseManager.getManager().getAllCalendars(guildId)) {
|
||||
if (!cal.getCalendarAddress().equalsIgnoreCase("primary")) {
|
||||
JSONObject body = new JSONObject();
|
||||
body.put("number", cal.getCalendarNumber());
|
||||
|
||||
+10
-11
@@ -5,7 +5,6 @@ import com.google.api.services.calendar.Calendar;
|
||||
import com.google.api.services.calendar.model.Event;
|
||||
import com.google.api.services.calendar.model.EventDateTime;
|
||||
import com.google.api.services.calendar.model.Events;
|
||||
import discord4j.core.object.util.Snowflake;
|
||||
import org.dreamexposure.discal.core.calendar.CalendarAuth;
|
||||
import org.dreamexposure.discal.core.crypto.KeyGenerator;
|
||||
import org.dreamexposure.discal.core.database.DatabaseManager;
|
||||
@@ -62,11 +61,11 @@ public class EventEndpoint {
|
||||
if (DiscordAccountHandler.getHandler().hasAccount(request)) {
|
||||
Map m = DiscordAccountHandler.getHandler().getAccount(request);
|
||||
WebGuild g = (WebGuild) m.get("selected");
|
||||
g.setSettings(DatabaseManager.getManager().getSettings(Snowflake.of(g.getId())));
|
||||
g.setSettings(DatabaseManager.getManager().getSettings(Long.valueOf(g.getId())));
|
||||
settings = g.getSettings();
|
||||
} else {
|
||||
long guildId = requestBody.getLong("guild_id");
|
||||
settings = DatabaseManager.getManager().getSettings(Snowflake.of(guildId));
|
||||
settings = DatabaseManager.getManager().getSettings(guildId);
|
||||
}
|
||||
|
||||
//okay, lets actually get the month's events.
|
||||
@@ -128,11 +127,11 @@ public class EventEndpoint {
|
||||
if (DiscordAccountHandler.getHandler().hasAccount(request)) {
|
||||
Map m = DiscordAccountHandler.getHandler().getAccount(request);
|
||||
WebGuild g = (WebGuild) m.get("selected");
|
||||
g.setSettings(DatabaseManager.getManager().getSettings(Snowflake.of(g.getId())));
|
||||
g.setSettings(DatabaseManager.getManager().getSettings(Long.valueOf(g.getId())));
|
||||
settings = g.getSettings();
|
||||
} else {
|
||||
long guildId = requestBody.getLong("guild_id");
|
||||
settings = DatabaseManager.getManager().getSettings(Snowflake.of(guildId));
|
||||
settings = DatabaseManager.getManager().getSettings(guildId);
|
||||
}
|
||||
|
||||
//okay, lets actually get the month's events.
|
||||
@@ -234,11 +233,11 @@ public class EventEndpoint {
|
||||
if (DiscordAccountHandler.getHandler().hasAccount(request)) {
|
||||
Map m = DiscordAccountHandler.getHandler().getAccount(request);
|
||||
WebGuild g = (WebGuild) m.get("selected");
|
||||
g.setSettings(DatabaseManager.getManager().getSettings(Snowflake.of(g.getId())));
|
||||
g.setSettings(DatabaseManager.getManager().getSettings(Long.valueOf(g.getId())));
|
||||
settings = g.getSettings();
|
||||
} else {
|
||||
long guildId = body.getLong("guild_id");
|
||||
settings = DatabaseManager.getManager().getSettings(Snowflake.of(guildId));
|
||||
settings = DatabaseManager.getManager().getSettings(guildId);
|
||||
}
|
||||
|
||||
//Okay, time to update the event
|
||||
@@ -338,11 +337,11 @@ public class EventEndpoint {
|
||||
if (DiscordAccountHandler.getHandler().hasAccount(request)) {
|
||||
Map m = DiscordAccountHandler.getHandler().getAccount(request);
|
||||
WebGuild g = (WebGuild) m.get("selected");
|
||||
g.setSettings(DatabaseManager.getManager().getSettings(Snowflake.of(g.getId())));
|
||||
g.setSettings(DatabaseManager.getManager().getSettings(Long.valueOf(g.getId())));
|
||||
settings = g.getSettings();
|
||||
} else {
|
||||
long guildId = body.getLong("guild_id");
|
||||
settings = DatabaseManager.getManager().getSettings(Snowflake.of(guildId));
|
||||
settings = DatabaseManager.getManager().getSettings(guildId);
|
||||
}
|
||||
|
||||
//Okay, time to create the event
|
||||
@@ -451,11 +450,11 @@ public class EventEndpoint {
|
||||
if (DiscordAccountHandler.getHandler().hasAccount(request)) {
|
||||
Map m = DiscordAccountHandler.getHandler().getAccount(request);
|
||||
WebGuild g = (WebGuild) m.get("selected");
|
||||
g.setSettings(DatabaseManager.getManager().getSettings(Snowflake.of(g.getId())));
|
||||
g.setSettings(DatabaseManager.getManager().getSettings(Long.valueOf(g.getId())));
|
||||
settings = g.getSettings();
|
||||
} else {
|
||||
long guildId = requestBody.getLong("guild_id");
|
||||
settings = DatabaseManager.getManager().getSettings(Snowflake.of(guildId));
|
||||
settings = DatabaseManager.getManager().getSettings(guildId);
|
||||
}
|
||||
|
||||
//okay, time to properly delete the event
|
||||
|
||||
+2
-3
@@ -1,6 +1,5 @@
|
||||
package org.dreamexposure.discal.server.api.endpoints.v1;
|
||||
|
||||
import discord4j.core.object.util.Snowflake;
|
||||
import org.dreamexposure.discal.core.database.DatabaseManager;
|
||||
import org.dreamexposure.discal.core.logger.Logger;
|
||||
import org.dreamexposure.discal.core.object.GuildSettings;
|
||||
@@ -42,7 +41,7 @@ public class GuildEndpoint {
|
||||
JSONObject jsonMain = new JSONObject(requestBody);
|
||||
Long guildId = jsonMain.getLong("guild_id");
|
||||
|
||||
GuildSettings settings = DatabaseManager.getManager().getSettings(Snowflake.of(guildId));
|
||||
GuildSettings settings = DatabaseManager.getManager().getSettings(guildId);
|
||||
|
||||
response.setContentType("application/json");
|
||||
response.setStatus(200);
|
||||
@@ -90,7 +89,7 @@ public class GuildEndpoint {
|
||||
|
||||
Long guildId = body.getLong("guild_id");
|
||||
|
||||
GuildSettings settings = DatabaseManager.getManager().getSettings(Snowflake.of(guildId));
|
||||
GuildSettings settings = DatabaseManager.getManager().getSettings(guildId);
|
||||
|
||||
if (body.has("control_role"))
|
||||
settings.setControlRole(body.getString("control_role"));
|
||||
|
||||
+2
-3
@@ -1,6 +1,5 @@
|
||||
package org.dreamexposure.discal.server.api.endpoints.v1;
|
||||
|
||||
import discord4j.core.object.util.Snowflake;
|
||||
import org.dreamexposure.discal.core.database.DatabaseManager;
|
||||
import org.dreamexposure.discal.core.logger.Logger;
|
||||
import org.dreamexposure.discal.core.object.event.RsvpData;
|
||||
@@ -43,7 +42,7 @@ public class RsvpEndpoint {
|
||||
long guildId = jsonMain.getLong("guild_id");
|
||||
String eventId = jsonMain.getString("id");
|
||||
|
||||
RsvpData rsvp = DatabaseManager.getManager().getRsvpData(Snowflake.of(guildId), eventId);
|
||||
RsvpData rsvp = DatabaseManager.getManager().getRsvpData(guildId, eventId);
|
||||
|
||||
JSONObject body = new JSONObject();
|
||||
body.put("on_time", rsvp.getGoingOnTime());
|
||||
@@ -85,7 +84,7 @@ public class RsvpEndpoint {
|
||||
long guildId = jsonMain.getLong("guild_id");
|
||||
String eventId = jsonMain.getString("id");
|
||||
|
||||
RsvpData rsvp = DatabaseManager.getManager().getRsvpData(Snowflake.of(guildId), eventId);
|
||||
RsvpData rsvp = DatabaseManager.getManager().getRsvpData(guildId, eventId);
|
||||
|
||||
if (jsonMain.has("on_time")) {
|
||||
rsvp.getGoingOnTime().clear();
|
||||
|
||||
+15
-16
@@ -2,7 +2,6 @@ package org.dreamexposure.discal.server.handler;
|
||||
|
||||
import com.google.api.services.calendar.model.AclRule;
|
||||
import com.google.api.services.calendar.model.Calendar;
|
||||
import discord4j.core.object.util.Snowflake;
|
||||
import org.dreamexposure.discal.core.calendar.CalendarAuth;
|
||||
import org.dreamexposure.discal.core.database.DatabaseManager;
|
||||
import org.dreamexposure.discal.core.enums.announcement.AnnouncementType;
|
||||
@@ -166,7 +165,7 @@ public class DashboardHandler {
|
||||
WebGuild g = (WebGuild) m.get("selected");
|
||||
|
||||
if (g.isManageServer()) {
|
||||
g.setSettings(DatabaseManager.getManager().getSettings(Snowflake.of(g.getId())));
|
||||
g.setSettings(DatabaseManager.getManager().getSettings(Long.valueOf(g.getId())));
|
||||
g.getSettings().setPrefix(queryParams.get("prefix"));
|
||||
|
||||
DatabaseManager.getManager().updateSettings(g.getSettings());
|
||||
@@ -177,7 +176,7 @@ public class DashboardHandler {
|
||||
WebGuild g = (WebGuild) m.get("selected");
|
||||
|
||||
if (g.isManageServer()) {
|
||||
g.setSettings(DatabaseManager.getManager().getSettings(Snowflake.of(g.getId())));
|
||||
g.setSettings(DatabaseManager.getManager().getSettings(Long.valueOf(g.getId())));
|
||||
g.getSettings().setLang(queryParams.get("lang"));
|
||||
|
||||
DatabaseManager.getManager().updateSettings(g.getSettings());
|
||||
@@ -188,7 +187,7 @@ public class DashboardHandler {
|
||||
WebGuild g = (WebGuild) m.get("selected");
|
||||
|
||||
if (g.isManageServer()) {
|
||||
g.setSettings(DatabaseManager.getManager().getSettings(Snowflake.of(g.getId())));
|
||||
g.setSettings(DatabaseManager.getManager().getSettings(Long.valueOf(g.getId())));
|
||||
|
||||
|
||||
WebRole role = g.getRole((Long.valueOf(queryParams.get("con-role"))));
|
||||
@@ -213,7 +212,7 @@ public class DashboardHandler {
|
||||
WebGuild g = (WebGuild) m.get("selected");
|
||||
|
||||
if (g.isDiscalRole()) {
|
||||
g.setSettings(DatabaseManager.getManager().getSettings(Snowflake.of(g.getId())));
|
||||
g.setSettings(DatabaseManager.getManager().getSettings(Long.valueOf(g.getId())));
|
||||
|
||||
|
||||
for (WebChannel wc : g.getChannels()) {
|
||||
@@ -235,7 +234,7 @@ public class DashboardHandler {
|
||||
WebGuild g = (WebGuild) m.get("selected");
|
||||
|
||||
if (g.isManageServer()) {
|
||||
g.setSettings(DatabaseManager.getManager().getSettings(Snowflake.of(g.getId())));
|
||||
g.setSettings(DatabaseManager.getManager().getSettings(Long.valueOf(g.getId())));
|
||||
|
||||
if (g.getSettings().isPatronGuild()) {
|
||||
if (queryParams.containsKey("value"))
|
||||
@@ -253,7 +252,7 @@ public class DashboardHandler {
|
||||
|
||||
//Guess this one never checked for perms so...
|
||||
|
||||
g.setSettings(DatabaseManager.getManager().getSettings(Snowflake.of(g.getId())));
|
||||
g.setSettings(DatabaseManager.getManager().getSettings(Long.valueOf(g.getId())));
|
||||
|
||||
if (queryParams.containsKey("value"))
|
||||
g.getSettings().setSimpleAnnouncements(true);
|
||||
@@ -367,7 +366,7 @@ public class DashboardHandler {
|
||||
scope.setType("default");
|
||||
rule.setScope(scope).setRole("reader");
|
||||
service.acl().insert(confirmed.getId(), rule).execute();
|
||||
CalendarData calendarData = new CalendarData(Snowflake.of(g.getId()), 1);
|
||||
CalendarData calendarData = new CalendarData(Long.valueOf(g.getId()), 1);
|
||||
calendarData.setCalendarId(confirmed.getId());
|
||||
calendarData.setCalendarAddress(confirmed.getId());
|
||||
DatabaseManager.getManager().updateCalendar(calendarData);
|
||||
@@ -404,7 +403,7 @@ public class DashboardHandler {
|
||||
WebGuild g = (WebGuild) m.get("selected");
|
||||
|
||||
if (g.isDiscalRole()) {
|
||||
Announcement a = new Announcement(Snowflake.of(g.getId()));
|
||||
Announcement a = new Announcement(Long.valueOf(g.getId()));
|
||||
a.setAnnouncementChannelId(channelId);
|
||||
a.setMinutesBefore(Integer.valueOf(minutesRaw));
|
||||
a.setHoursBefore(Integer.valueOf(hoursRaw));
|
||||
@@ -429,7 +428,7 @@ public class DashboardHandler {
|
||||
|
||||
//Update WebGuild to display correctly...
|
||||
g.getAnnouncements().clear();
|
||||
g.getAnnouncements().addAll(DatabaseManager.getManager().getAnnouncements(Snowflake.of(g.getId())));
|
||||
g.getAnnouncements().addAll(DatabaseManager.getManager().getAnnouncements(Long.valueOf(g.getId())));
|
||||
}
|
||||
//Finally redirect back to the dashboard
|
||||
response.sendRedirect("/dashboard/guild/announcements");
|
||||
@@ -453,11 +452,11 @@ public class DashboardHandler {
|
||||
WebGuild g = (WebGuild) m.get("selected");
|
||||
|
||||
if (g.isManageServer()) {
|
||||
CalendarData data = DatabaseManager.getManager().getMainCalendar(Snowflake.of(g.getId()));
|
||||
GuildSettings settings = DatabaseManager.getManager().getSettings(Snowflake.of(g.getId()));
|
||||
CalendarData data = DatabaseManager.getManager().getMainCalendar(Long.valueOf(g.getId()));
|
||||
GuildSettings settings = DatabaseManager.getManager().getSettings(Long.valueOf(g.getId()));
|
||||
CalendarUtils.deleteCalendar(data, settings);
|
||||
|
||||
g.setCalendar(new WebCalendar().fromCalendar(DatabaseManager.getManager().getMainCalendar(Snowflake.of(g.getId())), DatabaseManager.getManager().getSettings(Snowflake.of(g.getId()))));
|
||||
g.setCalendar(new WebCalendar().fromCalendar(DatabaseManager.getManager().getMainCalendar(Long.valueOf(g.getId())), DatabaseManager.getManager().getSettings(Long.valueOf(g.getId()))));
|
||||
response.sendRedirect("/dashboard/guild/calendar");
|
||||
return "redirect:/dashboard/guild/calendar";
|
||||
} else {
|
||||
@@ -486,7 +485,7 @@ public class DashboardHandler {
|
||||
|
||||
//Update announcements list to display correctly.
|
||||
g.getAnnouncements().clear();
|
||||
g.getAnnouncements().addAll(DatabaseManager.getManager().getAnnouncements(Snowflake.of(g.getId())));
|
||||
g.getAnnouncements().addAll(DatabaseManager.getManager().getAnnouncements(Long.valueOf(g.getId())));
|
||||
}
|
||||
response.sendRedirect("/dashboard/guild/announcements");
|
||||
return "redirect:/dashboard/guild/announcements";
|
||||
@@ -508,7 +507,7 @@ public class DashboardHandler {
|
||||
WebGuild g = (WebGuild) m.get("selected");
|
||||
|
||||
if (g.isManageServer()) {
|
||||
Announcement a = DatabaseManager.getManager().getAnnouncement(UUID.fromString(announcementId), Snowflake.of(g.getId()));
|
||||
Announcement a = DatabaseManager.getManager().getAnnouncement(UUID.fromString(announcementId), Long.valueOf(g.getId()));
|
||||
|
||||
a.setAnnouncementChannelId(queryParams.get("channel"));
|
||||
a.setAnnouncementType(AnnouncementType.fromValue(queryParams.get("type")));
|
||||
@@ -532,7 +531,7 @@ public class DashboardHandler {
|
||||
|
||||
//Update announcements list to display correctly.
|
||||
g.getAnnouncements().clear();
|
||||
g.getAnnouncements().addAll(DatabaseManager.getManager().getAnnouncements(Snowflake.of(g.getId())));
|
||||
g.getAnnouncements().addAll(DatabaseManager.getManager().getAnnouncements(Long.valueOf(g.getId())));
|
||||
}
|
||||
response.sendRedirect("/dashboard/guild/announcements");
|
||||
return "redirect:/dashboard/guild/announcements";
|
||||
|
||||
Reference in New Issue
Block a user