diff --git a/pom.xml b/pom.xml index b6667fe1..ef7f5e77 100644 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ 4.0.0 org.egg.papertrail paper-trail-bot - 1.2.0 + 1.2.1 PaperTrail A simple bot for logging all user actions diff --git a/src/main/java/org/papertrail/cleanup/BotKickListener.java b/src/main/java/org/papertrail/cleanup/BotKickListener.java index ceba7f9e..63ec7303 100644 --- a/src/main/java/org/papertrail/cleanup/BotKickListener.java +++ b/src/main/java/org/papertrail/cleanup/BotKickListener.java @@ -2,7 +2,7 @@ import org.jetbrains.annotations.NotNull; import org.papertrail.database.DatabaseConnector; -import org.papertrail.database.TableNames; +import org.papertrail.database.Schema; import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.events.guild.GuildLeaveEvent; @@ -28,8 +28,8 @@ public void onGuildLeave(@NotNull GuildLeaveEvent event) { Guild leftGuild = event.getGuild(); vThreadPool.execute(()->{ - dc.getGuildDataAccess().unregister(leftGuild.getId(), TableNames.AUDIT_LOG_TABLE); - dc.getGuildDataAccess().unregister(leftGuild.getId(), TableNames.MESSAGE_LOG_REGISTRATION_TABLE); + dc.getGuildDataAccess().unregister(leftGuild.getId(), Schema.AUDIT_LOG_TABLE); + dc.getGuildDataAccess().unregister(leftGuild.getId(), Schema.MESSAGE_LOG_REGISTRATION_TABLE); }); } diff --git a/src/main/java/org/papertrail/database/DatabaseConnector.java b/src/main/java/org/papertrail/database/DatabaseConnector.java index f8bb6468..dec72b23 100644 --- a/src/main/java/org/papertrail/database/DatabaseConnector.java +++ b/src/main/java/org/papertrail/database/DatabaseConnector.java @@ -8,6 +8,9 @@ import com.zaxxer.hikari.HikariDataSource; +import static org.papertrail.database.Schema.initializeSchema; + + public class DatabaseConnector { private static final String DB_URL = EnvConfig.get("DATABASEURL"); @@ -17,6 +20,7 @@ public class DatabaseConnector { public DatabaseConnector() { initializeDataSource(); this.dsl = DSL.using(dataSource, SQLDialect.POSTGRES); + initializeSchema(dsl); } public GuildDataAccess getGuildDataAccess() { @@ -37,7 +41,8 @@ private static synchronized void initializeDataSource() { dataSource.setConnectionTimeout(30000); // 30 seconds dataSource.setIdleTimeout(600000); // 10 minutes dataSource.setMaxLifetime(1800000); // 30 minutes - dataSource.setPoolName("PaperTrailPool"); + dataSource.setPoolName("PaperTrailPool"); + dataSource.setConnectionInitSql("SET TIME ZONE 'UTC'"); } // Ensure the data source is closed on shutdown Runtime.getRuntime().addShutdownHook(new Thread(() -> { diff --git a/src/main/java/org/papertrail/database/GuildDataAccess.java b/src/main/java/org/papertrail/database/GuildDataAccess.java index bd5dbdfe..63aa8b90 100644 --- a/src/main/java/org/papertrail/database/GuildDataAccess.java +++ b/src/main/java/org/papertrail/database/GuildDataAccess.java @@ -7,14 +7,13 @@ import static org.jooq.impl.DSL.field; import static org.jooq.impl.DSL.selectOne; import static org.jooq.impl.DSL.table; +import static org.papertrail.database.Schema.CHANNEL_ID_COLUMN; +import static org.papertrail.database.Schema.GUILD_ID_COLUMN; public class GuildDataAccess { private final DSLContext dsl; - - private static final String GUILD_ID_COLUMN = "guild_id"; - private static final String CHANNEL_ID_COLUMN = "channel_id"; - + public GuildDataAccess(DSLContext dsl) { this.dsl = dsl; } diff --git a/src/main/java/org/papertrail/database/MessageDataAccess.java b/src/main/java/org/papertrail/database/MessageDataAccess.java index f39596ad..359a6510 100644 --- a/src/main/java/org/papertrail/database/MessageDataAccess.java +++ b/src/main/java/org/papertrail/database/MessageDataAccess.java @@ -6,22 +6,21 @@ import static org.jooq.impl.DSL.field; import static org.jooq.impl.DSL.selectOne; import static org.jooq.impl.DSL.table; +import static org.papertrail.database.Schema.AUTHOR_ID_COLUMN; +import static org.papertrail.database.Schema.MESSAGE_CONTENT_COLUMN; +import static org.papertrail.database.Schema.MESSAGE_ID_COLUMN; public class MessageDataAccess { private final DSLContext dsl; - private static final String MESSAGE_ID_COLUMN = "message_id"; - private static final String MESSAGE_CONTENT_COLUMN = "message_content"; - private static final String AUTHOR_ID_COLUMN = "author_id"; - public MessageDataAccess (DSLContext dsl) { this.dsl = dsl; } public void logMessage(String messageId, String messageContent, String authorId) { - dsl.insertInto(table(TableNames.MESSAGE_LOG_CONTENT_TABLE)) + dsl.insertInto(table(Schema.MESSAGE_LOG_CONTENT_TABLE)) .columns(field(MESSAGE_ID_COLUMN), field(MESSAGE_CONTENT_COLUMN), field(AUTHOR_ID_COLUMN)) .values(Long.parseLong(messageId), MessageEncryption.encrypt(messageContent), Long.parseLong(authorId)) .onConflictDoNothing() @@ -31,7 +30,7 @@ public void logMessage(String messageId, String messageContent, String authorId) public AuthorAndMessageEntity retrieveAuthorAndMessage (String messageId) { return dsl.select(field(AUTHOR_ID_COLUMN), field(MESSAGE_CONTENT_COLUMN)) - .from(table(TableNames.MESSAGE_LOG_CONTENT_TABLE)) + .from(table(Schema.MESSAGE_LOG_CONTENT_TABLE)) .where(field(MESSAGE_ID_COLUMN).eq(Long.parseLong(messageId))) .fetchOne(r -> new AuthorAndMessageEntity(String.valueOf(r.get(field(AUTHOR_ID_COLUMN))), MessageEncryption.decrypt(String.valueOf(r.get(field(MESSAGE_CONTENT_COLUMN)))))); } @@ -39,14 +38,14 @@ public AuthorAndMessageEntity retrieveAuthorAndMessage (String messageId) { public boolean messageExists (String messageId) { return dsl.fetchExists( - selectOne().from(table(TableNames.MESSAGE_LOG_CONTENT_TABLE)) + selectOne().from(table(Schema.MESSAGE_LOG_CONTENT_TABLE)) .where(field(MESSAGE_ID_COLUMN).eq(Long.parseLong(messageId))) ); } public void updateMessage (String messageId, String messageContent) { - dsl.update(table(TableNames.MESSAGE_LOG_CONTENT_TABLE)) + dsl.update(table(Schema.MESSAGE_LOG_CONTENT_TABLE)) .set(field(MESSAGE_CONTENT_COLUMN), MessageEncryption.encrypt(messageContent)) .where(field(MESSAGE_ID_COLUMN).eq(Long.parseLong(messageId))) .execute(); @@ -54,7 +53,7 @@ public void updateMessage (String messageId, String messageContent) { public void deleteMessage (String messageId) { - dsl.deleteFrom(table(TableNames.MESSAGE_LOG_CONTENT_TABLE)) + dsl.deleteFrom(table(Schema.MESSAGE_LOG_CONTENT_TABLE)) .where(field(MESSAGE_ID_COLUMN).eq(Long.parseLong(messageId))) .execute(); } diff --git a/src/main/java/org/papertrail/database/Schema.java b/src/main/java/org/papertrail/database/Schema.java new file mode 100644 index 00000000..bfaca3c6 --- /dev/null +++ b/src/main/java/org/papertrail/database/Schema.java @@ -0,0 +1,83 @@ +package org.papertrail.database; + +import org.jooq.DSLContext; +import org.jooq.impl.DSL; +import org.jooq.impl.SQLDataType; + +import static org.jooq.impl.DSL.constraint; + +public class Schema { + + private Schema() { + throw new IllegalStateException("Utility Class"); + } + + public static final String SCHEMA_NAME = "public"; + + public static final String AUDIT_LOG_TABLE = "audit_log_table"; + public static final String MESSAGE_LOG_REGISTRATION_TABLE = "message_log_registration_table"; + // the following to column names are used in both tables: message_log_registration_table and audit_log_table + public static final String GUILD_ID_COLUMN = "guild_id"; + public static final String CHANNEL_ID_COLUMN = "channel_id"; + + public static final String MESSAGE_LOG_CONTENT_TABLE = "message_log_content_table"; + public static final String MESSAGE_ID_COLUMN = "message_id"; + public static final String MESSAGE_CONTENT_COLUMN = "message_content"; + public static final String AUTHOR_ID_COLUMN = "author_id"; + + public static void initializeSchema(DSLContext dsl) { + + dsl.createSchemaIfNotExists(SCHEMA_NAME).execute(); + + // create audit log table + dsl.createTableIfNotExists(AUDIT_LOG_TABLE) + .column(GUILD_ID_COLUMN, SQLDataType.BIGINT.notNull()) + .column(CHANNEL_ID_COLUMN, SQLDataType.BIGINT.notNull()) + .constraints( + constraint(AUDIT_LOG_TABLE+"_pk").primaryKey(GUILD_ID_COLUMN), + constraint(AUDIT_LOG_TABLE+"_unique").unique(CHANNEL_ID_COLUMN) + ) + .execute(); + + // create message log registration table + dsl.createTableIfNotExists(MESSAGE_LOG_REGISTRATION_TABLE) + .column(GUILD_ID_COLUMN, SQLDataType.BIGINT.notNull()) + .column(CHANNEL_ID_COLUMN, SQLDataType.BIGINT.notNull()) + .constraints( + constraint(MESSAGE_LOG_REGISTRATION_TABLE+"_pk").primaryKey(GUILD_ID_COLUMN), + constraint(MESSAGE_LOG_REGISTRATION_TABLE+"_unique").unique(CHANNEL_ID_COLUMN) + ).execute(); + + // create message log content table + dsl.createTableIfNotExists(MESSAGE_LOG_CONTENT_TABLE) + .column(MESSAGE_ID_COLUMN, SQLDataType.BIGINT.notNull()) + .column(MESSAGE_CONTENT_COLUMN, SQLDataType.CLOB.nullable(true)) + .column(AUTHOR_ID_COLUMN, SQLDataType.BIGINT.notNull()) + .column("created_at", SQLDataType.TIMESTAMP.default_(DSL.currentTimestamp()).notNull()) + .constraints( + constraint(MESSAGE_LOG_CONTENT_TABLE+"pk").primaryKey(MESSAGE_ID_COLUMN) + ) + .execute(); + // create index on created_at column + dsl.createIndexIfNotExists(MESSAGE_LOG_CONTENT_TABLE+"_created_at_idx") + .on(MESSAGE_LOG_CONTENT_TABLE, "created_at") + .execute(); + + setupCronDeletion(dsl); + } + + private static void setupCronDeletion(DSLContext dsl) { + dsl.query("CREATE EXTENSION IF NOT EXISTS pg_cron;").execute(); + + String cronScheduleQuery = String.format(""" + SELECT cron.schedule( + 'daily_log_cleanup', + '0 2 * * *', -- 2:00 AM UTC daily + $$DELETE FROM %s WHERE created_at < CURRENT_TIMESTAMP - INTERVAL '30 days';$$ + ); + """, MESSAGE_LOG_CONTENT_TABLE); + + dsl.query(cronScheduleQuery).execute(); + + } +} diff --git a/src/main/java/org/papertrail/database/TableNames.java b/src/main/java/org/papertrail/database/TableNames.java deleted file mode 100644 index 6bc3e047..00000000 --- a/src/main/java/org/papertrail/database/TableNames.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.papertrail.database; - -public class TableNames { - - private TableNames() { - throw new IllegalStateException("Utility Class"); - } - - public static final String AUDIT_LOG_TABLE = "audit_log_table"; - public static final String MESSAGE_LOG_REGISTRATION_TABLE = "message_log_registration_table"; - public static final String MESSAGE_LOG_CONTENT_TABLE = "message_log_content_table"; -} diff --git a/src/main/java/org/papertrail/listeners/commandlisteners/AnnouncementCommandListener.java b/src/main/java/org/papertrail/listeners/commandlisteners/AnnouncementCommandListener.java index 9ea6ca2f..acd0d0dd 100644 --- a/src/main/java/org/papertrail/listeners/commandlisteners/AnnouncementCommandListener.java +++ b/src/main/java/org/papertrail/listeners/commandlisteners/AnnouncementCommandListener.java @@ -6,7 +6,7 @@ import java.util.Objects; import org.papertrail.database.DatabaseConnector; -import org.papertrail.database.TableNames; +import org.papertrail.database.Schema; import org.papertrail.utilities.EnvConfig; import org.papertrail.version.AuthorInfo; import org.papertrail.version.ProjectInfo; @@ -36,7 +36,7 @@ public void onSlashCommandInteraction(SlashCommandInteractionEvent event) { if(event.getName().equals("announcement")) { - List registeredChannelList = dc.getGuildDataAccess().retrieveAllRegisteredChannels(TableNames.AUDIT_LOG_TABLE); + List registeredChannelList = dc.getGuildDataAccess().retrieveAllRegisteredChannels(Schema.AUDIT_LOG_TABLE); if(registeredChannelList.isEmpty()) { return; diff --git a/src/main/java/org/papertrail/listeners/commandlisteners/AuditLogSetupCommandListener.java b/src/main/java/org/papertrail/listeners/commandlisteners/AuditLogSetupCommandListener.java index 0330a924..7c978403 100644 --- a/src/main/java/org/papertrail/listeners/commandlisteners/AuditLogSetupCommandListener.java +++ b/src/main/java/org/papertrail/listeners/commandlisteners/AuditLogSetupCommandListener.java @@ -4,7 +4,7 @@ import java.util.Objects; import org.papertrail.database.DatabaseConnector; -import org.papertrail.database.TableNames; +import org.papertrail.database.Schema; import org.tinylog.Logger; import net.dv8tion.jda.api.EmbedBuilder; @@ -59,7 +59,7 @@ private void setAuditLogging(SlashCommandInteractionEvent event) { String guildId = Objects.requireNonNull(event.getGuild()).getId(); // retrieve the previously registered channel_id associated with the given // guild_id - String registeredChannelId = dc.getGuildDataAccess().retrieveRegisteredChannel(guildId, TableNames.AUDIT_LOG_TABLE); + String registeredChannelId = dc.getGuildDataAccess().retrieveRegisteredChannel(guildId, Schema.AUDIT_LOG_TABLE); // if there is a registered channel_id in the database, send a warning message // in the channel where the command was called from, stating that a channel has @@ -83,7 +83,7 @@ private void setAuditLogging(SlashCommandInteractionEvent event) { String channelIdToRegister = event.getChannel().asTextChannel().getId(); try { // register the channel_id along with guild_id in the database - dc.getGuildDataAccess().registerGuildAndChannel(guildId, channelIdToRegister, TableNames.AUDIT_LOG_TABLE); + dc.getGuildDataAccess().registerGuildAndChannel(guildId, channelIdToRegister, Schema.AUDIT_LOG_TABLE); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("📝 Audit Log Configuration"); @@ -118,7 +118,7 @@ private void retrieveAuditLoggingChannel(SlashCommandInteractionEvent event) { String guildId = Objects.requireNonNull(event.getGuild()).getId(); // retrieve the channel_id registered in the database - String registeredChannelId = dc.getGuildDataAccess().retrieveRegisteredChannel(guildId, TableNames.AUDIT_LOG_TABLE); + String registeredChannelId = dc.getGuildDataAccess().retrieveRegisteredChannel(guildId, Schema.AUDIT_LOG_TABLE); // if there is no channel_id for the given guild_id in the database, then inform // the user of the same, else link the channel that has been registered @@ -166,7 +166,7 @@ private void unsetAuditLogging(SlashCommandInteractionEvent event) { } String guildId = Objects.requireNonNull(event.getGuild()).getId(); - String registeredChannelId = dc.getGuildDataAccess().retrieveRegisteredChannel(guildId, TableNames.AUDIT_LOG_TABLE); + String registeredChannelId = dc.getGuildDataAccess().retrieveRegisteredChannel(guildId, Schema.AUDIT_LOG_TABLE); if (registeredChannelId == null || registeredChannelId.isBlank()) { @@ -180,7 +180,7 @@ private void unsetAuditLogging(SlashCommandInteractionEvent event) { } else { try { - dc.getGuildDataAccess().unregister(guildId, TableNames.AUDIT_LOG_TABLE); + dc.getGuildDataAccess().unregister(guildId, Schema.AUDIT_LOG_TABLE); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("📝 Audit Log Configuration"); diff --git a/src/main/java/org/papertrail/listeners/commandlisteners/MessageLogSetupCommandListener.java b/src/main/java/org/papertrail/listeners/commandlisteners/MessageLogSetupCommandListener.java index 77b420e3..66f9961d 100644 --- a/src/main/java/org/papertrail/listeners/commandlisteners/MessageLogSetupCommandListener.java +++ b/src/main/java/org/papertrail/listeners/commandlisteners/MessageLogSetupCommandListener.java @@ -4,7 +4,7 @@ import java.util.Objects; import org.papertrail.database.DatabaseConnector; -import org.papertrail.database.TableNames; +import org.papertrail.database.Schema; import org.tinylog.Logger; import net.dv8tion.jda.api.EmbedBuilder; @@ -61,7 +61,7 @@ private void setMessageLogging(SlashCommandInteractionEvent event) { Guild guild = event.getGuild(); String guildId = Objects.requireNonNull(guild).getId(); - String registeredChannelId = dc.getGuildDataAccess().retrieveRegisteredChannel(guildId, TableNames.MESSAGE_LOG_REGISTRATION_TABLE); + String registeredChannelId = dc.getGuildDataAccess().retrieveRegisteredChannel(guildId, Schema.MESSAGE_LOG_REGISTRATION_TABLE); if(registeredChannelId!=null && !registeredChannelId.isBlank()) { @@ -79,7 +79,7 @@ private void setMessageLogging(SlashCommandInteractionEvent event) { String channelIdToRegister = event.getChannelId(); try { // register the channel_id along with guild_id in the database - dc.getGuildDataAccess().registerGuildAndChannel(guildId, channelIdToRegister, TableNames.MESSAGE_LOG_REGISTRATION_TABLE); + dc.getGuildDataAccess().registerGuildAndChannel(guildId, channelIdToRegister, Schema.MESSAGE_LOG_REGISTRATION_TABLE); eb.addField("✅ Channel Registration Success","╰┈➤"+"All edited and deleted messages will be logged here", false); eb.setColor(Color.GREEN); @@ -116,7 +116,7 @@ private void retrieveMessageLoggingChannel(SlashCommandInteractionEvent event) { Guild guild = event.getGuild(); String guildId = Objects.requireNonNull(guild).getId(); - String registeredChannelId = dc.getGuildDataAccess().retrieveRegisteredChannel(guildId, TableNames.MESSAGE_LOG_REGISTRATION_TABLE); + String registeredChannelId = dc.getGuildDataAccess().retrieveRegisteredChannel(guildId, Schema.MESSAGE_LOG_REGISTRATION_TABLE); // if there is no channel_id for the given guild_id in the database, then inform // the user of the same, else link the channel that has been registered if (registeredChannelId == null || registeredChannelId.isBlank()) { @@ -157,7 +157,7 @@ private void unsetMessageLogging(SlashCommandInteractionEvent event) { Guild guild = event.getGuild(); String guildId = Objects.requireNonNull(guild).getId(); - String registeredChannelId = dc.getGuildDataAccess().retrieveRegisteredChannel(guildId, TableNames.MESSAGE_LOG_REGISTRATION_TABLE); + String registeredChannelId = dc.getGuildDataAccess().retrieveRegisteredChannel(guildId, Schema.MESSAGE_LOG_REGISTRATION_TABLE); if (registeredChannelId == null || registeredChannelId.isBlank()) { eb.addField("â„šī¸ Channel Removal", "╰┈➤"+"No channel has been registered for message logs", false); @@ -171,7 +171,7 @@ private void unsetMessageLogging(SlashCommandInteractionEvent event) { } else { try { - dc.getGuildDataAccess().unregister(guildId, TableNames.MESSAGE_LOG_REGISTRATION_TABLE); + dc.getGuildDataAccess().unregister(guildId, Schema.MESSAGE_LOG_REGISTRATION_TABLE); eb.addField("✅ Channel Removal", "╰┈➤"+"Channel successfully unset", false); eb.setColor(Color.GREEN); diff --git a/src/main/java/org/papertrail/listeners/guildlisteners/ServerBoostListener.java b/src/main/java/org/papertrail/listeners/guildlisteners/ServerBoostListener.java index 8277be7b..9aec2002 100644 --- a/src/main/java/org/papertrail/listeners/guildlisteners/ServerBoostListener.java +++ b/src/main/java/org/papertrail/listeners/guildlisteners/ServerBoostListener.java @@ -8,7 +8,7 @@ import org.jetbrains.annotations.NotNull; import org.papertrail.database.DatabaseConnector; -import org.papertrail.database.TableNames; +import org.papertrail.database.Schema; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Guild; @@ -33,7 +33,7 @@ public void onGuildMemberUpdateBoostTime(@NotNull GuildMemberUpdateBoostTimeEven vThreadPool.execute(()->{ // this will return a non-null text id if a channel was previously registered in the database // server boost logs are mapped to audit log table - String registeredChannelId=dc.getGuildDataAccess().retrieveRegisteredChannel(event.getGuild().getId(), TableNames.AUDIT_LOG_TABLE); + String registeredChannelId=dc.getGuildDataAccess().retrieveRegisteredChannel(event.getGuild().getId(), Schema.AUDIT_LOG_TABLE); if(registeredChannelId==null ||registeredChannelId.isBlank()) { return; diff --git a/src/main/java/org/papertrail/listeners/loglisteners/AuditLogListener.java b/src/main/java/org/papertrail/listeners/loglisteners/AuditLogListener.java index a97813fe..e7e0869c 100644 --- a/src/main/java/org/papertrail/listeners/loglisteners/AuditLogListener.java +++ b/src/main/java/org/papertrail/listeners/loglisteners/AuditLogListener.java @@ -9,7 +9,7 @@ import org.apache.commons.lang3.StringUtils; import org.jetbrains.annotations.NotNull; import org.papertrail.database.DatabaseConnector; -import org.papertrail.database.TableNames; +import org.papertrail.database.Schema; import org.papertrail.utilities.ColorFormatter; import org.papertrail.utilities.DurationFormatter; import org.papertrail.utilities.GuildSystemChannelFlagResolver; @@ -49,7 +49,7 @@ public void onGuildAuditLogEntryCreate(@NotNull GuildAuditLogEntryCreateEvent ev vThreadPool.execute(()->{ // this will return a non-null text id if a channel was previously registered in the database - String registeredChannelId=dc.getGuildDataAccess().retrieveRegisteredChannel(event.getGuild().getId(), TableNames.AUDIT_LOG_TABLE); + String registeredChannelId=dc.getGuildDataAccess().retrieveRegisteredChannel(event.getGuild().getId(), Schema.AUDIT_LOG_TABLE); if(registeredChannelId==null ||registeredChannelId.isBlank()) { return; diff --git a/src/main/java/org/papertrail/listeners/loglisteners/MessageLogListener.java b/src/main/java/org/papertrail/listeners/loglisteners/MessageLogListener.java index 500abb2b..bec09c23 100644 --- a/src/main/java/org/papertrail/listeners/loglisteners/MessageLogListener.java +++ b/src/main/java/org/papertrail/listeners/loglisteners/MessageLogListener.java @@ -10,7 +10,7 @@ import com.google.common.util.concurrent.Striped; import org.papertrail.database.AuthorAndMessageEntity; import org.papertrail.database.DatabaseConnector; -import org.papertrail.database.TableNames; +import org.papertrail.database.Schema; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.MessageEmbed; @@ -62,7 +62,7 @@ public void onMessageReceived(MessageReceivedEvent event) { // see if the guild id is registered in the database for logging // if not registered, exit - if(!dc.getGuildDataAccess().isGuildRegistered(guildId, TableNames.MESSAGE_LOG_REGISTRATION_TABLE)) { + if(!dc.getGuildDataAccess().isGuildRegistered(guildId, Schema.MESSAGE_LOG_REGISTRATION_TABLE)) { return; } @@ -83,7 +83,7 @@ public void onMessageUpdate(MessageUpdateEvent event) { } String guildId = event.getGuild().getId(); - if(!dc.getGuildDataAccess().isGuildRegistered(guildId, TableNames.MESSAGE_LOG_REGISTRATION_TABLE)) { + if(!dc.getGuildDataAccess().isGuildRegistered(guildId, Schema.MESSAGE_LOG_REGISTRATION_TABLE)) { return; } @@ -124,7 +124,7 @@ public void onMessageUpdate(MessageUpdateEvent event) { // this channel is where the logs will be sent to // wrap the embed and send MessageEmbed mb = eb.build(); - String channelIdToSendTo = dc.getGuildDataAccess().retrieveRegisteredChannel(guildId, TableNames.MESSAGE_LOG_REGISTRATION_TABLE); + String channelIdToSendTo = dc.getGuildDataAccess().retrieveRegisteredChannel(guildId, Schema.MESSAGE_LOG_REGISTRATION_TABLE); Objects.requireNonNull(event.getGuild().getTextChannelById(channelIdToSendTo)).sendMessageEmbeds(mb).queue(); }); } @@ -134,7 +134,7 @@ public void onMessageDelete(MessageDeleteEvent event) { String guildId = event.getGuild().getId(); - if(!dc.getGuildDataAccess().isGuildRegistered(guildId, TableNames.MESSAGE_LOG_REGISTRATION_TABLE)) { + if(!dc.getGuildDataAccess().isGuildRegistered(guildId, Schema.MESSAGE_LOG_REGISTRATION_TABLE)) { return; } @@ -148,7 +148,7 @@ public void onMessageDelete(MessageDeleteEvent event) { } // retrieve the channel id where the logs must be sent - String channelIdToSendTo = dc.getGuildDataAccess().retrieveRegisteredChannel(guildId, TableNames.MESSAGE_LOG_REGISTRATION_TABLE); + String channelIdToSendTo = dc.getGuildDataAccess().retrieveRegisteredChannel(guildId, Schema.MESSAGE_LOG_REGISTRATION_TABLE); // retrieve the stored message in the database which was deleted AuthorAndMessageEntity ame = dc.getMessageDataAccess().retrieveAuthorAndMessage(messageId); diff --git a/src/main/java/org/papertrail/listeners/memberlisteners/GuildMemberJoinAndLeaveListener.java b/src/main/java/org/papertrail/listeners/memberlisteners/GuildMemberJoinAndLeaveListener.java index 47bd0f6d..ef42928f 100644 --- a/src/main/java/org/papertrail/listeners/memberlisteners/GuildMemberJoinAndLeaveListener.java +++ b/src/main/java/org/papertrail/listeners/memberlisteners/GuildMemberJoinAndLeaveListener.java @@ -7,7 +7,7 @@ import org.jetbrains.annotations.NotNull; import org.papertrail.database.DatabaseConnector; -import org.papertrail.database.TableNames; +import org.papertrail.database.Schema; import org.papertrail.utilities.DurationFormatter; import net.dv8tion.jda.api.EmbedBuilder; @@ -35,7 +35,7 @@ public void onGuildMemberJoin(@NotNull GuildMemberJoinEvent event) { // this will return a non-null text id if a channel was previously registered in // the database // guild member join and leave events are mapped to audit log table - String registeredChannelId = dc.getGuildDataAccess().retrieveRegisteredChannel(event.getGuild().getId(), TableNames.AUDIT_LOG_TABLE); + String registeredChannelId = dc.getGuildDataAccess().retrieveRegisteredChannel(event.getGuild().getId(), Schema.AUDIT_LOG_TABLE); if (registeredChannelId == null || registeredChannelId.isBlank()) { return; @@ -70,7 +70,7 @@ public void onGuildMemberRemove(@NotNull GuildMemberRemoveEvent event) { vThreadPool.execute(() -> { // this will return a non-null text id if a channel was previously registered in // the database - String registeredChannelId = dc.getGuildDataAccess().retrieveRegisteredChannel(event.getGuild().getId(), TableNames.AUDIT_LOG_TABLE); + String registeredChannelId = dc.getGuildDataAccess().retrieveRegisteredChannel(event.getGuild().getId(), Schema.AUDIT_LOG_TABLE); if (registeredChannelId == null || registeredChannelId.isBlank()) { return; diff --git a/src/main/java/org/papertrail/listeners/voicelisteners/GuildVoiceListener.java b/src/main/java/org/papertrail/listeners/voicelisteners/GuildVoiceListener.java index 61a7c7a0..91aca914 100644 --- a/src/main/java/org/papertrail/listeners/voicelisteners/GuildVoiceListener.java +++ b/src/main/java/org/papertrail/listeners/voicelisteners/GuildVoiceListener.java @@ -7,7 +7,7 @@ import org.jetbrains.annotations.NotNull; import org.papertrail.database.DatabaseConnector; -import org.papertrail.database.TableNames; +import org.papertrail.database.Schema; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Member; @@ -33,7 +33,7 @@ public void onGuildVoiceUpdate(@NotNull GuildVoiceUpdateEvent event) { // this will return a non-null text id if a channel was previously registered in // the database // guild voice events are mapped to audit log table - String registeredChannelId = dc.getGuildDataAccess().retrieveRegisteredChannel(event.getGuild().getId(), TableNames.AUDIT_LOG_TABLE); + String registeredChannelId = dc.getGuildDataAccess().retrieveRegisteredChannel(event.getGuild().getId(), Schema.AUDIT_LOG_TABLE); if (registeredChannelId == null || registeredChannelId.isBlank()) { return; diff --git a/src/main/java/org/papertrail/version/ProjectInfo.java b/src/main/java/org/papertrail/version/ProjectInfo.java index 31246d9e..cdb70a99 100644 --- a/src/main/java/org/papertrail/version/ProjectInfo.java +++ b/src/main/java/org/papertrail/version/ProjectInfo.java @@ -7,7 +7,7 @@ private ProjectInfo() { } public static final String APPNAME = "PaperTrail"; - public static final String VERSION = "v1.2.0"; + public static final String VERSION = "v1.2.1"; public static final String PROJECT_LINK = "https://github.com/Egg-03/PaperTrailBot"; public static final String PROJECT_ISSUE_LINK="https://github.com/Egg-03/PaperTrailBot/issues";