From baa806653483c5e43571b9f18dda3cdf8fdc935d Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Sat, 7 Feb 2026 12:20:18 +0530 Subject: [PATCH 001/104] refactor(color-formatter): rename `gradientValue` parameter - Rename `gradientValue` parameter to `gradientMap` in `formatGradientColorSystemToHex` method Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../java/org/papertrail/commons/utilities/ColorFormatter.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/papertrail/commons/utilities/ColorFormatter.java b/src/main/java/org/papertrail/commons/utilities/ColorFormatter.java index 31c9b16b..191f0036 100644 --- a/src/main/java/org/papertrail/commons/utilities/ColorFormatter.java +++ b/src/main/java/org/papertrail/commons/utilities/ColorFormatter.java @@ -26,9 +26,9 @@ public static String formatToHex(Object colorValue) { // gradient is returned as a hash map in the following structure // {"primary_color" = 123456789, "secondary_color" = 123456789, "tertiary_color" = 123456789} - public static String formatGradientColorSystemToHex(Object gradientValue) { + public static String formatGradientColorSystemToHex(Object gradientMap) { - if(gradientValue instanceof Map colorMap){ + if(gradientMap instanceof Map colorMap){ String primaryColor = "Primary Color: "+ formatToHex(colorMap.get("primary_color")); String secondaryColor = "Secondary Color: "+ formatToHex(colorMap.get("secondary_color")); From 3e67bf6790d9f3c96e141b75a7e9ee92768e8607 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Sat, 7 Feb 2026 18:10:48 +0530 Subject: [PATCH 002/104] refactor(audit-log): simplify audit log helper method signatures - Remove `AuditLogEntry` parameter from `format` methods in audit log helper classes - Retrieve `AuditLogEntry` directly from `GuildAuditLogEntryCreateEvent` within each helper method - Update all calls to these helper methods in `AuditLogEventListener.java` - Remove `FIXME` comment in `BanEventHelper.java` Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../audit/event/AuditLogEventListener.java | 114 +++++++++--------- ...utoModerationFlagToChannelEventHelper.java | 5 +- ...utoModerationMemberTimeoutEventHelper.java | 5 +- ...ModerationRuleBlockMessageEventHelper.java | 5 +- .../AutoModerationRuleCreateEventHelper.java | 4 +- .../AutoModerationRuleDeleteEventHelper.java | 4 +- .../AutoModerationRuleUpdateEventHelper.java | 4 +- .../audit/helper/BanEventHelper.java | 5 +- .../audit/helper/BotAddEventHelper.java | 4 +- .../helper/ChannelCreateEventHelper.java | 4 +- .../helper/ChannelDeleteEventHelper.java | 4 +- .../ChannelOverrideCreateEventHelper.java | 4 +- .../ChannelOverrideDeleteEventHelper.java | 4 +- .../ChannelOverrideUpdateEventHelper.java | 4 +- .../helper/ChannelUpdateEventHelper.java | 4 +- .../audit/helper/EmojiCreateEventHelper.java | 5 +- .../audit/helper/EmojiDeleteEventHelper.java | 5 +- .../audit/helper/EmojiUpdateEventHelper.java | 5 +- .../helper/GenericAuditLogEventHelper.java | 4 +- .../audit/helper/GuildUpdateEventHelper.java | 5 +- .../helper/IntegrationCreateEventHelper.java | 4 +- .../helper/IntegrationDeleteEventHelper.java | 4 +- .../audit/helper/InviteCreateEventHelper.java | 4 +- .../audit/helper/InviteDeleteEventHelper.java | 4 +- .../audit/helper/KickEventHelper.java | 4 +- .../helper/MemberRoleUpdateEventHelper.java | 5 +- .../audit/helper/MemberUpdateEventHelper.java | 4 +- .../helper/MemberVoiceKickEventHelper.java | 5 +- .../helper/MemberVoiceMoveEventHelper.java | 5 +- .../audit/helper/MessagePinEventHelper.java | 5 +- .../audit/helper/MessageUnpinEventHelper.java | 5 +- .../audit/helper/RoleCreateEventHelper.java | 5 +- .../audit/helper/RoleDeleteEventHelper.java | 5 +- .../audit/helper/RoleUpdateEventHelper.java | 5 +- .../ScheduledEventCreateEventHelper.java | 4 +- .../ScheduledEventDeleteEventHelper.java | 4 +- .../ScheduledEventUpdateEventHelper.java | 4 +- .../SoundboardSoundCreateEventHelper.java | 4 +- .../SoundboardSoundDeleteEventHelper.java | 4 +- .../SoundboardSoundUpdateEventHelper.java | 4 +- .../StageInstanceCreateEventHelper.java | 4 +- .../StageInstanceDeleteEventHelper.java | 4 +- .../StageInstanceUpdateEventHelper.java | 4 +- .../helper/StickerCreateEventHelper.java | 5 +- .../helper/StickerDeleteEventHelper.java | 5 +- .../helper/StickerUpdateEventHelper.java | 5 +- .../audit/helper/ThreadCreateEventHelper.java | 4 +- .../audit/helper/ThreadDeleteEventHelper.java | 4 +- .../audit/helper/ThreadUpdateEventHelper.java | 4 +- .../audit/helper/UnbanEventHelper.java | 4 +- .../VoiceChannelStatusDeleteEventHelper.java | 5 +- .../VoiceChannelStatusUpdateEventHelper.java | 5 +- .../helper/WebhookCreateEventHelper.java | 4 +- .../helper/WebhookRemoveEventHelper.java | 4 +- .../helper/WebhookUpdateEventHelper.java | 4 +- 55 files changed, 239 insertions(+), 112 deletions(-) diff --git a/src/main/java/org/papertrail/listeners/audit/event/AuditLogEventListener.java b/src/main/java/org/papertrail/listeners/audit/event/AuditLogEventListener.java index cb1f8577..f291ab66 100644 --- a/src/main/java/org/papertrail/listeners/audit/event/AuditLogEventListener.java +++ b/src/main/java/org/papertrail/listeners/audit/event/AuditLogEventListener.java @@ -95,79 +95,79 @@ private void auditLogParser(GuildAuditLogEntryCreateEvent event, String channelI ActionType action = ale.getType(); switch (action) { - case AUTO_MODERATION_FLAG_TO_CHANNEL -> AutoModerationFlagToChannelEventHelper.format(event, ale, channelIdToSendTo); - case AUTO_MODERATION_MEMBER_TIMEOUT -> AutoModerationMemberTimeoutEventHelper.format(event, ale, channelIdToSendTo); - case AUTO_MODERATION_RULE_BLOCK_MESSAGE -> AutoModerationRuleBlockMessageEventHelper.format(event, ale, channelIdToSendTo); - case AUTO_MODERATION_RULE_CREATE -> AutoModerationRuleCreateEventHelper.format(event, ale, channelIdToSendTo); - case AUTO_MODERATION_RULE_UPDATE -> AutoModerationRuleUpdateEventHelper.format(event, ale, channelIdToSendTo); - case AUTO_MODERATION_RULE_DELETE -> AutoModerationRuleDeleteEventHelper.format(event, ale, channelIdToSendTo); - - case KICK -> KickEventHelper.format(event, ale, channelIdToSendTo); - case BAN -> BanEventHelper.format(event, ale, channelIdToSendTo); - case UNBAN -> UnbanEventHelper.format(event, ale, channelIdToSendTo); - case BOT_ADD -> BotAddEventHelper.format(event, ale, channelIdToSendTo); + case AUTO_MODERATION_FLAG_TO_CHANNEL -> AutoModerationFlagToChannelEventHelper.format(event, channelIdToSendTo); + case AUTO_MODERATION_MEMBER_TIMEOUT -> AutoModerationMemberTimeoutEventHelper.format(event, channelIdToSendTo); + case AUTO_MODERATION_RULE_BLOCK_MESSAGE -> AutoModerationRuleBlockMessageEventHelper.format(event, channelIdToSendTo); + case AUTO_MODERATION_RULE_CREATE -> AutoModerationRuleCreateEventHelper.format(event, channelIdToSendTo); + case AUTO_MODERATION_RULE_UPDATE -> AutoModerationRuleUpdateEventHelper.format(event, channelIdToSendTo); + case AUTO_MODERATION_RULE_DELETE -> AutoModerationRuleDeleteEventHelper.format(event, channelIdToSendTo); + + case KICK -> KickEventHelper.format(event, channelIdToSendTo); + case BAN -> BanEventHelper.format(event, channelIdToSendTo); + case UNBAN -> UnbanEventHelper.format(event, channelIdToSendTo); + case BOT_ADD -> BotAddEventHelper.format(event, channelIdToSendTo); // PRUNE has generic formatting - case CHANNEL_CREATE -> ChannelCreateEventHelper.format(event, ale, channelIdToSendTo); - case CHANNEL_UPDATE -> ChannelUpdateEventHelper.format(event, ale, channelIdToSendTo); - case CHANNEL_DELETE -> ChannelDeleteEventHelper.format(event, ale, channelIdToSendTo); - case CHANNEL_OVERRIDE_CREATE -> ChannelOverrideCreateEventHelper.format(event, ale, channelIdToSendTo); - case CHANNEL_OVERRIDE_UPDATE -> ChannelOverrideUpdateEventHelper.format(event, ale, channelIdToSendTo); - case CHANNEL_OVERRIDE_DELETE -> ChannelOverrideDeleteEventHelper.format(event, ale, channelIdToSendTo); + case CHANNEL_CREATE -> ChannelCreateEventHelper.format(event, channelIdToSendTo); + case CHANNEL_UPDATE -> ChannelUpdateEventHelper.format(event, channelIdToSendTo); + case CHANNEL_DELETE -> ChannelDeleteEventHelper.format(event, channelIdToSendTo); + case CHANNEL_OVERRIDE_CREATE -> ChannelOverrideCreateEventHelper.format(event, channelIdToSendTo); + case CHANNEL_OVERRIDE_UPDATE -> ChannelOverrideUpdateEventHelper.format(event, channelIdToSendTo); + case CHANNEL_OVERRIDE_DELETE -> ChannelOverrideDeleteEventHelper.format(event, channelIdToSendTo); - case ROLE_CREATE -> RoleCreateEventHelper.format(event, ale, channelIdToSendTo); - case ROLE_UPDATE -> RoleUpdateEventHelper.format(event, ale, channelIdToSendTo); - case ROLE_DELETE -> RoleDeleteEventHelper.format(event, ale, channelIdToSendTo); + case ROLE_CREATE -> RoleCreateEventHelper.format(event, channelIdToSendTo); + case ROLE_UPDATE -> RoleUpdateEventHelper.format(event, channelIdToSendTo); + case ROLE_DELETE -> RoleDeleteEventHelper.format(event, channelIdToSendTo); - case EMOJI_CREATE -> EmojiCreateEventHelper.format(event, ale, channelIdToSendTo); - case EMOJI_UPDATE -> EmojiUpdateEventHelper.format(event, ale, channelIdToSendTo); - case EMOJI_DELETE -> EmojiDeleteEventHelper.format(event, ale, channelIdToSendTo); + case EMOJI_CREATE -> EmojiCreateEventHelper.format(event, channelIdToSendTo); + case EMOJI_UPDATE -> EmojiUpdateEventHelper.format(event, channelIdToSendTo); + case EMOJI_DELETE -> EmojiDeleteEventHelper.format(event, channelIdToSendTo); - case STICKER_CREATE -> StickerCreateEventHelper.format(event, ale, channelIdToSendTo); - case STICKER_UPDATE -> StickerUpdateEventHelper.format(event, ale, channelIdToSendTo); - case STICKER_DELETE -> StickerDeleteEventHelper.format(event, ale, channelIdToSendTo); + case STICKER_CREATE -> StickerCreateEventHelper.format(event, channelIdToSendTo); + case STICKER_UPDATE -> StickerUpdateEventHelper.format(event, channelIdToSendTo); + case STICKER_DELETE -> StickerDeleteEventHelper.format(event, channelIdToSendTo); - case GUILD_UPDATE -> GuildUpdateEventHelper.format(event, ale, channelIdToSendTo); + case GUILD_UPDATE -> GuildUpdateEventHelper.format(event, channelIdToSendTo); - case INTEGRATION_CREATE -> IntegrationCreateEventHelper.format(event, ale, channelIdToSendTo); - case INTEGRATION_DELETE -> IntegrationDeleteEventHelper.format(event, ale, channelIdToSendTo); + case INTEGRATION_CREATE -> IntegrationCreateEventHelper.format(event, channelIdToSendTo); + case INTEGRATION_DELETE -> IntegrationDeleteEventHelper.format(event, channelIdToSendTo); // INTEGRATION_UPDATE has generic formatting - case INVITE_CREATE -> InviteCreateEventHelper.format(event, ale, channelIdToSendTo); - case INVITE_DELETE -> InviteDeleteEventHelper.format(event, ale, channelIdToSendTo); + case INVITE_CREATE -> InviteCreateEventHelper.format(event, channelIdToSendTo); + case INVITE_DELETE -> InviteDeleteEventHelper.format(event, channelIdToSendTo); // INVITE_UPDATE has generic formatting - case MEMBER_ROLE_UPDATE -> MemberRoleUpdateEventHelper.format(event, ale, channelIdToSendTo); - case MEMBER_UPDATE -> MemberUpdateEventHelper.format(event, ale, channelIdToSendTo); + case MEMBER_ROLE_UPDATE -> MemberRoleUpdateEventHelper.format(event, channelIdToSendTo); + case MEMBER_UPDATE -> MemberUpdateEventHelper.format(event, channelIdToSendTo); - case MEMBER_VOICE_KICK -> MemberVoiceKickEventHelper.format(event, ale, channelIdToSendTo); - case MEMBER_VOICE_MOVE -> MemberVoiceMoveEventHelper.format(event, ale, channelIdToSendTo); + case MEMBER_VOICE_KICK -> MemberVoiceKickEventHelper.format(event, channelIdToSendTo); + case MEMBER_VOICE_MOVE -> MemberVoiceMoveEventHelper.format(event, channelIdToSendTo); - case MESSAGE_PIN -> MessagePinEventHelper.format(event, ale, channelIdToSendTo); - case MESSAGE_UNPIN -> MessageUnpinEventHelper.format(event, ale, channelIdToSendTo); + case MESSAGE_PIN -> MessagePinEventHelper.format(event, channelIdToSendTo); + case MESSAGE_UNPIN -> MessageUnpinEventHelper.format(event, channelIdToSendTo); - case SCHEDULED_EVENT_CREATE -> ScheduledEventCreateEventHelper.format(event, ale, channelIdToSendTo); - case SCHEDULED_EVENT_UPDATE -> ScheduledEventUpdateEventHelper.format(event, ale, channelIdToSendTo); - case SCHEDULED_EVENT_DELETE -> ScheduledEventDeleteEventHelper.format(event, ale, channelIdToSendTo); + case SCHEDULED_EVENT_CREATE -> ScheduledEventCreateEventHelper.format(event, channelIdToSendTo); + case SCHEDULED_EVENT_UPDATE -> ScheduledEventUpdateEventHelper.format(event, channelIdToSendTo); + case SCHEDULED_EVENT_DELETE -> ScheduledEventDeleteEventHelper.format(event, channelIdToSendTo); - case STAGE_INSTANCE_CREATE -> StageInstanceCreateEventHelper.format(event, ale, channelIdToSendTo); - case STAGE_INSTANCE_UPDATE -> StageInstanceUpdateEventHelper.format(event, ale, channelIdToSendTo); - case STAGE_INSTANCE_DELETE -> StageInstanceDeleteEventHelper.format(event, ale, channelIdToSendTo); + case STAGE_INSTANCE_CREATE -> StageInstanceCreateEventHelper.format(event, channelIdToSendTo); + case STAGE_INSTANCE_UPDATE -> StageInstanceUpdateEventHelper.format(event, channelIdToSendTo); + case STAGE_INSTANCE_DELETE -> StageInstanceDeleteEventHelper.format(event, channelIdToSendTo); - case THREAD_CREATE -> ThreadCreateEventHelper.format(event, ale, channelIdToSendTo); - case THREAD_UPDATE -> ThreadUpdateEventHelper.format(event, ale, channelIdToSendTo); - case THREAD_DELETE -> ThreadDeleteEventHelper.format(event, ale, channelIdToSendTo); + case THREAD_CREATE -> ThreadCreateEventHelper.format(event, channelIdToSendTo); + case THREAD_UPDATE -> ThreadUpdateEventHelper.format(event, channelIdToSendTo); + case THREAD_DELETE -> ThreadDeleteEventHelper.format(event, channelIdToSendTo); - case VOICE_CHANNEL_STATUS_DELETE -> VoiceChannelStatusDeleteEventHelper.format(event, ale, channelIdToSendTo); - case VOICE_CHANNEL_STATUS_UPDATE -> VoiceChannelStatusUpdateEventHelper.format(event, ale, channelIdToSendTo); + case VOICE_CHANNEL_STATUS_DELETE -> VoiceChannelStatusDeleteEventHelper.format(event, channelIdToSendTo); + case VOICE_CHANNEL_STATUS_UPDATE -> VoiceChannelStatusUpdateEventHelper.format(event, channelIdToSendTo); - case WEBHOOK_CREATE -> WebhookCreateEventHelper.format(event, ale, channelIdToSendTo); - case WEBHOOK_UPDATE -> WebhookUpdateEventHelper.format(event, ale, channelIdToSendTo); - case WEBHOOK_REMOVE -> WebhookRemoveEventHelper.format(event, ale, channelIdToSendTo); + case WEBHOOK_CREATE -> WebhookCreateEventHelper.format(event, channelIdToSendTo); + case WEBHOOK_UPDATE -> WebhookUpdateEventHelper.format(event, channelIdToSendTo); + case WEBHOOK_REMOVE -> WebhookRemoveEventHelper.format(event, channelIdToSendTo); - case SOUNDBOARD_SOUND_CREATE -> SoundboardSoundCreateEventHelper.format(event, ale, channelIdToSendTo); - case SOUNDBOARD_SOUND_UPDATE -> SoundboardSoundUpdateEventHelper.format(event, ale, channelIdToSendTo); - case SOUNDBOARD_SOUND_DELETE -> SoundboardSoundDeleteEventHelper.format(event, ale, channelIdToSendTo); + case SOUNDBOARD_SOUND_CREATE -> SoundboardSoundCreateEventHelper.format(event, channelIdToSendTo); + case SOUNDBOARD_SOUND_UPDATE -> SoundboardSoundUpdateEventHelper.format(event, channelIdToSendTo); + case SOUNDBOARD_SOUND_DELETE -> SoundboardSoundDeleteEventHelper.format(event, channelIdToSendTo); case ONBOARDING_UPDATE -> OnboardingUpdateEventHelper.format(event, channelIdToSendTo); case ONBOARDING_PROMPT_CREATE -> OnboardingPromptCreateEventHelper.format(event, channelIdToSendTo); @@ -183,15 +183,15 @@ private void auditLogParser(GuildAuditLogEntryCreateEvent event, String channelI case MESSAGE_BULK_DELETE, MESSAGE_CREATE, MESSAGE_DELETE, - MESSAGE_UPDATE -> GenericAuditLogEventHelper.format(event, ale, channelIdToSendTo); + MESSAGE_UPDATE -> GenericAuditLogEventHelper.format(event, channelIdToSendTo); // except UNKNOWN, the rest have never been seen to be triggered case APPLICATION_COMMAND_PRIVILEGES_UPDATE, PRUNE, INTEGRATION_UPDATE, INVITE_UPDATE, ONBOARDING_CREATE, - UNKNOWN -> GenericAuditLogEventHelper.format(event, ale, channelIdToSendTo); + UNKNOWN -> GenericAuditLogEventHelper.format(event, channelIdToSendTo); default -> { - GenericAuditLogEventHelper.format(event, ale, channelIdToSendTo); + GenericAuditLogEventHelper.format(event, channelIdToSendTo); log.warn("The following event is either not covered by JDA's UNKNOWN type or is not implemented by me yet {}", ale.getType().name()); } } diff --git a/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationFlagToChannelEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationFlagToChannelEventHelper.java index fcdb0bc8..904ec864 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationFlagToChannelEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationFlagToChannelEventHelper.java @@ -13,7 +13,10 @@ @UtilityClass public class AutoModerationFlagToChannelEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); + EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Automod Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationMemberTimeoutEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationMemberTimeoutEventHelper.java index 32b5a99a..848b24f5 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationMemberTimeoutEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationMemberTimeoutEventHelper.java @@ -13,7 +13,10 @@ @UtilityClass public class AutoModerationMemberTimeoutEventHelper { - public static void format (GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format (GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); + EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Automod Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleBlockMessageEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleBlockMessageEventHelper.java index 97d26f89..20b00d9c 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleBlockMessageEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleBlockMessageEventHelper.java @@ -13,7 +13,10 @@ @UtilityClass public class AutoModerationRuleBlockMessageEventHelper { - public static void format (GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format (GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); + EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Automod Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleCreateEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleCreateEventHelper.java index 44eaff49..0cb337db 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleCreateEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleCreateEventHelper.java @@ -20,7 +20,9 @@ @UtilityClass public class AutoModerationRuleCreateEventHelper { - public static void format (GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format (GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | AutoMod Rule Create"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleDeleteEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleDeleteEventHelper.java index 060a6cb8..989ab1ed 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleDeleteEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleDeleteEventHelper.java @@ -15,7 +15,9 @@ @UtilityClass public class AutoModerationRuleDeleteEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | AutoMod Rule Delete"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleUpdateEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleUpdateEventHelper.java index c1799008..24290370 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleUpdateEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleUpdateEventHelper.java @@ -19,7 +19,9 @@ @UtilityClass public class AutoModerationRuleUpdateEventHelper { - public static void format (GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format (GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | AutoMod Rule Update"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/BanEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/BanEventHelper.java index c599029b..c6c57a41 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/BanEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/BanEventHelper.java @@ -13,7 +13,9 @@ @UtilityClass public class BanEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Ban Event"); @@ -30,7 +32,6 @@ public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale String targetId = ale.getTargetId(); String reason = ale.getReason(); - // FIXME -> see if there is a way to not invoke a rest action, possibly since all the members are cached already event.getJDA().retrieveUserById(moderatorId).queue(moderator -> event.getJDA().retrieveUserById(targetId).queue(target -> { // if user objects are null we cannot use their mention so we instead use their IDs instead since they will never be null diff --git a/src/main/java/org/papertrail/listeners/audit/helper/BotAddEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/BotAddEventHelper.java index d2640d34..5899ce9f 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/BotAddEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/BotAddEventHelper.java @@ -13,7 +13,9 @@ @UtilityClass public class BotAddEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Bot Add Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/ChannelCreateEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/ChannelCreateEventHelper.java index c8774ee5..ce638266 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/ChannelCreateEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/ChannelCreateEventHelper.java @@ -19,7 +19,9 @@ @UtilityClass public class ChannelCreateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Channel Create Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/ChannelDeleteEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/ChannelDeleteEventHelper.java index 4a02c712..74c77ee2 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/ChannelDeleteEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/ChannelDeleteEventHelper.java @@ -17,7 +17,9 @@ @UtilityClass public class ChannelDeleteEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Channel Delete Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/ChannelOverrideCreateEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/ChannelOverrideCreateEventHelper.java index 763432cf..34111376 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/ChannelOverrideCreateEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/ChannelOverrideCreateEventHelper.java @@ -20,7 +20,9 @@ @UtilityClass public class ChannelOverrideCreateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Channel Override Create"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/ChannelOverrideDeleteEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/ChannelOverrideDeleteEventHelper.java index a89c0014..d15c5fe3 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/ChannelOverrideDeleteEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/ChannelOverrideDeleteEventHelper.java @@ -20,7 +20,9 @@ @UtilityClass public class ChannelOverrideDeleteEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Channel Override Delete"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/ChannelOverrideUpdateEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/ChannelOverrideUpdateEventHelper.java index 4089d7fd..0a3aae80 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/ChannelOverrideUpdateEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/ChannelOverrideUpdateEventHelper.java @@ -20,7 +20,9 @@ @UtilityClass public class ChannelOverrideUpdateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Channel Override Update"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/ChannelUpdateEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/ChannelUpdateEventHelper.java index c68c9874..5249dfaf 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/ChannelUpdateEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/ChannelUpdateEventHelper.java @@ -19,7 +19,9 @@ @UtilityClass public class ChannelUpdateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Channel Update Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/EmojiCreateEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/EmojiCreateEventHelper.java index fc33b8a2..8ca35982 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/EmojiCreateEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/EmojiCreateEventHelper.java @@ -15,7 +15,10 @@ @UtilityClass public class EmojiCreateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); + EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Emoji Create Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/EmojiDeleteEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/EmojiDeleteEventHelper.java index 45d538a3..67d01e8e 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/EmojiDeleteEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/EmojiDeleteEventHelper.java @@ -15,7 +15,10 @@ @UtilityClass public class EmojiDeleteEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); + EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Emoji Delete Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/EmojiUpdateEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/EmojiUpdateEventHelper.java index e6683ee8..7535bb80 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/EmojiUpdateEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/EmojiUpdateEventHelper.java @@ -15,7 +15,10 @@ @UtilityClass public class EmojiUpdateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); + EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Emoji Update Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/GenericAuditLogEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/GenericAuditLogEventHelper.java index b9f933d1..fa8ac18d 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/GenericAuditLogEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/GenericAuditLogEventHelper.java @@ -16,7 +16,9 @@ @UtilityClass public class GenericAuditLogEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Generic Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/GuildUpdateEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/GuildUpdateEventHelper.java index 360b6fdd..93ee8820 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/GuildUpdateEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/GuildUpdateEventHelper.java @@ -17,7 +17,10 @@ @UtilityClass public class GuildUpdateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); + EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Guild Update Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/IntegrationCreateEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/IntegrationCreateEventHelper.java index 98e2123c..14fd9cf4 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/IntegrationCreateEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/IntegrationCreateEventHelper.java @@ -15,7 +15,9 @@ @UtilityClass public class IntegrationCreateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Integration Create Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/IntegrationDeleteEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/IntegrationDeleteEventHelper.java index 2f240e4b..9b1c8f65 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/IntegrationDeleteEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/IntegrationDeleteEventHelper.java @@ -15,7 +15,9 @@ @UtilityClass public class IntegrationDeleteEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Integration Delete Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/InviteCreateEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/InviteCreateEventHelper.java index 3cd4e8c1..dd3debdb 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/InviteCreateEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/InviteCreateEventHelper.java @@ -18,7 +18,9 @@ @UtilityClass public class InviteCreateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale , String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Invite Create Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/InviteDeleteEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/InviteDeleteEventHelper.java index e8f76ecc..3a256a4a 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/InviteDeleteEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/InviteDeleteEventHelper.java @@ -17,7 +17,9 @@ @UtilityClass public class InviteDeleteEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Invite Delete Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/KickEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/KickEventHelper.java index 9d38f13b..e85ebcd4 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/KickEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/KickEventHelper.java @@ -13,7 +13,9 @@ @UtilityClass public class KickEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Kick Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/MemberRoleUpdateEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/MemberRoleUpdateEventHelper.java index 675688aa..cbf40c81 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/MemberRoleUpdateEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/MemberRoleUpdateEventHelper.java @@ -17,7 +17,10 @@ @UtilityClass public class MemberRoleUpdateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); + EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Member Role Update"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/MemberUpdateEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/MemberUpdateEventHelper.java index 7eab103a..c59a8ab9 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/MemberUpdateEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/MemberUpdateEventHelper.java @@ -19,7 +19,9 @@ @UtilityClass public class MemberUpdateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Member Update Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/MemberVoiceKickEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/MemberVoiceKickEventHelper.java index 401112c6..854fe076 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/MemberVoiceKickEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/MemberVoiceKickEventHelper.java @@ -15,7 +15,10 @@ public class MemberVoiceKickEventHelper { // the audit log does not expose much information regarding member vc move and kick events // therefore GuildVoiceEventListener has been created to know about channels the target has been moved or kicked from - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); + EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Member Voice Kick Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/MemberVoiceMoveEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/MemberVoiceMoveEventHelper.java index a79e02f2..ed5e9131 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/MemberVoiceMoveEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/MemberVoiceMoveEventHelper.java @@ -15,7 +15,10 @@ public class MemberVoiceMoveEventHelper { // the audit log does not expose much information regarding member vc move and kick events // therefore GuildVoiceEventListener has been created to know about channels the target has been moved or kicked from - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); + EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Member Voice Move Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/MessagePinEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/MessagePinEventHelper.java index 53da6f42..f548f3e0 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/MessagePinEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/MessagePinEventHelper.java @@ -14,7 +14,10 @@ public class MessagePinEventHelper { // this audit log event does not expose anything other than the executor of the event - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); + EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Message Pin Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/MessageUnpinEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/MessageUnpinEventHelper.java index 38017952..4e425d3a 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/MessageUnpinEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/MessageUnpinEventHelper.java @@ -14,7 +14,10 @@ public class MessageUnpinEventHelper { // this audit log event does not expose anything other than the executor of the event - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); + EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Message Unpin Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/RoleCreateEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/RoleCreateEventHelper.java index 8970be98..188eb6d5 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/RoleCreateEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/RoleCreateEventHelper.java @@ -16,7 +16,10 @@ @UtilityClass public class RoleCreateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); + EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Role Create Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/RoleDeleteEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/RoleDeleteEventHelper.java index 0f4f4766..64a27978 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/RoleDeleteEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/RoleDeleteEventHelper.java @@ -19,7 +19,10 @@ @UtilityClass public class RoleDeleteEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); + EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Role Delete Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/RoleUpdateEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/RoleUpdateEventHelper.java index 2406e1d9..d2b148e5 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/RoleUpdateEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/RoleUpdateEventHelper.java @@ -19,7 +19,10 @@ @UtilityClass public class RoleUpdateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); + EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Role Update Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/ScheduledEventCreateEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/ScheduledEventCreateEventHelper.java index 228ff587..941003cb 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/ScheduledEventCreateEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/ScheduledEventCreateEventHelper.java @@ -18,7 +18,9 @@ @UtilityClass public class ScheduledEventCreateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Scheduled Event Create Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/ScheduledEventDeleteEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/ScheduledEventDeleteEventHelper.java index 204cc9aa..1610e34a 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/ScheduledEventDeleteEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/ScheduledEventDeleteEventHelper.java @@ -18,7 +18,9 @@ @UtilityClass public class ScheduledEventDeleteEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Scheduled Event Delete Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/ScheduledEventUpdateEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/ScheduledEventUpdateEventHelper.java index 1aea5700..ddb40cb2 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/ScheduledEventUpdateEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/ScheduledEventUpdateEventHelper.java @@ -20,7 +20,9 @@ @UtilityClass public class ScheduledEventUpdateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Scheduled Event Update Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/SoundboardSoundCreateEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/SoundboardSoundCreateEventHelper.java index 659a1913..0ed08fbb 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/SoundboardSoundCreateEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/SoundboardSoundCreateEventHelper.java @@ -15,7 +15,9 @@ @UtilityClass public class SoundboardSoundCreateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Soundboard Sound Create Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/SoundboardSoundDeleteEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/SoundboardSoundDeleteEventHelper.java index cb30fec9..bcf6e516 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/SoundboardSoundDeleteEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/SoundboardSoundDeleteEventHelper.java @@ -15,7 +15,9 @@ @UtilityClass public class SoundboardSoundDeleteEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Soundboard Sound Create Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/SoundboardSoundUpdateEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/SoundboardSoundUpdateEventHelper.java index 398c7e5c..58da6d6a 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/SoundboardSoundUpdateEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/SoundboardSoundUpdateEventHelper.java @@ -15,7 +15,9 @@ @UtilityClass public class SoundboardSoundUpdateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Soundboard Sound Update Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/StageInstanceCreateEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/StageInstanceCreateEventHelper.java index 15fcda2a..0795d023 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/StageInstanceCreateEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/StageInstanceCreateEventHelper.java @@ -15,7 +15,9 @@ @UtilityClass public class StageInstanceCreateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Stage Instance Create Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/StageInstanceDeleteEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/StageInstanceDeleteEventHelper.java index 358f9040..faaf4326 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/StageInstanceDeleteEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/StageInstanceDeleteEventHelper.java @@ -15,7 +15,9 @@ @UtilityClass public class StageInstanceDeleteEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Stage Instance Delete Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/StageInstanceUpdateEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/StageInstanceUpdateEventHelper.java index fb46132c..b0436419 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/StageInstanceUpdateEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/StageInstanceUpdateEventHelper.java @@ -15,7 +15,9 @@ @UtilityClass public class StageInstanceUpdateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Stage Instance Update Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/StickerCreateEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/StickerCreateEventHelper.java index e50202b3..9bdd03c7 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/StickerCreateEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/StickerCreateEventHelper.java @@ -16,7 +16,10 @@ @UtilityClass public class StickerCreateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); + EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Sticker Create Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/StickerDeleteEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/StickerDeleteEventHelper.java index 7a42e032..c9d7120e 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/StickerDeleteEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/StickerDeleteEventHelper.java @@ -15,7 +15,10 @@ @UtilityClass public class StickerDeleteEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); + EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Sticker Delete Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/StickerUpdateEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/StickerUpdateEventHelper.java index a2f3103d..fb67af14 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/StickerUpdateEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/StickerUpdateEventHelper.java @@ -17,7 +17,10 @@ @UtilityClass public class StickerUpdateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); + EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Sticker Update Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/ThreadCreateEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/ThreadCreateEventHelper.java index 7525285c..f495f85f 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/ThreadCreateEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/ThreadCreateEventHelper.java @@ -19,7 +19,9 @@ @UtilityClass public class ThreadCreateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Thread Create Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/ThreadDeleteEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/ThreadDeleteEventHelper.java index d2c3d002..1f365adc 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/ThreadDeleteEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/ThreadDeleteEventHelper.java @@ -18,7 +18,9 @@ @UtilityClass public class ThreadDeleteEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Thread Delete Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/ThreadUpdateEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/ThreadUpdateEventHelper.java index a78fdcb2..f42c076b 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/ThreadUpdateEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/ThreadUpdateEventHelper.java @@ -19,7 +19,9 @@ @UtilityClass public class ThreadUpdateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Thread Update Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/UnbanEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/UnbanEventHelper.java index 4fd18a74..365782f0 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/UnbanEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/UnbanEventHelper.java @@ -13,7 +13,9 @@ @UtilityClass public class UnbanEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Member Unban Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/VoiceChannelStatusDeleteEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/VoiceChannelStatusDeleteEventHelper.java index 75e35437..9cfcdc36 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/VoiceChannelStatusDeleteEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/VoiceChannelStatusDeleteEventHelper.java @@ -14,7 +14,10 @@ @UtilityClass public class VoiceChannelStatusDeleteEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); + EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Voice Channel Status Delete"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/VoiceChannelStatusUpdateEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/VoiceChannelStatusUpdateEventHelper.java index bcfcf704..761b8ad9 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/VoiceChannelStatusUpdateEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/VoiceChannelStatusUpdateEventHelper.java @@ -14,7 +14,10 @@ @UtilityClass public class VoiceChannelStatusUpdateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); + EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Voice Channel Status Update"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/WebhookCreateEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/WebhookCreateEventHelper.java index 2203fdfb..9c8be51b 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/WebhookCreateEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/WebhookCreateEventHelper.java @@ -16,7 +16,9 @@ @UtilityClass public class WebhookCreateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Webhook Create Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/WebhookRemoveEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/WebhookRemoveEventHelper.java index a9ff6b12..4e185718 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/WebhookRemoveEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/WebhookRemoveEventHelper.java @@ -16,7 +16,9 @@ @UtilityClass public class WebhookRemoveEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Webhook Remove Event"); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/WebhookUpdateEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/WebhookUpdateEventHelper.java index 03e72cb0..6f9102b5 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/WebhookUpdateEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/WebhookUpdateEventHelper.java @@ -16,7 +16,9 @@ @UtilityClass public class WebhookUpdateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, AuditLogEntry ale, String channelIdToSendTo) { + public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Webhook Update Event"); From f0c66a96727d93557893689ffa2c8a033523ab00 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Sat, 7 Feb 2026 18:55:16 +0530 Subject: [PATCH 003/104] refactor(audit-listeners): simplify event helpers - Use lambda and for each instead of traditional for loops - Remove emoji clutter - default cases now add two fields for old and new values Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../audit/helper/InviteCreateEventHelper.java | 63 +++++++++---------- .../audit/helper/InviteDeleteEventHelper.java | 52 +++++++-------- 2 files changed, 51 insertions(+), 64 deletions(-) diff --git a/src/main/java/org/papertrail/listeners/audit/helper/InviteCreateEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/InviteCreateEventHelper.java index dd3debdb..c7d38902 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/InviteCreateEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/InviteCreateEventHelper.java @@ -2,7 +2,6 @@ import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; @@ -13,7 +12,6 @@ import org.papertrail.commons.utilities.DurationFormatter; import java.awt.Color; -import java.util.Map; @UtilityClass public class InviteCreateEventHelper { @@ -25,56 +23,51 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Invite Create Event"); - User executor = ale.getJDA().getUserById(ale.getUserIdLong()); - String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ The following invite was created"); + eb.setDescription("ℹ️ The following invite was created"); eb.setColor(Color.CYAN); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - for(Map.Entry changes: ale.getChanges().entrySet()) { + ale.getChanges().forEach((changeKey, changeValue)-> { - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); + Object oldValue = changeValue.getOldValue(); + Object newValue = changeValue.getNewValue(); - switch(change) { + switch (changeKey) { - case "code": - eb.addField("🔗 Invite Code", "╰┈➤"+newValue, false); - break; + case "code" -> eb.addField("Invite Code", "╰┈➤"+newValue, false); - case "inviter_id": - User inviter = ale.getJDA().getUserById(String.valueOf(newValue)); - eb.addField("👤 Invite Created By", "╰┈➤"+(inviter != null ? inviter.getAsMention() : ale.getUserId()), false); - break; + case "inviter_id" -> { + User inviter = ale.getJDA().getUserById(ale.getUserIdLong()); + String mentionableInviter = (inviter != null ? inviter.getAsMention() : ale.getUserId()); + eb.addField("Invite Created By", "╰┈➤"+ mentionableInviter, false); + } - case "temporary": - eb.addField("🕒 Temporary Invite", "╰┈➤"+ BooleanFormatter.formatToEmoji(newValue), false); - break; + case "temporary" -> eb.addField("Temporary Invite", "╰┈➤"+ BooleanFormatter.formatToYesOrNo(newValue), false); - case "max_uses": + case "max_uses" -> { int maxUses = Integer.parseInt(String.valueOf(newValue)); - eb.addField("🔢 Max Uses", "╰┈➤"+(maxUses == 0 ? "Unlimited" : String.valueOf(maxUses)), false); - break; + eb.addField("Max Uses", "╰┈➤"+(maxUses == 0 ? "Unlimited" : String.valueOf(maxUses)), false); + } - case "uses", "flags": - break; + case "uses", "flags" -> { + // ignore + } - case "max_age": - eb.addField("⏳ Expires After", "╰┈➤"+ DurationFormatter.formatSeconds(newValue), false); - break; + case "max_age" -> eb.addField("Expires After", "╰┈➤"+ DurationFormatter.formatSeconds(newValue), false); - case "channel_id": + case "channel_id" -> { GuildChannel channel = ale.getGuild().getGuildChannelById(String.valueOf(newValue)); - eb.addField("💬 Invite Channel", "╰┈➤"+(channel != null ? channel.getAsMention() : "`"+newValue+"`"), false); - break; + eb.addField("Invite Channel", "╰┈➤"+(channel != null ? channel.getAsMention() : "`"+newValue+"`"), false); + } + + default -> { + eb.addField(changeKey, "OLD_VALUE: "+oldValue, false); + eb.addField(changeKey, "NEW_VALUE: "+newValue, false); + } - default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); } - } + }); eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/InviteDeleteEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/InviteDeleteEventHelper.java index 3a256a4a..87c03026 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/InviteDeleteEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/InviteDeleteEventHelper.java @@ -2,7 +2,6 @@ import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; @@ -12,7 +11,6 @@ import org.papertrail.commons.utilities.BooleanFormatter; import java.awt.Color; -import java.util.Map; @UtilityClass public class InviteDeleteEventHelper { @@ -27,48 +25,44 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ The following invite has been deleted"); + eb.setDescription("ℹ️ The following invite has been deleted by: "+mentionableExecutor); eb.setColor(Color.BLUE); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - for(Map.Entry changes: ale.getChanges().entrySet()) { + ale.getChanges().forEach((changeKey, changeValue)-> { + Object oldValue = changeValue.getOldValue(); + Object newValue = changeValue.getNewValue(); - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); + switch (changeKey) { - switch(change) { + case "code" -> eb.addField("Deleted Invite Code", "╰┈➤"+oldValue, false); - case "code": - eb.addField("🔗 Deleted Invite Code", "╰┈➤"+oldValue, false); - break; - - case "inviter_id": + case "inviter_id" -> { User inviter = ale.getJDA().getUserById(String.valueOf(oldValue)); - eb.addField("👤 Invite Originally Created By", "╰┈➤"+(inviter != null ? inviter.getAsMention() : "`Unknown`"), false); - break; + eb.addField("Invite Originally Created By", "╰┈➤"+(inviter != null ? inviter.getAsMention() : "`Unknown`"), false); + } - case "temporary": - eb.addField("🕒 Temporary Invite", "╰┈➤"+ BooleanFormatter.formatToEmoji(oldValue), false); - break; + case "temporary" -> eb.addField("Temporary Invite", "╰┈➤"+ BooleanFormatter.formatToYesOrNo(oldValue), false); - case "max_uses", "flags", "max_age": - break; + case "max_uses", "flags", "max_age" -> { + // ignore + } - case "uses": - eb.addField("🔢 Number of times the invite was used", "╰┈➤"+oldValue, false); - break; + case "uses" -> eb.addField("Number of times the invite was used", "╰┈➤"+oldValue, false); - case "channel_id": + case "channel_id" -> { Channel channel = ale.getGuild().getGuildChannelById(String.valueOf(oldValue)); - eb.addField("💬 Invite Channel", "╰┈➤"+(channel != null ? channel.getAsMention() : "`"+oldValue+"`"), false); - break; + eb.addField("Invite Channel", "╰┈➤"+(channel != null ? channel.getAsMention() : "`"+oldValue+"`"), false); + } + + default -> { + eb.addField(changeKey, "OLD_VALUE: "+oldValue, false); + eb.addField(changeKey, "NEW_VALUE: "+newValue, false); + } - default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); } - } + }); eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); From a72fc6cf3722cfc035b8b95953f28ef960bf41c6 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Sat, 7 Feb 2026 19:25:55 +0530 Subject: [PATCH 004/104] refactor(audit): enhance auto-mod event embeds MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Standardize "Automod" to "Auto-mod" for consistency in titles and descriptions - Add an "Info" field to provide guidance on where to find more details about auto-mod events - Remove the `🛈` emoji from descriptions for a cleaner look Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../helper/AutoModerationFlagToChannelEventHelper.java | 6 ++++-- .../helper/AutoModerationMemberTimeoutEventHelper.java | 6 ++++-- .../helper/AutoModerationRuleBlockMessageEventHelper.java | 6 ++++-- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationFlagToChannelEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationFlagToChannelEventHelper.java index 904ec864..bacb7393 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationFlagToChannelEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationFlagToChannelEventHelper.java @@ -18,17 +18,19 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT AuditLogEntry ale = event.getEntry(); EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Automod Event"); + eb.setTitle("Audit Log Entry | Auto-Mod Event"); User targetUser = ale.getJDA().getUserById(ale.getTargetId()); String mentionableTargetUser = (targetUser != null ? targetUser.getAsMention() : ale.getTargetId()); - eb.setDescription("🛈 Automod has flagged a message sent by: "+mentionableTargetUser); + eb.setDescription("Auto-mod has flagged a message sent by: "+mentionableTargetUser); eb.setColor(Color.YELLOW); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); + eb.addField("Info", "For more info, check the channel where auto-mod is set to send events", false); + eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationMemberTimeoutEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationMemberTimeoutEventHelper.java index 848b24f5..3cfd6857 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationMemberTimeoutEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationMemberTimeoutEventHelper.java @@ -18,17 +18,19 @@ public static void format (GuildAuditLogEntryCreateEvent event, String channelId AuditLogEntry ale = event.getEntry(); EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Automod Event"); + eb.setTitle("Audit Log Entry | Auto-mod Event"); User targetUser = ale.getJDA().getUserById(ale.getTargetId()); String mentionableTargetUser = (targetUser != null ? targetUser.getAsMention() : ale.getTargetId()); - eb.setDescription("🛈 Automod has timed out"+mentionableTargetUser+" for a defined rule violation"); + eb.setDescription("Auto-mod has timed out "+mentionableTargetUser+" for a defined rule violation"); eb.setColor(Color.MAGENTA); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); + eb.addField("Info", "For more info, check the channel where auto-mod is set to send events", false); + eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleBlockMessageEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleBlockMessageEventHelper.java index 20b00d9c..5b1b24aa 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleBlockMessageEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleBlockMessageEventHelper.java @@ -18,17 +18,19 @@ public static void format (GuildAuditLogEntryCreateEvent event, String channelId AuditLogEntry ale = event.getEntry(); EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Automod Event"); + eb.setTitle("Audit Log Entry | Auto-mod Event"); User targetUser = ale.getJDA().getUserById(ale.getTargetId()); String mentionableTargetUser = (targetUser != null ? targetUser.getAsMention() : ale.getTargetId()); - eb.setDescription("🛈 Automod has blocked a message sent by: "+mentionableTargetUser); + eb.setDescription("Auto-mod has blocked a message sent by: "+mentionableTargetUser); eb.setColor(Color.ORANGE); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); + eb.addField("Info", "For more info, check the channel where auto-mod is set to send events", false); + eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); From 8e08a13e87fbae41df751520f9b6f9de7326f7b7 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Sat, 7 Feb 2026 21:46:51 +0530 Subject: [PATCH 005/104] refactor(automod): simplify automod rule event embeds - Simplify processing of audit log changes in `AutoModerationRule*EventHelper` classes. - Reduce detailed information in embeds, guiding users to Discord's Safety Setup. - Remove unused imports and emojis from embed field names. Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../AutoModerationRuleCreateEventHelper.java | 85 +++++-------------- .../AutoModerationRuleDeleteEventHelper.java | 25 ++---- .../AutoModerationRuleUpdateEventHelper.java | 58 +------------ 3 files changed, 30 insertions(+), 138 deletions(-) diff --git a/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleCreateEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleCreateEventHelper.java index 0cb337db..def7194b 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleCreateEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleCreateEventHelper.java @@ -2,20 +2,15 @@ import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; -import net.dv8tion.jda.api.entities.Role; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; -import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import org.papertrail.commons.utilities.BooleanFormatter; import org.papertrail.commons.utilities.TypeResolver; import java.awt.Color; -import java.util.List; -import java.util.Map; @UtilityClass public class AutoModerationRuleCreateEventHelper { @@ -30,73 +25,33 @@ public static void format (GuildAuditLogEntryCreateEvent event, String channelId User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ The following AutoMod rule was created"); + eb.setDescription("ℹ️ The following AutoMod rule was created by: "+mentionableExecutor); eb.setColor(Color.GREEN); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - for(Map.Entry changes: ale.getChanges().entrySet()) { - - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); - - switch(change) { - - case "exempt_roles": - StringBuilder mentionableRoles = new StringBuilder(); - if(newValue instanceof List exemptRoleList) { - exemptRoleList.forEach(roleId -> { - Role r = ale.getGuild().getRoleById((String) roleId); - mentionableRoles.append(r!=null ? r.getAsMention() : roleId).append(", "); - }); - mentionableRoles.delete(mentionableRoles.length()-2, mentionableRoles.length()); - } - eb.addField("✔️ Exempt Roles: ", "╰┈➤"+ mentionableRoles, false); - break; - - case "enabled": - eb.addField("❔ Enabled", "╰┈➤"+ BooleanFormatter.formatToEmoji(newValue), false); - break; - - case "trigger_type": - eb.addField("⚡ Trigger Type", "╰┈➤"+ TypeResolver.automodTriggerTypeResolver(newValue), false); - break; - - case "actions": - eb.addField("⚡ Actions", "╰┈➤"+newValue, false); - break; - - case "exempt_channels": - StringBuilder mentionableChannels = new StringBuilder(); - if(newValue instanceof List exemptChannelList) { - exemptChannelList.forEach(channelId -> { - GuildChannel r = ale.getGuild().getGuildChannelById((String) channelId); - mentionableChannels.append(r!=null ? r.getAsMention() : channelId).append(", "); - }); - mentionableChannels.delete(mentionableChannels.length()-2, mentionableChannels.length()); - } - eb.addField("✔️ Exempt Channels: ", "╰┈➤"+ mentionableChannels, false); - break; - - case "event_type": - eb.addField("🧭 Event Type", "╰┈➤"+TypeResolver.automodEventTypeResolver(newValue), false); - break; - - case "trigger_metadata": - eb.addField("📊 Trigger Metadata", "╰┈➤"+newValue, false); - break; - - case "name": - eb.addField("🏷️ AutoMod Rule Name ", "╰┈➤"+newValue, false); - break; - - default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); + ale.getChanges().forEach((changeKey, changeValue)-> { + + Object newValue = changeValue.getNewValue(); + + switch (changeKey) { + + case "enabled" -> eb.addField("Enabled", "╰┈➤"+ BooleanFormatter.formatToYesOrNo(newValue), false); + + case "trigger_type" -> eb.addField("Trigger Type", "╰┈➤"+ TypeResolver.automodTriggerTypeResolver(newValue), false); + + case "event_type" -> eb.addField("Event Type", "╰┈➤"+TypeResolver.automodEventTypeResolver(newValue), false); + + case "name" -> eb.addField("AutoMod Rule Name ", "╰┈➤"+newValue, false); + + default -> { + // ignore everything else + } } - } + }); + eb.addField("Additional Info", "For more info on trigger metadata, actions, exempt roles and channels, visit Safety Setup in your server", false); eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleDeleteEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleDeleteEventHelper.java index 989ab1ed..0afa08a8 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleDeleteEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleDeleteEventHelper.java @@ -2,7 +2,6 @@ import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; @@ -10,7 +9,6 @@ import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import java.awt.Color; -import java.util.Map; @UtilityClass public class AutoModerationRuleDeleteEventHelper { @@ -25,31 +23,20 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ The following AutoMod rule was deleted"); + eb.setDescription("ℹ️ The following AutoMod rule was deleted by: "+mentionableExecutor); eb.setColor(Color.RED); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - for(Map.Entry changes: ale.getChanges().entrySet()) { + ale.getChanges().forEach((changeKey, changeValue) -> { - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); + Object oldValue = changeValue.getOldValue(); - switch(change) { - - case "exempt_roles", "enabled", "trigger_type", "actions", "exempt_channels", "event_type", "trigger_metadata": - break; - - case "name": - eb.addField("🏷️ AutoMod Rule Name ", "╰┈➤"+oldValue, false); - break; - - default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); + if (changeKey.equals("name")) { + eb.addField("AutoMod Rule Name ", "╰┈➤" + oldValue, false); } - } + }); eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); diff --git a/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleUpdateEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleUpdateEventHelper.java index 24290370..f2872767 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleUpdateEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleUpdateEventHelper.java @@ -2,19 +2,14 @@ import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; -import net.dv8tion.jda.api.entities.Role; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.automod.AutoModRule; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; -import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import java.awt.Color; -import java.util.List; -import java.util.Map; @UtilityClass public class AutoModerationRuleUpdateEventHelper { @@ -29,62 +24,17 @@ public static void format (GuildAuditLogEntryCreateEvent event, String channelId User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ The following AutoMod rule was updated"); + eb.setDescription("ℹ️ The following AutoMod rule was updated by: "+mentionableExecutor); eb.setColor(Color.YELLOW); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - for(Map.Entry changes: ale.getChanges().entrySet()) { - - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); - - switch(change) { - - case "exempt_roles": - StringBuilder mentionableRoles = new StringBuilder(); - if(newValue instanceof List exemptRoleList) { - exemptRoleList.forEach(roleId -> { - Role r = ale.getGuild().getRoleById((String) roleId); - mentionableRoles.append(r!=null ? r.getAsMention() : roleId).append(", "); - }); - mentionableRoles.delete(mentionableRoles.length()-2, mentionableRoles.length()); - } - eb.addField("✔️ New Exempt Roles: ", "╰┈➤"+ mentionableRoles, false); - break; - - - case "actions": - eb.addField("⚡ New Actions", "╰┈➤"+newValue, false); - break; - - case "exempt_channels": - StringBuilder mentionableChannels = new StringBuilder(); - if(newValue instanceof List exemptChannelList) { - exemptChannelList.forEach(channelId -> { - GuildChannel r = ale.getGuild().getGuildChannelById((String) channelId); - mentionableChannels.append(r!=null ? r.getAsMention() : channelId).append(", "); - }); - mentionableChannels.delete(mentionableChannels.length()-2, mentionableChannels.length()); - } - eb.addField("✔️ New Exempt Channels: ", "╰┈➤"+ mentionableChannels, false); - break; - - - case "trigger_metadata": - eb.addField("📊 New Trigger Metadata", "╰┈➤"+newValue, false); - break; - - default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); - } - } - // add name of the rule which got updated AutoModRule rule = ale.getGuild().retrieveAutoModRuleById(ale.getTargetId()).complete(); - eb.addField("🏷️ AutoMod Rule Name ", "╰┈➤"+rule.getName(), false); + eb.addField("AutoMod Rule Name ", "╰┈➤"+rule.getName(), false); + + eb.addField("Additional Info", "For more info on trigger metadata, actions, exempt roles and channel changes, visit Safety Setup in your server", false); eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); From 1b76914840c58b710521430b32dd99545135daed Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Sat, 7 Feb 2026 22:49:45 +0530 Subject: [PATCH 006/104] refactor(audit-log): streamline ban event embed creation - remove unused `MessageEmbed` import - refactor user retrieval and embed construction for ban events - improve ban reason handling, defaulting to "No Reason Provided" - consolidate embed field additions for better readability Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../audit/helper/BanEventHelper.java | 59 +++++++++---------- 1 file changed, 28 insertions(+), 31 deletions(-) diff --git a/src/main/java/org/papertrail/listeners/audit/helper/BanEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/BanEventHelper.java index c6c57a41..a3e4aaa4 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/BanEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/BanEventHelper.java @@ -3,7 +3,6 @@ import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -17,35 +16,33 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Ban Event"); - - User executor = ale.getJDA().getUserById(ale.getUserIdLong()); - String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - - eb.setDescription("👤 **By**: " + mentionableExecutor + "\nℹ️ The following user was banned"); - eb.setColor(Color.RED); - eb.addField("Action Type", String.valueOf(ale.getType()), true); - eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - - String moderatorId = ale.getUserId(); - String targetId = ale.getTargetId(); - String reason = ale.getReason(); - - event.getJDA().retrieveUserById(moderatorId).queue(moderator -> - event.getJDA().retrieveUserById(targetId).queue(target -> { - // if user objects are null we cannot use their mention so we instead use their IDs instead since they will never be null - eb.addField("🚫 A member has been banned", "╰┈➤" + (moderator != null ? moderator.getAsMention() : moderatorId) + " has banned " + (target != null ? target.getAsMention() : targetId), false); - eb.addField("📝 With Reason", "╰┈➤" + (reason != null ? reason : "No Reason Provided"), false); - - eb.setFooter("Audit Log Entry ID: " + ale.getId()); - eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); - } - }) - ); + User moderator = ale.getJDA().getUserById(ale.getUserIdLong()); + String mentionableModerator = (moderator != null ? moderator.getAsMention() : ale.getUserId()); + String reason = ale.getReason()==null ? "No Reason Provided" : ale.getReason(); + + event.getJDA().retrieveUserById(ale.getTargetId()).queue(bannedUser -> { + + String mentionableBannedUser = bannedUser!=null ? bannedUser.getAsMention() : ale.getTargetId(); + + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Ban Event"); + eb.setDescription("ℹ️ A moderator: "+mentionableModerator+" has banned a member"); + eb.setColor(Color.RED); + + eb.addField("Action Type", String.valueOf(ale.getType()), true); + eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); + + eb.addField("Banned Member", "╰┈➤"+mentionableBannedUser,false); + eb.addField("Ban Reason", "╰┈➤" +reason, false); + + eb.setFooter("Audit Log Entry ID: " + ale.getId()); + eb.setTimestamp(ale.getTimeCreated()); + + TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); + if (sendingChannel != null && sendingChannel.canTalk()) { + sendingChannel.sendMessageEmbeds(eb.build()).queue(); + } + + }); } } From 5b9788b0dd40f21490ed28ef4894556cc514f545 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Sun, 8 Feb 2026 09:44:04 +0530 Subject: [PATCH 007/104] refactor(audit-listeners): streamline `BotAddEventHelper` embed creation - remove unused `MessageEmbed` import - directly build and send the embed without an intermediate variable - adjust embed description and field names for improved clarity Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../audit/helper/BotAddEventHelper.java | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/src/main/java/org/papertrail/listeners/audit/helper/BotAddEventHelper.java b/src/main/java/org/papertrail/listeners/audit/helper/BotAddEventHelper.java index 5899ce9f..94cf5cdf 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/BotAddEventHelper.java +++ b/src/main/java/org/papertrail/listeners/audit/helper/BotAddEventHelper.java @@ -3,7 +3,6 @@ import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -17,30 +16,28 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Bot Add Event"); - User executor = ale.getJDA().getUserById(ale.getUserIdLong()); - User target = ale.getJDA().getUserById(ale.getTargetIdLong()); - String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); + + User target = ale.getJDA().getUserById(ale.getTargetIdLong()); String mentionableTarget = (target !=null ? target.getAsMention() : ale.getTargetId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ A bot was added"); + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Bot Add Event"); + eb.setDescription("ℹ️ A bot was added by: "+mentionableExecutor); eb.setColor(Color.CYAN); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - eb.addField("🤖 Added a bot: ", "╰┈➤"+mentionableTarget, false); + + eb.addField("Bot Added: ", "╰┈➤"+mentionableTarget, false); eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } From 29fb1573826fe4ec4ee8388e629fdd3091412637 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Sun, 8 Feb 2026 10:31:31 +0530 Subject: [PATCH 008/104] refactor(project): reorganize package structure - Update `groupId`, `artifactId`, `version` from `2.5.0` to `3.0.0`, `name`, `description`, and `mainClass` in `pom.xml`. - Reorganize all Java packages from `org.papertrail` to `io.github.eggy03.papertrail.bot`. Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- pom.xml | 12 +- .../bot}/commons/constant/ProjectInfo.java | 2 +- .../commons/utilities/BooleanFormatter.java | 2 +- .../commons/utilities/ColorFormatter.java | 2 +- .../commons/utilities/DurationFormatter.java | 2 +- .../bot}/commons/utilities/EnvConfig.java | 2 +- ...ledEventRecurrenceRuleStructureParser.java | 2 +- .../GuildSystemChannelFlagResolver.java | 2 +- .../commons/utilities/MessageEncryption.java | 2 +- .../commons/utilities/OnboardingUtils.java | 2 +- .../commons/utilities/PermissionResolver.java | 2 +- .../commons/utilities/RoleObjectParser.java | 2 +- .../bot}/commons/utilities/TypeResolver.java | 2 +- .../audit/event/AuditLogEventListener.java | 122 +++++++++--------- .../event/guild}/GuildBoostEventListener.java | 4 +- .../GuildMemberJoinAndLeaveEventListener.java | 8 +- .../event/guild}/GuildPollEventListener.java | 4 +- .../event/guild}/GuildVoiceEventListener.java | 4 +- ...utoModerationFlagToChannelEventHelper.java | 2 +- ...utoModerationMemberTimeoutEventHelper.java | 2 +- ...ModerationRuleBlockMessageEventHelper.java | 2 +- .../AutoModerationRuleCreateEventHelper.java | 6 +- .../AutoModerationRuleDeleteEventHelper.java | 2 +- .../AutoModerationRuleUpdateEventHelper.java | 2 +- .../audit/helper/ban}/BanEventHelper.java | 2 +- .../audit/helper/ban}/KickEventHelper.java | 2 +- .../audit/helper/ban}/UnbanEventHelper.java | 2 +- .../audit/helper/bot}/BotAddEventHelper.java | 2 +- .../channel}/ChannelCreateEventHelper.java | 8 +- .../channel}/ChannelDeleteEventHelper.java | 4 +- .../ChannelOverrideCreateEventHelper.java | 6 +- .../ChannelOverrideDeleteEventHelper.java | 6 +- .../ChannelOverrideUpdateEventHelper.java | 4 +- .../channel}/ChannelUpdateEventHelper.java | 8 +- .../VoiceChannelStatusDeleteEventHelper.java | 2 +- .../VoiceChannelStatusUpdateEventHelper.java | 2 +- .../helper/emoji}/EmojiCreateEventHelper.java | 2 +- .../helper/emoji}/EmojiDeleteEventHelper.java | 2 +- .../helper/emoji}/EmojiUpdateEventHelper.java | 2 +- .../generic}/GenericAuditLogEventHelper.java | 2 +- .../helper/guild}/GuildUpdateEventHelper.java | 6 +- .../IntegrationCreateEventHelper.java | 2 +- .../IntegrationDeleteEventHelper.java | 2 +- .../invite}/InviteCreateEventHelper.java | 6 +- .../invite}/InviteDeleteEventHelper.java | 4 +- .../member}/MemberRoleUpdateEventHelper.java | 4 +- .../member}/MemberUpdateEventHelper.java | 6 +- .../member}/MemberVoiceKickEventHelper.java | 2 +- .../member}/MemberVoiceMoveEventHelper.java | 2 +- .../message}/MessagePinEventHelper.java | 2 +- .../message}/MessageUnpinEventHelper.java | 2 +- .../OnboardingPromptCreateEventHelper.java | 4 +- .../OnboardingPromptDeleteEventHelper.java | 4 +- .../OnboardingPromptUpdateEventHelper.java | 4 +- .../OnboardingUpdateEventHelper.java | 4 +- .../helper/role}/RoleCreateEventHelper.java | 2 +- .../helper/role}/RoleDeleteEventHelper.java | 8 +- .../helper/role}/RoleUpdateEventHelper.java | 8 +- .../ScheduledEventCreateEventHelper.java | 6 +- .../ScheduledEventDeleteEventHelper.java | 6 +- .../ScheduledEventUpdateEventHelper.java | 6 +- .../SoundboardSoundCreateEventHelper.java | 2 +- .../SoundboardSoundDeleteEventHelper.java | 2 +- .../SoundboardSoundUpdateEventHelper.java | 2 +- .../StageInstanceCreateEventHelper.java | 2 +- .../StageInstanceDeleteEventHelper.java | 2 +- .../StageInstanceUpdateEventHelper.java | 2 +- .../sticker}/StickerCreateEventHelper.java | 2 +- .../sticker}/StickerDeleteEventHelper.java | 2 +- .../sticker}/StickerUpdateEventHelper.java | 2 +- .../thread}/ThreadCreateEventHelper.java | 8 +- .../thread}/ThreadDeleteEventHelper.java | 8 +- .../thread}/ThreadUpdateEventHelper.java | 8 +- .../webhook}/WebhookCreateEventHelper.java | 2 +- .../webhook}/WebhookRemoveEventHelper.java | 2 +- .../webhook}/WebhookUpdateEventHelper.java | 2 +- .../setup/AuditLogSetupCommandListener.java | 4 +- .../message/event/MessageLogListener.java | 4 +- .../setup/MessageLogSetupCommandListener.java | 4 +- .../misc/ActivityUpdateListener.java | 2 +- .../BotSetupInstructionCommandListener.java | 4 +- .../bot}/listeners/misc/SelfKickListener.java | 4 +- .../misc/ServerStatCommandListener.java | 4 +- .../SlashCommandRegistrationListener.java | 2 +- .../bot}/main/ConnectionInitializer.java | 6 +- .../eggy03/papertrail/bot}/main/Start.java | 24 ++-- 86 files changed, 223 insertions(+), 223 deletions(-) rename src/main/java/{org/papertrail => io/github/eggy03/papertrail/bot}/commons/constant/ProjectInfo.java (84%) rename src/main/java/{org/papertrail => io/github/eggy03/papertrail/bot}/commons/utilities/BooleanFormatter.java (93%) rename src/main/java/{org/papertrail => io/github/eggy03/papertrail/bot}/commons/utilities/ColorFormatter.java (95%) rename src/main/java/{org/papertrail => io/github/eggy03/papertrail/bot}/commons/utilities/DurationFormatter.java (97%) rename src/main/java/{org/papertrail => io/github/eggy03/papertrail/bot}/commons/utilities/EnvConfig.java (86%) rename src/main/java/{org/papertrail => io/github/eggy03/papertrail/bot}/commons/utilities/GuildScheduledEventRecurrenceRuleStructureParser.java (98%) rename src/main/java/{org/papertrail => io/github/eggy03/papertrail/bot}/commons/utilities/GuildSystemChannelFlagResolver.java (95%) rename src/main/java/{org/papertrail => io/github/eggy03/papertrail/bot}/commons/utilities/MessageEncryption.java (95%) rename src/main/java/{org/papertrail => io/github/eggy03/papertrail/bot}/commons/utilities/OnboardingUtils.java (95%) rename src/main/java/{org/papertrail => io/github/eggy03/papertrail/bot}/commons/utilities/PermissionResolver.java (98%) rename src/main/java/{org/papertrail => io/github/eggy03/papertrail/bot}/commons/utilities/RoleObjectParser.java (94%) rename src/main/java/{org/papertrail => io/github/eggy03/papertrail/bot}/commons/utilities/TypeResolver.java (98%) rename src/main/java/{org/papertrail => io/github/eggy03/papertrail/bot}/listeners/audit/event/AuditLogEventListener.java (58%) rename src/main/java/{org/papertrail/listeners/audit/event => io/github/eggy03/papertrail/bot/listeners/audit/event/guild}/GuildBoostEventListener.java (97%) rename src/main/java/{org/papertrail/listeners/audit/event => io/github/eggy03/papertrail/bot/listeners/audit/event/guild}/GuildMemberJoinAndLeaveEventListener.java (94%) rename src/main/java/{org/papertrail/listeners/audit/event => io/github/eggy03/papertrail/bot/listeners/audit/event/guild}/GuildPollEventListener.java (96%) rename src/main/java/{org/papertrail/listeners/audit/event => io/github/eggy03/papertrail/bot/listeners/audit/event/guild}/GuildVoiceEventListener.java (96%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/automod}/AutoModerationFlagToChannelEventHelper.java (95%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/automod}/AutoModerationMemberTimeoutEventHelper.java (95%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/automod}/AutoModerationRuleBlockMessageEventHelper.java (95%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/automod}/AutoModerationRuleCreateEventHelper.java (91%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/automod}/AutoModerationRuleDeleteEventHelper.java (96%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/automod}/AutoModerationRuleUpdateEventHelper.java (96%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/ban}/BanEventHelper.java (96%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/ban}/KickEventHelper.java (97%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/ban}/UnbanEventHelper.java (97%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/bot}/BotAddEventHelper.java (96%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/channel}/ChannelCreateEventHelper.java (92%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/channel}/ChannelDeleteEventHelper.java (95%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/channel}/ChannelOverrideCreateEventHelper.java (95%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/channel}/ChannelOverrideDeleteEventHelper.java (95%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/channel}/ChannelOverrideUpdateEventHelper.java (96%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/channel}/ChannelUpdateEventHelper.java (94%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/channel}/VoiceChannelStatusDeleteEventHelper.java (96%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/channel}/VoiceChannelStatusUpdateEventHelper.java (96%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji}/EmojiCreateEventHelper.java (97%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji}/EmojiDeleteEventHelper.java (97%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji}/EmojiUpdateEventHelper.java (97%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/generic}/GenericAuditLogEventHelper.java (96%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/guild}/GuildUpdateEventHelper.java (95%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/integration}/IntegrationCreateEventHelper.java (96%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/integration}/IntegrationDeleteEventHelper.java (96%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/invite}/InviteCreateEventHelper.java (93%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/invite}/InviteDeleteEventHelper.java (95%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/member}/MemberRoleUpdateEventHelper.java (95%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/member}/MemberUpdateEventHelper.java (95%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/member}/MemberVoiceKickEventHelper.java (96%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/member}/MemberVoiceMoveEventHelper.java (96%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/message}/MessagePinEventHelper.java (95%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/message}/MessageUnpinEventHelper.java (95%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding}/OnboardingPromptCreateEventHelper.java (94%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding}/OnboardingPromptDeleteEventHelper.java (94%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding}/OnboardingPromptUpdateEventHelper.java (95%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding}/OnboardingUpdateEventHelper.java (95%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/role}/RoleCreateEventHelper.java (97%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/role}/RoleDeleteEventHelper.java (92%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/role}/RoleUpdateEventHelper.java (93%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent}/ScheduledEventCreateEventHelper.java (93%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent}/ScheduledEventDeleteEventHelper.java (93%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent}/ScheduledEventUpdateEventHelper.java (94%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard}/SoundboardSoundCreateEventHelper.java (97%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard}/SoundboardSoundDeleteEventHelper.java (97%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard}/SoundboardSoundUpdateEventHelper.java (97%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/stage}/StageInstanceCreateEventHelper.java (97%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/stage}/StageInstanceDeleteEventHelper.java (97%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/stage}/StageInstanceUpdateEventHelper.java (97%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker}/StickerCreateEventHelper.java (97%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker}/StickerDeleteEventHelper.java (97%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker}/StickerUpdateEventHelper.java (97%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/thread}/ThreadCreateEventHelper.java (92%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/thread}/ThreadDeleteEventHelper.java (91%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/thread}/ThreadUpdateEventHelper.java (94%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook}/WebhookCreateEventHelper.java (97%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook}/WebhookRemoveEventHelper.java (97%) rename src/main/java/{org/papertrail/listeners/audit/helper => io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook}/WebhookUpdateEventHelper.java (97%) rename src/main/java/{org/papertrail => io/github/eggy03/papertrail/bot}/listeners/audit/setup/AuditLogSetupCommandListener.java (98%) rename src/main/java/{org/papertrail => io/github/eggy03/papertrail/bot}/listeners/message/event/MessageLogListener.java (98%) rename src/main/java/{org/papertrail => io/github/eggy03/papertrail/bot}/listeners/message/setup/MessageLogSetupCommandListener.java (98%) rename src/main/java/{org/papertrail => io/github/eggy03/papertrail/bot}/listeners/misc/ActivityUpdateListener.java (95%) rename src/main/java/{org/papertrail => io/github/eggy03/papertrail/bot}/listeners/misc/BotSetupInstructionCommandListener.java (95%) rename src/main/java/{org/papertrail => io/github/eggy03/papertrail/bot}/listeners/misc/SelfKickListener.java (90%) rename src/main/java/{org/papertrail => io/github/eggy03/papertrail/bot}/listeners/misc/ServerStatCommandListener.java (96%) rename src/main/java/{org/papertrail => io/github/eggy03/papertrail/bot}/listeners/misc/SlashCommandRegistrationListener.java (96%) rename src/main/java/{org/papertrail => io/github/eggy03/papertrail/bot}/main/ConnectionInitializer.java (90%) rename src/main/java/{org/papertrail => io/github/eggy03/papertrail/bot}/main/Start.java (65%) diff --git a/pom.xml b/pom.xml index 97bd8993..8fa10aa0 100644 --- a/pom.xml +++ b/pom.xml @@ -4,11 +4,11 @@ 4.0.0 - org.egg.papertrail - paper-trail-bot - 2.5.0 - PaperTrail - A simple bot for logging all user actions + io.github.eggy03 + papertrailbot + 3.0.0 + PaperTrail Bot + A simple bot for logging all server and member actions UTF-8 @@ -136,7 +136,7 @@ spring-boot-maven-plugin ${spring-boot-maven-plugin.version} - org.papertrail.main.Start + io.github.eggy03.papertrail.bot.main.Start diff --git a/src/main/java/org/papertrail/commons/constant/ProjectInfo.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/constant/ProjectInfo.java similarity index 84% rename from src/main/java/org/papertrail/commons/constant/ProjectInfo.java rename to src/main/java/io/github/eggy03/papertrail/bot/commons/constant/ProjectInfo.java index 86a7addd..0ab7766d 100644 --- a/src/main/java/org/papertrail/commons/constant/ProjectInfo.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/constant/ProjectInfo.java @@ -1,4 +1,4 @@ -package org.papertrail.commons.constant; +package io.github.eggy03.papertrail.bot.commons.constant; public class ProjectInfo { diff --git a/src/main/java/org/papertrail/commons/utilities/BooleanFormatter.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/BooleanFormatter.java similarity index 93% rename from src/main/java/org/papertrail/commons/utilities/BooleanFormatter.java rename to src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/BooleanFormatter.java index a73c3fa0..35290129 100644 --- a/src/main/java/org/papertrail/commons/utilities/BooleanFormatter.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/BooleanFormatter.java @@ -1,4 +1,4 @@ -package org.papertrail.commons.utilities; +package io.github.eggy03.papertrail.bot.commons.utilities; import lombok.experimental.UtilityClass; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/org/papertrail/commons/utilities/ColorFormatter.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/ColorFormatter.java similarity index 95% rename from src/main/java/org/papertrail/commons/utilities/ColorFormatter.java rename to src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/ColorFormatter.java index 191f0036..29cd4ff5 100644 --- a/src/main/java/org/papertrail/commons/utilities/ColorFormatter.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/ColorFormatter.java @@ -1,4 +1,4 @@ -package org.papertrail.commons.utilities; +package io.github.eggy03.papertrail.bot.commons.utilities; import lombok.experimental.UtilityClass; diff --git a/src/main/java/org/papertrail/commons/utilities/DurationFormatter.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/DurationFormatter.java similarity index 97% rename from src/main/java/org/papertrail/commons/utilities/DurationFormatter.java rename to src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/DurationFormatter.java index 93266c4d..6c4fb71b 100644 --- a/src/main/java/org/papertrail/commons/utilities/DurationFormatter.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/DurationFormatter.java @@ -1,4 +1,4 @@ -package org.papertrail.commons.utilities; +package io.github.eggy03.papertrail.bot.commons.utilities; import lombok.experimental.UtilityClass; diff --git a/src/main/java/org/papertrail/commons/utilities/EnvConfig.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/EnvConfig.java similarity index 86% rename from src/main/java/org/papertrail/commons/utilities/EnvConfig.java rename to src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/EnvConfig.java index 4a05f636..71deb86b 100644 --- a/src/main/java/org/papertrail/commons/utilities/EnvConfig.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/EnvConfig.java @@ -1,4 +1,4 @@ -package org.papertrail.commons.utilities; +package io.github.eggy03.papertrail.bot.commons.utilities; import io.github.cdimascio.dotenv.Dotenv; import lombok.experimental.UtilityClass; diff --git a/src/main/java/org/papertrail/commons/utilities/GuildScheduledEventRecurrenceRuleStructureParser.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/GuildScheduledEventRecurrenceRuleStructureParser.java similarity index 98% rename from src/main/java/org/papertrail/commons/utilities/GuildScheduledEventRecurrenceRuleStructureParser.java rename to src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/GuildScheduledEventRecurrenceRuleStructureParser.java index 5192f0a9..6968b030 100644 --- a/src/main/java/org/papertrail/commons/utilities/GuildScheduledEventRecurrenceRuleStructureParser.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/GuildScheduledEventRecurrenceRuleStructureParser.java @@ -1,4 +1,4 @@ -package org.papertrail.commons.utilities; +package io.github.eggy03.papertrail.bot.commons.utilities; import lombok.experimental.UtilityClass; diff --git a/src/main/java/org/papertrail/commons/utilities/GuildSystemChannelFlagResolver.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/GuildSystemChannelFlagResolver.java similarity index 95% rename from src/main/java/org/papertrail/commons/utilities/GuildSystemChannelFlagResolver.java rename to src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/GuildSystemChannelFlagResolver.java index 8dd7cefc..c446a0b5 100644 --- a/src/main/java/org/papertrail/commons/utilities/GuildSystemChannelFlagResolver.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/GuildSystemChannelFlagResolver.java @@ -1,4 +1,4 @@ -package org.papertrail.commons.utilities; +package io.github.eggy03.papertrail.bot.commons.utilities; import lombok.experimental.UtilityClass; diff --git a/src/main/java/org/papertrail/commons/utilities/MessageEncryption.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/MessageEncryption.java similarity index 95% rename from src/main/java/org/papertrail/commons/utilities/MessageEncryption.java rename to src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/MessageEncryption.java index 7fe4f40b..5f3c8f86 100644 --- a/src/main/java/org/papertrail/commons/utilities/MessageEncryption.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/MessageEncryption.java @@ -1,4 +1,4 @@ -package org.papertrail.commons.utilities; +package io.github.eggy03.papertrail.bot.commons.utilities; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/org/papertrail/commons/utilities/OnboardingUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/OnboardingUtils.java similarity index 95% rename from src/main/java/org/papertrail/commons/utilities/OnboardingUtils.java rename to src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/OnboardingUtils.java index ad2cad96..8dcb3a4b 100644 --- a/src/main/java/org/papertrail/commons/utilities/OnboardingUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/OnboardingUtils.java @@ -1,4 +1,4 @@ -package org.papertrail.commons.utilities; +package io.github.eggy03.papertrail.bot.commons.utilities; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.entities.Guild; diff --git a/src/main/java/org/papertrail/commons/utilities/PermissionResolver.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/PermissionResolver.java similarity index 98% rename from src/main/java/org/papertrail/commons/utilities/PermissionResolver.java rename to src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/PermissionResolver.java index 663591ff..912ce539 100644 --- a/src/main/java/org/papertrail/commons/utilities/PermissionResolver.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/PermissionResolver.java @@ -1,4 +1,4 @@ -package org.papertrail.commons.utilities; +package io.github.eggy03.papertrail.bot.commons.utilities; import lombok.experimental.UtilityClass; diff --git a/src/main/java/org/papertrail/commons/utilities/RoleObjectParser.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/RoleObjectParser.java similarity index 94% rename from src/main/java/org/papertrail/commons/utilities/RoleObjectParser.java rename to src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/RoleObjectParser.java index 91d132ee..b593fceb 100644 --- a/src/main/java/org/papertrail/commons/utilities/RoleObjectParser.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/RoleObjectParser.java @@ -1,4 +1,4 @@ -package org.papertrail.commons.utilities; +package io.github.eggy03.papertrail.bot.commons.utilities; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/org/papertrail/commons/utilities/TypeResolver.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/TypeResolver.java similarity index 98% rename from src/main/java/org/papertrail/commons/utilities/TypeResolver.java rename to src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/TypeResolver.java index 0c371a1f..278fa08e 100644 --- a/src/main/java/org/papertrail/commons/utilities/TypeResolver.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/TypeResolver.java @@ -1,4 +1,4 @@ -package org.papertrail.commons.utilities; +package io.github.eggy03.papertrail.bot.commons.utilities; import lombok.experimental.UtilityClass; diff --git a/src/main/java/org/papertrail/listeners/audit/event/AuditLogEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/AuditLogEventListener.java similarity index 58% rename from src/main/java/org/papertrail/listeners/audit/event/AuditLogEventListener.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/AuditLogEventListener.java index f291ab66..abcc0a88 100644 --- a/src/main/java/org/papertrail/listeners/audit/event/AuditLogEventListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/AuditLogEventListener.java @@ -1,5 +1,64 @@ -package org.papertrail.listeners.audit.event; - +package io.github.eggy03.papertrail.bot.listeners.audit.event; + +import io.github.eggy03.papertrail.bot.commons.utilities.EnvConfig; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.automod.AutoModerationFlagToChannelEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.automod.AutoModerationMemberTimeoutEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.automod.AutoModerationRuleBlockMessageEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.automod.AutoModerationRuleCreateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.automod.AutoModerationRuleDeleteEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.automod.AutoModerationRuleUpdateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.ban.BanEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.ban.KickEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.ban.UnbanEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.bot.BotAddEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.ChannelCreateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.ChannelDeleteEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.ChannelOverrideCreateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.ChannelOverrideDeleteEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.ChannelOverrideUpdateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.ChannelUpdateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.VoiceChannelStatusDeleteEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.VoiceChannelStatusUpdateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.emoji.EmojiCreateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.emoji.EmojiDeleteEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.emoji.EmojiUpdateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.generic.GenericAuditLogEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.guild.GuildUpdateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.integration.IntegrationCreateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.integration.IntegrationDeleteEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.invite.InviteCreateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.invite.InviteDeleteEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.member.MemberRoleUpdateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.member.MemberUpdateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.member.MemberVoiceKickEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.member.MemberVoiceMoveEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.message.MessagePinEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.message.MessageUnpinEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.onboarding.OnboardingPromptCreateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.onboarding.OnboardingPromptDeleteEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.onboarding.OnboardingPromptUpdateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.onboarding.OnboardingUpdateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.role.RoleCreateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.role.RoleDeleteEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.role.RoleUpdateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.scheduledevent.ScheduledEventCreateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.scheduledevent.ScheduledEventDeleteEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.scheduledevent.ScheduledEventUpdateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.soundboard.SoundboardSoundCreateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.soundboard.SoundboardSoundDeleteEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.soundboard.SoundboardSoundUpdateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.stage.StageInstanceCreateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.stage.StageInstanceDeleteEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.stage.StageInstanceUpdateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.sticker.StickerCreateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.sticker.StickerDeleteEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.sticker.StickerUpdateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.thread.ThreadCreateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.thread.ThreadDeleteEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.thread.ThreadUpdateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.webhook.WebhookCreateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.webhook.WebhookRemoveEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.webhook.WebhookUpdateEventHelper; import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; import io.github.eggy03.papertrail.sdk.entity.AuditLogRegistrationEntity; import lombok.extern.slf4j.Slf4j; @@ -8,65 +67,6 @@ import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; import org.jetbrains.annotations.NotNull; -import org.papertrail.commons.utilities.EnvConfig; -import org.papertrail.listeners.audit.helper.AutoModerationFlagToChannelEventHelper; -import org.papertrail.listeners.audit.helper.AutoModerationMemberTimeoutEventHelper; -import org.papertrail.listeners.audit.helper.AutoModerationRuleBlockMessageEventHelper; -import org.papertrail.listeners.audit.helper.AutoModerationRuleCreateEventHelper; -import org.papertrail.listeners.audit.helper.AutoModerationRuleDeleteEventHelper; -import org.papertrail.listeners.audit.helper.AutoModerationRuleUpdateEventHelper; -import org.papertrail.listeners.audit.helper.BanEventHelper; -import org.papertrail.listeners.audit.helper.BotAddEventHelper; -import org.papertrail.listeners.audit.helper.ChannelCreateEventHelper; -import org.papertrail.listeners.audit.helper.ChannelDeleteEventHelper; -import org.papertrail.listeners.audit.helper.ChannelOverrideCreateEventHelper; -import org.papertrail.listeners.audit.helper.ChannelOverrideDeleteEventHelper; -import org.papertrail.listeners.audit.helper.ChannelOverrideUpdateEventHelper; -import org.papertrail.listeners.audit.helper.ChannelUpdateEventHelper; -import org.papertrail.listeners.audit.helper.EmojiCreateEventHelper; -import org.papertrail.listeners.audit.helper.EmojiDeleteEventHelper; -import org.papertrail.listeners.audit.helper.EmojiUpdateEventHelper; -import org.papertrail.listeners.audit.helper.GenericAuditLogEventHelper; -import org.papertrail.listeners.audit.helper.GuildUpdateEventHelper; -import org.papertrail.listeners.audit.helper.IntegrationCreateEventHelper; -import org.papertrail.listeners.audit.helper.IntegrationDeleteEventHelper; -import org.papertrail.listeners.audit.helper.InviteCreateEventHelper; -import org.papertrail.listeners.audit.helper.InviteDeleteEventHelper; -import org.papertrail.listeners.audit.helper.KickEventHelper; -import org.papertrail.listeners.audit.helper.MemberRoleUpdateEventHelper; -import org.papertrail.listeners.audit.helper.MemberUpdateEventHelper; -import org.papertrail.listeners.audit.helper.MemberVoiceKickEventHelper; -import org.papertrail.listeners.audit.helper.MemberVoiceMoveEventHelper; -import org.papertrail.listeners.audit.helper.MessagePinEventHelper; -import org.papertrail.listeners.audit.helper.MessageUnpinEventHelper; -import org.papertrail.listeners.audit.helper.OnboardingPromptCreateEventHelper; -import org.papertrail.listeners.audit.helper.OnboardingPromptDeleteEventHelper; -import org.papertrail.listeners.audit.helper.OnboardingPromptUpdateEventHelper; -import org.papertrail.listeners.audit.helper.OnboardingUpdateEventHelper; -import org.papertrail.listeners.audit.helper.RoleCreateEventHelper; -import org.papertrail.listeners.audit.helper.RoleDeleteEventHelper; -import org.papertrail.listeners.audit.helper.RoleUpdateEventHelper; -import org.papertrail.listeners.audit.helper.ScheduledEventCreateEventHelper; -import org.papertrail.listeners.audit.helper.ScheduledEventDeleteEventHelper; -import org.papertrail.listeners.audit.helper.ScheduledEventUpdateEventHelper; -import org.papertrail.listeners.audit.helper.SoundboardSoundCreateEventHelper; -import org.papertrail.listeners.audit.helper.SoundboardSoundDeleteEventHelper; -import org.papertrail.listeners.audit.helper.SoundboardSoundUpdateEventHelper; -import org.papertrail.listeners.audit.helper.StageInstanceCreateEventHelper; -import org.papertrail.listeners.audit.helper.StageInstanceDeleteEventHelper; -import org.papertrail.listeners.audit.helper.StageInstanceUpdateEventHelper; -import org.papertrail.listeners.audit.helper.StickerCreateEventHelper; -import org.papertrail.listeners.audit.helper.StickerDeleteEventHelper; -import org.papertrail.listeners.audit.helper.StickerUpdateEventHelper; -import org.papertrail.listeners.audit.helper.ThreadCreateEventHelper; -import org.papertrail.listeners.audit.helper.ThreadDeleteEventHelper; -import org.papertrail.listeners.audit.helper.ThreadUpdateEventHelper; -import org.papertrail.listeners.audit.helper.UnbanEventHelper; -import org.papertrail.listeners.audit.helper.VoiceChannelStatusDeleteEventHelper; -import org.papertrail.listeners.audit.helper.VoiceChannelStatusUpdateEventHelper; -import org.papertrail.listeners.audit.helper.WebhookCreateEventHelper; -import org.papertrail.listeners.audit.helper.WebhookRemoveEventHelper; -import org.papertrail.listeners.audit.helper.WebhookUpdateEventHelper; import java.util.Optional; import java.util.concurrent.Executor; diff --git a/src/main/java/org/papertrail/listeners/audit/event/GuildBoostEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildBoostEventListener.java similarity index 97% rename from src/main/java/org/papertrail/listeners/audit/event/GuildBoostEventListener.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildBoostEventListener.java index a07ca290..1600cba5 100644 --- a/src/main/java/org/papertrail/listeners/audit/event/GuildBoostEventListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildBoostEventListener.java @@ -1,5 +1,6 @@ -package org.papertrail.listeners.audit.event; +package io.github.eggy03.papertrail.bot.listeners.audit.event.guild; +import io.github.eggy03.papertrail.bot.commons.utilities.EnvConfig; import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; import io.github.eggy03.papertrail.sdk.entity.AuditLogRegistrationEntity; import net.dv8tion.jda.api.EmbedBuilder; @@ -12,7 +13,6 @@ import net.dv8tion.jda.api.events.guild.update.GuildUpdateBoostTierEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; import org.jspecify.annotations.NonNull; -import org.papertrail.commons.utilities.EnvConfig; import java.awt.Color; import java.time.Instant; diff --git a/src/main/java/org/papertrail/listeners/audit/event/GuildMemberJoinAndLeaveEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildMemberJoinAndLeaveEventListener.java similarity index 94% rename from src/main/java/org/papertrail/listeners/audit/event/GuildMemberJoinAndLeaveEventListener.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildMemberJoinAndLeaveEventListener.java index 607c0469..6001cdc8 100644 --- a/src/main/java/org/papertrail/listeners/audit/event/GuildMemberJoinAndLeaveEventListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildMemberJoinAndLeaveEventListener.java @@ -1,5 +1,8 @@ -package org.papertrail.listeners.audit.event; +package io.github.eggy03.papertrail.bot.listeners.audit.event.guild; +import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; +import io.github.eggy03.papertrail.bot.commons.utilities.DurationFormatter; +import io.github.eggy03.papertrail.bot.commons.utilities.EnvConfig; import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; import io.github.eggy03.papertrail.sdk.entity.AuditLogRegistrationEntity; import net.dv8tion.jda.api.EmbedBuilder; @@ -12,9 +15,6 @@ import net.dv8tion.jda.api.events.guild.member.GuildMemberRemoveEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; import org.jetbrains.annotations.NotNull; -import org.papertrail.commons.utilities.BooleanFormatter; -import org.papertrail.commons.utilities.DurationFormatter; -import org.papertrail.commons.utilities.EnvConfig; import java.awt.Color; import java.time.Instant; diff --git a/src/main/java/org/papertrail/listeners/audit/event/GuildPollEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildPollEventListener.java similarity index 96% rename from src/main/java/org/papertrail/listeners/audit/event/GuildPollEventListener.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildPollEventListener.java index 59f99bfa..a5ab4be9 100644 --- a/src/main/java/org/papertrail/listeners/audit/event/GuildPollEventListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildPollEventListener.java @@ -1,5 +1,6 @@ -package org.papertrail.listeners.audit.event; +package io.github.eggy03.papertrail.bot.listeners.audit.event.guild; +import io.github.eggy03.papertrail.bot.commons.utilities.EnvConfig; import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; import io.github.eggy03.papertrail.sdk.entity.AuditLogRegistrationEntity; import net.dv8tion.jda.api.EmbedBuilder; @@ -9,7 +10,6 @@ import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; import org.jspecify.annotations.NonNull; -import org.papertrail.commons.utilities.EnvConfig; import java.awt.Color; import java.time.Instant; diff --git a/src/main/java/org/papertrail/listeners/audit/event/GuildVoiceEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildVoiceEventListener.java similarity index 96% rename from src/main/java/org/papertrail/listeners/audit/event/GuildVoiceEventListener.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildVoiceEventListener.java index 6b0f142d..669b88ff 100644 --- a/src/main/java/org/papertrail/listeners/audit/event/GuildVoiceEventListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildVoiceEventListener.java @@ -1,5 +1,6 @@ -package org.papertrail.listeners.audit.event; +package io.github.eggy03.papertrail.bot.listeners.audit.event.guild; +import io.github.eggy03.papertrail.bot.commons.utilities.EnvConfig; import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; import io.github.eggy03.papertrail.sdk.entity.AuditLogRegistrationEntity; import net.dv8tion.jda.api.EmbedBuilder; @@ -10,7 +11,6 @@ import net.dv8tion.jda.api.events.guild.voice.GuildVoiceUpdateEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; import org.jetbrains.annotations.NotNull; -import org.papertrail.commons.utilities.EnvConfig; import java.awt.Color; import java.time.Instant; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationFlagToChannelEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationFlagToChannelEventHelper.java similarity index 95% rename from src/main/java/org/papertrail/listeners/audit/helper/AutoModerationFlagToChannelEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationFlagToChannelEventHelper.java index bacb7393..543b43a0 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationFlagToChannelEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationFlagToChannelEventHelper.java @@ -1,4 +1,4 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.automod; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationMemberTimeoutEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationMemberTimeoutEventHelper.java similarity index 95% rename from src/main/java/org/papertrail/listeners/audit/helper/AutoModerationMemberTimeoutEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationMemberTimeoutEventHelper.java index 3cfd6857..53d56d10 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationMemberTimeoutEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationMemberTimeoutEventHelper.java @@ -1,4 +1,4 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.automod; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleBlockMessageEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleBlockMessageEventHelper.java similarity index 95% rename from src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleBlockMessageEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleBlockMessageEventHelper.java index 5b1b24aa..fc9d816f 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleBlockMessageEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleBlockMessageEventHelper.java @@ -1,4 +1,4 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.automod; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleCreateEventHelper.java similarity index 91% rename from src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleCreateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleCreateEventHelper.java index def7194b..40343d40 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleCreateEventHelper.java @@ -1,5 +1,7 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.automod; +import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; +import io.github.eggy03.papertrail.bot.commons.utilities.TypeResolver; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; @@ -7,8 +9,6 @@ import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; -import org.papertrail.commons.utilities.BooleanFormatter; -import org.papertrail.commons.utilities.TypeResolver; import java.awt.Color; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleDeleteEventHelper.java similarity index 96% rename from src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleDeleteEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleDeleteEventHelper.java index 0afa08a8..17e1fcf2 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleDeleteEventHelper.java @@ -1,4 +1,4 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.automod; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleUpdateEventHelper.java similarity index 96% rename from src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleUpdateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleUpdateEventHelper.java index f2872767..23ef8b31 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/AutoModerationRuleUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleUpdateEventHelper.java @@ -1,4 +1,4 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.automod; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/BanEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/ban/BanEventHelper.java similarity index 96% rename from src/main/java/org/papertrail/listeners/audit/helper/BanEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/ban/BanEventHelper.java index a3e4aaa4..1e1b8528 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/BanEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/ban/BanEventHelper.java @@ -1,4 +1,4 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.ban; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/KickEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/ban/KickEventHelper.java similarity index 97% rename from src/main/java/org/papertrail/listeners/audit/helper/KickEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/ban/KickEventHelper.java index e85ebcd4..a1f3cd6c 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/KickEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/ban/KickEventHelper.java @@ -1,4 +1,4 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.ban; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/UnbanEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/ban/UnbanEventHelper.java similarity index 97% rename from src/main/java/org/papertrail/listeners/audit/helper/UnbanEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/ban/UnbanEventHelper.java index 365782f0..1dfac316 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/UnbanEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/ban/UnbanEventHelper.java @@ -1,4 +1,4 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.ban; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/BotAddEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/bot/BotAddEventHelper.java similarity index 96% rename from src/main/java/org/papertrail/listeners/audit/helper/BotAddEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/bot/BotAddEventHelper.java index 94cf5cdf..de175b64 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/BotAddEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/bot/BotAddEventHelper.java @@ -1,4 +1,4 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.bot; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/ChannelCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelCreateEventHelper.java similarity index 92% rename from src/main/java/org/papertrail/listeners/audit/helper/ChannelCreateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelCreateEventHelper.java index ce638266..e0f41d6a 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/ChannelCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelCreateEventHelper.java @@ -1,5 +1,8 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.channel; +import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; +import io.github.eggy03.papertrail.bot.commons.utilities.DurationFormatter; +import io.github.eggy03.papertrail.bot.commons.utilities.TypeResolver; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; @@ -9,9 +12,6 @@ import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; -import org.papertrail.commons.utilities.BooleanFormatter; -import org.papertrail.commons.utilities.DurationFormatter; -import org.papertrail.commons.utilities.TypeResolver; import java.awt.Color; import java.util.Map; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/ChannelDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelDeleteEventHelper.java similarity index 95% rename from src/main/java/org/papertrail/listeners/audit/helper/ChannelDeleteEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelDeleteEventHelper.java index 74c77ee2..e05ef72f 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/ChannelDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelDeleteEventHelper.java @@ -1,5 +1,6 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.channel; +import io.github.eggy03.papertrail.bot.commons.utilities.TypeResolver; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; @@ -9,7 +10,6 @@ import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; -import org.papertrail.commons.utilities.TypeResolver; import java.awt.Color; import java.util.Map; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/ChannelOverrideCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideCreateEventHelper.java similarity index 95% rename from src/main/java/org/papertrail/listeners/audit/helper/ChannelOverrideCreateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideCreateEventHelper.java index 34111376..3d9377ce 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/ChannelOverrideCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideCreateEventHelper.java @@ -1,5 +1,7 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.channel; +import io.github.eggy03.papertrail.bot.commons.utilities.PermissionResolver; +import io.github.eggy03.papertrail.bot.commons.utilities.TypeResolver; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; @@ -11,8 +13,6 @@ import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; -import org.papertrail.commons.utilities.PermissionResolver; -import org.papertrail.commons.utilities.TypeResolver; import java.awt.Color; import java.util.Map; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/ChannelOverrideDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideDeleteEventHelper.java similarity index 95% rename from src/main/java/org/papertrail/listeners/audit/helper/ChannelOverrideDeleteEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideDeleteEventHelper.java index d15c5fe3..5f422c1f 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/ChannelOverrideDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideDeleteEventHelper.java @@ -1,5 +1,7 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.channel; +import io.github.eggy03.papertrail.bot.commons.utilities.PermissionResolver; +import io.github.eggy03.papertrail.bot.commons.utilities.TypeResolver; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; @@ -11,8 +13,6 @@ import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; -import org.papertrail.commons.utilities.PermissionResolver; -import org.papertrail.commons.utilities.TypeResolver; import java.awt.Color; import java.util.Map; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/ChannelOverrideUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java similarity index 96% rename from src/main/java/org/papertrail/listeners/audit/helper/ChannelOverrideUpdateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java index 0a3aae80..a2364436 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/ChannelOverrideUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java @@ -1,5 +1,6 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.channel; +import io.github.eggy03.papertrail.bot.commons.utilities.PermissionResolver; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; @@ -11,7 +12,6 @@ import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; -import org.papertrail.commons.utilities.PermissionResolver; import java.awt.Color; import java.util.Map; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/ChannelUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelUpdateEventHelper.java similarity index 94% rename from src/main/java/org/papertrail/listeners/audit/helper/ChannelUpdateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelUpdateEventHelper.java index 5249dfaf..0a04ae07 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/ChannelUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelUpdateEventHelper.java @@ -1,5 +1,8 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.channel; +import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; +import io.github.eggy03.papertrail.bot.commons.utilities.DurationFormatter; +import io.github.eggy03.papertrail.bot.commons.utilities.TypeResolver; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; @@ -9,9 +12,6 @@ import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; -import org.papertrail.commons.utilities.BooleanFormatter; -import org.papertrail.commons.utilities.DurationFormatter; -import org.papertrail.commons.utilities.TypeResolver; import java.awt.Color; import java.util.Map; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/VoiceChannelStatusDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusDeleteEventHelper.java similarity index 96% rename from src/main/java/org/papertrail/listeners/audit/helper/VoiceChannelStatusDeleteEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusDeleteEventHelper.java index 9cfcdc36..c9422da7 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/VoiceChannelStatusDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusDeleteEventHelper.java @@ -1,4 +1,4 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.channel; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/VoiceChannelStatusUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusUpdateEventHelper.java similarity index 96% rename from src/main/java/org/papertrail/listeners/audit/helper/VoiceChannelStatusUpdateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusUpdateEventHelper.java index 761b8ad9..d8309f98 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/VoiceChannelStatusUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusUpdateEventHelper.java @@ -1,4 +1,4 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.channel; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/EmojiCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiCreateEventHelper.java similarity index 97% rename from src/main/java/org/papertrail/listeners/audit/helper/EmojiCreateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiCreateEventHelper.java index 8ca35982..3fa97320 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/EmojiCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiCreateEventHelper.java @@ -1,4 +1,4 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.emoji; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/EmojiDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiDeleteEventHelper.java similarity index 97% rename from src/main/java/org/papertrail/listeners/audit/helper/EmojiDeleteEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiDeleteEventHelper.java index 67d01e8e..daed2bf8 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/EmojiDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiDeleteEventHelper.java @@ -1,4 +1,4 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.emoji; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/EmojiUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiUpdateEventHelper.java similarity index 97% rename from src/main/java/org/papertrail/listeners/audit/helper/EmojiUpdateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiUpdateEventHelper.java index 7535bb80..0f84bd67 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/EmojiUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiUpdateEventHelper.java @@ -1,4 +1,4 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.emoji; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/GenericAuditLogEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/generic/GenericAuditLogEventHelper.java similarity index 96% rename from src/main/java/org/papertrail/listeners/audit/helper/GenericAuditLogEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/generic/GenericAuditLogEventHelper.java index fa8ac18d..5ffbd9d6 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/GenericAuditLogEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/generic/GenericAuditLogEventHelper.java @@ -1,4 +1,4 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.generic; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/GuildUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/GuildUpdateEventHelper.java similarity index 95% rename from src/main/java/org/papertrail/listeners/audit/helper/GuildUpdateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/GuildUpdateEventHelper.java index 93ee8820..e8ba6a22 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/GuildUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/GuildUpdateEventHelper.java @@ -1,5 +1,7 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.guild; +import io.github.eggy03.papertrail.bot.commons.utilities.GuildSystemChannelFlagResolver; +import io.github.eggy03.papertrail.bot.commons.utilities.TypeResolver; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; @@ -8,8 +10,6 @@ import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; -import org.papertrail.commons.utilities.GuildSystemChannelFlagResolver; -import org.papertrail.commons.utilities.TypeResolver; import java.awt.Color; import java.util.Map; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/IntegrationCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationCreateEventHelper.java similarity index 96% rename from src/main/java/org/papertrail/listeners/audit/helper/IntegrationCreateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationCreateEventHelper.java index 14fd9cf4..8dc7d34d 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/IntegrationCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationCreateEventHelper.java @@ -1,4 +1,4 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.integration; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/IntegrationDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationDeleteEventHelper.java similarity index 96% rename from src/main/java/org/papertrail/listeners/audit/helper/IntegrationDeleteEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationDeleteEventHelper.java index 9b1c8f65..dc156f4c 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/IntegrationDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationDeleteEventHelper.java @@ -1,4 +1,4 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.integration; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/InviteCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteCreateEventHelper.java similarity index 93% rename from src/main/java/org/papertrail/listeners/audit/helper/InviteCreateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteCreateEventHelper.java index c7d38902..d2a6eb7d 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/InviteCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteCreateEventHelper.java @@ -1,5 +1,7 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.invite; +import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; +import io.github.eggy03.papertrail.bot.commons.utilities.DurationFormatter; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; @@ -8,8 +10,6 @@ import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; -import org.papertrail.commons.utilities.BooleanFormatter; -import org.papertrail.commons.utilities.DurationFormatter; import java.awt.Color; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/InviteDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteDeleteEventHelper.java similarity index 95% rename from src/main/java/org/papertrail/listeners/audit/helper/InviteDeleteEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteDeleteEventHelper.java index 87c03026..276c65fe 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/InviteDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteDeleteEventHelper.java @@ -1,5 +1,6 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.invite; +import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; @@ -8,7 +9,6 @@ import net.dv8tion.jda.api.entities.channel.Channel; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; -import org.papertrail.commons.utilities.BooleanFormatter; import java.awt.Color; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/MemberRoleUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberRoleUpdateEventHelper.java similarity index 95% rename from src/main/java/org/papertrail/listeners/audit/helper/MemberRoleUpdateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberRoleUpdateEventHelper.java index cbf40c81..049751c5 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/MemberRoleUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberRoleUpdateEventHelper.java @@ -1,5 +1,6 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.member; +import io.github.eggy03.papertrail.bot.commons.utilities.RoleObjectParser; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; @@ -8,7 +9,6 @@ import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; -import org.papertrail.commons.utilities.RoleObjectParser; import java.awt.Color; import java.util.Map; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/MemberUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberUpdateEventHelper.java similarity index 95% rename from src/main/java/org/papertrail/listeners/audit/helper/MemberUpdateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberUpdateEventHelper.java index c59a8ab9..c16a07e4 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/MemberUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberUpdateEventHelper.java @@ -1,5 +1,7 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.member; +import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; +import io.github.eggy03.papertrail.bot.commons.utilities.DurationFormatter; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; @@ -9,8 +11,6 @@ import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; -import org.papertrail.commons.utilities.BooleanFormatter; -import org.papertrail.commons.utilities.DurationFormatter; import java.awt.Color; import java.util.Map; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/MemberVoiceKickEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceKickEventHelper.java similarity index 96% rename from src/main/java/org/papertrail/listeners/audit/helper/MemberVoiceKickEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceKickEventHelper.java index 854fe076..b990d7e4 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/MemberVoiceKickEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceKickEventHelper.java @@ -1,4 +1,4 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.member; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/MemberVoiceMoveEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceMoveEventHelper.java similarity index 96% rename from src/main/java/org/papertrail/listeners/audit/helper/MemberVoiceMoveEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceMoveEventHelper.java index ed5e9131..9c5a621e 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/MemberVoiceMoveEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceMoveEventHelper.java @@ -1,4 +1,4 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.member; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/MessagePinEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessagePinEventHelper.java similarity index 95% rename from src/main/java/org/papertrail/listeners/audit/helper/MessagePinEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessagePinEventHelper.java index f548f3e0..495869db 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/MessagePinEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessagePinEventHelper.java @@ -1,4 +1,4 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.message; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/MessageUnpinEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessageUnpinEventHelper.java similarity index 95% rename from src/main/java/org/papertrail/listeners/audit/helper/MessageUnpinEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessageUnpinEventHelper.java index 4e425d3a..1b20b7d5 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/MessageUnpinEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessageUnpinEventHelper.java @@ -1,4 +1,4 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.message; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/OnboardingPromptCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptCreateEventHelper.java similarity index 94% rename from src/main/java/org/papertrail/listeners/audit/helper/OnboardingPromptCreateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptCreateEventHelper.java index d6779a16..a5ac719b 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/OnboardingPromptCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptCreateEventHelper.java @@ -1,5 +1,6 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.onboarding; +import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; @@ -7,7 +8,6 @@ import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; -import org.papertrail.commons.utilities.BooleanFormatter; import java.awt.Color; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/OnboardingPromptDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptDeleteEventHelper.java similarity index 94% rename from src/main/java/org/papertrail/listeners/audit/helper/OnboardingPromptDeleteEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptDeleteEventHelper.java index 43b1dffc..a35733d6 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/OnboardingPromptDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptDeleteEventHelper.java @@ -1,5 +1,6 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.onboarding; +import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; @@ -7,7 +8,6 @@ import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; -import org.papertrail.commons.utilities.BooleanFormatter; import java.awt.Color; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/OnboardingPromptUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptUpdateEventHelper.java similarity index 95% rename from src/main/java/org/papertrail/listeners/audit/helper/OnboardingPromptUpdateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptUpdateEventHelper.java index bf21d7ec..9b6a8e74 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/OnboardingPromptUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptUpdateEventHelper.java @@ -1,5 +1,6 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.onboarding; +import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; @@ -7,7 +8,6 @@ import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; -import org.papertrail.commons.utilities.BooleanFormatter; import java.awt.Color; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/OnboardingUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingUpdateEventHelper.java similarity index 95% rename from src/main/java/org/papertrail/listeners/audit/helper/OnboardingUpdateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingUpdateEventHelper.java index 5374e42a..4d1676bf 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/OnboardingUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingUpdateEventHelper.java @@ -1,5 +1,6 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.onboarding; +import io.github.eggy03.papertrail.bot.commons.utilities.OnboardingUtils; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; @@ -8,7 +9,6 @@ import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; -import org.papertrail.commons.utilities.OnboardingUtils; import java.awt.Color; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/RoleCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleCreateEventHelper.java similarity index 97% rename from src/main/java/org/papertrail/listeners/audit/helper/RoleCreateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleCreateEventHelper.java index 188eb6d5..e0110eb6 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/RoleCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleCreateEventHelper.java @@ -1,4 +1,4 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.role; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/RoleDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleDeleteEventHelper.java similarity index 92% rename from src/main/java/org/papertrail/listeners/audit/helper/RoleDeleteEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleDeleteEventHelper.java index 64a27978..651fc8f3 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/RoleDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleDeleteEventHelper.java @@ -1,5 +1,8 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.role; +import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; +import io.github.eggy03.papertrail.bot.commons.utilities.ColorFormatter; +import io.github.eggy03.papertrail.bot.commons.utilities.PermissionResolver; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; @@ -9,9 +12,6 @@ import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; -import org.papertrail.commons.utilities.BooleanFormatter; -import org.papertrail.commons.utilities.ColorFormatter; -import org.papertrail.commons.utilities.PermissionResolver; import java.awt.Color; import java.util.Map; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/RoleUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleUpdateEventHelper.java similarity index 93% rename from src/main/java/org/papertrail/listeners/audit/helper/RoleUpdateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleUpdateEventHelper.java index d2b148e5..d34bdd37 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/RoleUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleUpdateEventHelper.java @@ -1,5 +1,8 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.role; +import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; +import io.github.eggy03.papertrail.bot.commons.utilities.ColorFormatter; +import io.github.eggy03.papertrail.bot.commons.utilities.PermissionResolver; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; @@ -9,9 +12,6 @@ import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; -import org.papertrail.commons.utilities.BooleanFormatter; -import org.papertrail.commons.utilities.ColorFormatter; -import org.papertrail.commons.utilities.PermissionResolver; import java.awt.Color; import java.util.Map; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/ScheduledEventCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventCreateEventHelper.java similarity index 93% rename from src/main/java/org/papertrail/listeners/audit/helper/ScheduledEventCreateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventCreateEventHelper.java index 941003cb..dcf5ba74 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/ScheduledEventCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventCreateEventHelper.java @@ -1,5 +1,7 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.scheduledevent; +import io.github.eggy03.papertrail.bot.commons.utilities.GuildScheduledEventRecurrenceRuleStructureParser; +import io.github.eggy03.papertrail.bot.commons.utilities.TypeResolver; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; @@ -9,8 +11,6 @@ import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; -import org.papertrail.commons.utilities.GuildScheduledEventRecurrenceRuleStructureParser; -import org.papertrail.commons.utilities.TypeResolver; import java.awt.Color; import java.util.Map; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/ScheduledEventDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventDeleteEventHelper.java similarity index 93% rename from src/main/java/org/papertrail/listeners/audit/helper/ScheduledEventDeleteEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventDeleteEventHelper.java index 1610e34a..c8022e69 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/ScheduledEventDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventDeleteEventHelper.java @@ -1,5 +1,7 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.scheduledevent; +import io.github.eggy03.papertrail.bot.commons.utilities.GuildScheduledEventRecurrenceRuleStructureParser; +import io.github.eggy03.papertrail.bot.commons.utilities.TypeResolver; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; @@ -9,8 +11,6 @@ import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; -import org.papertrail.commons.utilities.GuildScheduledEventRecurrenceRuleStructureParser; -import org.papertrail.commons.utilities.TypeResolver; import java.awt.Color; import java.util.Map; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/ScheduledEventUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java similarity index 94% rename from src/main/java/org/papertrail/listeners/audit/helper/ScheduledEventUpdateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java index ddb40cb2..b397e0e8 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/ScheduledEventUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java @@ -1,5 +1,7 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.scheduledevent; +import io.github.eggy03.papertrail.bot.commons.utilities.GuildScheduledEventRecurrenceRuleStructureParser; +import io.github.eggy03.papertrail.bot.commons.utilities.TypeResolver; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; @@ -10,8 +12,6 @@ import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; -import org.papertrail.commons.utilities.GuildScheduledEventRecurrenceRuleStructureParser; -import org.papertrail.commons.utilities.TypeResolver; import java.awt.Color; import java.util.Map; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/SoundboardSoundCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundCreateEventHelper.java similarity index 97% rename from src/main/java/org/papertrail/listeners/audit/helper/SoundboardSoundCreateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundCreateEventHelper.java index 0ed08fbb..04636113 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/SoundboardSoundCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundCreateEventHelper.java @@ -1,4 +1,4 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.soundboard; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/SoundboardSoundDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundDeleteEventHelper.java similarity index 97% rename from src/main/java/org/papertrail/listeners/audit/helper/SoundboardSoundDeleteEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundDeleteEventHelper.java index bcf6e516..41290f51 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/SoundboardSoundDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundDeleteEventHelper.java @@ -1,4 +1,4 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.soundboard; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/SoundboardSoundUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundUpdateEventHelper.java similarity index 97% rename from src/main/java/org/papertrail/listeners/audit/helper/SoundboardSoundUpdateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundUpdateEventHelper.java index 58da6d6a..7f29d776 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/SoundboardSoundUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundUpdateEventHelper.java @@ -1,4 +1,4 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.soundboard; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/StageInstanceCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceCreateEventHelper.java similarity index 97% rename from src/main/java/org/papertrail/listeners/audit/helper/StageInstanceCreateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceCreateEventHelper.java index 0795d023..1c7b4777 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/StageInstanceCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceCreateEventHelper.java @@ -1,4 +1,4 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.stage; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/StageInstanceDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceDeleteEventHelper.java similarity index 97% rename from src/main/java/org/papertrail/listeners/audit/helper/StageInstanceDeleteEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceDeleteEventHelper.java index faaf4326..0c6742b7 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/StageInstanceDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceDeleteEventHelper.java @@ -1,4 +1,4 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.stage; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/StageInstanceUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceUpdateEventHelper.java similarity index 97% rename from src/main/java/org/papertrail/listeners/audit/helper/StageInstanceUpdateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceUpdateEventHelper.java index b0436419..d79adc79 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/StageInstanceUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceUpdateEventHelper.java @@ -1,4 +1,4 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.stage; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/StickerCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerCreateEventHelper.java similarity index 97% rename from src/main/java/org/papertrail/listeners/audit/helper/StickerCreateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerCreateEventHelper.java index 9bdd03c7..ba4d67f8 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/StickerCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerCreateEventHelper.java @@ -1,4 +1,4 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.sticker; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/StickerDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerDeleteEventHelper.java similarity index 97% rename from src/main/java/org/papertrail/listeners/audit/helper/StickerDeleteEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerDeleteEventHelper.java index c9d7120e..6a8b9383 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/StickerDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerDeleteEventHelper.java @@ -1,4 +1,4 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.sticker; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/StickerUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerUpdateEventHelper.java similarity index 97% rename from src/main/java/org/papertrail/listeners/audit/helper/StickerUpdateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerUpdateEventHelper.java index fb67af14..14cfb971 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/StickerUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerUpdateEventHelper.java @@ -1,4 +1,4 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.sticker; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/ThreadCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadCreateEventHelper.java similarity index 92% rename from src/main/java/org/papertrail/listeners/audit/helper/ThreadCreateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadCreateEventHelper.java index f495f85f..b6e9919a 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/ThreadCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadCreateEventHelper.java @@ -1,5 +1,8 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.thread; +import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; +import io.github.eggy03.papertrail.bot.commons.utilities.DurationFormatter; +import io.github.eggy03.papertrail.bot.commons.utilities.TypeResolver; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; @@ -9,9 +12,6 @@ import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.concrete.ThreadChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; -import org.papertrail.commons.utilities.BooleanFormatter; -import org.papertrail.commons.utilities.DurationFormatter; -import org.papertrail.commons.utilities.TypeResolver; import java.awt.Color; import java.util.Map; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/ThreadDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadDeleteEventHelper.java similarity index 91% rename from src/main/java/org/papertrail/listeners/audit/helper/ThreadDeleteEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadDeleteEventHelper.java index 1f365adc..8aca08e5 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/ThreadDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadDeleteEventHelper.java @@ -1,5 +1,8 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.thread; +import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; +import io.github.eggy03.papertrail.bot.commons.utilities.DurationFormatter; +import io.github.eggy03.papertrail.bot.commons.utilities.TypeResolver; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; @@ -8,9 +11,6 @@ import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; -import org.papertrail.commons.utilities.BooleanFormatter; -import org.papertrail.commons.utilities.DurationFormatter; -import org.papertrail.commons.utilities.TypeResolver; import java.awt.Color; import java.util.Map; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/ThreadUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadUpdateEventHelper.java similarity index 94% rename from src/main/java/org/papertrail/listeners/audit/helper/ThreadUpdateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadUpdateEventHelper.java index f42c076b..d8dc1e67 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/ThreadUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadUpdateEventHelper.java @@ -1,5 +1,8 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.thread; +import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; +import io.github.eggy03.papertrail.bot.commons.utilities.DurationFormatter; +import io.github.eggy03.papertrail.bot.commons.utilities.TypeResolver; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; @@ -9,9 +12,6 @@ import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.concrete.ThreadChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; -import org.papertrail.commons.utilities.BooleanFormatter; -import org.papertrail.commons.utilities.DurationFormatter; -import org.papertrail.commons.utilities.TypeResolver; import java.awt.Color; import java.util.Map; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/WebhookCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookCreateEventHelper.java similarity index 97% rename from src/main/java/org/papertrail/listeners/audit/helper/WebhookCreateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookCreateEventHelper.java index 9c8be51b..e30241c1 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/WebhookCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookCreateEventHelper.java @@ -1,4 +1,4 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.webhook; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/WebhookRemoveEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookRemoveEventHelper.java similarity index 97% rename from src/main/java/org/papertrail/listeners/audit/helper/WebhookRemoveEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookRemoveEventHelper.java index 4e185718..a3660003 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/WebhookRemoveEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookRemoveEventHelper.java @@ -1,4 +1,4 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.webhook; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/org/papertrail/listeners/audit/helper/WebhookUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookUpdateEventHelper.java similarity index 97% rename from src/main/java/org/papertrail/listeners/audit/helper/WebhookUpdateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookUpdateEventHelper.java index 6f9102b5..67217f2b 100644 --- a/src/main/java/org/papertrail/listeners/audit/helper/WebhookUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookUpdateEventHelper.java @@ -1,4 +1,4 @@ -package org.papertrail.listeners.audit.helper; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.webhook; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/org/papertrail/listeners/audit/setup/AuditLogSetupCommandListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/setup/AuditLogSetupCommandListener.java similarity index 98% rename from src/main/java/org/papertrail/listeners/audit/setup/AuditLogSetupCommandListener.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/setup/AuditLogSetupCommandListener.java index 11dbb0ee..6dd6b706 100644 --- a/src/main/java/org/papertrail/listeners/audit/setup/AuditLogSetupCommandListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/setup/AuditLogSetupCommandListener.java @@ -1,5 +1,6 @@ -package org.papertrail.listeners.audit.setup; +package io.github.eggy03.papertrail.bot.listeners.audit.setup; +import io.github.eggy03.papertrail.bot.commons.utilities.EnvConfig; import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; import io.github.eggy03.papertrail.sdk.entity.AuditLogRegistrationEntity; import net.dv8tion.jda.api.EmbedBuilder; @@ -11,7 +12,6 @@ import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; -import org.papertrail.commons.utilities.EnvConfig; import java.awt.Color; import java.util.Optional; diff --git a/src/main/java/org/papertrail/listeners/message/event/MessageLogListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/event/MessageLogListener.java similarity index 98% rename from src/main/java/org/papertrail/listeners/message/event/MessageLogListener.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/message/event/MessageLogListener.java index 025d1bf1..122355f4 100644 --- a/src/main/java/org/papertrail/listeners/message/event/MessageLogListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/event/MessageLogListener.java @@ -1,6 +1,7 @@ -package org.papertrail.listeners.message.event; +package io.github.eggy03.papertrail.bot.listeners.message.event; import com.google.common.base.Splitter; +import io.github.eggy03.papertrail.bot.commons.utilities.EnvConfig; import io.github.eggy03.papertrail.sdk.client.MessageLogContentClient; import io.github.eggy03.papertrail.sdk.client.MessageLogRegistrationClient; import io.github.eggy03.papertrail.sdk.entity.MessageLogContentEntity; @@ -15,7 +16,6 @@ import net.dv8tion.jda.api.events.message.MessageUpdateEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; import org.jetbrains.annotations.NotNull; -import org.papertrail.commons.utilities.EnvConfig; import java.awt.Color; import java.time.Instant; diff --git a/src/main/java/org/papertrail/listeners/message/setup/MessageLogSetupCommandListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/setup/MessageLogSetupCommandListener.java similarity index 98% rename from src/main/java/org/papertrail/listeners/message/setup/MessageLogSetupCommandListener.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/message/setup/MessageLogSetupCommandListener.java index 0eced335..f062531c 100644 --- a/src/main/java/org/papertrail/listeners/message/setup/MessageLogSetupCommandListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/setup/MessageLogSetupCommandListener.java @@ -1,5 +1,6 @@ -package org.papertrail.listeners.message.setup; +package io.github.eggy03.papertrail.bot.listeners.message.setup; +import io.github.eggy03.papertrail.bot.commons.utilities.EnvConfig; import io.github.eggy03.papertrail.sdk.client.MessageLogRegistrationClient; import io.github.eggy03.papertrail.sdk.entity.MessageLogRegistrationEntity; import net.dv8tion.jda.api.EmbedBuilder; @@ -11,7 +12,6 @@ import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; -import org.papertrail.commons.utilities.EnvConfig; import java.awt.Color; import java.util.Optional; diff --git a/src/main/java/org/papertrail/listeners/misc/ActivityUpdateListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/ActivityUpdateListener.java similarity index 95% rename from src/main/java/org/papertrail/listeners/misc/ActivityUpdateListener.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/ActivityUpdateListener.java index 2aa21e13..9f48a287 100644 --- a/src/main/java/org/papertrail/listeners/misc/ActivityUpdateListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/ActivityUpdateListener.java @@ -1,4 +1,4 @@ -package org.papertrail.listeners.misc; +package io.github.eggy03.papertrail.bot.listeners.misc; import net.dv8tion.jda.api.entities.Activity; import net.dv8tion.jda.api.events.guild.GuildJoinEvent; diff --git a/src/main/java/org/papertrail/listeners/misc/BotSetupInstructionCommandListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/BotSetupInstructionCommandListener.java similarity index 95% rename from src/main/java/org/papertrail/listeners/misc/BotSetupInstructionCommandListener.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/BotSetupInstructionCommandListener.java index 423b1700..ca4b5a9e 100644 --- a/src/main/java/org/papertrail/listeners/misc/BotSetupInstructionCommandListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/BotSetupInstructionCommandListener.java @@ -1,10 +1,10 @@ -package org.papertrail.listeners.misc; +package io.github.eggy03.papertrail.bot.listeners.misc; +import io.github.eggy03.papertrail.bot.commons.constant.ProjectInfo; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; -import org.papertrail.commons.constant.ProjectInfo; import java.awt.Color; import java.time.Instant; diff --git a/src/main/java/org/papertrail/listeners/misc/SelfKickListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/SelfKickListener.java similarity index 90% rename from src/main/java/org/papertrail/listeners/misc/SelfKickListener.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/SelfKickListener.java index f876a38a..cfcc6395 100644 --- a/src/main/java/org/papertrail/listeners/misc/SelfKickListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/SelfKickListener.java @@ -1,12 +1,12 @@ -package org.papertrail.listeners.misc; +package io.github.eggy03.papertrail.bot.listeners.misc; +import io.github.eggy03.papertrail.bot.commons.utilities.EnvConfig; import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; import io.github.eggy03.papertrail.sdk.client.MessageLogRegistrationClient; import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.events.guild.GuildLeaveEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; import org.jetbrains.annotations.NotNull; -import org.papertrail.commons.utilities.EnvConfig; import java.util.concurrent.Executor; diff --git a/src/main/java/org/papertrail/listeners/misc/ServerStatCommandListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/ServerStatCommandListener.java similarity index 96% rename from src/main/java/org/papertrail/listeners/misc/ServerStatCommandListener.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/ServerStatCommandListener.java index 7e031346..370424ce 100644 --- a/src/main/java/org/papertrail/listeners/misc/ServerStatCommandListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/ServerStatCommandListener.java @@ -1,5 +1,6 @@ -package org.papertrail.listeners.misc; +package io.github.eggy03.papertrail.bot.listeners.misc; +import io.github.eggy03.papertrail.bot.commons.utilities.DurationFormatter; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.OnlineStatus; import net.dv8tion.jda.api.entities.Guild; @@ -7,7 +8,6 @@ import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; -import org.papertrail.commons.utilities.DurationFormatter; import java.awt.Color; import java.time.Instant; diff --git a/src/main/java/org/papertrail/listeners/misc/SlashCommandRegistrationListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/SlashCommandRegistrationListener.java similarity index 96% rename from src/main/java/org/papertrail/listeners/misc/SlashCommandRegistrationListener.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/SlashCommandRegistrationListener.java index a192567c..1f9024ea 100644 --- a/src/main/java/org/papertrail/listeners/misc/SlashCommandRegistrationListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/SlashCommandRegistrationListener.java @@ -1,4 +1,4 @@ -package org.papertrail.listeners.misc; +package io.github.eggy03.papertrail.bot.listeners.misc; import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.events.session.ReadyEvent; diff --git a/src/main/java/org/papertrail/main/ConnectionInitializer.java b/src/main/java/io/github/eggy03/papertrail/bot/main/ConnectionInitializer.java similarity index 90% rename from src/main/java/org/papertrail/main/ConnectionInitializer.java rename to src/main/java/io/github/eggy03/papertrail/bot/main/ConnectionInitializer.java index bbc08a72..84cae55d 100644 --- a/src/main/java/org/papertrail/main/ConnectionInitializer.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/main/ConnectionInitializer.java @@ -1,5 +1,7 @@ -package org.papertrail.main; +package io.github.eggy03.papertrail.bot.main; +import io.github.eggy03.papertrail.bot.commons.utilities.EnvConfig; +import io.github.eggy03.papertrail.bot.listeners.misc.ActivityUpdateListener; import lombok.Getter; import net.dv8tion.jda.api.OnlineStatus; import net.dv8tion.jda.api.requests.GatewayIntent; @@ -8,8 +10,6 @@ import net.dv8tion.jda.api.utils.ChunkingFilter; import net.dv8tion.jda.api.utils.MemberCachePolicy; import net.dv8tion.jda.api.utils.cache.CacheFlag; -import org.papertrail.commons.utilities.EnvConfig; -import org.papertrail.listeners.misc.ActivityUpdateListener; /* * This class initializes the connection to discord and configures all the necessary intents diff --git a/src/main/java/org/papertrail/main/Start.java b/src/main/java/io/github/eggy03/papertrail/bot/main/Start.java similarity index 65% rename from src/main/java/org/papertrail/main/Start.java rename to src/main/java/io/github/eggy03/papertrail/bot/main/Start.java index 699dfcf8..c62fe7e0 100644 --- a/src/main/java/org/papertrail/main/Start.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/main/Start.java @@ -1,20 +1,20 @@ -package org.papertrail.main; +package io.github.eggy03.papertrail.bot.main; import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpHandler; import com.sun.net.httpserver.HttpServer; +import io.github.eggy03.papertrail.bot.listeners.audit.event.AuditLogEventListener; +import io.github.eggy03.papertrail.bot.listeners.audit.event.guild.GuildBoostEventListener; +import io.github.eggy03.papertrail.bot.listeners.audit.event.guild.GuildMemberJoinAndLeaveEventListener; +import io.github.eggy03.papertrail.bot.listeners.audit.event.guild.GuildPollEventListener; +import io.github.eggy03.papertrail.bot.listeners.audit.event.guild.GuildVoiceEventListener; +import io.github.eggy03.papertrail.bot.listeners.audit.setup.AuditLogSetupCommandListener; +import io.github.eggy03.papertrail.bot.listeners.message.event.MessageLogListener; +import io.github.eggy03.papertrail.bot.listeners.message.setup.MessageLogSetupCommandListener; +import io.github.eggy03.papertrail.bot.listeners.misc.BotSetupInstructionCommandListener; +import io.github.eggy03.papertrail.bot.listeners.misc.SelfKickListener; +import io.github.eggy03.papertrail.bot.listeners.misc.ServerStatCommandListener; import net.dv8tion.jda.api.sharding.ShardManager; -import org.papertrail.listeners.audit.event.AuditLogEventListener; -import org.papertrail.listeners.audit.event.GuildBoostEventListener; -import org.papertrail.listeners.audit.event.GuildMemberJoinAndLeaveEventListener; -import org.papertrail.listeners.audit.event.GuildPollEventListener; -import org.papertrail.listeners.audit.event.GuildVoiceEventListener; -import org.papertrail.listeners.audit.setup.AuditLogSetupCommandListener; -import org.papertrail.listeners.message.event.MessageLogListener; -import org.papertrail.listeners.message.setup.MessageLogSetupCommandListener; -import org.papertrail.listeners.misc.BotSetupInstructionCommandListener; -import org.papertrail.listeners.misc.SelfKickListener; -import org.papertrail.listeners.misc.ServerStatCommandListener; import java.io.IOException; import java.net.InetSocketAddress; From 35a4dec02c7679a961b626bfb14fed6a1ba1deae Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Sun, 8 Feb 2026 10:58:42 +0530 Subject: [PATCH 009/104] refactor(audit-events): improve moderation log embed clarity - Streamline embed construction and asynchronous user retrieval in `KickEventHelper.java` and `UnbanEventHelper.java`. - Enhance readability of embed fields and descriptions, including renaming `reason` in `BanEventHelper.java`. Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../audit/helper/ban/BanEventHelper.java | 5 +- .../audit/helper/ban/KickEventHelper.java | 54 +++++++++---------- .../audit/helper/ban/UnbanEventHelper.java | 54 +++++++++---------- 3 files changed, 53 insertions(+), 60 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/ban/BanEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/ban/BanEventHelper.java index 1e1b8528..5544ec44 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/ban/BanEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/ban/BanEventHelper.java @@ -18,8 +18,9 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT User moderator = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableModerator = (moderator != null ? moderator.getAsMention() : ale.getUserId()); - String reason = ale.getReason()==null ? "No Reason Provided" : ale.getReason(); + String reasonForBan = ale.getReason()==null ? "No Reason Provided" : ale.getReason(); + // A REST Action is required here because banned members are not cached event.getJDA().retrieveUserById(ale.getTargetId()).queue(bannedUser -> { String mentionableBannedUser = bannedUser!=null ? bannedUser.getAsMention() : ale.getTargetId(); @@ -33,7 +34,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); eb.addField("Banned Member", "╰┈➤"+mentionableBannedUser,false); - eb.addField("Ban Reason", "╰┈➤" +reason, false); + eb.addField("Ban Reason", "╰┈➤" + reasonForBan, false); eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/ban/KickEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/ban/KickEventHelper.java index a1f3cd6c..3917802d 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/ban/KickEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/ban/KickEventHelper.java @@ -3,7 +3,6 @@ import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -17,38 +16,33 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Kick Event"); + User moderator = ale.getJDA().getUserById(ale.getUserIdLong()); + String mentionableModerator = (moderator != null ? moderator.getAsMention() : ale.getUserId()); + String reasonForKick = ale.getReason()==null ? "No Reason Provided" : ale.getReason(); - User executor = ale.getJDA().getUserById(ale.getUserIdLong()); - String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); + // A REST Action is required here because kicked members are not cached + event.getJDA().retrieveUserById(ale.getTargetId()).queue(kickedUser -> { - eb.setDescription("👤 **By**: " + mentionableExecutor + "\nℹ️ The following member was kicked"); - eb.setColor(Color.ORANGE); - eb.addField("Action Type", String.valueOf(ale.getType()), true); - eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); + String mentionableKickedUser = kickedUser!=null ? kickedUser.getAsMention() : ale.getTargetId(); - String moderatorId = ale.getUserId(); - String targetId = ale.getTargetId(); - String reason = ale.getReason(); + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Kick Event"); + eb.setDescription("ℹ️ The following member was kicked by: "+mentionableModerator); + eb.setColor(Color.ORANGE); - // fixme -> find a way to not use REST Action - // A REST Action is required here because kicked members are not cached - event.getJDA().retrieveUserById(moderatorId).queue(moderator -> - event.getJDA().retrieveUserById(targetId).queue(target -> { - // if user objects are null we cannot use their mention so we instead use their IDs instead since they will never be null - eb.addField("👢 A member/application has been kicked", "╰┈➤" + (moderator != null ? moderator.getAsMention() : moderatorId) + " has kicked " + (target != null ? target.getAsMention() : targetId), false); - eb.addField("📝 With Reason", "╰┈➤" + (reason != null ? reason : "No Reason Provided"), false); - - eb.setFooter("Audit Log Entry ID: " + ale.getId()); - eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - - TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); - } - }) - ); + eb.addField("Action Type", String.valueOf(ale.getType()), true); + eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); + + eb.addField("Kicked Member/Application", "╰┈➤" + mentionableKickedUser, false); + eb.addField("Reason", "╰┈➤" + reasonForKick, false); + + eb.setFooter("Audit Log Entry ID: " + ale.getId()); + eb.setTimestamp(ale.getTimeCreated()); + + TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); + if (sendingChannel != null && sendingChannel.canTalk()) { + sendingChannel.sendMessageEmbeds(eb.build()).queue(); + } + }); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/ban/UnbanEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/ban/UnbanEventHelper.java index 1dfac316..beeb228c 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/ban/UnbanEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/ban/UnbanEventHelper.java @@ -17,33 +17,31 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Member Unban Event"); - - User executor = ale.getJDA().getUserById(ale.getUserIdLong()); - String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - - eb.setDescription("👤 **By**: " + mentionableExecutor + "\nℹ️ The following user was un-banned"); - eb.setColor(Color.GREEN); - eb.addField("Action Type", String.valueOf(ale.getType()), true); - eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - - String moderatorId = ale.getUserId(); - String targetId = ale.getTargetId(); - - event.getJDA().retrieveUserById(moderatorId).queue(moderator -> - event.getJDA().retrieveUserById(targetId).queue(target -> { - // if user objects are null we cannot use their mention so we instead use their IDs instead since they will never be null - eb.addField("🔓 A member has been un-banned", "╰┈➤" + (moderator != null ? moderator.getAsMention() : moderatorId) + " has un-banned " + (target != null ? target.getAsMention() : targetId), false); - - eb.setFooter("Audit Log Entry ID: " + ale.getId()); - eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); - } - }) - ); + User moderator = ale.getJDA().getUserById(ale.getUserIdLong()); + String mentionableModerator = (moderator != null ? moderator.getAsMention() : ale.getUserId()); + + event.getJDA().retrieveUserById(ale.getTargetId()).queue(unbannedUser -> { + + String mentionableUnbannedUser = unbannedUser!=null ? unbannedUser.getAsMention() : ale.getTargetId(); + + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Member Unban Event"); + eb.setDescription("ℹ️ The following user was un-banned by: "+mentionableModerator); + eb.setColor(Color.GREEN); + + eb.addField("Action Type", String.valueOf(ale.getType()), true); + eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); + + eb.addField("Un-banned User", "╰┈➤" + mentionableUnbannedUser, false); + + eb.setFooter("Audit Log Entry ID: " + ale.getId()); + eb.setTimestamp(ale.getTimeCreated()); + + MessageEmbed mb = eb.build(); + TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); + if (sendingChannel != null && sendingChannel.canTalk()) { + sendingChannel.sendMessageEmbeds(mb).queue(); + } + }); } } From 28706fd18ada062d65bcfb3b72cfed613a665a31 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Sun, 8 Feb 2026 11:30:41 +0530 Subject: [PATCH 010/104] refactor(audit-log-helper): improve channel create event embed fields - Use `forEach` loop for processing audit log changes - Update embed field names for clarity and consistency - Remove unused imports: `AuditLogChange`, `MessageEmbed`, `Map` - Enhance default handling of unknown audit log changes - Streamline embed building process Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../channel/ChannelCreateEventHelper.java | 71 ++++++++----------- 1 file changed, 29 insertions(+), 42 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelCreateEventHelper.java index e0f41d6a..0be5d4ab 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelCreateEventHelper.java @@ -5,16 +5,13 @@ import io.github.eggy03.papertrail.bot.commons.utilities.TypeResolver; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import java.awt.Color; -import java.util.Map; @UtilityClass public class ChannelCreateEventHelper { @@ -23,71 +20,61 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Channel Create Event"); - User executor = ale.getJDA().getUserById(ale.getUserIdLong()); - GuildChannel targetChannel = ale.getGuild().getGuildChannelById(ale.getTargetId()); - String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); + + GuildChannel targetChannel = ale.getGuild().getGuildChannelById(ale.getTargetId()); String mentionableTargetChannel = (targetChannel !=null ? targetChannel.getAsMention() : ale.getTargetId()); + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Channel Create Event"); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ The following channel was created"); + eb.setDescription("ℹ️ The following channel was created by: "+mentionableExecutor); eb.setColor(Color.GREEN); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - for(Map.Entry changes: ale.getChanges().entrySet()) { + ale.getChanges().forEach((changeKey, changeValue)-> { - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); + Object oldValue = changeValue.getOldValue(); + Object newValue = changeValue.getNewValue(); - switch(change) { - case "user_limit": - eb.addField("👥 User Limit", "╰┈➤"+ TypeResolver.formatNumberOrUnlimited(newValue), false); - break; + switch (changeKey) { + case "user_limit" -> eb.addField("User Limit", "╰┈➤"+ TypeResolver.formatNumberOrUnlimited(newValue), false); - case "rate_limit_per_user": - eb.addField("🕓 Slowmode", "╰┈➤"+ DurationFormatter.formatSeconds(newValue), false); - break; + case "rate_limit_per_user" -> eb.addField("Slow Mode", "╰┈➤"+ DurationFormatter.formatSeconds(newValue), false); - case "type": - eb.addField("🗨️ Channel Type", "╰┈➤"+TypeResolver.channelTypeResolver(newValue), false); - break; + case "type" -> eb.addField("Channel Type", "╰┈➤"+TypeResolver.channelTypeResolver(newValue), false); - case "nsfw": - eb.addField("🔞 NSFW", "╰┈➤"+ BooleanFormatter.formatToEmoji(newValue), false); - break; + case "nsfw" -> eb.addField("Is NSFW", "╰┈➤"+ BooleanFormatter.formatToYesOrNo(newValue), false); - case "permission_overwrites", "flags": - break; + case "name" -> { + eb.addField("Channel Name", "╰┈➤"+newValue, false); + eb.addField("Channel Mention", "╰┈➤"+mentionableTargetChannel, true); + } - case "name": - eb.addField("🏷️ Channel Name", "╰┈➤"+newValue, false); - // provide a channel link next to its name. This mentionable channel can be obtained via the target ID of ALE - eb.addField("🔗 Channel Link", "╰┈➤"+mentionableTargetChannel, true); - break; + case "bitrate" -> eb.addField("Voice Channel Bitrate", "╰┈➤"+TypeResolver.voiceChannelBitrateResolver(newValue), false); - case "bitrate": - eb.addField("🎚️ Voice Channel Bitrate", "╰┈➤"+TypeResolver.voiceChannelBitrateResolver(newValue), false); - break; + case "permission_overwrites", "flags", "template", "available_tags" -> { + // the first two are for all types of channels and may stay empty during creation events + // the second two are forum only cases which stay empty during creation + } - default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); + default -> { + eb.addField(changeKey, "OLD_VALUE: "+oldValue, false); + eb.addField(changeKey, "NEW_VALUE: "+newValue, false); + } } - } + }); + eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } From fd78576c984738958451434391e331ad5a626d27 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Sun, 8 Feb 2026 11:53:52 +0530 Subject: [PATCH 011/104] refactor(channel-delete-event): improve channel delete event helper - Modernize audit log change processing using `forEach` and Java 14+ switch expressions - Streamline embed construction by directly building and sending the embed - Refine embed description and field names for clarity Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../channel/ChannelDeleteEventHelper.java | 61 +++++++++---------- 1 file changed, 29 insertions(+), 32 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelDeleteEventHelper.java index e05ef72f..54f5a2af 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelDeleteEventHelper.java @@ -3,16 +3,13 @@ import io.github.eggy03.papertrail.bot.commons.utilities.TypeResolver; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import java.awt.Color; -import java.util.Map; @UtilityClass public class ChannelDeleteEventHelper { @@ -21,54 +18,54 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Channel Delete Event"); - User executor = ale.getJDA().getUserById(ale.getUserIdLong()); + String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); + GuildChannel targetChannel = ale.getJDA().getGuildChannelById(ale.getTargetIdLong()); - String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - String mentionableTargetChannel = (targetChannel !=null ? targetChannel.getAsMention() : ale.getTargetId()); // this will return only the ID cause the channel with the ID has been deleted + String mentionableTargetChannel = (targetChannel != null ? targetChannel.getAsMention() : ale.getTargetId()); // this will return only the ID cause the channel with the ID has been deleted - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ The following channel was deleted"); + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Channel Delete Event"); + + eb.setDescription("ℹ️ The following channel was deleted by: " + mentionableExecutor); eb.setColor(Color.RED); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); + ale.getChanges().forEach((changeKey, changeValue) -> { - for(Map.Entry changes: ale.getChanges().entrySet()) { - - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); + Object oldValue = changeValue.getOldValue(); + Object newValue = changeValue.getNewValue(); - switch(change) { - case "name": - eb.addField("🏷️ Name", "╰┈➤"+oldValue, false); - break; + switch (changeKey) { + case "name" -> eb.addField("Name", "╰┈➤" + oldValue, false); - case "type": - eb.addField("🗨️ Type", "╰┈➤"+ TypeResolver.channelTypeResolver(oldValue), false); - break; + case "type" -> eb.addField("🗨️ Type", "╰┈➤" + TypeResolver.channelTypeResolver(oldValue), false); - case "user_limit", "rate_limit_per_user", "nsfw", "permission_overwrites", "video_quality_mode", "flags", "bitrate", "rtc_region": - break; // they're null during channel delete events + case "user_limit", "rate_limit_per_user", "default_thread_rate_limit_per_user", "nsfw", + "permission_overwrites", "video_quality_mode", "flags", "bitrate", "rtc_region", "template", + "available_tags", "topic", "default_auto_archive_duration", "default_reaction_emoji" -> { + // not strictly needed to be displayed + // not all cases are available for all types of channels + } - default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); + default -> { + eb.addField(changeKey, "OLD_VALUE: " + oldValue, false); + eb.addField(changeKey, "NEW_VALUE: " + newValue, false); + } } - } + }); - eb.addField("🆔 Deleted Channel ID", "╰┈➤"+mentionableTargetChannel, false); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); - eb.setTimestamp(ale.getTimeCreated()); + eb.addField("🆔 Deleted Channel ID", "╰┈➤" + mentionableTargetChannel, false); - MessageEmbed mb = eb.build(); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); + eb.setTimestamp(ale.getTimeCreated()); TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + if (sendingChannel != null && sendingChannel.canTalk()) { + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } From a4846fa7b2a4219a6a0eb959ddf4051feb3deee0 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Sun, 8 Feb 2026 12:11:47 +0530 Subject: [PATCH 012/104] refactor(audit): streamline channel delete event fields MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove verbose fields from channel delete audit log embed - Omit less critical channel properties like `user_limit` and `nsfw` - Remove "🗨️" emoji from "Type" field name - Omit all other fields by default for a cleaner output Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../helper/channel/ChannelDeleteEventHelper.java | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelDeleteEventHelper.java index 54f5a2af..1cdfb8e9 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelDeleteEventHelper.java @@ -37,23 +37,14 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT ale.getChanges().forEach((changeKey, changeValue) -> { Object oldValue = changeValue.getOldValue(); - Object newValue = changeValue.getNewValue(); switch (changeKey) { case "name" -> eb.addField("Name", "╰┈➤" + oldValue, false); - case "type" -> eb.addField("🗨️ Type", "╰┈➤" + TypeResolver.channelTypeResolver(oldValue), false); - - case "user_limit", "rate_limit_per_user", "default_thread_rate_limit_per_user", "nsfw", - "permission_overwrites", "video_quality_mode", "flags", "bitrate", "rtc_region", "template", - "available_tags", "topic", "default_auto_archive_duration", "default_reaction_emoji" -> { - // not strictly needed to be displayed - // not all cases are available for all types of channels - } + case "type" -> eb.addField("Type", "╰┈➤" + TypeResolver.channelTypeResolver(oldValue), false); default -> { - eb.addField(changeKey, "OLD_VALUE: " + oldValue, false); - eb.addField(changeKey, "NEW_VALUE: " + newValue, false); + // omit all other fields } } }); From 6dbdd54034b29bde9c3be054e75f00944caf45bb Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Sun, 8 Feb 2026 12:14:31 +0530 Subject: [PATCH 013/104] style(audit-log): remove emoji from deleted channel ID field MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove the `🆔` emoji from the "Deleted Channel ID" field in `ChannelDeleteEventHelper.java`. - This improves consistency of embed field titles. Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../audit/helper/channel/ChannelDeleteEventHelper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelDeleteEventHelper.java index 1cdfb8e9..90d082ac 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelDeleteEventHelper.java @@ -49,7 +49,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT } }); - eb.addField("🆔 Deleted Channel ID", "╰┈➤" + mentionableTargetChannel, false); + eb.addField("Deleted Channel ID", "╰┈➤" + mentionableTargetChannel, false); eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); From 2f1c36d26b8064aebe974c7fd7aee976f38f9e52 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Sun, 8 Feb 2026 12:59:56 +0530 Subject: [PATCH 014/104] refactor(audit-log-embeds): improve channel update event embed formatting - Refactor `AuditLogChange` iteration to `forEach` loop - Remove emojis from embed field titles - Update `nsfw` field names and use `BooleanFormatter.formatToYesOrNo` - Add handling for `available_tags` and `default_reaction_emoji` changes - Enhance default change display to show old and new values - Rephrase embed description for clarity Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../channel/ChannelUpdateEventHelper.java | 118 ++++++++++-------- 1 file changed, 65 insertions(+), 53 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelUpdateEventHelper.java index 0a04ae07..1323c98f 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelUpdateEventHelper.java @@ -5,7 +5,6 @@ import io.github.eggy03.papertrail.bot.commons.utilities.TypeResolver; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; @@ -14,7 +13,6 @@ import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import java.awt.Color; -import java.util.Map; @UtilityClass public class ChannelUpdateEventHelper { @@ -23,89 +21,103 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Channel Update Event"); - User executor = ale.getJDA().getUserById(ale.getUserIdLong()); - GuildChannel targetChannel = event.getGuild().getGuildChannelById(ale.getTargetId()); - String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); + + GuildChannel targetChannel = event.getGuild().getGuildChannelById(ale.getTargetId()); String mentionableTargetChannel = (targetChannel !=null ? targetChannel.getAsMention() : ale.getTargetId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ The following channel was updated"); + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Channel Update Event"); + + eb.setDescription("ℹ️ The following channel was updated by: "+mentionableExecutor); eb.setColor(Color.YELLOW); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); eb.addBlankField(true); - for(Map.Entry changes: ale.getChanges().entrySet()) { + ale.getChanges().forEach((changeKey, changeValue)-> { + + Object oldValue = changeValue.getOldValue(); + Object newValue = changeValue.getNewValue(); - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); + switch (changeKey) { - switch(change) { - case "user_limit": - eb.addField("👥 Old User Limit", "╰┈➤"+ TypeResolver.formatNumberOrUnlimited(oldValue), true); - eb.addField("👥 New User Limit", "╰┈➤"+TypeResolver.formatNumberOrUnlimited(newValue), true); + case "user_limit" -> { + eb.addField("Old User Limit", "╰┈➤"+ TypeResolver.formatNumberOrUnlimited(oldValue), true); + eb.addField("New User Limit", "╰┈➤"+TypeResolver.formatNumberOrUnlimited(newValue), true); eb.addBlankField(true); - break; + } - case "rate_limit_per_user": - eb.addField("🕓 Old Slowmode Value", "╰┈➤"+ DurationFormatter.formatSeconds(oldValue), true); - eb.addField("🕓 New Slowmode Value", "╰┈➤"+DurationFormatter.formatSeconds(newValue), true); + case "rate_limit_per_user" -> { + eb.addField("Old Slow mode Value", "╰┈➤"+ DurationFormatter.formatSeconds(oldValue), true); + eb.addField("New Slow mode Value", "╰┈➤"+DurationFormatter.formatSeconds(newValue), true); eb.addBlankField(true); - break; + } - case "nsfw": - eb.addField("🔞 Old NSFW Settings", "╰┈➤"+ BooleanFormatter.formatToEmoji(oldValue), true); - eb.addField("🔞 New NSFW Settings", "╰┈➤"+BooleanFormatter.formatToEmoji(newValue), true); + case "default_thread_rate_limit_per_user" -> { + eb.addField("Old Thread Slow mode Value", "╰┈➤"+ DurationFormatter.formatSeconds(oldValue), true); + eb.addField("New Thread Slow mode Value", "╰┈➤"+DurationFormatter.formatSeconds(newValue), true); eb.addBlankField(true); - break; + } - case "video_quality_mode": - eb.addField("🎥 Old Video Quality Mode", "╰┈➤"+TypeResolver.videoQualityModeResolver(oldValue), true); - eb.addField("🎥 New Video Quality Mode", "╰┈➤"+TypeResolver.videoQualityModeResolver(newValue), true); + case "nsfw" -> { + eb.addField("Was NSFW", "╰┈➤"+ BooleanFormatter.formatToYesOrNo(oldValue), true); + eb.addField("Is NSFW", "╰┈➤"+BooleanFormatter.formatToYesOrNo(newValue), true); eb.addBlankField(true); - break; + } - case "name": - eb.addField("🏷️ Old Channel Name", "╰┈➤"+oldValue, true); - eb.addField("🏷️ New Channel Name", "╰┈➤"+newValue, true); + case "video_quality_mode" -> { + eb.addField("Old Video Quality Mode", "╰┈➤"+TypeResolver.videoQualityModeResolver(oldValue), true); + eb.addField("New Video Quality Mode", "╰┈➤"+TypeResolver.videoQualityModeResolver(newValue), true); eb.addBlankField(true); - break; + } - case "bitrate": - eb.addField("🎚️ Old Voice Channel Bitrate", "╰┈➤"+TypeResolver.voiceChannelBitrateResolver(oldValue), true); - eb.addField("🎚️ New Voice Channel Bitrate", "╰┈➤"+TypeResolver.voiceChannelBitrateResolver(newValue), true); + case "name" -> { + eb.addField("Old Channel Name", "╰┈➤"+oldValue, true); + eb.addField("New Channel Name", "╰┈➤"+newValue, true); eb.addBlankField(true); - break; + } - case "rtc_region": - eb.addField("🌐 Old Region", "╰┈➤"+oldValue, true); - eb.addField("🌐 New Region", "╰┈➤"+newValue, true); + case "bitrate" -> { + eb.addField("Old Voice Channel Bitrate", "╰┈➤"+TypeResolver.voiceChannelBitrateResolver(oldValue), true); + eb.addField("New Voice Channel Bitrate", "╰┈➤"+TypeResolver.voiceChannelBitrateResolver(newValue), true); eb.addBlankField(true); - break; + } - case "topic": - eb.addField("🗒️ Old Topic", "╰┈➤"+oldValue, true); - eb.addField("🗒️ New topic", "╰┈➤"+newValue, true); + case "rtc_region" -> { + eb.addField("Old Region", "╰┈➤"+oldValue, true); + eb.addField("New Region", "╰┈➤"+newValue, true); eb.addBlankField(true); - break; + } - case "default_auto_archive_duration": - eb.addField("🕒 Old Hide After Inactivity Timer", "╰┈➤"+DurationFormatter.formatMinutes(oldValue), true); - eb.addField("🕒 New Hide After Inactivity Timer", "╰┈➤"+DurationFormatter.formatMinutes(newValue), true); + case "topic" -> { + eb.addField("Old Topic", "╰┈➤"+oldValue, true); + eb.addField("New topic", "╰┈➤"+newValue, true); eb.addBlankField(true); - break; + } + + case "default_auto_archive_duration" -> { + eb.addField("Old Hide After Inactivity Timer", "╰┈➤"+DurationFormatter.formatMinutes(oldValue), true); + eb.addField("New Hide After Inactivity Timer", "╰┈➤"+DurationFormatter.formatMinutes(newValue), true); + eb.addBlankField(true); + } + + case "available_tags" -> eb.addField("Tags", "╰┈➤The channel's tags were updated", false); + case "default_reaction_emoji" -> eb.addField("Reaction Emoji", "╰┈➤Default reaction emoji was updated", false); + + default -> { + eb.addField(changeKey, "OLD_VALUE: "+oldValue, true); + eb.addField(changeKey, "NEW_VALUE: "+newValue, true); + eb.addBlankField(true); + } - default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); } - } + }); + // mention the channel that got updated, id can be exposed via ALE's TargetID - eb.addField("💬 Target Channel", "╰┈➤"+mentionableTargetChannel, false); + eb.addField("Target Channel", "╰┈➤"+mentionableTargetChannel, false); eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); From 446a964214fedc0e5d8dfe6676ac517741e07ff0 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Sun, 8 Feb 2026 16:02:13 +0530 Subject: [PATCH 015/104] refactor(channel-overrides): centralize channel override utility methods - Introduce `ChannelUtils` to consolidate logic for resolving channel override permissions, types, and targets. - Refactor `ChannelOverride*EventHelper` classes to use `ChannelUtils` for improved consistency and maintainability. Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../bot/commons/utilities/TypeResolver.java | 18 ---- .../ChannelOverrideCreateEventHelper.java | 79 +++++--------- .../ChannelOverrideDeleteEventHelper.java | 75 +++++-------- .../ChannelOverrideUpdateEventHelper.java | 100 +++++++++--------- .../helper/channel/utils/ChannelUtils.java | 77 ++++++++++++++ 5 files changed, 176 insertions(+), 173 deletions(-) create mode 100644 src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/TypeResolver.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/TypeResolver.java index 278fa08e..101c5ad6 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/TypeResolver.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/TypeResolver.java @@ -93,24 +93,6 @@ public static String voiceChannelBitrateResolver(Object bitrate) { } - public static String channelOverrideTypeResolver(Object type) { - if (type == null) { - return "ERROR: Value Returned Null"; - } - - try { - int typeInt = Integer.parseInt(type.toString()); - return switch (typeInt) { - case 0 -> "Role"; - case 1 -> "Member/Application"; - default -> "Unknown"; - }; - } catch (NumberFormatException e) { - return "Type Cannot Be Parsed"; - } - - } - public static String automodEventTypeResolver(Object type) { if (type == null) { return "ERROR: Value Returned Null"; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideCreateEventHelper.java index 3d9377ce..da9c6137 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideCreateEventHelper.java @@ -1,21 +1,15 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.channel; -import io.github.eggy03.papertrail.bot.commons.utilities.PermissionResolver; -import io.github.eggy03.papertrail.bot.commons.utilities.TypeResolver; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.Member; -import net.dv8tion.jda.api.entities.MessageEmbed; -import net.dv8tion.jda.api.entities.Role; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import java.awt.Color; -import java.util.Map; @UtilityClass public class ChannelOverrideCreateEventHelper { @@ -24,77 +18,52 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Channel Override Create"); - User executor = ale.getJDA().getUserById(ale.getUserIdLong()); - GuildChannel targetChannel = event.getGuild().getGuildChannelById(ale.getTargetId()); - String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); + + GuildChannel targetChannel = event.getGuild().getGuildChannelById(ale.getTargetId()); String mentionableTargetChannel = (targetChannel !=null ? targetChannel.getAsMention() : ale.getTargetId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ The following channel overrides were created"); + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Channel Override Create"); + eb.setDescription("ℹ️ The following channel overrides were created by: "+mentionableExecutor); eb.setColor(Color.GREEN); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); + ale.getChanges().forEach((changeKey, changeValue) -> { + Object oldValue = changeValue.getOldValue(); + Object newValue = changeValue.getNewValue(); - for(Map.Entry changes: ale.getChanges().entrySet()) { - - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); - - switch(change) { - - case "type": - eb.addField("🧩 Override Type", "╰┈➤"+ TypeResolver.channelOverrideTypeResolver(newValue), false); - break; + switch (changeKey) { - case "deny": - // the oldValue will return null if a new channel is over-riden for the first time but we're not concerned with oldValue - // the new value contains the list of denied permissions the moderator sets when creating overrides for the first time - eb.addField("Denied Permissions", PermissionResolver.getParsedPermissions(newValue, "❌"), false); - break; + case "type" -> eb.addField("Override Type", "╰┈➤"+ ChannelUtils.resolveChannelOverrideTargetType(newValue), false); - case "allow": - // the oldValue will return null if a new channel is over-riden for the first time but we're not concerned with oldValue - // the new value contains the list of allowed permissions the moderator sets when creating overrides for the first time - eb.addField("Allowed Permissions", PermissionResolver.getParsedPermissions(newValue, "✅"), false); - break; + case "deny" -> eb.addField("Denied Permissions", ChannelUtils.resolvePermissions(newValue, "❌"), false); + case "allow" -> eb.addField("Allowed Permissions", ChannelUtils.resolvePermissions(newValue, "✅"), false); - case "id": - // id exposes the member/role id which for which the channel permissions are over-riden - // only one member/role permissions can be over-riden at a time - Member mb = event.getGuild().getMemberById(String.valueOf(newValue)); - Role r = event.getGuild().getRoleById(String.valueOf(newValue)); + // id exposes the member/role id which for which the channel permissions are overridden + // only one member/role permission id is fetched per loop + case "id" -> eb.addField("Target", "╰┈➤"+ChannelUtils.resolveMemberOrRole(newValue, event), false); - String mentionableRoleOrMember = ""; - if(mb!=null) { - mentionableRoleOrMember = mb.getAsMention(); - } else if (r!=null) { - mentionableRoleOrMember = r.getAsMention(); - } - eb.addField("🎭 Target", "╰┈➤"+mentionableRoleOrMember, false); - break; - - default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); + default -> { + eb.addField(changeKey, "OLD_VALUE: "+oldValue, false); + eb.addField(changeKey, "NEW_VALUE: "+newValue, false); + } } - } + }); + // add the target channel whose permissions were overridden // exposed via ALE's TargetID - eb.addField("🗨️ Target Channel", "╰┈➤"+mentionableTargetChannel, false); + eb.addField("Target Channel", "╰┈➤"+mentionableTargetChannel, false); eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideDeleteEventHelper.java index 5f422c1f..61f3015a 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideDeleteEventHelper.java @@ -1,21 +1,16 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.channel; -import io.github.eggy03.papertrail.bot.commons.utilities.PermissionResolver; -import io.github.eggy03.papertrail.bot.commons.utilities.TypeResolver; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.MessageEmbed; -import net.dv8tion.jda.api.entities.Role; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import java.awt.Color; -import java.util.Map; @UtilityClass public class ChannelOverrideDeleteEventHelper { @@ -24,67 +19,45 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Channel Override Delete"); - User executor = ale.getJDA().getUserById(ale.getUserIdLong()); - GuildChannel targetChannel = event.getGuild().getGuildChannelById(ale.getTargetId()); - String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); + + GuildChannel targetChannel = event.getGuild().getGuildChannelById(ale.getTargetId()); String mentionableTargetChannel = (targetChannel !=null ? targetChannel.getAsMention() : ale.getTargetId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ The following channel overrides were deleted"); + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Channel Override Delete"); + + eb.setDescription("ℹ️ The following channel overrides were deleted by: "+mentionableExecutor); eb.setColor(Color.RED); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); + ale.getChanges().forEach((changeKey, changeValue) -> { + Object oldValue = changeValue.getOldValue(); + Object newValue = changeValue.getNewValue(); - for(Map.Entry changes: ale.getChanges().entrySet()) { - - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); - - switch(change) { + switch (changeKey) { - case "type": - eb.addField("🧩 Override Type", "╰┈➤"+ TypeResolver.channelOverrideTypeResolver(oldValue), false); - break; + case "type" -> eb.addField("Override Type", "╰┈➤"+ ChannelUtils.resolveChannelOverrideTargetType(oldValue), false); - case "deny": - // the newValue will return null if an over-ride is deleted but we're not concerned with newValue - // the oldValue returns the permissions the channel was previously denied - eb.addField("Previously Denied Permissions", PermissionResolver.getParsedPermissions(oldValue, "❌"), false); - break; + case "deny" -> eb.addField("Denied Permissions", ChannelUtils.resolvePermissions(oldValue, "❌"), false); + case "allow" -> eb.addField("Allowed Permissions", ChannelUtils.resolvePermissions(oldValue, "✅"), false); - case "allow": - // the newValue will return null if an over-ride is deleted but we're not concerned with newValue - // the oldValue returns the permissions the channel was previously allowed - eb.addField("Previously Allowed Permissions", PermissionResolver.getParsedPermissions(oldValue, "✅"), false); - break; + // id exposes the member/role id which for which the channel permissions are overridden + // only one member/role permission id is fetched per loop + case "id" -> eb.addField("Target", "╰┈➤"+ChannelUtils.resolveMemberOrRole(oldValue, event), false); - case "id": - // id exposes the member/role id which for which the channel permissions are over-riden - Member mb = event.getGuild().getMemberById(String.valueOf(oldValue)); - Role r = event.getGuild().getRoleById(String.valueOf(oldValue)); - - String mentionableRoleOrMember = ""; - if(mb!=null) { - mentionableRoleOrMember = mb.getAsMention(); - } else if (r!=null) { - mentionableRoleOrMember = r.getAsMention(); - } - eb.addField("🎭 Deleted Target", "╰┈➤"+mentionableRoleOrMember, false); - break; - - default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); + default -> { + eb.addField(changeKey, "OLD_VALUE: "+oldValue, false); + eb.addField(changeKey, "NEW_VALUE: "+newValue, false); + } } - } - // add the target channel whose permissions were over-riden + }); + // add the target channel whose permissions were overridden // can be retrieved via ALE's TargetID - eb.addField("🗨️ Target Channel", "╰┈➤"+mentionableTargetChannel, false); + eb.addField("Target Channel", "╰┈➤"+mentionableTargetChannel, false); eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java index a2364436..7f9ee28c 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java @@ -1,9 +1,8 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.channel; -import io.github.eggy03.papertrail.bot.commons.utilities.PermissionResolver; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.MessageEmbed; @@ -14,8 +13,6 @@ import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import java.awt.Color; -import java.util.Map; -import java.util.Objects; @UtilityClass public class ChannelOverrideUpdateEventHelper { @@ -24,70 +21,44 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Channel Override Update"); - User executor = ale.getJDA().getUserById(ale.getUserIdLong()); - GuildChannel targetChannel = event.getGuild().getGuildChannelById(ale.getTargetId()); - String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); + + GuildChannel targetChannel = event.getGuild().getGuildChannelById(ale.getTargetId()); String mentionableTargetChannel = (targetChannel !=null ? targetChannel.getAsMention() : ale.getTargetId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ The following channel overrides were updated"); + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Channel Override Update"); + eb.setDescription("ℹ️ The following channel overrides were updated by: "+mentionableExecutor); eb.setColor(Color.YELLOW); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - // changes do not expose the id and type keys in case of override updates - String overriddenId = ale.getOptionByName("id"); - String overriddenType = ale.getOptionByName("type"); - - String mentionableOverrideTarget = overriddenId; - if ("0".equals(overriddenType)) { - // It’s a role - Role role = event.getGuild().getRoleById(Objects.requireNonNull(overriddenId)); - if (role != null) { - mentionableOverrideTarget = role.getAsMention(); - } - } else if ("1".equals(overriddenType)) { - // It’s a member - Member member = event.getGuild().getMemberById(Objects.requireNonNull(overriddenId)); - if (member != null) { - mentionableOverrideTarget = member.getAsMention(); - } - } - - eb.addField("🎭 Permissions Overridden For", "╰┈➤"+mentionableOverrideTarget, false); + eb.addField("Override Type", "╰┈➤"+ ChannelUtils.resolveChannelOverrideTargetType(ale.getOptionByName("type")), false); + eb.addField("Permissions Overridden For", "╰┈➤"+getTargetRoleOrMember(ale, event), false); - for(Map.Entry changes: ale.getChanges().entrySet()) { + ale.getChanges().forEach((changeKey, changeValue) -> { - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); + Object oldValue = changeValue.getOldValue(); + Object newValue = changeValue.getNewValue(); - switch(change) { + switch (changeKey) { - case "deny": - String deniedPerms = PermissionResolver.getParsedPermissions(newValue, "❌"); - // if a channel is synchronized with it's category, the permission list will be blank and the StringBuilder will return a blank string - eb.addField("Denied Permissions", (deniedPerms.isBlank() ? "Permissions Synced With Category" : deniedPerms), false); - break; + case "deny" -> eb.addField("Denied Permissions", ChannelUtils.resolvePermissions(newValue, "❌"), false); + case "allow" -> eb.addField("Allowed Permissions", ChannelUtils.resolvePermissions(newValue, "✅"), false); - case "allow": - String allowedPerms = PermissionResolver.getParsedPermissions(newValue, "✅"); - // if a channel is synchronized with it's category, the permission list will be blank and the StringBuilder will return a blank string - eb.addField("Allowed Permissions", (allowedPerms.isBlank() ? "Permissions Synced With Category" : allowedPerms), false); - break; + default -> { + eb.addField(changeKey, "OLD_VALUE: "+oldValue, false); + eb.addField(changeKey, "NEW_VALUE: "+newValue, false); + } - default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); } - } + }); // add the target channel whose permissions were overridden // can be retrieved via ALE's TargetID - eb.addField("🗨️ Target Channel", "╰┈➤"+mentionableTargetChannel, false); + eb.addField("Target Channel", "╰┈➤"+mentionableTargetChannel, false); eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); @@ -99,4 +70,35 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT sendingChannel.sendMessageEmbeds(mb).queue(); } } + + // ALE changes do not expose the id and type keys in case of override updates + // therefore, this hacky method is required + // IDK why channel override updates don't show this info + private static String getTargetRoleOrMember(AuditLogEntry ale, GuildAuditLogEntryCreateEvent event) { + + String overriddenId = ale.getOptionByName("id"); // id of the member or role + String overriddenType = ale.getOptionByName("type"); // type that determines if the ID is that of a role or a member + + if(overriddenId==null) + return "Member or Role ID is null"; + + return switch (overriddenType) { + + case "0" -> { + // It’s a role + Role role = event.getGuild().getRoleById(overriddenId); + yield role!=null ? role.getAsMention() : overriddenId; + } + + case "1" -> { + // It's a member + Member member = event.getGuild().getMemberById(overriddenId); + yield member!=null ? member.getAsMention() : overriddenId; + } + + case null -> "Override Type is null"; + default -> "Unimplemented Override Type: "+overriddenType; + + }; + } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java new file mode 100644 index 00000000..9690005e --- /dev/null +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java @@ -0,0 +1,77 @@ +package io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils; + +import lombok.NonNull; +import lombok.experimental.UtilityClass; +import net.dv8tion.jda.api.Permission; +import net.dv8tion.jda.api.entities.Member; +import net.dv8tion.jda.api.entities.Role; +import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.EnumSet; + +@UtilityClass +public class ChannelUtils { + + @NotNull + public static String resolvePermissions(@Nullable Object bitField, @NonNull String emoji) { + if(bitField==null) + return "Null Permission Bitfield"; + + if(String.valueOf(bitField).trim().isEmpty()) + return "Permission Bitfield was blank"; + + try { + long permValue = Long.parseLong(String.valueOf(bitField)); + if(permValue==0) return "Permissions synced with category"; + + StringBuilder permissions = new StringBuilder(); + EnumSet permissionEnumSet = Permission.getPermissions(permValue); + permissionEnumSet.forEach(permission -> permissions + .append(emoji) + .append(" ") + .append(permission.getName()) + .append(System.lineSeparator())); + + return permissions.toString(); + + } catch (NumberFormatException e){ + return "Permission bitfield could not be parsed: "+bitField; + } + } + + @NotNull + public static String resolveMemberOrRole(@Nullable Object memberOrRoleId, @NonNull GuildAuditLogEntryCreateEvent event) { + + Member mb = event.getGuild().getMemberById(String.valueOf(memberOrRoleId)); + Role r = event.getGuild().getRoleById(String.valueOf(memberOrRoleId)); + + if(mb!=null) { + return mb.getAsMention(); + } else if (r!=null) { + return r.getAsMention(); + } + + return String.valueOf(memberOrRoleId); + } + + @NotNull + public static String resolveChannelOverrideTargetType (@Nullable Object targetType) { + if (targetType == null) { + return "Null Target Type"; + } + + try { + int typeInt = Integer.parseInt(targetType.toString()); + return switch (typeInt) { + case 0 -> "Role"; + case 1 -> "Member/Application"; + default -> "Unknown Type: "+typeInt; + }; + } catch (NumberFormatException e) { + return "Target Type Cannot Be Parsed"; + } + + } +} From 72937ee4ba2fbc0e4697d9d64969a8333820fb4a Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Sun, 8 Feb 2026 16:13:23 +0530 Subject: [PATCH 016/104] refactor(audit-log): improve voice channel status embed clarity - Restructure Discord embed messages for voice channel status events - Move executor and target channel details from description to dedicated fields - Remove unused `MessageEmbed` import and intermediate variable in `VoiceChannelStatusUpdateEventHelper.java` and `VoiceChannelStatusDeleteEventHelper.java` Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../VoiceChannelStatusDeleteEventHelper.java | 16 ++++++++-------- .../VoiceChannelStatusUpdateEventHelper.java | 16 ++++++++-------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusDeleteEventHelper.java index c9422da7..6dec9a63 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusDeleteEventHelper.java @@ -3,7 +3,6 @@ import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; @@ -18,29 +17,30 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Voice Channel Status Delete"); - User executor = ale.getJDA().getUserById(ale.getUserId()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); GuildChannel targetChannel = ale.getJDA().getGuildChannelById(ale.getTargetId()); String mentionableTargetChannel = (targetChannel != null ? targetChannel.getAsMention() : ale.getTargetId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ The following voice channel's status was deleted: "+mentionableTargetChannel); + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Voice Channel Status Delete"); + + eb.setDescription("ℹ️ A voice channel's status was deleted"); eb.setColor(Color.ORANGE); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); + eb.addField("Status Deleted By", "╰┈➤"+mentionableExecutor, false); + eb.addField("Target Voice Channel", "╰┈➤"+mentionableTargetChannel, false); + eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusUpdateEventHelper.java index d8309f98..d5712238 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusUpdateEventHelper.java @@ -3,7 +3,6 @@ import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; @@ -18,29 +17,30 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Voice Channel Status Update"); - User executor = ale.getJDA().getUserById(ale.getUserId()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); GuildChannel targetChannel = ale.getJDA().getGuildChannelById(ale.getTargetId()); String mentionableTargetChannel = (targetChannel != null ? targetChannel.getAsMention() : ale.getTargetId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ The following voice channel's status was updated: "+mentionableTargetChannel); + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Voice Channel Status Update"); + + eb.setDescription("ℹ️ A voice channel's status was updated"); eb.setColor(Color.YELLOW); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); + eb.addField("Status Updated By", "╰┈➤"+mentionableExecutor, false); + eb.addField("Target Voice Channel", "╰┈➤"+mentionableTargetChannel, false); + eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } From 7541fdcb1231a792d82f8ee53c4bdd9fc37c56c4 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Sun, 8 Feb 2026 16:13:38 +0530 Subject: [PATCH 017/104] refactor(embeds): inline embed builder call - Remove unnecessary `MessageEmbed` variable assignment. - Call `EmbedBuilder.build()` directly within `sendMessageEmbeds()`. - Simplify code by removing an intermediate object. Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../helper/channel/ChannelOverrideDeleteEventHelper.java | 5 +---- .../helper/channel/ChannelOverrideUpdateEventHelper.java | 5 +---- .../audit/helper/channel/ChannelUpdateEventHelper.java | 5 +---- 3 files changed, 3 insertions(+), 12 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideDeleteEventHelper.java index 61f3015a..178cf799 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideDeleteEventHelper.java @@ -4,7 +4,6 @@ import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; @@ -62,11 +61,9 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java index 7f9ee28c..79bf8a9d 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java @@ -5,7 +5,6 @@ import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.Member; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.Role; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; @@ -63,11 +62,9 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelUpdateEventHelper.java index 1323c98f..7e4e6492 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelUpdateEventHelper.java @@ -6,7 +6,6 @@ import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; @@ -122,11 +121,9 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } From 3f38708c86eddf9defa0f7bd97e139a3d76715b9 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Sun, 8 Feb 2026 19:08:58 +0530 Subject: [PATCH 018/104] refactor(automod): move automod type resolvers to dedicated utility - Move `automodEventTypeResolver` and `automodTriggerTypeResolver` from `TypeResolver.java` to `AutomodUtil.java` - Create `AutomodUtil.java` to centralize auto-moderation type resolution logic - Update `AutoModerationRuleCreateEventHelper.java` to use `AutomodUtil` Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../bot/commons/utilities/TypeResolver.java | 39 --------------- .../AutoModerationRuleCreateEventHelper.java | 6 +-- .../helper/automod/utils/AutomodUtil.java | 49 +++++++++++++++++++ 3 files changed, 52 insertions(+), 42 deletions(-) create mode 100644 src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutomodUtil.java diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/TypeResolver.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/TypeResolver.java index 101c5ad6..8b4329cf 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/TypeResolver.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/TypeResolver.java @@ -93,45 +93,6 @@ public static String voiceChannelBitrateResolver(Object bitrate) { } - public static String automodEventTypeResolver(Object type) { - if (type == null) { - return "ERROR: Value Returned Null"; - } - - try { - int typeInt = Integer.parseInt(type.toString()); - return switch (typeInt) { - case 1 -> "Message Send"; - case 2 -> "Message Update"; - default -> "Unknown"; - }; - } catch (NumberFormatException e) { - return "Type Cannot Be Parsed"; - } - - } - - public static String automodTriggerTypeResolver(Object type) { - if (type == null) { - return "ERROR: Value Returned Null"; - } - - try { - int typeInt = Integer.parseInt(type.toString()); - return switch (typeInt) { - case 1 -> "Keyword"; - case 3 -> "Spam"; - case 4 -> "Keyword Preset"; - case 5 -> "Mention Spam"; - case 6 -> "Member Profile"; - default -> "Unknown"; - }; - } catch (NumberFormatException e) { - return "Type Cannot Be Parsed"; - } - - } - public static String guildVerificationLevelResolver(Object type) { if (type == null) { return "ERROR: Value Returned Null"; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleCreateEventHelper.java index 40343d40..e58c3bf2 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleCreateEventHelper.java @@ -1,7 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.automod; import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; -import io.github.eggy03.papertrail.bot.commons.utilities.TypeResolver; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.automod.utils.AutomodUtil; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; @@ -39,9 +39,9 @@ public static void format (GuildAuditLogEntryCreateEvent event, String channelId case "enabled" -> eb.addField("Enabled", "╰┈➤"+ BooleanFormatter.formatToYesOrNo(newValue), false); - case "trigger_type" -> eb.addField("Trigger Type", "╰┈➤"+ TypeResolver.automodTriggerTypeResolver(newValue), false); + case "trigger_type" -> eb.addField("Trigger Type", "╰┈➤"+ AutomodUtil.automodTriggerTypeResolver(newValue), false); - case "event_type" -> eb.addField("Event Type", "╰┈➤"+TypeResolver.automodEventTypeResolver(newValue), false); + case "event_type" -> eb.addField("Event Type", "╰┈➤"+AutomodUtil.automodEventTypeResolver(newValue), false); case "name" -> eb.addField("AutoMod Rule Name ", "╰┈➤"+newValue, false); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutomodUtil.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutomodUtil.java new file mode 100644 index 00000000..157e99bc --- /dev/null +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutomodUtil.java @@ -0,0 +1,49 @@ +package io.github.eggy03.papertrail.bot.listeners.audit.helper.automod.utils; + +import lombok.experimental.UtilityClass; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +@UtilityClass +public class AutomodUtil { + + @NotNull + public static String automodEventTypeResolver(@Nullable Object type) { + if (type == null) { + return "Null Automod Event Type"; + } + + try { + int typeInt = Integer.parseInt(type.toString()); + return switch (typeInt) { + case 1 -> "Message Send"; + case 2 -> "Message Update"; + default -> "Unknown"; + }; + } catch (NumberFormatException e) { + return "Type Cannot Be Parsed"; + } + + } + + public static String automodTriggerTypeResolver(@Nullable Object type) { + if (type == null) { + return "Null Automod Trigger Type"; + } + + try { + int typeInt = Integer.parseInt(type.toString()); + return switch (typeInt) { + case 1 -> "Keyword"; + case 3 -> "Spam"; + case 4 -> "Keyword Preset"; + case 5 -> "Mention Spam"; + case 6 -> "Member Profile"; + default -> "Unknown"; + }; + } catch (NumberFormatException e) { + return "Type Cannot Be Parsed"; + } + + } +} From d3ace6419de206026d72e26683ff11a60e628050 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Sun, 8 Feb 2026 19:09:15 +0530 Subject: [PATCH 019/104] refactor(audit-listeners): improve emoji audit log embed generation - Modernize audit log change iteration with `forEach` lambda - Remove unused imports (`AuditLogChange`, `MessageEmbed`, `Map`) - Streamline `EmbedBuilder` usage - Enhance clarity of audit log fields, descriptions, and labels Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../helper/emoji/EmojiCreateEventHelper.java | 39 +++++++------------ .../helper/emoji/EmojiDeleteEventHelper.java | 38 +++++++----------- .../helper/emoji/EmojiUpdateEventHelper.java | 39 +++++++------------ 3 files changed, 43 insertions(+), 73 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiCreateEventHelper.java index 3fa97320..534dab35 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiCreateEventHelper.java @@ -2,15 +2,12 @@ import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import java.awt.Color; -import java.util.Map; @UtilityClass public class EmojiCreateEventHelper { @@ -19,45 +16,37 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Emoji Create Event"); - User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ The following emoji was created"); + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Emoji Create Event"); + eb.setDescription("ℹ️ The following emoji was created by: "+mentionableExecutor); eb.setColor(Color.GREEN); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - for(Map.Entry changes: ale.getChanges().entrySet()) { + ale.getChanges().forEach((changeKey, changeValue) -> { - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); + Object oldValue = changeValue.getOldValue(); + Object newValue = changeValue.getNewValue(); - switch(change) { - - case "name": - eb.addField("🏷️ Emoji Name", "╰┈➤"+newValue, false); - eb.addField("ℹ️ Emoji", "╰┈➤"+"<:"+newValue+":"+ale.getTargetId()+">", false); // ale's TargetID retrieves the ID of the created emoji - break; - - default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); + if (changeKey.equals("name")) { + eb.addField("Emoji Name", "╰┈➤" + newValue, false); + eb.addField("Emoji", "╰┈➤" + "<:" + newValue + ":" + ale.getTargetId() + ">", false); // ale's TargetID retrieves the ID of the created emoji + } else { + eb.addField(changeKey, "OLD_VALUE: " + oldValue, false); + eb.addField(changeKey, "NEW_VALUE: " + newValue, false); } - } - + }); eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiDeleteEventHelper.java index daed2bf8..fe2d774a 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiDeleteEventHelper.java @@ -2,15 +2,12 @@ import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import java.awt.Color; -import java.util.Map; @UtilityClass public class EmojiDeleteEventHelper { @@ -19,44 +16,37 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Emoji Delete Event"); - User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ The following emoji was deleted"); + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Emoji Delete Event"); + eb.setDescription("ℹ️ The following emoji was deleted by: "+mentionableExecutor); eb.setColor(Color.RED); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - for(Map.Entry changes: ale.getChanges().entrySet()) { + ale.getChanges().forEach((changeKey, changeValue) -> { - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); + Object oldValue = changeValue.getOldValue(); + Object newValue = changeValue.getNewValue(); - switch(change) { - - case "name": - eb.addField("♻️ Deleted Emoji", "╰┈➤ "+":"+oldValue+":", false); - break; - - default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); + if (changeKey.equals("name")) { + eb.addField("Emoji Name", "╰┈➤" + oldValue, false); + } else { + eb.addField(changeKey, "OLD_VALUE: " + oldValue, false); + eb.addField(changeKey, "NEW_VALUE: " + newValue, false); } - } + }); + eb.addField("Deleted Emoji ID", "╰┈➤"+ale.getTargetId(), false); - eb.addField("♻️ Deleted Emoji ID", "╰┈➤"+ale.getTargetId(), false); eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiUpdateEventHelper.java index 0f84bd67..994e452a 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiUpdateEventHelper.java @@ -2,15 +2,12 @@ import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import java.awt.Color; -import java.util.Map; @UtilityClass public class EmojiUpdateEventHelper { @@ -19,44 +16,38 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Emoji Update Event"); - User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ The following emoji was updated"); + + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Emoji Update Event"); + eb.setDescription("ℹ️ The following emoji was updated by: "+mentionableExecutor); eb.setColor(Color.YELLOW); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - for(Map.Entry changes: ale.getChanges().entrySet()) { - - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); - - switch(change) { + ale.getChanges().forEach((changeKey, changeValue) -> { - case "name": - eb.addField("🏷️ Emoji Name Updated", "╰┈➤"+"From "+oldValue+" to "+newValue, false); - eb.addField("ℹ️ Target Emoji", "╰┈➤"+"<:"+newValue+":"+ale.getTargetId()+">", false); - break; + Object oldValue = changeValue.getOldValue(); + Object newValue = changeValue.getNewValue(); - default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); + if (changeKey.equals("name")) { + eb.addField("Emoji Name Updated", "╰┈➤"+"From "+oldValue+" to "+newValue, false); + eb.addField("Target Emoji", "╰┈➤"+"<:"+newValue+":"+ale.getTargetId()+">", false); + } else { + eb.addField(changeKey, "OLD_VALUE: " + oldValue, false); + eb.addField(changeKey, "NEW_VALUE: " + newValue, false); } - } + }); eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } From acca3e7e276cdbefcd58881c0afcc78ce8499d52 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Sun, 8 Feb 2026 19:32:34 +0530 Subject: [PATCH 020/104] refactor(audit-log-helper): improve generic audit log embed display - Display audit log changes with distinct fields for `OLD_VALUE` and `NEW_VALUE`. - Remove unused imports: `AuditLogChange`, `MessageEmbed`, `Map`. - Clarify helper's purpose for un-implemented or un-handled events. Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../generic/GenericAuditLogEventHelper.java | 32 +++++++------------ 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/generic/GenericAuditLogEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/generic/GenericAuditLogEventHelper.java index 5ffbd9d6..33d9b35b 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/generic/GenericAuditLogEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/generic/GenericAuditLogEventHelper.java @@ -2,17 +2,14 @@ import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import java.awt.Color; -import java.util.Map; -// for events not defined by JDA yet +// for events not defined by JDA yet or not implemented by papertrail @UtilityClass public class GenericAuditLogEventHelper { @@ -20,31 +17,26 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Generic Event"); User executor = ale.getJDA().getUserById(ale.getUserIdLong()); + String mentionableExecutor = executor != null ? executor.getAsMention() : ale.getUserId(); - eb.setDescription((executor != null ? executor.getAsMention() : ale.getUserId())+" has executed the following action:"); + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Generic Event"); + eb.setDescription("An un-implemented action event has been triggered by: "+mentionableExecutor); eb.setColor(Color.LIGHT_GRAY); + eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - for(Map.Entry changes: ale.getChanges().entrySet()) { - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); - - eb.addField(change, "from "+oldValue+" to "+newValue, false); - } - - eb.setFooter("Audit Log Entry ID: "+ale.getId()); - eb.setTimestamp(ale.getTimeCreated()); - - MessageEmbed mb = eb.build(); + ale.getChanges().forEach((changeKey, changeValue) -> { + eb.addField(changeKey, "OLD_VALUE: "+changeValue.getOldValue(), true); + eb.addField(changeKey, "NEW_VALUE: "+changeValue.getNewValue(), true); + eb.addBlankField(false); + }); TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } From bf55f903aac2e814c63aa3710eeb158bb8230ea3 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Sun, 8 Feb 2026 22:28:24 +0530 Subject: [PATCH 021/104] style(audit-log): display audit log fields on separate lines - Set `inline` parameter to `false` for audit log embed fields. - Remove `addBlankField` as it is no longer necessary. - Improve readability of audit log changes by displaying old and new values on new lines. Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../audit/helper/generic/GenericAuditLogEventHelper.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/generic/GenericAuditLogEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/generic/GenericAuditLogEventHelper.java index 33d9b35b..d9657b67 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/generic/GenericAuditLogEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/generic/GenericAuditLogEventHelper.java @@ -29,9 +29,8 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); ale.getChanges().forEach((changeKey, changeValue) -> { - eb.addField(changeKey, "OLD_VALUE: "+changeValue.getOldValue(), true); - eb.addField(changeKey, "NEW_VALUE: "+changeValue.getNewValue(), true); - eb.addBlankField(false); + eb.addField(changeKey, "OLD_VALUE: "+changeValue.getOldValue(), false); + eb.addField(changeKey, "NEW_VALUE: "+changeValue.getNewValue(), false); }); TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); From 6e275b70bc2a2f57a2aaf4c7c2263646e6fbab82 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Sun, 8 Feb 2026 22:29:58 +0530 Subject: [PATCH 022/104] refactor(guild-utils): refactor guild property resolvers - Delete `GuildSystemChannelFlagResolver.java`. - Create `GuildUtils.java` to centralize guild-related property resolvers. - Move `guildVerificationLevelResolver` and `explicitFilterTypeResolver` from `TypeResolver` to `GuildUtils`. - Update `GuildUpdateEventHelper` to utilize `GuildUtils` for resolving guild properties. - Integrate `BooleanFormatter` and `DurationFormatter` for improved output in `GuildUpdateEventHelper`. Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../GuildSystemChannelFlagResolver.java | 42 ------ .../bot/commons/utilities/TypeResolver.java | 40 ------ .../helper/guild/GuildUpdateEventHelper.java | 126 +++++++----------- .../audit/helper/guild/utils/GuildUtils.java | 109 +++++++++++++++ 4 files changed, 159 insertions(+), 158 deletions(-) delete mode 100644 src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/GuildSystemChannelFlagResolver.java create mode 100644 src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/utils/GuildUtils.java diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/GuildSystemChannelFlagResolver.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/GuildSystemChannelFlagResolver.java deleted file mode 100644 index c446a0b5..00000000 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/GuildSystemChannelFlagResolver.java +++ /dev/null @@ -1,42 +0,0 @@ -package io.github.eggy03.papertrail.bot.commons.utilities; - -import lombok.experimental.UtilityClass; - -import java.util.Map; - -@UtilityClass -public class GuildSystemChannelFlagResolver { - - private static final Map SYSTEM_CHANNEL_FLAG_MAP = Map.ofEntries( - Map.entry(1L, "Suppress member join notifications"), - Map.entry(1L << 1, "Suppress server boost notifications"), - Map.entry(1L << 2, "Suppress server setup tips"), - Map.entry(1L << 3, "Hide member join sticker reply buttons"), - Map.entry(1L << 4, "Suppress role subscription purchase and renewal notifications"), - Map.entry(1L << 5, "Hide role subscription sticker reply buttons") - ); - - private static String parseFlags(long bitfield){ - StringBuilder flags = new StringBuilder(); - for(Map.Entry entry: SYSTEM_CHANNEL_FLAG_MAP.entrySet()) { - if((bitfield & entry.getKey()) != 0) { - flags.append("✅").append(entry.getValue()).append(System.lineSeparator()); - } - } - return flags.toString(); - } - - public static String getParsedFlags(Object flagValue) { - if(flagValue==null) { - return "ERROR: Value Returned Null"; - } - - try { - return parseFlags(Long.parseLong(flagValue.toString())); - } catch (NumberFormatException e) { - return "No Parsable Flag Values Detected"; - } - - } -} - diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/TypeResolver.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/TypeResolver.java index 8b4329cf..8685dca6 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/TypeResolver.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/TypeResolver.java @@ -93,46 +93,6 @@ public static String voiceChannelBitrateResolver(Object bitrate) { } - public static String guildVerificationLevelResolver(Object type) { - if (type == null) { - return "ERROR: Value Returned Null"; - } - - try { - int t = Integer.parseInt(type.toString()); - return switch (t) { - case 0 -> "NONE"; - case 1 -> "LOW (Verified Email)"; - case 2 -> "MEDIUM (Registered on Discord for more than 5 minutes"; - case 3 -> "HIGH (Must be a member of the server for longer than 10 minutes)"; - case 4 -> "VERY_HIGH (Must have a verified phone number)"; - default -> "Unknown"; - }; - } catch (NumberFormatException e) { - return "No Parsable Type Values Detected"; - } - - } - - public static String explicitFilterTypeResolver(Object type) { - if (type == null) { - return "ERROR: Value Returned Null"; - } - - try { - int t = Integer.parseInt(type.toString()); - return switch (t) { - case 0 -> "No Filter"; - case 1 -> "Filter Messages From Server Members Without Roles"; - case 2 -> "Filter Messages From All Members"; - default -> "Unknown"; - }; - } catch (NumberFormatException e) { - return "No Parsable Type Values Detected"; - } - - } - public static String scheduleEventTypeResolver(Object type) { if (type == null) { return "ERROR: Value Returned Null"; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/GuildUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/GuildUpdateEventHelper.java index e8ba6a22..eeac815e 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/GuildUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/GuildUpdateEventHelper.java @@ -1,18 +1,16 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.guild; -import io.github.eggy03.papertrail.bot.commons.utilities.GuildSystemChannelFlagResolver; -import io.github.eggy03.papertrail.bot.commons.utilities.TypeResolver; +import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; +import io.github.eggy03.papertrail.bot.commons.utilities.DurationFormatter; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.guild.utils.GuildUtils; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import java.awt.Color; -import java.util.Map; @UtilityClass public class GuildUpdateEventHelper { @@ -21,112 +19,88 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Guild Update Event"); - User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ The following guild updates were recorded"); + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Guild Update Event"); + eb.setDescription("ℹ️ The following guild updates were made by: " + mentionableExecutor); eb.setColor(Color.MAGENTA); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - for(Map.Entry changes: ale.getChanges().entrySet()) { + ale.getChanges().forEach((changeKey, changeValue) -> { - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); + Object oldValue = changeValue.getOldValue(); + Object newValue = changeValue.getNewValue(); - switch(change) { + switch (changeKey) { + case "description" -> { + eb.addField("Old Description", String.valueOf(oldValue), true); + eb.addField("New Description", String.valueOf(newValue), true); + eb.addBlankField(false); + } - case "description": - eb.addField("Description Change", "from `"+oldValue+"` to `"+newValue+"`", false); - break; + case "icon_hash" -> eb.addField("Icon Hash Change", "Guild Icon has been updated", false); - case "icon_hash": - eb.addField("Icon Hash Change", "from `"+oldValue+"` to `"+newValue+"`", false); - break; + case "name" -> { + eb.addField("Old Guild Name", String.valueOf(oldValue), true); + eb.addField("New Guild Name", String.valueOf(newValue), true); + eb.addBlankField(false); + } - case "name": - eb.addField("Guild Name Change", "from `"+oldValue+"` to `"+newValue+"`", false); - break; + case "preferred_locale" -> eb.addField("Preferred Locale Set To", String.valueOf(newValue), false); - case "afk_channel_id": - eb.addField("AFK Channel Changed To", "`"+newValue+"`", false); - break; + case "afk_channel_id" -> eb.addField("AFK Channel Changed To", GuildUtils.resolveMentionableChannel(newValue, event), false); - case "default_message_notifications": - eb.addField("Default Message Notifications Update", "`"+newValue+"`", false); - break; + case "default_message_notifications" -> eb.addField("Default Message Notifications Update", GuildUtils.resolveGuildDefaultMessageNotificationLevel(newValue), false); - case "afk_timeout": - eb.addField("AFK Channel Timeout Change", "`"+newValue+"s`", false); - break; + case "afk_timeout" -> eb.addField("AFK Channel Timeout Change", DurationFormatter.formatSeconds(newValue), false); - case "system_channel_id": - eb.addField("Community Updates Channel Changed To", "`"+newValue+"`", false); - break; + case "system_channel_id" -> eb.addField("Community Updates Channel Changed To", GuildUtils.resolveMentionableChannel(newValue, event), false); - case "widget_enabled": - eb.addField("Widget Enabled", "`"+newValue+"`", false); - break; + case "widget_enabled" -> eb.addField("Widget Enabled", BooleanFormatter.formatToYesOrNo(newValue), false); - case "widget_channel_id": - eb.addField("Widget Channel Changed To", "`"+newValue+"`", false); - break; + case "widget_channel_id" -> eb.addField("Widget Channel Changed To", GuildUtils.resolveMentionableChannel(newValue, event), false); - case "premium_progress_bar_enabled": - eb.addField("Server Boost Progress Bar Enabled", "`"+newValue+"`", false); - break; + case "premium_progress_bar_enabled" -> eb.addField("Server Boost Progress Bar Enabled", BooleanFormatter.formatToYesOrNo(newValue), false); - case "mfa_level": - eb.addField("MFA Requirement", "`"+newValue+"`", false); - break; + case "mfa_level" -> eb.addField("MFA Requirement Set To", GuildUtils.resolveGuildModActionMFALevel(newValue), false); - case "verification_level": - eb.addField("Verification Level", "`"+ TypeResolver.guildVerificationLevelResolver(newValue)+"`", false); - break; + case "verification_level" -> eb.addField("Verification Level Set To", GuildUtils.resolveGuildVerificationLevel(newValue), false); - case "owner_id": + case "owner_id" -> { User oldOwner = ale.getJDA().getUserById(String.valueOf(oldValue)); User newOwner = ale.getJDA().getUserById(String.valueOf(newValue)); - String mentionableOldOwner = (oldOwner!=null ? oldOwner.getAsMention() : String.valueOf(oldValue)); - String mentionableNewOwner = (newOwner!=null ? newOwner.getAsMention() : String.valueOf(newValue)); - eb.addField("Ownership Change", "from "+mentionableOldOwner+" to "+mentionableNewOwner, false); - break; - - case "public_updates_channel_id": - eb.addField("Announcements Channel Changed To", "`"+newValue+"`", false); - break; + String mentionableOldOwner = (oldOwner != null ? oldOwner.getAsMention() : String.valueOf(oldValue)); + String mentionableNewOwner = (newOwner != null ? newOwner.getAsMention() : String.valueOf(newValue)); + eb.addField("Old Owner", mentionableOldOwner, true); + eb.addField("New Owner", mentionableNewOwner, true); + eb.addBlankField(false); + } - case "rules_channel_id": - eb.addField("Rules Channel Changed To", "`"+newValue+"`", false); - break; + case "public_updates_channel_id" -> eb.addField("Announcements Channel Changed To", GuildUtils.resolveMentionableChannel(newValue, event), false); + case "rules_channel_id" -> eb.addField("Rules Channel Changed To", GuildUtils.resolveMentionableChannel(newValue, event), false); - case "system_channel_flags": - eb.addField("System Channel Flags", GuildSystemChannelFlagResolver.getParsedFlags(newValue), false); - break; + case "system_channel_flags" -> eb.addField("System Channel Flags", GuildUtils.resolveSystemChannelFlags(newValue), false); - case "explicit_content_filter": - eb.addField("Explicit Content Filter", TypeResolver.explicitFilterTypeResolver(newValue), false); - break; + case "explicit_content_filter" -> eb.addField("Explicit Content Filter", GuildUtils.resolveExplicitContentFilterLevel(newValue), false); - default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); + default -> { + eb.addField(changeKey, "OLD_VALUE: " + oldValue, false); + eb.addField(changeKey, "NEW_VALUE: " + newValue, false); + } } - } + }); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + if (sendingChannel != null && sendingChannel.canTalk()) { + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/utils/GuildUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/utils/GuildUtils.java new file mode 100644 index 00000000..cb69be91 --- /dev/null +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/utils/GuildUtils.java @@ -0,0 +1,109 @@ +package io.github.eggy03.papertrail.bot.listeners.audit.helper.guild.utils; + +import lombok.experimental.UtilityClass; +import net.dv8tion.jda.api.entities.Guild; +import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; +import net.dv8tion.jda.api.entities.guild.SystemChannelFlag; +import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +@UtilityClass +public class GuildUtils { + + @NotNull + public static String resolveGuildVerificationLevel(@Nullable Object verificationLevel) { + if (verificationLevel == null) { + return "N/A"; + } + + try { + int t = Integer.parseInt(verificationLevel.toString()); + return switch (t) { //we could have used JDA's Guild.VerficationLevel but they don't have description + case 0 -> "NONE"; + case 1 -> "LOW (Verified Email)"; + case 2 -> "MEDIUM (Registered on Discord for more than 5 minutes"; + case 3 -> "HIGH (Must be a member of the server for longer than 10 minutes)"; + case 4 -> "VERY_HIGH (Must have a verified phone number)"; + default -> "Unknown"; + }; + } catch (NumberFormatException e) { + return "Could not parse verification level"; + } + + } + + @NotNull + public static String resolveGuildModActionMFALevel(@Nullable Object mfaLevel) { + if (mfaLevel == null) { + return "N/A"; + } + try { + int t = Integer.parseInt(mfaLevel.toString()); + return Guild.MFALevel.fromKey(t).name(); + } catch (NumberFormatException e) { + return "Could not parse MFA level"; + } + + } + + @NotNull + public static String resolveGuildDefaultMessageNotificationLevel(@Nullable Object notificationLevel) { + if (notificationLevel == null) { + return "N/A"; + } + try { + int t = Integer.parseInt(notificationLevel.toString()); + return Guild.NotificationLevel.fromKey(t).name(); + } catch (NumberFormatException e) { + return "Could not parse Notification Level"; + } + + } + + @NotNull + public static String resolveExplicitContentFilterLevel (@Nullable Object explicitContentFilterLevel) { + if(explicitContentFilterLevel==null) + return "ECF Level is null"; + + try { + int level = Integer.parseInt(String.valueOf(explicitContentFilterLevel)); + return Guild.ExplicitContentLevel.fromKey(level).getDescription(); + } catch (NumberFormatException e) { + return "Could not parse ECF Level"; + } + } + + @NotNull + public static String resolveSystemChannelFlags (@Nullable Object systemFlagsBitfield) { + + if(systemFlagsBitfield==null) + return "Bitfield for System Flags was null"; + + try { + StringBuilder systemChannelFlags = new StringBuilder(); + int bitfield = Integer.parseInt(String.valueOf(systemFlagsBitfield)); + if (bitfield==0) return "No Flags Suppressed"; + + SystemChannelFlag.getFlags(bitfield).forEach(flag -> systemChannelFlags.append(flag.name()).append(System.lineSeparator())); + + return systemChannelFlags.toString(); + } catch (NumberFormatException e) { + return "Could not parse System Flags"; + } + } + + @NotNull + public static String resolveMentionableChannel (Object channelId, GuildAuditLogEntryCreateEvent event) { + if(channelId==null) + return "N/A"; + + try { + long channelIdLong = Long.parseLong(String.valueOf(channelId)); + GuildChannel channel = event.getGuild().getGuildChannelById(channelIdLong); + return channel!=null ? channel.getAsMention() : String.valueOf(channelIdLong); + } catch (NumberFormatException e){ + return "Could not parse channel ID"; + } + } +} From 546fbe7dcc1be7ec449bd429703513a8851c2f77 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Mon, 9 Feb 2026 08:53:28 +0530 Subject: [PATCH 023/104] refactor(audit-helpers): standardize channel utility method names - Rename `resolvePermissions` to `resolveChannelPermissions` in `ChannelUtils.java` - Rename `resolveMemberOrRole` to `autoResolveMemberOrRole` in `ChannelUtils.java` - Update all references in `ChannelOverride*EventHelper.java` files - Improve error messages and add categorization comments in `ChannelUtils.java` Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../ChannelOverrideCreateEventHelper.java | 6 +- .../ChannelOverrideDeleteEventHelper.java | 6 +- .../ChannelOverrideUpdateEventHelper.java | 4 +- .../helper/channel/utils/ChannelUtils.java | 59 ++++++++++--------- 4 files changed, 40 insertions(+), 35 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideCreateEventHelper.java index da9c6137..ed2dbec1 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideCreateEventHelper.java @@ -40,12 +40,12 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT case "type" -> eb.addField("Override Type", "╰┈➤"+ ChannelUtils.resolveChannelOverrideTargetType(newValue), false); - case "deny" -> eb.addField("Denied Permissions", ChannelUtils.resolvePermissions(newValue, "❌"), false); - case "allow" -> eb.addField("Allowed Permissions", ChannelUtils.resolvePermissions(newValue, "✅"), false); + case "deny" -> eb.addField("Denied Permissions", ChannelUtils.resolveChannelPermissions(newValue, "❌"), false); + case "allow" -> eb.addField("Allowed Permissions", ChannelUtils.resolveChannelPermissions(newValue, "✅"), false); // id exposes the member/role id which for which the channel permissions are overridden // only one member/role permission id is fetched per loop - case "id" -> eb.addField("Target", "╰┈➤"+ChannelUtils.resolveMemberOrRole(newValue, event), false); + case "id" -> eb.addField("Target", "╰┈➤"+ChannelUtils.autoResolveMemberOrRole(newValue, event), false); default -> { eb.addField(changeKey, "OLD_VALUE: "+oldValue, false); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideDeleteEventHelper.java index 178cf799..a45ac2de 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideDeleteEventHelper.java @@ -41,12 +41,12 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT case "type" -> eb.addField("Override Type", "╰┈➤"+ ChannelUtils.resolveChannelOverrideTargetType(oldValue), false); - case "deny" -> eb.addField("Denied Permissions", ChannelUtils.resolvePermissions(oldValue, "❌"), false); - case "allow" -> eb.addField("Allowed Permissions", ChannelUtils.resolvePermissions(oldValue, "✅"), false); + case "deny" -> eb.addField("Denied Permissions", ChannelUtils.resolveChannelPermissions(oldValue, "❌"), false); + case "allow" -> eb.addField("Allowed Permissions", ChannelUtils.resolveChannelPermissions(oldValue, "✅"), false); // id exposes the member/role id which for which the channel permissions are overridden // only one member/role permission id is fetched per loop - case "id" -> eb.addField("Target", "╰┈➤"+ChannelUtils.resolveMemberOrRole(oldValue, event), false); + case "id" -> eb.addField("Target", "╰┈➤"+ChannelUtils.autoResolveMemberOrRole(oldValue, event), false); default -> { eb.addField(changeKey, "OLD_VALUE: "+oldValue, false); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java index 79bf8a9d..64afaf1f 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java @@ -44,8 +44,8 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT switch (changeKey) { - case "deny" -> eb.addField("Denied Permissions", ChannelUtils.resolvePermissions(newValue, "❌"), false); - case "allow" -> eb.addField("Allowed Permissions", ChannelUtils.resolvePermissions(newValue, "✅"), false); + case "deny" -> eb.addField("Denied Permissions", ChannelUtils.resolveChannelPermissions(newValue, "❌"), false); + case "allow" -> eb.addField("Allowed Permissions", ChannelUtils.resolveChannelPermissions(newValue, "✅"), false); default -> { eb.addField(changeKey, "OLD_VALUE: "+oldValue, false); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java index 9690005e..eafeacaa 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java @@ -14,16 +14,19 @@ @UtilityClass public class ChannelUtils { + // CHANNEL UTILS + + @NotNull - public static String resolvePermissions(@Nullable Object bitField, @NonNull String emoji) { - if(bitField==null) - return "Null Permission Bitfield"; + public static String resolveChannelPermissions(@Nullable Object permissionValue, @NonNull String emoji) { + if(permissionValue==null) + return "Null Permission Value"; - if(String.valueOf(bitField).trim().isEmpty()) - return "Permission Bitfield was blank"; + if(String.valueOf(permissionValue).trim().isEmpty()) + return "Permission Value was blank"; try { - long permValue = Long.parseLong(String.valueOf(bitField)); + long permValue = Long.parseLong(String.valueOf(permissionValue)); if(permValue==0) return "Permissions synced with category"; StringBuilder permissions = new StringBuilder(); @@ -37,41 +40,43 @@ public static String resolvePermissions(@Nullable Object bitField, @NonNull Stri return permissions.toString(); } catch (NumberFormatException e){ - return "Permission bitfield could not be parsed: "+bitField; - } - } - - @NotNull - public static String resolveMemberOrRole(@Nullable Object memberOrRoleId, @NonNull GuildAuditLogEntryCreateEvent event) { - - Member mb = event.getGuild().getMemberById(String.valueOf(memberOrRoleId)); - Role r = event.getGuild().getRoleById(String.valueOf(memberOrRoleId)); - - if(mb!=null) { - return mb.getAsMention(); - } else if (r!=null) { - return r.getAsMention(); + return "Permission Value could not be parsed: "+permissionValue; } - - return String.valueOf(memberOrRoleId); } + // OVERRIDE UTILS @NotNull - public static String resolveChannelOverrideTargetType (@Nullable Object targetType) { - if (targetType == null) { - return "Null Target Type"; + public static String resolveChannelOverrideTargetType (@Nullable Object targetTypeInteger) { + if (targetTypeInteger == null) { + return "Null Target Type Integer"; } try { - int typeInt = Integer.parseInt(targetType.toString()); + int typeInt = Integer.parseInt(targetTypeInteger.toString()); return switch (typeInt) { case 0 -> "Role"; case 1 -> "Member/Application"; default -> "Unknown Type: "+typeInt; }; } catch (NumberFormatException e) { - return "Target Type Cannot Be Parsed"; + return "Target Type Integer Cannot Be Parsed: "+targetTypeInteger; + } + + } + + // MISC UTILS + @NotNull + public static String autoResolveMemberOrRole(@Nullable Object memberOrRoleId, @NonNull GuildAuditLogEntryCreateEvent event) { + + Member mb = event.getGuild().getMemberById(String.valueOf(memberOrRoleId)); + Role r = event.getGuild().getRoleById(String.valueOf(memberOrRoleId)); + + if(mb!=null) { + return mb.getAsMention(); + } else if (r!=null) { + return r.getAsMention(); } + return String.valueOf(memberOrRoleId); } } From bf36a2606dfb11e9868c02347d7e0f1e544db792 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Mon, 9 Feb 2026 09:27:52 +0530 Subject: [PATCH 024/104] refactor(channel-utils): move channel-related utility methods - Move `channelTypeResolver`, `formatNumberOrUnlimited`, `videoQualityModeResolver`, and `voiceChannelBitrateResolver` from `TypeResolver.java` to `ChannelUtils.java` - Rename `resolveChannelPermissions` to `resolveChannelOverridePermissions` in `ChannelUtils.java` for improved clarity - Update all affected audit log helper classes to use the new `ChannelUtils` methods - Improve code organization by centralizing channel-specific utility logic Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../bot/commons/utilities/TypeResolver.java | 83 ---------------- .../channel/ChannelCreateEventHelper.java | 8 +- .../channel/ChannelDeleteEventHelper.java | 4 +- .../ChannelOverrideCreateEventHelper.java | 4 +- .../ChannelOverrideDeleteEventHelper.java | 4 +- .../ChannelOverrideUpdateEventHelper.java | 4 +- .../channel/ChannelUpdateEventHelper.java | 14 +-- .../helper/channel/utils/ChannelUtils.java | 99 +++++++++++++++---- .../thread/ThreadCreateEventHelper.java | 5 +- .../thread/ThreadDeleteEventHelper.java | 5 +- .../thread/ThreadUpdateEventHelper.java | 7 +- 11 files changed, 109 insertions(+), 128 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/TypeResolver.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/TypeResolver.java index 8685dca6..d8dfe0dd 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/TypeResolver.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/TypeResolver.java @@ -9,89 +9,6 @@ @UtilityClass public class TypeResolver { - public static String channelTypeResolver(Object channelTypeId) { - if (channelTypeId == null) { - return "ERROR: Value Returned Null"; - } - - try { - int channelType = Integer.parseInt(channelTypeId.toString()); - return switch (channelType) { - case 0 -> "Text"; - case 1 -> "DM"; - case 2 -> "Voice"; - case 3 -> "Group DM"; - case 4 -> "Category"; - case 5 -> "Announcement"; - case 10 -> "Announcement Thread"; - case 11 -> "Public Thread"; - case 12 -> "Private Thread"; - case 13 -> "Stage Voice"; - case 14 -> "Stage Directory"; - case 15 -> "Forum"; - case 16 -> "Media"; - default -> "Undocumented Type: " + channelTypeId; - }; - } catch (NumberFormatException e) { - return "Channel Type Is Not Parsable"; - } - - } - - public static String formatNumberOrUnlimited(Object limitNumber) { - if (limitNumber == null) { - return "ERROR: Value Returned Null"; - } - - try { - int limitNumberInt = Integer.parseInt(limitNumber.toString()); - if (limitNumberInt == 0) { - return "Unlimited"; - } else { - return String.valueOf(limitNumberInt); - } - } catch (NumberFormatException e) { - return "Type Cannot Be Parsed"; - } - - } - - public static String videoQualityModeResolver(Object qualityValue) { - if (qualityValue == null) { - return "ERROR: Value Returned Null"; - } - - try { - int qualityValueInt = Integer.parseInt(qualityValue.toString()); - return switch (qualityValueInt) { - case 1 -> "Auto"; - case 2 -> "720p/full"; - default -> String.valueOf(qualityValueInt); - }; - } catch (NumberFormatException e) { - return "Type Cannot Be Parsed"; - } - - } - - public static String voiceChannelBitrateResolver(Object bitrate) { - if (bitrate == null) { - return "ERROR: Value Returned Null"; - } - - try { - int bitrateInt = Integer.parseInt(bitrate.toString()); - if (bitrateInt <= 0) { - return "Unknown"; - } - - int kbps = bitrateInt / 1000; - return kbps + " kbps"; - } catch (NumberFormatException e) { - return "Type Cannot Be Parsed"; - } - - } public static String scheduleEventTypeResolver(Object type) { if (type == null) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelCreateEventHelper.java index 0be5d4ab..2da56769 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelCreateEventHelper.java @@ -2,7 +2,7 @@ import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; import io.github.eggy03.papertrail.bot.commons.utilities.DurationFormatter; -import io.github.eggy03.papertrail.bot.commons.utilities.TypeResolver; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; @@ -41,11 +41,11 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT Object newValue = changeValue.getNewValue(); switch (changeKey) { - case "user_limit" -> eb.addField("User Limit", "╰┈➤"+ TypeResolver.formatNumberOrUnlimited(newValue), false); + case "user_limit" -> eb.addField("User Limit", "╰┈➤"+ ChannelUtils.resolveVoiceChannelUserLimit(newValue), false); case "rate_limit_per_user" -> eb.addField("Slow Mode", "╰┈➤"+ DurationFormatter.formatSeconds(newValue), false); - case "type" -> eb.addField("Channel Type", "╰┈➤"+TypeResolver.channelTypeResolver(newValue), false); + case "type" -> eb.addField("Channel Type", "╰┈➤"+ ChannelUtils.resolveChannelType(newValue), false); case "nsfw" -> eb.addField("Is NSFW", "╰┈➤"+ BooleanFormatter.formatToYesOrNo(newValue), false); @@ -54,7 +54,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.addField("Channel Mention", "╰┈➤"+mentionableTargetChannel, true); } - case "bitrate" -> eb.addField("Voice Channel Bitrate", "╰┈➤"+TypeResolver.voiceChannelBitrateResolver(newValue), false); + case "bitrate" -> eb.addField("Voice Channel Bitrate", "╰┈➤"+ ChannelUtils.resolveVoiceChannelBitrate(newValue), false); case "permission_overwrites", "flags", "template", "available_tags" -> { // the first two are for all types of channels and may stay empty during creation events diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelDeleteEventHelper.java index 90d082ac..4a5b049f 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelDeleteEventHelper.java @@ -1,6 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.channel; -import io.github.eggy03.papertrail.bot.commons.utilities.TypeResolver; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; @@ -41,7 +41,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT switch (changeKey) { case "name" -> eb.addField("Name", "╰┈➤" + oldValue, false); - case "type" -> eb.addField("Type", "╰┈➤" + TypeResolver.channelTypeResolver(oldValue), false); + case "type" -> eb.addField("Type", "╰┈➤" + ChannelUtils.resolveChannelType(oldValue), false); default -> { // omit all other fields diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideCreateEventHelper.java index ed2dbec1..d898c324 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideCreateEventHelper.java @@ -40,8 +40,8 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT case "type" -> eb.addField("Override Type", "╰┈➤"+ ChannelUtils.resolveChannelOverrideTargetType(newValue), false); - case "deny" -> eb.addField("Denied Permissions", ChannelUtils.resolveChannelPermissions(newValue, "❌"), false); - case "allow" -> eb.addField("Allowed Permissions", ChannelUtils.resolveChannelPermissions(newValue, "✅"), false); + case "deny" -> eb.addField("Denied Permissions", ChannelUtils.resolveChannelOverridePermissions(newValue, "❌"), false); + case "allow" -> eb.addField("Allowed Permissions", ChannelUtils.resolveChannelOverridePermissions(newValue, "✅"), false); // id exposes the member/role id which for which the channel permissions are overridden // only one member/role permission id is fetched per loop diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideDeleteEventHelper.java index a45ac2de..9dd07faa 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideDeleteEventHelper.java @@ -41,8 +41,8 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT case "type" -> eb.addField("Override Type", "╰┈➤"+ ChannelUtils.resolveChannelOverrideTargetType(oldValue), false); - case "deny" -> eb.addField("Denied Permissions", ChannelUtils.resolveChannelPermissions(oldValue, "❌"), false); - case "allow" -> eb.addField("Allowed Permissions", ChannelUtils.resolveChannelPermissions(oldValue, "✅"), false); + case "deny" -> eb.addField("Denied Permissions", ChannelUtils.resolveChannelOverridePermissions(oldValue, "❌"), false); + case "allow" -> eb.addField("Allowed Permissions", ChannelUtils.resolveChannelOverridePermissions(oldValue, "✅"), false); // id exposes the member/role id which for which the channel permissions are overridden // only one member/role permission id is fetched per loop diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java index 64afaf1f..e68c746b 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java @@ -44,8 +44,8 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT switch (changeKey) { - case "deny" -> eb.addField("Denied Permissions", ChannelUtils.resolveChannelPermissions(newValue, "❌"), false); - case "allow" -> eb.addField("Allowed Permissions", ChannelUtils.resolveChannelPermissions(newValue, "✅"), false); + case "deny" -> eb.addField("Denied Permissions", ChannelUtils.resolveChannelOverridePermissions(newValue, "❌"), false); + case "allow" -> eb.addField("Allowed Permissions", ChannelUtils.resolveChannelOverridePermissions(newValue, "✅"), false); default -> { eb.addField(changeKey, "OLD_VALUE: "+oldValue, false); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelUpdateEventHelper.java index 7e4e6492..6ad20aec 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelUpdateEventHelper.java @@ -2,7 +2,7 @@ import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; import io.github.eggy03.papertrail.bot.commons.utilities.DurationFormatter; -import io.github.eggy03.papertrail.bot.commons.utilities.TypeResolver; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; @@ -44,8 +44,8 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT switch (changeKey) { case "user_limit" -> { - eb.addField("Old User Limit", "╰┈➤"+ TypeResolver.formatNumberOrUnlimited(oldValue), true); - eb.addField("New User Limit", "╰┈➤"+TypeResolver.formatNumberOrUnlimited(newValue), true); + eb.addField("Old User Limit", "╰┈➤"+ChannelUtils.resolveVoiceChannelUserLimit(oldValue), true); + eb.addField("New User Limit", "╰┈➤"+ChannelUtils.resolveVoiceChannelUserLimit(newValue), true); eb.addBlankField(true); } @@ -68,8 +68,8 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT } case "video_quality_mode" -> { - eb.addField("Old Video Quality Mode", "╰┈➤"+TypeResolver.videoQualityModeResolver(oldValue), true); - eb.addField("New Video Quality Mode", "╰┈➤"+TypeResolver.videoQualityModeResolver(newValue), true); + eb.addField("Old Video Quality Mode", "╰┈➤"+ChannelUtils.resolveVoiceChannelVideoQuality(oldValue), true); + eb.addField("New Video Quality Mode", "╰┈➤"+ChannelUtils.resolveVoiceChannelVideoQuality(newValue), true); eb.addBlankField(true); } @@ -80,8 +80,8 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT } case "bitrate" -> { - eb.addField("Old Voice Channel Bitrate", "╰┈➤"+TypeResolver.voiceChannelBitrateResolver(oldValue), true); - eb.addField("New Voice Channel Bitrate", "╰┈➤"+TypeResolver.voiceChannelBitrateResolver(newValue), true); + eb.addField("Old Voice Channel Bitrate", "╰┈➤"+ChannelUtils.resolveVoiceChannelBitrate(oldValue), true); + eb.addField("New Voice Channel Bitrate", "╰┈➤"+ChannelUtils.resolveVoiceChannelBitrate(newValue), true); eb.addBlankField(true); } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java index eafeacaa..fe129c68 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java @@ -5,6 +5,7 @@ import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Role; +import net.dv8tion.jda.api.entities.channel.ChannelType; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -15,36 +16,69 @@ public class ChannelUtils { // CHANNEL UTILS + @NotNull + public static String resolveChannelType(@Nullable Object channelTypeInteger) { + if (channelTypeInteger == null) { + return "Channel Type Integer is Null"; + } + try { + int t = Integer.parseInt(channelTypeInteger.toString()); + return ChannelType.fromId(t).name(); + } catch (NumberFormatException e) { + return "Channel Type Is Not Parsable: "+channelTypeInteger; + } - @NotNull - public static String resolveChannelPermissions(@Nullable Object permissionValue, @NonNull String emoji) { - if(permissionValue==null) - return "Null Permission Value"; + } - if(String.valueOf(permissionValue).trim().isEmpty()) - return "Permission Value was blank"; + @NotNull + public static String resolveVoiceChannelUserLimit(Object limitNumber) { + if (limitNumber == null) { + return "User Limit was Null"; + } try { - long permValue = Long.parseLong(String.valueOf(permissionValue)); - if(permValue==0) return "Permissions synced with category"; + int limitNumberInt = Integer.parseInt(limitNumber.toString()); + return limitNumberInt==0 ? "Unlimited" : String.valueOf(limitNumberInt); + } catch (NumberFormatException e) { + return "User Limit Cannot Be Parsed"; + } - StringBuilder permissions = new StringBuilder(); - EnumSet permissionEnumSet = Permission.getPermissions(permValue); - permissionEnumSet.forEach(permission -> permissions - .append(emoji) - .append(" ") - .append(permission.getName()) - .append(System.lineSeparator())); + } - return permissions.toString(); + @NotNull + public static String resolveVoiceChannelBitrate(@Nullable Object bitrate) { + if (bitrate == null) { + return "Voice Channel Bitrate was Null"; + } - } catch (NumberFormatException e){ - return "Permission Value could not be parsed: "+permissionValue; + try { + int bitrateInt = Integer.parseInt(bitrate.toString()); + return (bitrateInt / 1000) + " kbps"; + } catch (NumberFormatException e) { + return "Bitrate could not be parsed: "+bitrate; } } - // OVERRIDE UTILS + @NotNull + public static String resolveVoiceChannelVideoQuality(@Nullable Object voiceChannelVideoQualityInteger) { + if (voiceChannelVideoQualityInteger == null) { + return "Video Quality Integer was Null"; + } + + try { + int videoQuality = Integer.parseInt(voiceChannelVideoQualityInteger.toString()); + return switch (videoQuality) { + case 1 -> "Auto"; + case 2 -> "720p/full"; + default -> "Unknown Quality Mode: "+videoQuality; + }; + } catch (NumberFormatException e) { + return "Video Quality Integer Cannot Be Parsed"; + } + } + + // CHANNEL OVERRIDE UTILS @NotNull public static String resolveChannelOverrideTargetType (@Nullable Object targetTypeInteger) { if (targetTypeInteger == null) { @@ -64,6 +98,33 @@ public static String resolveChannelOverrideTargetType (@Nullable Object targetTy } + @NotNull + public static String resolveChannelOverridePermissions(@Nullable Object permissionValue, @NonNull String emoji) { + if(permissionValue==null) + return "Null Permission Value"; + + if(String.valueOf(permissionValue).trim().isEmpty()) + return "Permission Value was blank"; + + try { + long permValue = Long.parseLong(String.valueOf(permissionValue)); + if(permValue==0) return "Permissions synced with category"; + + StringBuilder permissions = new StringBuilder(); + EnumSet permissionEnumSet = Permission.getPermissions(permValue); + permissionEnumSet.forEach(permission -> permissions + .append(emoji) + .append(" ") + .append(permission.getName()) + .append(System.lineSeparator())); + + return permissions.toString(); + + } catch (NumberFormatException e){ + return "Permission Value could not be parsed: "+permissionValue; + } + } + // MISC UTILS @NotNull public static String autoResolveMemberOrRole(@Nullable Object memberOrRoleId, @NonNull GuildAuditLogEntryCreateEvent event) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadCreateEventHelper.java index b6e9919a..fe6c41cc 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadCreateEventHelper.java @@ -2,7 +2,7 @@ import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; import io.github.eggy03.papertrail.bot.commons.utilities.DurationFormatter; -import io.github.eggy03.papertrail.bot.commons.utilities.TypeResolver; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; @@ -55,8 +55,9 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.addField("🐌 Slowmode Limit", "╰┈➤"+DurationFormatter.formatSeconds(newValue), false); break; + // TODO make threadutils for resolving thread types case "type": - eb.addField("📁 Thread Type", "╰┈➤"+ TypeResolver.channelTypeResolver(newValue), false); + eb.addField("📁 Thread Type", "╰┈➤"+ ChannelUtils.resolveChannelType(newValue), false); break; case "archived": diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadDeleteEventHelper.java index 8aca08e5..8fee09de 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadDeleteEventHelper.java @@ -2,7 +2,7 @@ import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; import io.github.eggy03.papertrail.bot.commons.utilities.DurationFormatter; -import io.github.eggy03.papertrail.bot.commons.utilities.TypeResolver; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; @@ -51,8 +51,9 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.addField("🐌 Slowmode Limit", "╰┈➤"+DurationFormatter.formatSeconds(oldValue), false); break; + // TODO make threadutils case "type": - eb.addField("📁 Thread Type", "╰┈➤"+ TypeResolver.channelTypeResolver(oldValue), false); + eb.addField("📁 Thread Type", "╰┈➤"+ ChannelUtils.resolveChannelType(oldValue), false); break; case "archived": diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadUpdateEventHelper.java index d8dc1e67..124a5d83 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadUpdateEventHelper.java @@ -2,7 +2,7 @@ import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; import io.github.eggy03.papertrail.bot.commons.utilities.DurationFormatter; -import io.github.eggy03.papertrail.bot.commons.utilities.TypeResolver; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; @@ -62,9 +62,10 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.addBlankField(true); break; + // TODO make threadutils case "type": - eb.addField("📁 Old Thread Type", "╰┈➤"+ TypeResolver.channelTypeResolver(oldValue), true); - eb.addField("📁 New Thread Type", "╰┈➤"+TypeResolver.channelTypeResolver(newValue), true); + eb.addField("📁 Old Thread Type", "╰┈➤"+ChannelUtils.resolveChannelType(oldValue), true); + eb.addField("📁 New Thread Type", "╰┈➤"+ChannelUtils.resolveChannelType(newValue), true); eb.addBlankField(true); break; From d1986e80512bbaadbc3cd0d1fdb4bf909994b07d Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Mon, 9 Feb 2026 10:00:33 +0530 Subject: [PATCH 025/104] refactor(onboarding-utils): move onboarding utilities to dedicated package - Relocate `OnboardingUtils.java` from `commons.utilities` to `listeners.audit.helper.onboarding.utils`. - Update import in `OnboardingUpdateEventHelper.java`. - Improve code organization by grouping related utilities. Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../audit/helper/onboarding/OnboardingUpdateEventHelper.java | 2 +- .../audit/helper/onboarding/utils}/OnboardingUtils.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename src/main/java/io/github/eggy03/papertrail/bot/{commons/utilities => listeners/audit/helper/onboarding/utils}/OnboardingUtils.java (94%) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingUpdateEventHelper.java index 4d1676bf..9cf1ec43 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingUpdateEventHelper.java @@ -1,6 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.onboarding; -import io.github.eggy03.papertrail.bot.commons.utilities.OnboardingUtils; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.onboarding.utils.OnboardingUtils; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/OnboardingUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/utils/OnboardingUtils.java similarity index 94% rename from src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/OnboardingUtils.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/utils/OnboardingUtils.java index 8dcb3a4b..23067979 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/OnboardingUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/utils/OnboardingUtils.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.commons.utilities; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.onboarding.utils; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.entities.Guild; From 8dc7b38ba3d7047cd1ddd0f5713ade51f6219077 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Mon, 9 Feb 2026 11:28:23 +0530 Subject: [PATCH 026/104] refactor(utils): centralize number parsing and improve resolution - introduce `parseInt` and `parseLong` helpers in `GuildUtils`, `ChannelUtils`, and `AutoModUtils` - refactor resolution methods to use new parsing helpers, reducing boilerplate - rename `AutomodUtil.java` to `AutoModUtils.java` and update class name - use `AutoModEventType` and `AutoModTriggerType` enums in `AutoModUtils` - standardize null/unparsable value returns to "`N/A`" - add section comments for better code organization Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../helper/automod/utils/AutoModUtils.java | 55 +++++++ .../helper/automod/utils/AutomodUtil.java | 49 ------ .../helper/channel/utils/ChannelUtils.java | 145 ++++++++---------- .../audit/helper/guild/utils/GuildUtils.java | 135 ++++++++-------- 4 files changed, 193 insertions(+), 191 deletions(-) create mode 100644 src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutoModUtils.java delete mode 100644 src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutomodUtil.java diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutoModUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutoModUtils.java new file mode 100644 index 00000000..996b5cf5 --- /dev/null +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutoModUtils.java @@ -0,0 +1,55 @@ +package io.github.eggy03.papertrail.bot.listeners.audit.helper.automod.utils; + +import lombok.experimental.UtilityClass; +import net.dv8tion.jda.api.entities.automod.AutoModEventType; +import net.dv8tion.jda.api.entities.automod.AutoModTriggerType; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +@UtilityClass +public class AutoModUtils { + + public static final String NOT_AVAILABLE = "N/A"; + + // INTERNAL HELPERS + @Nullable + @SuppressWarnings("unused") + private static Long parseLong(@Nullable Object possibleLongValue) { + if (possibleLongValue == null) return null; + try { + return Long.parseLong(String.valueOf(possibleLongValue)); + } catch (NumberFormatException e) { + return null; + } + } + + @Nullable + private static Integer parseInt(@Nullable Object possibleIntegerValue) { + if (possibleIntegerValue == null) return null; + try { + return Integer.parseInt(String.valueOf(possibleIntegerValue)); + } catch (NumberFormatException e) { + return null; + } + } + + // AUTO MOD UTILS + @NotNull + public static String autoModEventTypeResolver(@Nullable Object autoModEventTypeInteger) { + Integer eventTypeInt = parseInt(autoModEventTypeInteger); + if (eventTypeInt == null) { + return NOT_AVAILABLE; + } + + return AutoModEventType.fromKey(eventTypeInt).name(); + } + + public static String autoModTriggerTypeResolver(@Nullable Object autoModTriggerTypeInteger) { + Integer triggerTypeInt = parseInt(autoModTriggerTypeInteger); + if (triggerTypeInt == null) + return NOT_AVAILABLE; + + + return AutoModTriggerType.fromKey(triggerTypeInt).name(); + } +} diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutomodUtil.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutomodUtil.java deleted file mode 100644 index 157e99bc..00000000 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutomodUtil.java +++ /dev/null @@ -1,49 +0,0 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.automod.utils; - -import lombok.experimental.UtilityClass; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -@UtilityClass -public class AutomodUtil { - - @NotNull - public static String automodEventTypeResolver(@Nullable Object type) { - if (type == null) { - return "Null Automod Event Type"; - } - - try { - int typeInt = Integer.parseInt(type.toString()); - return switch (typeInt) { - case 1 -> "Message Send"; - case 2 -> "Message Update"; - default -> "Unknown"; - }; - } catch (NumberFormatException e) { - return "Type Cannot Be Parsed"; - } - - } - - public static String automodTriggerTypeResolver(@Nullable Object type) { - if (type == null) { - return "Null Automod Trigger Type"; - } - - try { - int typeInt = Integer.parseInt(type.toString()); - return switch (typeInt) { - case 1 -> "Keyword"; - case 3 -> "Spam"; - case 4 -> "Keyword Preset"; - case 5 -> "Mention Spam"; - case 6 -> "Member Profile"; - default -> "Unknown"; - }; - } catch (NumberFormatException e) { - return "Type Cannot Be Parsed"; - } - - } -} diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java index fe129c68..671e5a9d 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java @@ -15,126 +15,117 @@ @UtilityClass public class ChannelUtils { - // CHANNEL UTILS - @NotNull - public static String resolveChannelType(@Nullable Object channelTypeInteger) { - if (channelTypeInteger == null) { - return "Channel Type Integer is Null"; + // INTERNAL HELPERS + @Nullable + private static Long parseLong(@Nullable Object possibleLongValue) { + if (possibleLongValue == null) return null; + try { + return Long.parseLong(String.valueOf(possibleLongValue)); + } catch (NumberFormatException e) { + return null; } + } + @Nullable + private static Integer parseInt(@Nullable Object possibleIntegerValue) { + if (possibleIntegerValue == null) return null; try { - int t = Integer.parseInt(channelTypeInteger.toString()); - return ChannelType.fromId(t).name(); + return Integer.parseInt(String.valueOf(possibleIntegerValue)); } catch (NumberFormatException e) { - return "Channel Type Is Not Parsable: "+channelTypeInteger; + return null; } + } + // CHANNEL UTILS + @NotNull + public static String resolveChannelType(@Nullable Object channelTypeInteger) { + + Integer channelType = parseInt(channelTypeInteger); + if (channelType == null) + return "Channel Type cannot be parsed: " + channelTypeInteger; + + return ChannelType.fromId(channelType).name(); } @NotNull public static String resolveVoiceChannelUserLimit(Object limitNumber) { - if (limitNumber == null) { - return "User Limit was Null"; - } - - try { - int limitNumberInt = Integer.parseInt(limitNumber.toString()); - return limitNumberInt==0 ? "Unlimited" : String.valueOf(limitNumberInt); - } catch (NumberFormatException e) { - return "User Limit Cannot Be Parsed"; - } + Integer userLimit = parseInt(limitNumber); + if (userLimit == null) + return "User Limit cannot be parsed"; + return userLimit == 0 ? "Unlimited" : userLimit.toString(); } @NotNull - public static String resolveVoiceChannelBitrate(@Nullable Object bitrate) { - if (bitrate == null) { - return "Voice Channel Bitrate was Null"; - } + public static String resolveVoiceChannelBitrate(@Nullable Object bitrateInteger) { + Integer bitrate = parseInt(bitrateInteger); + if (bitrate == null) + return "Voice Channel Bitrate cannot be parsed"; - try { - int bitrateInt = Integer.parseInt(bitrate.toString()); - return (bitrateInt / 1000) + " kbps"; - } catch (NumberFormatException e) { - return "Bitrate could not be parsed: "+bitrate; - } + return (bitrate / 1000) + " kbps"; } @NotNull public static String resolveVoiceChannelVideoQuality(@Nullable Object voiceChannelVideoQualityInteger) { - if (voiceChannelVideoQualityInteger == null) { - return "Video Quality Integer was Null"; - } - try { - int videoQuality = Integer.parseInt(voiceChannelVideoQualityInteger.toString()); - return switch (videoQuality) { - case 1 -> "Auto"; - case 2 -> "720p/full"; - default -> "Unknown Quality Mode: "+videoQuality; - }; - } catch (NumberFormatException e) { - return "Video Quality Integer Cannot Be Parsed"; - } + Integer videoQuality = parseInt(voiceChannelVideoQualityInteger); + + return switch (videoQuality) { + case 1 -> "Auto"; + case 2 -> "720p/full"; + case null -> "Video Quality cannot be parsed"; + default -> "Unknown Quality Mode: " + videoQuality; + }; } // CHANNEL OVERRIDE UTILS @NotNull - public static String resolveChannelOverrideTargetType (@Nullable Object targetTypeInteger) { - if (targetTypeInteger == null) { - return "Null Target Type Integer"; - } + public static String resolveChannelOverrideTargetType(@Nullable Object targetTypeInteger) { + Integer targetType = parseInt(targetTypeInteger); - try { - int typeInt = Integer.parseInt(targetTypeInteger.toString()); - return switch (typeInt) { - case 0 -> "Role"; - case 1 -> "Member/Application"; - default -> "Unknown Type: "+typeInt; - }; - } catch (NumberFormatException e) { - return "Target Type Integer Cannot Be Parsed: "+targetTypeInteger; - } + return switch (targetType) { + case 0 -> "Role"; + case 1 -> "Member/Application"; + case null -> "Target Type cannot be parsed"; + default -> "Unknown Type: " + targetType; + }; } @NotNull - public static String resolveChannelOverridePermissions(@Nullable Object permissionValue, @NonNull String emoji) { - if(permissionValue==null) - return "Null Permission Value"; + public static String resolveChannelOverridePermissions(@Nullable Object permissionValueLong, @NonNull String emoji) { - if(String.valueOf(permissionValue).trim().isEmpty()) - return "Permission Value was blank"; + Long permissionValue = parseLong(permissionValueLong); + if (permissionValue == null) + return "Permission Value cannot be parsed"; - try { - long permValue = Long.parseLong(String.valueOf(permissionValue)); - if(permValue==0) return "Permissions synced with category"; - - StringBuilder permissions = new StringBuilder(); - EnumSet permissionEnumSet = Permission.getPermissions(permValue); - permissionEnumSet.forEach(permission -> permissions - .append(emoji) - .append(" ") - .append(permission.getName()) - .append(System.lineSeparator())); + if (permissionValue == 0) + return "Permissions synced with category"; - return permissions.toString(); + StringBuilder permissions = new StringBuilder(); + EnumSet permissionEnumSet = Permission.getPermissions(permissionValue); + permissionEnumSet.forEach(permission -> permissions + .append(emoji) + .append(" ") + .append(permission.getName()) + .append(System.lineSeparator())); - } catch (NumberFormatException e){ - return "Permission Value could not be parsed: "+permissionValue; - } + return permissions.toString().trim(); } // MISC UTILS @NotNull public static String autoResolveMemberOrRole(@Nullable Object memberOrRoleId, @NonNull GuildAuditLogEntryCreateEvent event) { + if (memberOrRoleId == null) + return "Member/Role ID cannot be parsed"; + Member mb = event.getGuild().getMemberById(String.valueOf(memberOrRoleId)); Role r = event.getGuild().getRoleById(String.valueOf(memberOrRoleId)); - if(mb!=null) { + if (mb != null) { return mb.getAsMention(); - } else if (r!=null) { + } else if (r != null) { return r.getAsMention(); } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/utils/GuildUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/utils/GuildUtils.java index cb69be91..f86c83eb 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/utils/GuildUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/utils/GuildUtils.java @@ -11,99 +11,104 @@ @UtilityClass public class GuildUtils { - @NotNull - public static String resolveGuildVerificationLevel(@Nullable Object verificationLevel) { - if (verificationLevel == null) { - return "N/A"; - } + public static final String NOT_AVAILABLE = "N/A"; + // INTERNAL HELPERS + @Nullable + private static Long parseLong(@Nullable Object possibleLongValue) { + if (possibleLongValue == null) return null; try { - int t = Integer.parseInt(verificationLevel.toString()); - return switch (t) { //we could have used JDA's Guild.VerficationLevel but they don't have description - case 0 -> "NONE"; - case 1 -> "LOW (Verified Email)"; - case 2 -> "MEDIUM (Registered on Discord for more than 5 minutes"; - case 3 -> "HIGH (Must be a member of the server for longer than 10 minutes)"; - case 4 -> "VERY_HIGH (Must have a verified phone number)"; - default -> "Unknown"; - }; + return Long.parseLong(String.valueOf(possibleLongValue)); } catch (NumberFormatException e) { - return "Could not parse verification level"; + return null; } - } - @NotNull - public static String resolveGuildModActionMFALevel(@Nullable Object mfaLevel) { - if (mfaLevel == null) { - return "N/A"; - } + @Nullable + private static Integer parseInt(@Nullable Object possibleIntegerValue) { + if (possibleIntegerValue == null) return null; try { - int t = Integer.parseInt(mfaLevel.toString()); - return Guild.MFALevel.fromKey(t).name(); + return Integer.parseInt(String.valueOf(possibleIntegerValue)); } catch (NumberFormatException e) { - return "Could not parse MFA level"; + return null; } + } + + // GUILD UTILS + @NotNull + public static String resolveGuildVerificationLevel(@Nullable Object verificationLevelInteger) { + + Integer verificationLevel = parseInt(verificationLevelInteger); + return switch (verificationLevel) { //we could have used JDA's Guild.VerficationLevel but they don't have description + case 0 -> "NONE"; + case 1 -> "LOW (Verified Email)"; + case 2 -> "MEDIUM (Registered on Discord for more than 5 minutes"; + case 3 -> "HIGH (Must be a member of the server for longer than 10 minutes)"; + case 4 -> "VERY_HIGH (Must have a verified phone number)"; + case null -> NOT_AVAILABLE; + default -> "Unknown"; + }; } @NotNull - public static String resolveGuildDefaultMessageNotificationLevel(@Nullable Object notificationLevel) { - if (notificationLevel == null) { - return "N/A"; - } - try { - int t = Integer.parseInt(notificationLevel.toString()); - return Guild.NotificationLevel.fromKey(t).name(); - } catch (NumberFormatException e) { - return "Could not parse Notification Level"; - } + public static String resolveGuildModActionMFALevel(@Nullable Object mfaLevelInteger) { + Integer mfaLevel = parseInt(mfaLevelInteger); + if (mfaLevel == null) + return NOT_AVAILABLE; + + return Guild.MFALevel.fromKey(mfaLevel).name(); } @NotNull - public static String resolveExplicitContentFilterLevel (@Nullable Object explicitContentFilterLevel) { - if(explicitContentFilterLevel==null) - return "ECF Level is null"; + public static String resolveGuildDefaultMessageNotificationLevel(@Nullable Object notificationLevelInteger) { + Integer notificationLevel = parseInt(notificationLevelInteger); + if (notificationLevel == null) + return NOT_AVAILABLE; + + return Guild.NotificationLevel.fromKey(notificationLevel).name(); - try { - int level = Integer.parseInt(String.valueOf(explicitContentFilterLevel)); - return Guild.ExplicitContentLevel.fromKey(level).getDescription(); - } catch (NumberFormatException e) { - return "Could not parse ECF Level"; - } } @NotNull - public static String resolveSystemChannelFlags (@Nullable Object systemFlagsBitfield) { + public static String resolveExplicitContentFilterLevel(@Nullable Object explicitContentFilterLevelInteger) { + Integer ecfLevel = parseInt(explicitContentFilterLevelInteger); + if (ecfLevel == null) + return NOT_AVAILABLE; - if(systemFlagsBitfield==null) - return "Bitfield for System Flags was null"; + return Guild.ExplicitContentLevel.fromKey(ecfLevel).getDescription(); + } - try { - StringBuilder systemChannelFlags = new StringBuilder(); - int bitfield = Integer.parseInt(String.valueOf(systemFlagsBitfield)); - if (bitfield==0) return "No Flags Suppressed"; + @NotNull + public static String resolveSystemChannelFlags(@Nullable Object systemChannelFlagsIntegerObject) { + Integer systemChannelFlagsInteger = parseInt(systemChannelFlagsIntegerObject); - SystemChannelFlag.getFlags(bitfield).forEach(flag -> systemChannelFlags.append(flag.name()).append(System.lineSeparator())); + if (systemChannelFlagsInteger == null) + return NOT_AVAILABLE; - return systemChannelFlags.toString(); - } catch (NumberFormatException e) { - return "Could not parse System Flags"; - } + if (systemChannelFlagsInteger == 0) + return "No Flags Suppressed"; + + StringBuilder systemChannelFlags = new StringBuilder(); + SystemChannelFlag + .getFlags(systemChannelFlagsInteger) + .forEach(flag -> + systemChannelFlags + .append(flag.name()) + .append(System.lineSeparator())); + + return systemChannelFlags.toString().trim(); } + // MISC @NotNull - public static String resolveMentionableChannel (Object channelId, GuildAuditLogEntryCreateEvent event) { - if(channelId==null) - return "N/A"; + public static String resolveMentionableChannel(Object channelId, GuildAuditLogEntryCreateEvent event) { + Long channelIdLong = parseLong(channelId); + if (channelIdLong == null) + return NOT_AVAILABLE; - try { - long channelIdLong = Long.parseLong(String.valueOf(channelId)); - GuildChannel channel = event.getGuild().getGuildChannelById(channelIdLong); - return channel!=null ? channel.getAsMention() : String.valueOf(channelIdLong); - } catch (NumberFormatException e){ - return "Could not parse channel ID"; - } + GuildChannel channel = event.getGuild().getGuildChannelById(channelIdLong); + return channel != null ? channel.getAsMention() : channelIdLong.toString(); } } From 60ab4adc93880ac01155cb4159486d9c1b69ad1d Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Mon, 9 Feb 2026 11:29:00 +0530 Subject: [PATCH 027/104] refactor(audit): rename automod utility and refine embed fields - Rename `AutomodUtil` to `AutoModUtils` for consistency. - Update `AutoModerationRuleCreateEventHelper.java` to use `AutoModUtils`. - Make `GuildUpdateEventHelper.java` embed fields non-inline. - Remove redundant blank fields from `GuildUpdateEventHelper.java` embeds. Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../AutoModerationRuleCreateEventHelper.java | 6 +++--- .../helper/guild/GuildUpdateEventHelper.java | 15 ++++++--------- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleCreateEventHelper.java index e58c3bf2..1ea9296b 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleCreateEventHelper.java @@ -1,7 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.automod; import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.automod.utils.AutomodUtil; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.automod.utils.AutoModUtils; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; @@ -39,9 +39,9 @@ public static void format (GuildAuditLogEntryCreateEvent event, String channelId case "enabled" -> eb.addField("Enabled", "╰┈➤"+ BooleanFormatter.formatToYesOrNo(newValue), false); - case "trigger_type" -> eb.addField("Trigger Type", "╰┈➤"+ AutomodUtil.automodTriggerTypeResolver(newValue), false); + case "trigger_type" -> eb.addField("Trigger Type", "╰┈➤"+ AutoModUtils.autoModTriggerTypeResolver(newValue), false); - case "event_type" -> eb.addField("Event Type", "╰┈➤"+AutomodUtil.automodEventTypeResolver(newValue), false); + case "event_type" -> eb.addField("Event Type", "╰┈➤"+ AutoModUtils.autoModEventTypeResolver(newValue), false); case "name" -> eb.addField("AutoMod Rule Name ", "╰┈➤"+newValue, false); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/GuildUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/GuildUpdateEventHelper.java index eeac815e..7239b525 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/GuildUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/GuildUpdateEventHelper.java @@ -37,17 +37,15 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT switch (changeKey) { case "description" -> { - eb.addField("Old Description", String.valueOf(oldValue), true); - eb.addField("New Description", String.valueOf(newValue), true); - eb.addBlankField(false); + eb.addField("Old Description", String.valueOf(oldValue), false); + eb.addField("New Description", String.valueOf(newValue), false); } case "icon_hash" -> eb.addField("Icon Hash Change", "Guild Icon has been updated", false); case "name" -> { - eb.addField("Old Guild Name", String.valueOf(oldValue), true); - eb.addField("New Guild Name", String.valueOf(newValue), true); - eb.addBlankField(false); + eb.addField("Old Guild Name", String.valueOf(oldValue), false); + eb.addField("New Guild Name", String.valueOf(newValue), false); } case "preferred_locale" -> eb.addField("Preferred Locale Set To", String.valueOf(newValue), false); @@ -75,9 +73,8 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT User newOwner = ale.getJDA().getUserById(String.valueOf(newValue)); String mentionableOldOwner = (oldOwner != null ? oldOwner.getAsMention() : String.valueOf(oldValue)); String mentionableNewOwner = (newOwner != null ? newOwner.getAsMention() : String.valueOf(newValue)); - eb.addField("Old Owner", mentionableOldOwner, true); - eb.addField("New Owner", mentionableNewOwner, true); - eb.addBlankField(false); + eb.addField("Old Owner", mentionableOldOwner, false); + eb.addField("New Owner", mentionableNewOwner, false); } case "public_updates_channel_id" -> eb.addField("Announcements Channel Changed To", GuildUtils.resolveMentionableChannel(newValue, event), false); From 5b0c8479ae5033129d8ec3f1c59f6ddfd98f57ac Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Mon, 9 Feb 2026 11:31:11 +0530 Subject: [PATCH 028/104] refactor(audit): rename ban helper package to modactions - Move `BanEventHelper`, `KickEventHelper`, and `UnbanEventHelper` to the `modactions` package. - Update package declarations and `AuditLogEventListener` imports. - The `modactions` name better encompasses ban, kick, and unban events. Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../bot/listeners/audit/event/AuditLogEventListener.java | 6 +++--- .../audit/helper/{ban => modactions}/BanEventHelper.java | 2 +- .../audit/helper/{ban => modactions}/KickEventHelper.java | 2 +- .../audit/helper/{ban => modactions}/UnbanEventHelper.java | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/{ban => modactions}/BanEventHelper.java (96%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/{ban => modactions}/KickEventHelper.java (96%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/{ban => modactions}/UnbanEventHelper.java (96%) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/AuditLogEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/AuditLogEventListener.java index abcc0a88..f559eb1a 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/AuditLogEventListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/AuditLogEventListener.java @@ -7,9 +7,6 @@ import io.github.eggy03.papertrail.bot.listeners.audit.helper.automod.AutoModerationRuleCreateEventHelper; import io.github.eggy03.papertrail.bot.listeners.audit.helper.automod.AutoModerationRuleDeleteEventHelper; import io.github.eggy03.papertrail.bot.listeners.audit.helper.automod.AutoModerationRuleUpdateEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.ban.BanEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.ban.KickEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.ban.UnbanEventHelper; import io.github.eggy03.papertrail.bot.listeners.audit.helper.bot.BotAddEventHelper; import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.ChannelCreateEventHelper; import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.ChannelDeleteEventHelper; @@ -34,6 +31,9 @@ import io.github.eggy03.papertrail.bot.listeners.audit.helper.member.MemberVoiceMoveEventHelper; import io.github.eggy03.papertrail.bot.listeners.audit.helper.message.MessagePinEventHelper; import io.github.eggy03.papertrail.bot.listeners.audit.helper.message.MessageUnpinEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.modactions.BanEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.modactions.KickEventHelper; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.modactions.UnbanEventHelper; import io.github.eggy03.papertrail.bot.listeners.audit.helper.onboarding.OnboardingPromptCreateEventHelper; import io.github.eggy03.papertrail.bot.listeners.audit.helper.onboarding.OnboardingPromptDeleteEventHelper; import io.github.eggy03.papertrail.bot.listeners.audit.helper.onboarding.OnboardingPromptUpdateEventHelper; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/ban/BanEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/BanEventHelper.java similarity index 96% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/ban/BanEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/BanEventHelper.java index 5544ec44..debcdf3f 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/ban/BanEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/BanEventHelper.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.ban; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.modactions; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/ban/KickEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/KickEventHelper.java similarity index 96% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/ban/KickEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/KickEventHelper.java index 3917802d..93cd04ff 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/ban/KickEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/KickEventHelper.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.ban; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.modactions; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/ban/UnbanEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/UnbanEventHelper.java similarity index 96% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/ban/UnbanEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/UnbanEventHelper.java index beeb228c..1c9427a7 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/ban/UnbanEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/UnbanEventHelper.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.ban; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.modactions; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.EmbedBuilder; From fae20a37c100d457ef9e182db7982e1de988256c Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Mon, 9 Feb 2026 12:35:01 +0530 Subject: [PATCH 029/104] refactor(audit): improve integration event processing - Use `forEach` lambda for `AuditLogEntry` changes - Update `switch` statements to enhanced `switch` expressions - Add `@Slf4j` and log unimplemented audit log change keys - Implement embed sendability check with warning log - Remove unused `AuditLogChange` and `java.util.Map` imports - Adjust embed descriptions and delete event color to `Color.MAGENTA` Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../IntegrationCreateEventHelper.java | 43 ++++++++--------- .../IntegrationDeleteEventHelper.java | 46 +++++++++---------- 2 files changed, 42 insertions(+), 47 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationCreateEventHelper.java index 8dc7d34d..677651c7 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationCreateEventHelper.java @@ -1,8 +1,8 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.integration; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; @@ -10,55 +10,52 @@ import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import java.awt.Color; -import java.util.Map; @UtilityClass +@Slf4j public class IntegrationCreateEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Integration Create Event"); - User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ The following integration was created"); + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Integration Create Event"); + eb.setDescription("ℹ️ The following integration was created by: "+mentionableExecutor); eb.setColor(Color.PINK); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - for(Map.Entry changes: ale.getChanges().entrySet()) { + ale.getChanges().forEach((changeKey, changeValue) -> { + Object newValue = changeValue.getNewValue(); - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); + switch(changeKey) { + case "type" -> eb.addField("Integration Type","╰┈➤"+newValue, false); + case "name" -> eb.addField("Integration Name", "╰┈➤"+newValue, false); - switch(change) { - case "type": - eb.addField("Integration Type","╰┈➤"+newValue, false); - break; - - case "name": - eb.addField("Integration Name", "╰┈➤"+newValue, false); - break; - - default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); + default -> { + eb.addField("Unimplemented Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}", changeKey); + } } - } + }); eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationDeleteEventHelper.java index dc156f4c..d9a44c76 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationDeleteEventHelper.java @@ -1,8 +1,8 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.integration; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; @@ -10,55 +10,53 @@ import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import java.awt.Color; -import java.util.Map; @UtilityClass +@Slf4j public class IntegrationDeleteEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Integration Delete Event"); - User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ The following integration was deleted"); - eb.setColor(Color.RED); + + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Integration Delete Event"); + eb.setDescription("ℹ️ The following integration was deleted by: "+mentionableExecutor); + eb.setColor(Color.MAGENTA); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - for(Map.Entry changes: ale.getChanges().entrySet()) { - - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); - - switch(change) { - case "type": - eb.addField("⚙️ Integration Type", "╰┈➤"+oldValue, false); - break; + ale.getChanges().forEach((changeKey, changeValue) -> { + Object oldValue = changeValue.getOldValue(); - case "name": - eb.addField("🏷️ Integration Name", "╰┈➤"+oldValue, false); - break; + switch(changeKey) { + case "type" -> eb.addField("Integration Type","╰┈➤"+oldValue, false); + case "name" -> eb.addField("Integration Name", "╰┈➤"+oldValue, false); - default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); + default -> { + eb.addField("Unimplemented Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}", changeKey); + } } - } + }); eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } From cbb2118cd0e32ec9995de0c996ef65cd06c98d6f Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Mon, 9 Feb 2026 13:00:08 +0530 Subject: [PATCH 030/104] refactor(audit-log): enhance event processing robustness - Introduce `@Slf4j`, add `MessageEmbed` sendability checks, and improve unimplemented audit log change key logging. - Refactor `switch` statements in onboarding helpers to use arrow syntax. Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- ...utoModerationFlagToChannelEventHelper.java | 6 +++ ...utoModerationMemberTimeoutEventHelper.java | 6 +++ ...ModerationRuleBlockMessageEventHelper.java | 6 +++ .../AutoModerationRuleCreateEventHelper.java | 6 +++ .../AutoModerationRuleDeleteEventHelper.java | 6 +++ .../AutoModerationRuleUpdateEventHelper.java | 6 +++ .../audit/helper/bot/BotAddEventHelper.java | 11 +++++- .../channel/ChannelCreateEventHelper.java | 15 +++++-- .../channel/ChannelDeleteEventHelper.java | 13 ++++++- .../ChannelOverrideCreateEventHelper.java | 15 +++++-- .../ChannelOverrideDeleteEventHelper.java | 15 +++++-- .../ChannelOverrideUpdateEventHelper.java | 15 +++++-- .../channel/ChannelUpdateEventHelper.java | 16 ++++++-- .../VoiceChannelStatusDeleteEventHelper.java | 11 +++++- .../VoiceChannelStatusUpdateEventHelper.java | 11 +++++- .../helper/emoji/EmojiCreateEventHelper.java | 15 +++++-- .../helper/emoji/EmojiDeleteEventHelper.java | 15 +++++-- .../helper/emoji/EmojiUpdateEventHelper.java | 15 +++++-- .../generic/GenericAuditLogEventHelper.java | 11 +++++- .../helper/guild/GuildUpdateEventHelper.java | 17 ++++++-- .../IntegrationCreateEventHelper.java | 4 +- .../IntegrationDeleteEventHelper.java | 4 +- .../invite/InviteCreateEventHelper.java | 10 ++++- .../invite/InviteDeleteEventHelper.java | 10 ++++- .../helper/modactions/BanEventHelper.java | 14 +++++-- .../helper/modactions/KickEventHelper.java | 13 ++++++- .../helper/modactions/UnbanEventHelper.java | 9 ++++- .../OnboardingPromptCreateEventHelper.java | 38 +++++++++--------- .../OnboardingPromptDeleteEventHelper.java | 35 ++++++++--------- .../OnboardingPromptUpdateEventHelper.java | 39 +++++++++++-------- .../OnboardingUpdateEventHelper.java | 29 ++++++++------ 31 files changed, 322 insertions(+), 114 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationFlagToChannelEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationFlagToChannelEventHelper.java index 543b43a0..de26960f 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationFlagToChannelEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationFlagToChannelEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.automod; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; @@ -11,6 +12,7 @@ import java.awt.Color; @UtilityClass +@Slf4j public class AutoModerationFlagToChannelEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -35,6 +37,10 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationMemberTimeoutEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationMemberTimeoutEventHelper.java index 53d56d10..111aa84c 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationMemberTimeoutEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationMemberTimeoutEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.automod; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; @@ -11,6 +12,7 @@ import java.awt.Color; @UtilityClass +@Slf4j public class AutoModerationMemberTimeoutEventHelper { public static void format (GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -35,6 +37,10 @@ public static void format (GuildAuditLogEntryCreateEvent event, String channelId eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleBlockMessageEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleBlockMessageEventHelper.java index fc9d816f..1612c22b 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleBlockMessageEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleBlockMessageEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.automod; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; @@ -11,6 +12,7 @@ import java.awt.Color; @UtilityClass +@Slf4j public class AutoModerationRuleBlockMessageEventHelper { public static void format (GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -35,6 +37,10 @@ public static void format (GuildAuditLogEntryCreateEvent event, String channelId eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleCreateEventHelper.java index 1ea9296b..df774fbb 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleCreateEventHelper.java @@ -3,6 +3,7 @@ import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; import io.github.eggy03.papertrail.bot.listeners.audit.helper.automod.utils.AutoModUtils; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; @@ -13,6 +14,7 @@ import java.awt.Color; @UtilityClass +@Slf4j public class AutoModerationRuleCreateEventHelper { public static void format (GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -56,6 +58,10 @@ public static void format (GuildAuditLogEntryCreateEvent event, String channelId eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleDeleteEventHelper.java index 17e1fcf2..de85d1c0 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleDeleteEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.automod; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; @@ -11,6 +12,7 @@ import java.awt.Color; @UtilityClass +@Slf4j public class AutoModerationRuleDeleteEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -42,6 +44,10 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleUpdateEventHelper.java index 23ef8b31..0823ecbd 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleUpdateEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.automod; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; @@ -12,6 +13,7 @@ import java.awt.Color; @UtilityClass +@Slf4j public class AutoModerationRuleUpdateEventHelper { public static void format (GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -40,6 +42,10 @@ public static void format (GuildAuditLogEntryCreateEvent event, String channelId eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/bot/BotAddEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/bot/BotAddEventHelper.java index de175b64..7b36bf82 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/bot/BotAddEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/bot/BotAddEventHelper.java @@ -1,8 +1,10 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.bot; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; +import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -10,6 +12,7 @@ import java.awt.Color; @UtilityClass +@Slf4j public class BotAddEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -35,9 +38,15 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); + MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } + TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(eb.build()).queue(); + sendingChannel.sendMessageEmbeds(mb).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelCreateEventHelper.java index 2da56769..0d9dfb53 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelCreateEventHelper.java @@ -4,8 +4,10 @@ import io.github.eggy03.papertrail.bot.commons.utilities.DurationFormatter; import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; +import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; @@ -14,6 +16,7 @@ import java.awt.Color; @UtilityClass +@Slf4j public class ChannelCreateEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -62,8 +65,8 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT } default -> { - eb.addField(changeKey, "OLD_VALUE: "+oldValue, false); - eb.addField(changeKey, "NEW_VALUE: "+newValue, false); + eb.addField("Unimplemented Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); } } }); @@ -72,9 +75,15 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); + MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } + TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(eb.build()).queue(); + sendingChannel.sendMessageEmbeds(mb).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelDeleteEventHelper.java index 4a5b049f..2c42e2ed 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelDeleteEventHelper.java @@ -2,8 +2,10 @@ import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; +import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; @@ -12,6 +14,7 @@ import java.awt.Color; @UtilityClass +@Slf4j public class ChannelDeleteEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -54,9 +57,15 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); + MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } + TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(eb.build()).queue(); + if(sendingChannel!=null && sendingChannel.canTalk()) { + sendingChannel.sendMessageEmbeds(mb).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideCreateEventHelper.java index d898c324..3fa5c746 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideCreateEventHelper.java @@ -2,8 +2,10 @@ import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; +import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; @@ -12,6 +14,7 @@ import java.awt.Color; @UtilityClass +@Slf4j public class ChannelOverrideCreateEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -48,8 +51,8 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT case "id" -> eb.addField("Target", "╰┈➤"+ChannelUtils.autoResolveMemberOrRole(newValue, event), false); default -> { - eb.addField(changeKey, "OLD_VALUE: "+oldValue, false); - eb.addField(changeKey, "NEW_VALUE: "+newValue, false); + eb.addField("Unimplemented Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); } } }); @@ -61,9 +64,15 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); + MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } + TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(eb.build()).queue(); + sendingChannel.sendMessageEmbeds(mb).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideDeleteEventHelper.java index 9dd07faa..5365b3a8 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideDeleteEventHelper.java @@ -2,8 +2,10 @@ import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; +import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; @@ -12,6 +14,7 @@ import java.awt.Color; @UtilityClass +@Slf4j public class ChannelOverrideDeleteEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -49,8 +52,8 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT case "id" -> eb.addField("Target", "╰┈➤"+ChannelUtils.autoResolveMemberOrRole(oldValue, event), false); default -> { - eb.addField(changeKey, "OLD_VALUE: "+oldValue, false); - eb.addField(changeKey, "NEW_VALUE: "+newValue, false); + eb.addField("Unimplemented Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); } } }); @@ -61,9 +64,15 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); + MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } + TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(eb.build()).queue(); + sendingChannel.sendMessageEmbeds(mb).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java index e68c746b..e916db82 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java @@ -2,9 +2,11 @@ import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.Member; +import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.Role; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; @@ -14,6 +16,7 @@ import java.awt.Color; @UtilityClass +@Slf4j public class ChannelOverrideUpdateEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -48,8 +51,8 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT case "allow" -> eb.addField("Allowed Permissions", ChannelUtils.resolveChannelOverridePermissions(newValue, "✅"), false); default -> { - eb.addField(changeKey, "OLD_VALUE: "+oldValue, false); - eb.addField(changeKey, "NEW_VALUE: "+newValue, false); + eb.addField("Unimplemented Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); } } @@ -62,9 +65,15 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); + MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } + TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(eb.build()).queue(); + sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelUpdateEventHelper.java index 6ad20aec..15a8a634 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelUpdateEventHelper.java @@ -4,8 +4,10 @@ import io.github.eggy03.papertrail.bot.commons.utilities.DurationFormatter; import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; +import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; @@ -14,6 +16,7 @@ import java.awt.Color; @UtilityClass +@Slf4j public class ChannelUpdateEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -107,9 +110,8 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT case "default_reaction_emoji" -> eb.addField("Reaction Emoji", "╰┈➤Default reaction emoji was updated", false); default -> { - eb.addField(changeKey, "OLD_VALUE: "+oldValue, true); - eb.addField(changeKey, "NEW_VALUE: "+newValue, true); - eb.addBlankField(true); + eb.addField("Unimplemented Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); } } @@ -121,9 +123,15 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); + MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } + TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(eb.build()).queue(); + sendingChannel.sendMessageEmbeds(mb).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusDeleteEventHelper.java index 6dec9a63..0448e279 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusDeleteEventHelper.java @@ -1,8 +1,10 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.channel; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; +import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; @@ -11,6 +13,7 @@ import java.awt.Color; @UtilityClass +@Slf4j public class VoiceChannelStatusDeleteEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -38,9 +41,15 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); + MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } + TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(eb.build()).queue(); + sendingChannel.sendMessageEmbeds(mb).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusUpdateEventHelper.java index d5712238..e9235a85 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusUpdateEventHelper.java @@ -1,8 +1,10 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.channel; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; +import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; @@ -11,6 +13,7 @@ import java.awt.Color; @UtilityClass +@Slf4j public class VoiceChannelStatusUpdateEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -38,9 +41,15 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); + MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } + TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(eb.build()).queue(); + sendingChannel.sendMessageEmbeds(mb).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiCreateEventHelper.java index 534dab35..5f060743 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiCreateEventHelper.java @@ -1,8 +1,10 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.emoji; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; +import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -10,6 +12,7 @@ import java.awt.Color; @UtilityClass +@Slf4j public class EmojiCreateEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -36,17 +39,23 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.addField("Emoji Name", "╰┈➤" + newValue, false); eb.addField("Emoji", "╰┈➤" + "<:" + newValue + ":" + ale.getTargetId() + ">", false); // ale's TargetID retrieves the ID of the created emoji } else { - eb.addField(changeKey, "OLD_VALUE: " + oldValue, false); - eb.addField(changeKey, "NEW_VALUE: " + newValue, false); + eb.addField("Unimplemented Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); } }); eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); + MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } + TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(eb.build()).queue(); + sendingChannel.sendMessageEmbeds(mb).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiDeleteEventHelper.java index fe2d774a..59716468 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiDeleteEventHelper.java @@ -1,8 +1,10 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.emoji; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; +import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -10,6 +12,7 @@ import java.awt.Color; @UtilityClass +@Slf4j public class EmojiDeleteEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -35,8 +38,8 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT if (changeKey.equals("name")) { eb.addField("Emoji Name", "╰┈➤" + oldValue, false); } else { - eb.addField(changeKey, "OLD_VALUE: " + oldValue, false); - eb.addField(changeKey, "NEW_VALUE: " + newValue, false); + eb.addField("Unimplemented Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); } }); eb.addField("Deleted Emoji ID", "╰┈➤"+ale.getTargetId(), false); @@ -44,9 +47,15 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); + MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } + TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(eb.build()).queue(); + sendingChannel.sendMessageEmbeds(mb).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiUpdateEventHelper.java index 994e452a..0bbff4a2 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiUpdateEventHelper.java @@ -1,8 +1,10 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.emoji; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; +import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -10,6 +12,7 @@ import java.awt.Color; @UtilityClass +@Slf4j public class EmojiUpdateEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -37,17 +40,23 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.addField("Emoji Name Updated", "╰┈➤"+"From "+oldValue+" to "+newValue, false); eb.addField("Target Emoji", "╰┈➤"+"<:"+newValue+":"+ale.getTargetId()+">", false); } else { - eb.addField(changeKey, "OLD_VALUE: " + oldValue, false); - eb.addField(changeKey, "NEW_VALUE: " + newValue, false); + eb.addField("Unimplemented Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); } }); eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); + MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } + TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(eb.build()).queue(); + sendingChannel.sendMessageEmbeds(mb).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/generic/GenericAuditLogEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/generic/GenericAuditLogEventHelper.java index d9657b67..2433f0cf 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/generic/GenericAuditLogEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/generic/GenericAuditLogEventHelper.java @@ -1,8 +1,10 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.generic; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; +import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -11,6 +13,7 @@ // for events not defined by JDA yet or not implemented by papertrail @UtilityClass +@Slf4j public class GenericAuditLogEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -33,9 +36,15 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.addField(changeKey, "NEW_VALUE: "+changeValue.getNewValue(), false); }); + MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } + TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(eb.build()).queue(); + sendingChannel.sendMessageEmbeds(mb).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/GuildUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/GuildUpdateEventHelper.java index 7239b525..0098542e 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/GuildUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/GuildUpdateEventHelper.java @@ -4,8 +4,10 @@ import io.github.eggy03.papertrail.bot.commons.utilities.DurationFormatter; import io.github.eggy03.papertrail.bot.listeners.audit.helper.guild.utils.GuildUtils; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; +import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -13,6 +15,7 @@ import java.awt.Color; @UtilityClass +@Slf4j public class GuildUpdateEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -86,8 +89,8 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT case "explicit_content_filter" -> eb.addField("Explicit Content Filter", GuildUtils.resolveExplicitContentFilterLevel(newValue), false); default -> { - eb.addField(changeKey, "OLD_VALUE: " + oldValue, false); - eb.addField(changeKey, "NEW_VALUE: " + newValue, false); + eb.addField("Unimplemented/Unknown Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); } } }); @@ -95,9 +98,15 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); + MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } + TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(eb.build()).queue(); + if(sendingChannel!=null && sendingChannel.canTalk()) { + sendingChannel.sendMessageEmbeds(mb).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationCreateEventHelper.java index 677651c7..e51dbf7b 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationCreateEventHelper.java @@ -31,6 +31,8 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); ale.getChanges().forEach((changeKey, changeValue) -> { + + Object oldValue = changeValue.getOldValue(); Object newValue = changeValue.getNewValue(); switch(changeKey) { @@ -39,7 +41,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT default -> { eb.addField("Unimplemented Change Key", changeKey, false); - log.info("Unimplemented Change Key: {}", changeKey); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); } } }); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationDeleteEventHelper.java index d9a44c76..3ebac14c 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationDeleteEventHelper.java @@ -22,7 +22,6 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Integration Delete Event"); eb.setDescription("ℹ️ The following integration was deleted by: "+mentionableExecutor); @@ -33,6 +32,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT ale.getChanges().forEach((changeKey, changeValue) -> { Object oldValue = changeValue.getOldValue(); + Object newValue = changeValue.getNewValue(); switch(changeKey) { case "type" -> eb.addField("Integration Type","╰┈➤"+oldValue, false); @@ -40,7 +40,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT default -> { eb.addField("Unimplemented Change Key", changeKey, false); - log.info("Unimplemented Change Key: {}", changeKey); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); } } }); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteCreateEventHelper.java index d2a6eb7d..ef252ca2 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteCreateEventHelper.java @@ -3,6 +3,7 @@ import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; import io.github.eggy03.papertrail.bot.commons.utilities.DurationFormatter; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; @@ -14,6 +15,7 @@ import java.awt.Color; @UtilityClass +@Slf4j public class InviteCreateEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -62,8 +64,8 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT } default -> { - eb.addField(changeKey, "OLD_VALUE: "+oldValue, false); - eb.addField(changeKey, "NEW_VALUE: "+newValue, false); + eb.addField("Unimplemented Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); } } @@ -73,6 +75,10 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteDeleteEventHelper.java index 276c65fe..41c4a695 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteDeleteEventHelper.java @@ -2,6 +2,7 @@ import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; @@ -13,6 +14,7 @@ import java.awt.Color; @UtilityClass +@Slf4j public class InviteDeleteEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -57,8 +59,8 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT } default -> { - eb.addField(changeKey, "OLD_VALUE: "+oldValue, false); - eb.addField(changeKey, "NEW_VALUE: "+newValue, false); + eb.addField("Unimplemented Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); } } @@ -68,6 +70,10 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/BanEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/BanEventHelper.java index debcdf3f..55dabcab 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/BanEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/BanEventHelper.java @@ -1,8 +1,10 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.modactions; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; +import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -10,6 +12,7 @@ import java.awt.Color; @UtilityClass +@Slf4j public class BanEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -39,11 +42,16 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(eb.build()).queue(); + MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; } + TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); + if(sendingChannel!=null && sendingChannel.canTalk()) { + sendingChannel.sendMessageEmbeds(mb).queue(); + } }); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/KickEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/KickEventHelper.java index 93cd04ff..38ef3391 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/KickEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/KickEventHelper.java @@ -1,8 +1,10 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.modactions; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; +import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -10,6 +12,7 @@ import java.awt.Color; @UtilityClass +@Slf4j public class KickEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -39,9 +42,15 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); + MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } + TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(eb.build()).queue(); + if(sendingChannel!=null && sendingChannel.canTalk()) { + sendingChannel.sendMessageEmbeds(mb).queue(); } }); } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/UnbanEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/UnbanEventHelper.java index 1c9427a7..da4ae444 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/UnbanEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/UnbanEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.modactions; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; @@ -11,6 +12,7 @@ import java.awt.Color; @UtilityClass +@Slf4j public class UnbanEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -38,8 +40,13 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } + TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if (sendingChannel != null && sendingChannel.canTalk()) { + if(sendingChannel!=null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } }); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptCreateEventHelper.java index a5ac719b..a8cc7ef7 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptCreateEventHelper.java @@ -2,6 +2,7 @@ import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; @@ -12,6 +13,7 @@ import java.awt.Color; @UtilityClass +@Slf4j public class OnboardingPromptCreateEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -36,32 +38,24 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT Object newValue = changeValue.getNewValue(); switch (changeKey){ - case "single_select": - eb.addField("Single Selection Mode", BooleanFormatter.formatToYesOrNo(newValue), false); - break; + case "single_select" -> eb.addField("Single Selection Mode", BooleanFormatter.formatToYesOrNo(newValue), false); - case "required": - eb.addField("Required", BooleanFormatter.formatToYesOrNo(newValue), false); - break; + case "required" -> eb.addField("Required", BooleanFormatter.formatToYesOrNo(newValue), false); - case "type", "id": - break; + case "type", "id" -> { + // skip + } - case "title": - eb.addField("Question Title", String.valueOf(newValue), false); - break; + case "title" -> eb.addField("Question Title", String.valueOf(newValue), false); - case "options": - eb.addField("Question Options", "Review the options in Onboarding Settings", false); - break; + case "options" -> eb.addField("Question Options", "Review the options in Onboarding Settings", false); - case "in_onboarding": - eb.addField("Is a Pre-Join Question", BooleanFormatter.formatToYesOrNo(newValue), false); - break; + case "in_onboarding" -> eb.addField("Is a Pre-Join Question", BooleanFormatter.formatToYesOrNo(newValue), false); - default: - eb.addField(changeKey, "OLD_VALUE: "+oldValue, false); - eb.addField(changeKey, "NEW_VALUE: "+newValue, false); + default -> { + eb.addField("Unimplemented/Unknown Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); + } } }); @@ -70,6 +64,10 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptDeleteEventHelper.java index a35733d6..bda4c6ac 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptDeleteEventHelper.java @@ -2,6 +2,7 @@ import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; @@ -12,6 +13,7 @@ import java.awt.Color; @UtilityClass +@Slf4j public class OnboardingPromptDeleteEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -36,36 +38,33 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT Object newValue = changeValue.getNewValue(); switch (changeKey){ - case "single_select": - eb.addField("Single Selection Mode", BooleanFormatter.formatToYesOrNo(oldValue), false); - break; - case "required": - eb.addField("Was Required", BooleanFormatter.formatToYesOrNo(oldValue), false); - break; + case "single_select" -> eb.addField("Single Selection Mode", BooleanFormatter.formatToYesOrNo(oldValue), false); - case "type", "id", "options": - break; + case "required" -> eb.addField("Was Required", BooleanFormatter.formatToYesOrNo(oldValue), false); - case "title": - eb.addField("Question Title", String.valueOf(oldValue), false); - break; + case "type", "id", "options" -> { + // skip + } + case "title" -> eb.addField("Question Title", String.valueOf(oldValue), false); - case "in_onboarding": - eb.addField("Was a Pre-Join Question", BooleanFormatter.formatToYesOrNo(oldValue), false); - break; + case "in_onboarding" -> eb.addField("Was a Pre-Join Question", BooleanFormatter.formatToYesOrNo(oldValue), false); - default: - eb.addField(changeKey, "OLD_VALUE: "+oldValue, false); - eb.addField(changeKey, "NEW_VALUE: "+newValue, false); + default -> { + eb.addField("Unimplemented/Unknown Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); + } } - }); eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptUpdateEventHelper.java index 9b6a8e74..26639585 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptUpdateEventHelper.java @@ -2,6 +2,7 @@ import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; @@ -12,6 +13,7 @@ import java.awt.Color; @UtilityClass +@Slf4j public class OnboardingPromptUpdateEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -36,44 +38,47 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT Object newValue = changeValue.getNewValue(); switch (changeKey){ - case "single_select": + case "single_select" -> { eb.addField("Old Single Selection Mode", BooleanFormatter.formatToYesOrNo(oldValue), false); eb.addField("New Single Selection Mode", BooleanFormatter.formatToYesOrNo(newValue), false); - break; + } - case "required": + case "required" -> { eb.addField("Was Required", BooleanFormatter.formatToYesOrNo(oldValue), false); eb.addField("Is Required", BooleanFormatter.formatToYesOrNo(newValue), false); - break; + } - case "type", "id": - break; + case "type", "id" -> { + // skip + } - case "title": + case "title" -> { eb.addField("Old Question Title", String.valueOf(oldValue), false); eb.addField("New Question Title", String.valueOf(newValue), false); - break; + } - case "options": - eb.addField("Question Options", "Review the changed options in Onboarding Settings", false); - break; + case "options" -> eb.addField("Question Options", "Review the changed options in Onboarding Settings", false); - case "in_onboarding": + case "in_onboarding" -> { eb.addField("Was a Pre-Join Question", BooleanFormatter.formatToYesOrNo(oldValue), false); eb.addField("Is a Pre-Join Question", BooleanFormatter.formatToYesOrNo(newValue), false); - break; + } - default: - eb.addField(changeKey, "OLD_VALUE: "+oldValue, false); - eb.addField(changeKey, "NEW_VALUE: "+newValue, false); + default -> { + eb.addField("Unimplemented/Unknown Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); + } } - }); eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingUpdateEventHelper.java index 9cf1ec43..685f2e41 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingUpdateEventHelper.java @@ -2,6 +2,7 @@ import io.github.eggy03.papertrail.bot.listeners.audit.helper.onboarding.utils.OnboardingUtils; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.Guild; @@ -13,6 +14,7 @@ import java.awt.Color; @UtilityClass +@Slf4j public class OnboardingUpdateEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -38,27 +40,28 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT Object newValue = changeValue.getNewValue(); switch (changeKey){ - case "enabled": + case "enabled" -> { eb.addField("Old Onboarding Status", OnboardingUtils.formatStatus(oldValue), false); eb.addField("New Onboarding Status", OnboardingUtils.formatStatus(newValue), true); - break; + } - case "mode": + case "mode" -> { eb.addField("Old Onboarding Mode", OnboardingUtils.formatMode(oldValue), false); eb.addField("New Onboarding Mode", OnboardingUtils.formatMode(newValue), true); - break; + } - case "default_channel_ids": + case "default_channel_ids" ->{ eb.addField("Old Default Channels", OnboardingUtils.resolveChannelsFromList(guild, oldValue), false); eb.addField("New Default Channels", OnboardingUtils.resolveChannelsFromList(guild, newValue), false); - break; + } - case "prompts": // unknown as to exactly why this is triggered - eb.addField("Prompt Updates", "Overall Pre-join/Post-join questions may have been updated.\n Review changes manually.", false); - break; + // triggered also when prompts are deleted/created besides the default of update + case "prompts" -> eb.addField("Prompt Updates", "Overall Pre-join/Post-join questions may have been updated.\n Review changes manually.", false); - default: - eb.addField(changeKey, "from: "+oldValue+" to: "+newValue, false); + default -> { + eb.addField("Unimplemented/Unknown Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); + } } }); @@ -67,6 +70,10 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { From 3e9fd0fe95eb833189c927689b6217b3cebbad80 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Mon, 9 Feb 2026 13:31:23 +0530 Subject: [PATCH 031/104] fix(embed-handling): add check for sendable embeds - add `@Slf4j` annotation to audit event helper classes - introduce `MessageEmbed#isSendable()` check before sending embeds - log warning and prevent sending if embed is empty or too long - improve robustness and provide better debugging Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../audit/helper/member/MemberRoleUpdateEventHelper.java | 6 ++++++ .../audit/helper/member/MemberUpdateEventHelper.java | 6 ++++++ .../audit/helper/member/MemberVoiceKickEventHelper.java | 6 ++++++ .../audit/helper/member/MemberVoiceMoveEventHelper.java | 6 ++++++ .../audit/helper/message/MessagePinEventHelper.java | 6 ++++++ .../audit/helper/message/MessageUnpinEventHelper.java | 6 ++++++ .../audit/helper/role/RoleCreateEventHelper.java | 6 ++++++ .../audit/helper/role/RoleDeleteEventHelper.java | 6 ++++++ .../audit/helper/role/RoleUpdateEventHelper.java | 6 ++++++ .../scheduledevent/ScheduledEventCreateEventHelper.java | 6 ++++++ .../scheduledevent/ScheduledEventDeleteEventHelper.java | 6 ++++++ .../scheduledevent/ScheduledEventUpdateEventHelper.java | 6 ++++++ .../soundboard/SoundboardSoundCreateEventHelper.java | 6 ++++++ .../soundboard/SoundboardSoundDeleteEventHelper.java | 6 ++++++ .../soundboard/SoundboardSoundUpdateEventHelper.java | 6 ++++++ .../helper/stage/StageInstanceCreateEventHelper.java | 6 ++++++ .../helper/stage/StageInstanceDeleteEventHelper.java | 6 ++++++ .../helper/stage/StageInstanceUpdateEventHelper.java | 6 ++++++ .../audit/helper/sticker/StickerCreateEventHelper.java | 6 ++++++ .../audit/helper/sticker/StickerDeleteEventHelper.java | 6 ++++++ .../audit/helper/sticker/StickerUpdateEventHelper.java | 6 ++++++ .../audit/helper/thread/ThreadCreateEventHelper.java | 6 ++++++ .../audit/helper/thread/ThreadDeleteEventHelper.java | 6 ++++++ .../audit/helper/thread/ThreadUpdateEventHelper.java | 8 +++++++- .../audit/helper/webhook/WebhookCreateEventHelper.java | 6 ++++++ .../audit/helper/webhook/WebhookRemoveEventHelper.java | 6 ++++++ .../audit/helper/webhook/WebhookUpdateEventHelper.java | 6 ++++++ 27 files changed, 163 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberRoleUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberRoleUpdateEventHelper.java index 049751c5..39bd452b 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberRoleUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberRoleUpdateEventHelper.java @@ -2,6 +2,7 @@ import io.github.eggy03.papertrail.bot.commons.utilities.RoleObjectParser; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; @@ -15,6 +16,7 @@ import java.util.Objects; @UtilityClass +@Slf4j public class MemberRoleUpdateEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -64,6 +66,10 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberUpdateEventHelper.java index c16a07e4..8d6861a7 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberUpdateEventHelper.java @@ -3,6 +3,7 @@ import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; import io.github.eggy03.papertrail.bot.commons.utilities.DurationFormatter; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; @@ -17,6 +18,7 @@ import java.util.Objects; @UtilityClass +@Slf4j public class MemberUpdateEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -98,6 +100,10 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceKickEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceKickEventHelper.java index b990d7e4..ecce74a1 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceKickEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceKickEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.member; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; @@ -11,6 +12,7 @@ import java.awt.Color; @UtilityClass +@Slf4j public class MemberVoiceKickEventHelper { // the audit log does not expose much information regarding member vc move and kick events @@ -35,6 +37,10 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceMoveEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceMoveEventHelper.java index 9c5a621e..8162245d 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceMoveEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceMoveEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.member; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; @@ -11,6 +12,7 @@ import java.awt.Color; @UtilityClass +@Slf4j public class MemberVoiceMoveEventHelper { // the audit log does not expose much information regarding member vc move and kick events @@ -35,6 +37,10 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessagePinEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessagePinEventHelper.java index 495869db..08d035c8 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessagePinEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessagePinEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.message; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; @@ -11,6 +12,7 @@ import java.awt.Color; @UtilityClass +@Slf4j public class MessagePinEventHelper { // this audit log event does not expose anything other than the executor of the event @@ -34,6 +36,10 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessageUnpinEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessageUnpinEventHelper.java index 1b20b7d5..e0456f0b 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessageUnpinEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessageUnpinEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.message; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; @@ -11,6 +12,7 @@ import java.awt.Color; @UtilityClass +@Slf4j public class MessageUnpinEventHelper { // this audit log event does not expose anything other than the executor of the event @@ -34,6 +36,10 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleCreateEventHelper.java index e0110eb6..427d7e4a 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleCreateEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.role; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; @@ -14,6 +15,7 @@ import java.util.Map; @UtilityClass +@Slf4j public class RoleCreateEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -65,6 +67,10 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleDeleteEventHelper.java index 651fc8f3..69cad628 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleDeleteEventHelper.java @@ -4,6 +4,7 @@ import io.github.eggy03.papertrail.bot.commons.utilities.ColorFormatter; import io.github.eggy03.papertrail.bot.commons.utilities.PermissionResolver; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; @@ -17,6 +18,7 @@ import java.util.Map; @UtilityClass +@Slf4j public class RoleDeleteEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -79,6 +81,10 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleUpdateEventHelper.java index d34bdd37..6853d1ce 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleUpdateEventHelper.java @@ -4,6 +4,7 @@ import io.github.eggy03.papertrail.bot.commons.utilities.ColorFormatter; import io.github.eggy03.papertrail.bot.commons.utilities.PermissionResolver; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; @@ -17,6 +18,7 @@ import java.util.Map; @UtilityClass +@Slf4j public class RoleUpdateEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -92,6 +94,10 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventCreateEventHelper.java index dcf5ba74..9d725c2c 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventCreateEventHelper.java @@ -3,6 +3,7 @@ import io.github.eggy03.papertrail.bot.commons.utilities.GuildScheduledEventRecurrenceRuleStructureParser; import io.github.eggy03.papertrail.bot.commons.utilities.TypeResolver; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; @@ -16,6 +17,7 @@ import java.util.Map; @UtilityClass +@Slf4j public class ScheduledEventCreateEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -82,6 +84,10 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventDeleteEventHelper.java index c8022e69..001abae9 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventDeleteEventHelper.java @@ -3,6 +3,7 @@ import io.github.eggy03.papertrail.bot.commons.utilities.GuildScheduledEventRecurrenceRuleStructureParser; import io.github.eggy03.papertrail.bot.commons.utilities.TypeResolver; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; @@ -16,6 +17,7 @@ import java.util.Map; @UtilityClass +@Slf4j public class ScheduledEventDeleteEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -81,6 +83,10 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java index b397e0e8..b9028c3c 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java @@ -3,6 +3,7 @@ import io.github.eggy03.papertrail.bot.commons.utilities.GuildScheduledEventRecurrenceRuleStructureParser; import io.github.eggy03.papertrail.bot.commons.utilities.TypeResolver; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; @@ -18,6 +19,7 @@ import java.util.Objects; @UtilityClass +@Slf4j public class ScheduledEventUpdateEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -92,6 +94,10 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundCreateEventHelper.java index 04636113..6293ff02 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundCreateEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.soundboard; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; @@ -13,6 +14,7 @@ import java.util.Map; @UtilityClass +@Slf4j public class SoundboardSoundCreateEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -67,6 +69,10 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundDeleteEventHelper.java index 41290f51..989be1f0 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundDeleteEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.soundboard; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; @@ -13,6 +14,7 @@ import java.util.Map; @UtilityClass +@Slf4j public class SoundboardSoundDeleteEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -66,6 +68,10 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundUpdateEventHelper.java index 7f29d776..b0a0ad02 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundUpdateEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.soundboard; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; @@ -13,6 +14,7 @@ import java.util.Map; @UtilityClass +@Slf4j public class SoundboardSoundUpdateEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -71,6 +73,10 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceCreateEventHelper.java index 1c7b4777..0ea347fb 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceCreateEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.stage; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; @@ -13,6 +14,7 @@ import java.util.Map; @UtilityClass +@Slf4j public class StageInstanceCreateEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -55,6 +57,10 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceDeleteEventHelper.java index 0c6742b7..2ce234cf 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceDeleteEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.stage; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; @@ -13,6 +14,7 @@ import java.util.Map; @UtilityClass +@Slf4j public class StageInstanceDeleteEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -55,6 +57,10 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceUpdateEventHelper.java index d79adc79..4d10535d 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceUpdateEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.stage; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; @@ -13,6 +14,7 @@ import java.util.Map; @UtilityClass +@Slf4j public class StageInstanceUpdateEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -57,6 +59,10 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerCreateEventHelper.java index ba4d67f8..e2ad8089 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerCreateEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.sticker; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; @@ -14,6 +15,7 @@ import java.util.Map; @UtilityClass +@Slf4j public class StickerCreateEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -70,6 +72,10 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerDeleteEventHelper.java index 6a8b9383..704b13ef 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerDeleteEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.sticker; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; @@ -13,6 +14,7 @@ import java.util.Map; @UtilityClass +@Slf4j public class StickerDeleteEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -67,6 +69,10 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerUpdateEventHelper.java index 14cfb971..ee417b98 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerUpdateEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.sticker; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; @@ -15,6 +16,7 @@ import java.util.Objects; @UtilityClass +@Slf4j public class StickerUpdateEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -70,6 +72,10 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadCreateEventHelper.java index fe6c41cc..c0663c8b 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadCreateEventHelper.java @@ -4,6 +4,7 @@ import io.github.eggy03.papertrail.bot.commons.utilities.DurationFormatter; import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; @@ -17,6 +18,7 @@ import java.util.Map; @UtilityClass +@Slf4j public class ThreadCreateEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -82,6 +84,10 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadDeleteEventHelper.java index 8fee09de..04d5070b 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadDeleteEventHelper.java @@ -4,6 +4,7 @@ import io.github.eggy03.papertrail.bot.commons.utilities.DurationFormatter; import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; @@ -16,6 +17,7 @@ import java.util.Map; @UtilityClass +@Slf4j public class ThreadDeleteEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -77,6 +79,10 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadUpdateEventHelper.java index 124a5d83..e10e0b43 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadUpdateEventHelper.java @@ -4,6 +4,7 @@ import io.github.eggy03.papertrail.bot.commons.utilities.DurationFormatter; import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; @@ -17,6 +18,7 @@ import java.util.Map; @UtilityClass +@Slf4j public class ThreadUpdateEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -96,7 +98,11 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); + MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookCreateEventHelper.java index e30241c1..2324d24d 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookCreateEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.webhook; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; @@ -14,6 +15,7 @@ import java.util.Map; @UtilityClass +@Slf4j public class WebhookCreateEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -66,6 +68,10 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookRemoveEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookRemoveEventHelper.java index a3660003..bb46faa6 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookRemoveEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookRemoveEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.webhook; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; @@ -14,6 +15,7 @@ import java.util.Map; @UtilityClass +@Slf4j public class WebhookRemoveEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -65,6 +67,10 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookUpdateEventHelper.java index 67217f2b..a9b06448 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookUpdateEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.webhook; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; @@ -14,6 +15,7 @@ import java.util.Map; @UtilityClass +@Slf4j public class WebhookUpdateEventHelper { public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { @@ -65,6 +67,10 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); + if(!mb.isSendable()){ + log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if(sendingChannel!=null && sendingChannel.canTalk()) { From 3c152f968150a11c6cd094b1242daa3cbf4b29b1 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Mon, 9 Feb 2026 14:56:00 +0530 Subject: [PATCH 032/104] refactor: improve member update event helper - Extract nickname change logic to `resolveNickNameChanges`. - Standardize embed field titles and values. - Remove unused imports; add `NotNull`, `Nullable`. - Add default logging for unknown change keys. Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../member/MemberUpdateEventHelper.java | 98 +++++++++---------- 1 file changed, 48 insertions(+), 50 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberUpdateEventHelper.java index 8d6861a7..66e469a4 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberUpdateEventHelper.java @@ -5,16 +5,15 @@ import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.awt.Color; -import java.util.Map; import java.util.Objects; @UtilityClass @@ -25,76 +24,55 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Member Update Event"); - User executor = ale.getJDA().getUserById(ale.getUserIdLong()); - User target = ale.getJDA().getUserById(ale.getTargetIdLong()); - String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - String mentionableTarget = (target !=null ? target.getAsMention() : ale.getTargetId()); - Member targetMember = ale.getGuild().getMemberById(ale.getTargetId()); - String mentionableTargetEffectiveName = targetMember!=null ? targetMember.getEffectiveName() : "Name could not be fetched"; + User target = ale.getJDA().getUserById(ale.getTargetIdLong()); + String mentionableTarget = (target !=null ? target.getAsMention() : ale.getTargetId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ The following member was updated"); + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Member Update Event"); + eb.setDescription("ℹ️ The following member was updated by: "+mentionableExecutor); eb.setThumbnail(Objects.requireNonNull(event.getGuild().getMemberById(ale.getTargetId())).getEffectiveAvatarUrl()); eb.setColor(Color.CYAN); + eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - for(Map.Entry changes: ale.getChanges().entrySet()) { + eb.addField("Target", "╰┈➤"+mentionableTarget, false); - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); + ale.getChanges().forEach((changeKey, changeValue) -> { + Object oldValue = changeValue.getOldValue(); + Object newValue = changeValue.getNewValue(); - switch(change) { + switch (changeKey) { - case "communication_disabled_until": + case "communication_disabled_until" -> { if(newValue==null) { eb.setColor(Color.GREEN); - eb.addField("🟢 Timeout Lifted", "╰┈➤ Timeout for "+mentionableTarget+ " has been removed", false); + eb.addField("Timeout Lifted", "╰┈➤ Timeout has been removed", false); } else { eb.setColor(Color.YELLOW); - eb.addField("⛔ Timeout Received", "╰┈➤"+mentionableTarget+ " has received a timeout", false); - eb.addField("⏱️ Till", "╰┈➤"+ DurationFormatter.isoToLocalTimeCounter(newValue), false); - eb.addField("📝 Reason", "╰┈➤"+(ale.getReason()!=null ? ale.getReason() : "No Reason Provided"), false); + eb.addField("Timeout Received", "╰┈➤ Member has received a timeout", false); + eb.addField("Timeout Ends On", "╰┈➤"+ DurationFormatter.isoToLocalTimeCounter(newValue), false); + eb.addField("Timeout Reason", "╰┈➤"+(ale.getReason()!=null ? ale.getReason() : "No Reason Provided"), false); } + } - break; - - case "nick": - if(oldValue!=null && newValue==null) { // resetting to default nickname - eb.addField("🏷️ Target", "╰┈➤"+mentionableTarget, false); - eb.addField("🏷️ Old Nickname", "╰┈➤"+oldValue, false); - eb.addField("🏷️ Reset Name To", "╰┈➤"+mentionableTargetEffectiveName, false); - } else if(oldValue != null) { // changing from one nickname to another - eb.addField("🏷️ Target", "╰┈➤"+mentionableTarget, false); - eb.addField("🏷️ Old Nickname", "╰┈➤"+oldValue, false); - eb.addField("🏷️ New Nickname", "╰┈➤"+newValue, false); - } else if(newValue != null) { // changing from default nickname to a new nickname - eb.addField("🏷️ Target", "╰┈➤"+mentionableTarget, false); - eb.addField("🏷️ Nickname Added", "╰┈➤"+ newValue, false); - } - break; + case "nick" -> eb.addField("Nickname Update", "╰┈➤"+resolveNickNameChanges(oldValue, newValue), false); - case "mute": - eb.addField("🎙️ Is Muted", "╰┈➤Set "+mentionableTarget+"'s Mute Status as "+ BooleanFormatter.formatToEmoji(newValue), false); - break; + case "mute" -> eb.addField("Is Muted in VC", BooleanFormatter.formatToYesOrNo(newValue), false); - case "deaf": - eb.addField("🔇 Is Deafened", "╰┈➤Set "+mentionableTarget+"'s Deafened Status as "+ BooleanFormatter.formatToEmoji(newValue), false); - break; + case "deaf" -> eb.addField("Is Deafened in VC", BooleanFormatter.formatToYesOrNo(newValue), false); - case "bypasses_verification": - eb.addField("🛡️ Bypass Verification", "╰┈➤Set "+mentionableTarget+"'s verification bypass status as "+ BooleanFormatter.formatToEmoji(newValue), false); - break; + case "bypasses_verification" -> eb.addField("Bypass Verification", BooleanFormatter.formatToEnabledOrDisabled(newValue), false); - default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); + default -> { + eb.addField("Unimplemented Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); + } } - } + }); eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); @@ -110,4 +88,24 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT sendingChannel.sendMessageEmbeds(mb).queue(); } } + + @NotNull + @SuppressWarnings("all") + private static String resolveNickNameChanges(@Nullable Object oldNickValue, @Nullable Object newNickValue) { + + if(oldNickValue==null && newNickValue!=null) { // change from global name to a new nickname in the server + return "New Nickname Added: `"+newNickValue+"`"; + } + + if (oldNickValue!=null && newNickValue==null) { // change to the global name from having a nickname + return "Reset to Global Name from: `"+oldNickValue+"`"; + } + + if (oldNickValue!=null && newNickValue!=null) { // changing from one nick to another + return "Changed nickname from: `"+oldNickValue+"` to: `"+newNickValue+"`"; + } + + // both shouldn't be null which indicates that names couldn't be fetched from the event + return "Changes could not be resolved!"; + } } From aa4ca6b2487a54575e40a1953665bf8584fe02de Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Mon, 9 Feb 2026 18:14:17 +0530 Subject: [PATCH 033/104] refactor(role-utils): relocate and enhance role parsing utility - Relocate `RoleObjectParser` to `RoleUtils` within `listeners.audit.helper.role.utils` package. - Update `MemberRoleUpdateEventHelper` to utilize the new `RoleUtils.parseRoleListMap` method. - Improve `parseRoleListMap` with explicit `null` checks, `@NonNull` annotations, and string trimming. - Refine audit log embed description and change processing logic for member role updates. Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../member/MemberRoleUpdateEventHelper.java | 44 ++++++++----------- .../audit/helper/role/utils/RoleUtils.java} | 23 +++++----- 2 files changed, 31 insertions(+), 36 deletions(-) rename src/main/java/io/github/eggy03/papertrail/bot/{commons/utilities/RoleObjectParser.java => listeners/audit/helper/role/utils/RoleUtils.java} (58%) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberRoleUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberRoleUpdateEventHelper.java index 39bd452b..a88465cc 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberRoleUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberRoleUpdateEventHelper.java @@ -1,10 +1,9 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.member; -import io.github.eggy03.papertrail.bot.commons.utilities.RoleObjectParser; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.role.utils.RoleUtils; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; @@ -12,7 +11,6 @@ import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import java.awt.Color; -import java.util.Map; import java.util.Objects; @UtilityClass @@ -23,44 +21,38 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Member Role Update"); - User executor = ale.getJDA().getUserById(ale.getUserIdLong()); - User target = ale.getJDA().getUserById(ale.getTargetIdLong()); - String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); + + User target = ale.getJDA().getUserById(ale.getTargetIdLong()); String mentionableTarget = (target !=null ? target.getAsMention() : ale.getTargetId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ The following member role was updated"); + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Member Role Update"); + eb.setDescription("ℹ️ The following member had their role(s) updated by: "+mentionableExecutor); eb.setThumbnail(Objects.requireNonNull(event.getGuild().getMemberById(ale.getTargetIdLong())).getEffectiveAvatarUrl()); eb.setColor(Color.YELLOW); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - for(Map.Entry changes: ale.getChanges().entrySet()) { + eb.addField("\uD83C\uDFF7️️ Target Member", "╰┈➤"+mentionableTarget, false); - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); + ale.getChanges().forEach((changeKey, changeValue) -> { + Object oldValue = changeValue.getOldValue(); + Object newValue = changeValue.getNewValue(); - switch(change) { + switch (changeKey) { + case "$add" -> eb.addField("✅ Role(s) Added", "╰┈➤"+ RoleUtils.parseRoleListMap(event, newValue), false); - case "$add": - eb.addField("🏷️Target Member", "╰┈➤"+mentionableTarget, false); - eb.addField("✅Role(s) Added", "╰┈➤"+RoleObjectParser.parseRole(event, newValue), false); - break; + case "$remove" -> eb.addField("❌ Role(s) Removed", "╰┈➤"+RoleUtils.parseRoleListMap(event, newValue), false); - case "$remove": - eb.addField("🏷️Target Member", "╰┈➤"+mentionableTarget, false); - eb.addField("❌Role(s) Removed", "╰┈➤"+RoleObjectParser.parseRole(event, newValue), false); - break; - - default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); + default -> { + eb.addField("Unimplemented Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); + } } - } + }); eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/RoleObjectParser.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/utils/RoleUtils.java similarity index 58% rename from src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/RoleObjectParser.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/utils/RoleUtils.java index b593fceb..02195363 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/RoleObjectParser.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/utils/RoleUtils.java @@ -1,33 +1,36 @@ -package io.github.eggy03.papertrail.bot.commons.utilities; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.role.utils; +import lombok.NonNull; import lombok.experimental.UtilityClass; -import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.entities.Role; -import net.dv8tion.jda.api.events.guild.GenericGuildEvent; +import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.util.List; import java.util.Map; @UtilityClass -@Slf4j -public class RoleObjectParser { +public class RoleUtils { // Parses an array list of map of role objects supplied by JDA // roles are exposed as arraylists of maps [{name=role, id=1}, {name=role2, id=2}] - public static String parseRole(GenericGuildEvent event, Object roleObject) { + @NotNull + public static String parseRoleListMap(@NonNull GuildAuditLogEntryCreateEvent event, @Nullable Object roleObject) { + + if(roleObject==null) return "N/A"; if (roleObject instanceof List roleList) { StringBuilder roleString = new StringBuilder(); - for (Object o : roleList) { + roleList.forEach(o -> { if (o instanceof Map roleMap && roleMap.containsKey("id")) { String roleId = (String) roleMap.get("id"); Role role = event.getGuild().getRoleById(roleId); roleString.append(role!=null ? role.getAsMention() : roleMap.get("name")).append(" "); } - } - return roleString.toString(); + }); + return roleString.toString().trim(); } - return "N/A"; } } From 0584768eea604a7ec9fce4ae70a09a796872d280 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Mon, 9 Feb 2026 18:16:30 +0530 Subject: [PATCH 034/104] refactor(embed-messages): rephrase audit log event descriptions - Rephrase embed descriptions for member voice move and kick events - Remove redundant "By" prefix from embed descriptions - Move `EmbedBuilder` instantiation after executor retrieval for better flow Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../audit/helper/member/MemberVoiceKickEventHelper.java | 7 +++---- .../audit/helper/member/MemberVoiceMoveEventHelper.java | 7 +++---- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceKickEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceKickEventHelper.java index ecce74a1..82e9c844 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceKickEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceKickEventHelper.java @@ -21,13 +21,12 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Member Voice Kick Event"); - User executor = ale.getJDA().getUserById(ale.getUserId()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ A voice kick event was detected"); + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Member Voice Kick Event"); + eb.setDescription("ℹ️ A member was kicked from a voice channel by: "+mentionableExecutor); eb.setColor(Color.RED); eb.addField("Action Type", String.valueOf(ale.getType()), true); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceMoveEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceMoveEventHelper.java index 8162245d..e6e8a38a 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceMoveEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceMoveEventHelper.java @@ -21,13 +21,12 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Member Voice Move Event"); - User executor = ale.getJDA().getUserById(ale.getUserId()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ A voice move event was detected"); + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Member Voice Move Event"); + eb.setDescription("ℹ️ A member was moved to a different voice channel by: "+mentionableExecutor); eb.setColor(Color.YELLOW); eb.addField("Action Type", String.valueOf(ale.getType()), true); From 7be6caae263f75b8a0e1cee473130b7627d5c269 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Mon, 9 Feb 2026 18:21:57 +0530 Subject: [PATCH 035/104] refactor(message): clarify pin/unpin event target details - Rename `executor` to `target` in `MessagePinEventHelper.java` and `MessageUnpinEventHelper.java`. - Clarify in comments that `targetId` for pin/unpin events refers to the message sender. - Remove redundant emoji from embed descriptions. Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../audit/helper/message/MessagePinEventHelper.java | 9 +++++---- .../audit/helper/message/MessageUnpinEventHelper.java | 9 +++++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessagePinEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessagePinEventHelper.java index 08d035c8..1792bf0b 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessagePinEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessagePinEventHelper.java @@ -15,7 +15,8 @@ @Slf4j public class MessagePinEventHelper { - // this audit log event does not expose anything other than the executor of the event + // this audit log event does not expose anything other than the target of the event who sent the message + // nothing about the person who pinned it or the message itself public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); @@ -23,10 +24,10 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Message Pin Event"); - User executor = ale.getJDA().getUserById(ale.getTargetId()); - String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getTargetId()); + User target = ale.getJDA().getUserById(ale.getTargetId()); + String mentionableTarget = (target != null ? target.getAsMention() : ale.getTargetId()); - eb.setDescription("👤 **A message from **: "+mentionableExecutor+" was pinned"); + eb.setDescription("**A message from **: "+ mentionableTarget +" was pinned"); eb.setColor(Color.PINK); eb.addField("Action Type", String.valueOf(ale.getType()), true); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessageUnpinEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessageUnpinEventHelper.java index e0456f0b..99811b20 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessageUnpinEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessageUnpinEventHelper.java @@ -15,7 +15,8 @@ @Slf4j public class MessageUnpinEventHelper { - // this audit log event does not expose anything other than the executor of the event + // this audit log event does not expose anything other than the target of the event who sent the message + // nothing about the person who un-pinned it or the message itself public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); @@ -23,10 +24,10 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Message Unpin Event"); - User executor = ale.getJDA().getUserById(ale.getTargetId()); - String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getTargetId()); + User target = ale.getJDA().getUserById(ale.getTargetId()); + String mentionableTarget = (target != null ? target.getAsMention() : ale.getTargetId()); - eb.setDescription("👤 **A message from **: "+mentionableExecutor+" un-pinned"); + eb.setDescription("**A message from **: "+ mentionableTarget +" un-pinned"); eb.setColor(Color.MAGENTA); eb.addField("Action Type", String.valueOf(ale.getType()), true); From 8fee58b549d82c3428cffe9652630e4bffc5ef01 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Mon, 9 Feb 2026 18:35:46 +0530 Subject: [PATCH 036/104] style(onboarding): remove 'unknown' from unimplemented change key message - Remove redundant "`/Unknown`" from the "Unimplemented/Unknown Change Key" embed field title. - Improve clarity and conciseness of the audit log message. - Apply changes to `OnboardingUpdateEventHelper.java`, `OnboardingPromptUpdateEventHelper.java`, `OnboardingPromptDeleteEventHelper.java`, and `OnboardingPromptCreateEventHelper.java`. Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../listeners/audit/helper/guild/GuildUpdateEventHelper.java | 2 +- .../helper/onboarding/OnboardingPromptCreateEventHelper.java | 2 +- .../helper/onboarding/OnboardingPromptDeleteEventHelper.java | 2 +- .../helper/onboarding/OnboardingPromptUpdateEventHelper.java | 2 +- .../audit/helper/onboarding/OnboardingUpdateEventHelper.java | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/GuildUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/GuildUpdateEventHelper.java index 0098542e..f0c0c456 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/GuildUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/GuildUpdateEventHelper.java @@ -89,7 +89,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT case "explicit_content_filter" -> eb.addField("Explicit Content Filter", GuildUtils.resolveExplicitContentFilterLevel(newValue), false); default -> { - eb.addField("Unimplemented/Unknown Change Key", changeKey, false); + eb.addField("Unimplemented Change Key", changeKey, false); log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptCreateEventHelper.java index a8cc7ef7..39ac6943 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptCreateEventHelper.java @@ -53,7 +53,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT case "in_onboarding" -> eb.addField("Is a Pre-Join Question", BooleanFormatter.formatToYesOrNo(newValue), false); default -> { - eb.addField("Unimplemented/Unknown Change Key", changeKey, false); + eb.addField("Unimplemented Change Key", changeKey, false); log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptDeleteEventHelper.java index bda4c6ac..69256235 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptDeleteEventHelper.java @@ -51,7 +51,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT case "in_onboarding" -> eb.addField("Was a Pre-Join Question", BooleanFormatter.formatToYesOrNo(oldValue), false); default -> { - eb.addField("Unimplemented/Unknown Change Key", changeKey, false); + eb.addField("Unimplemented Change Key", changeKey, false); log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptUpdateEventHelper.java index 26639585..8aa30932 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptUpdateEventHelper.java @@ -65,7 +65,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT } default -> { - eb.addField("Unimplemented/Unknown Change Key", changeKey, false); + eb.addField("Unimplemented Change Key", changeKey, false); log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingUpdateEventHelper.java index 685f2e41..76eb1140 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingUpdateEventHelper.java @@ -59,7 +59,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT case "prompts" -> eb.addField("Prompt Updates", "Overall Pre-join/Post-join questions may have been updated.\n Review changes manually.", false); default -> { - eb.addField("Unimplemented/Unknown Change Key", changeKey, false); + eb.addField("Unimplemented Change Key", changeKey, false); log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); } } From 1ca49e07503ef6771907ee49bbb07d64b6c70a2e Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Mon, 9 Feb 2026 19:24:42 +0530 Subject: [PATCH 037/104] refactor(utilities): improve null check and parameter name in `formatToHex` - Update parameter name from `colorValue` to `colorValueInteger` for clarity. - Replace unnecessary `String.valueOf(colorValue).equals("null")` check with `colorValueInteger==null` Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../papertrail/bot/commons/utilities/ColorFormatter.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/ColorFormatter.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/ColorFormatter.java index 29cd4ff5..23251b2b 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/ColorFormatter.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/ColorFormatter.java @@ -8,14 +8,13 @@ @UtilityClass public class ColorFormatter { - public static String formatToHex(Object colorValue) { + public static String formatToHex(Object colorValueInteger) { - if(String.valueOf(colorValue).equals("null")) { + if(colorValueInteger==null) return "N/A"; - } try { - int color = Integer.parseInt(String.valueOf(colorValue)); + int color = Integer.parseInt(String.valueOf(colorValueInteger)); return String.format("#%06X", color); } catch (NumberFormatException e ) { return "No Parsable Color Integer Detected"; From d3fb326d701e3b297fb7de6514722a4af3b6989f Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Mon, 9 Feb 2026 19:25:35 +0530 Subject: [PATCH 038/104] feat(audit-logs): enhance role and member event parsing - Introduce `MemberUtils` for parsing member role lists - Refactor `RoleUtils` to resolve role permissions - Update role and member event helpers for improved detail - Standardize boolean formatting in audit log messages Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../member/MemberRoleUpdateEventHelper.java | 6 +- .../helper/member/utils/MemberUtils.java | 36 ++++++++ .../helper/role/RoleCreateEventHelper.java | 38 +++++++-- .../helper/role/RoleDeleteEventHelper.java | 60 +++++-------- .../helper/role/RoleUpdateEventHelper.java | 84 +++++++++---------- .../audit/helper/role/utils/RoleUtils.java | 66 ++++++++++----- 6 files changed, 178 insertions(+), 112 deletions(-) create mode 100644 src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/utils/MemberUtils.java diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberRoleUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberRoleUpdateEventHelper.java index a88465cc..75e2a159 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberRoleUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberRoleUpdateEventHelper.java @@ -1,6 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.member; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.role.utils.RoleUtils; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.member.utils.MemberUtils; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -43,9 +43,9 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT Object newValue = changeValue.getNewValue(); switch (changeKey) { - case "$add" -> eb.addField("✅ Role(s) Added", "╰┈➤"+ RoleUtils.parseRoleListMap(event, newValue), false); + case "$add" -> eb.addField("✅ Role(s) Added", "╰┈➤"+ MemberUtils.parseRoleListMap(event, newValue), false); - case "$remove" -> eb.addField("❌ Role(s) Removed", "╰┈➤"+RoleUtils.parseRoleListMap(event, newValue), false); + case "$remove" -> eb.addField("❌ Role(s) Removed", "╰┈➤"+MemberUtils.parseRoleListMap(event, newValue), false); default -> { eb.addField("Unimplemented Change Key", changeKey, false); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/utils/MemberUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/utils/MemberUtils.java new file mode 100644 index 00000000..794cb2e1 --- /dev/null +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/utils/MemberUtils.java @@ -0,0 +1,36 @@ +package io.github.eggy03.papertrail.bot.listeners.audit.helper.member.utils; + +import lombok.NonNull; +import lombok.experimental.UtilityClass; +import net.dv8tion.jda.api.entities.Role; +import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.List; +import java.util.Map; + +@UtilityClass +public class MemberUtils { + + // Parses an array list of map of role objects supplied by JDA + // roles are exposed as arraylists of maps [{name=role, id=1}, {name=role2, id=2}] + @NotNull + public static String parseRoleListMap(@NonNull GuildAuditLogEntryCreateEvent event, @Nullable Object roleObject) { + + if(roleObject==null) return "N/A"; + + if (roleObject instanceof List roleList) { + StringBuilder roleString = new StringBuilder(); + roleList.forEach(o -> { + if (o instanceof Map roleMap && roleMap.containsKey("id")) { + String roleId = (String) roleMap.get("id"); + Role role = event.getGuild().getRoleById(roleId); + roleString.append(role!=null ? role.getAsMention() : roleMap.get("name")).append(" "); + } + }); + return roleString.toString().trim(); + } + return "N/A"; + } +} diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleCreateEventHelper.java index 427d7e4a..4ecf12f3 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleCreateEventHelper.java @@ -22,22 +22,46 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Role Create Event"); - User executor = ale.getJDA().getUserById(ale.getUserId()); - Role targetRole = ale.getJDA().getRoleById(ale.getTargetId()); - String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); + + Role targetRole = ale.getJDA().getRoleById(ale.getTargetId()); String mentionableTargetRole = (targetRole !=null ? targetRole.getAsMention() : ale.getTargetId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\n The following role was created"); + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Role Create Event"); + eb.setDescription("The following role was created by: "+mentionableExecutor); eb.setColor(Color.GREEN); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - eb.addField("Target Role", mentionableTargetRole, false); + eb.addField("Target Role", "╰┈➤"+mentionableTargetRole, false); + + ale.getChanges().forEach((changeKey, changeValue) -> { + + Object oldValue = changeValue.getOldValue(); + Object newValue = changeValue.getNewValue(); + + switch (changeKey) { + + case "name" -> eb.addField("Role Name", "╰┈➤"+newValue, false); + + case "colors", "hoist", "color", "permissions", "mentionable" -> { + /* discord for some reason shows the following to be default/null even + * when you set them during the creation of the role itself + * and delegates them to ROLE_UPDATE event + */ + } + + default -> { + eb.addField("Unimplemented Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); + } + + } + + }); for(Map.Entry changes: ale.getChanges().entrySet()) { String change = changes.getKey(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleDeleteEventHelper.java index 69cad628..fc9651c8 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleDeleteEventHelper.java @@ -2,20 +2,17 @@ import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; import io.github.eggy03.papertrail.bot.commons.utilities.ColorFormatter; -import io.github.eggy03.papertrail.bot.commons.utilities.PermissionResolver; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.role.utils.RoleUtils; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; -import net.dv8tion.jda.api.entities.Role; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import java.awt.Color; -import java.util.Map; @UtilityClass @Slf4j @@ -25,58 +22,45 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Role Delete Event"); - User executor = ale.getJDA().getUserById(ale.getUserId()); - Role targetRole = ale.getJDA().getRoleById(ale.getTargetId()); - String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - String mentionableTargetRole = (targetRole !=null ? targetRole.getAsMention() : ale.getTargetId()); // this will always return the ID only - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ The following role was deleted"); + + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Role Delete Event"); + eb.setDescription("ℹ️ The following role was deleted by: "+mentionableExecutor); eb.setColor(Color.RED); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - for(Map.Entry changes: ale.getChanges().entrySet()) { + ale.getChanges().forEach((changeKey, changeValue) -> { + Object oldValue = changeValue.getOldValue(); + Object newValue = changeValue.getNewValue(); - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); + switch (changeKey) { - switch(change) { + case "name"-> eb.addField("Role Name", "╰┈➤"+oldValue, false); - case "name": - eb.addField("🏷️ Role Name", "╰┈➤"+oldValue, false); - break; + case "hoist"-> eb.addField("Display Separately", "╰┈➤"+ BooleanFormatter.formatToYesOrNo(oldValue), false); - case "hoist": - eb.addField("📂 Display Seperately", "╰┈➤"+ BooleanFormatter.formatToEmoji(oldValue), false); - break; + case "color" -> eb.addField("Color", "╰┈➤"+ ColorFormatter.formatToHex(oldValue), false); - case "color": - eb.addField("🎨 Color", "╰┈➤"+ ColorFormatter.formatToHex(oldValue), false); - break; + case "permissions"-> eb.addField("Role Permissions", RoleUtils.resolveRolePermissions(oldValue, "✅"), false); - case "permissions": - eb.addField("Role Permissions", PermissionResolver.getParsedPermissions(oldValue, "✅"), false); - break; + case "mentionable"-> eb.addField("Mentionable", "╰┈➤"+BooleanFormatter.formatToYesOrNo(oldValue), false); - case "mentionable": - eb.addField("🔗 Mentionable", "╰┈➤"+BooleanFormatter.formatToEmoji(oldValue), false); - break; + case "colors" -> eb.addField("Gradient Color System", ColorFormatter.formatGradientColorSystemToHex(oldValue), false); - case "colors": - eb.addField("🌈 Gradient Color System", "╰┈➤"+ColorFormatter.formatGradientColorSystemToHex(oldValue), false); - break; - default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); + default -> { + eb.addField("Unimplemented Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); + } } - } - eb.addField("🆔 Deleted Role ID", "╰┈➤"+mentionableTargetRole, false); + }); + eb.addField("🆔 Deleted Role ID", "╰┈➤"+ale.getTargetId(), false); + eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleUpdateEventHelper.java index 6853d1ce..ec21b42c 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleUpdateEventHelper.java @@ -2,11 +2,10 @@ import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; import io.github.eggy03.papertrail.bot.commons.utilities.ColorFormatter; -import io.github.eggy03.papertrail.bot.commons.utilities.PermissionResolver; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.role.utils.RoleUtils; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.Role; @@ -15,7 +14,6 @@ import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import java.awt.Color; -import java.util.Map; @UtilityClass @Slf4j @@ -25,70 +23,72 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Role Update Event"); - User executor = ale.getJDA().getUserById(ale.getUserId()); - Role targetRole = ale.getJDA().getRoleById(ale.getTargetId()); - String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); + + Role targetRole = ale.getJDA().getRoleById(ale.getTargetId()); String mentionableTargetRole = (targetRole !=null ? targetRole.getAsMention() : ale.getTargetId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ The following member role was updated"); + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Role Update Event"); + eb.setDescription("ℹ️ The following role was updated by: "+mentionableExecutor); eb.setColor(Color.YELLOW); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - eb.addField("Target Role", mentionableTargetRole, false); + eb.addField("Target Role", "╰┈➤"+mentionableTargetRole, false); - for(Map.Entry changes: ale.getChanges().entrySet()) { + ale.getChanges().forEach((changeKey, changeValue) -> { - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); + Object oldValue = changeValue.getOldValue(); + Object newValue = changeValue.getNewValue(); - switch(change) { + switch (changeKey) { - case "name": - eb.addField("🏷️ Old Role Name", "╰┈➤"+oldValue, true); - eb.addField("🏷️ New Role Name", "╰┈➤"+newValue, true); + case "name" -> { + eb.addField("Old Role Name", "╰┈➤"+oldValue, true); + eb.addField("New Role Name", "╰┈➤"+newValue, true); eb.addBlankField(true); - break; + } - case "hoist": - eb.addField("📂 Old Display Seperately", "╰┈➤"+ BooleanFormatter.formatToEmoji(oldValue), true); - eb.addField("📂 New Display Seperately", "╰┈➤"+BooleanFormatter.formatToEmoji(newValue), true); + case "hoist" -> { + eb.addField("Old Display Separately", "╰┈➤"+ BooleanFormatter.formatToYesOrNo(oldValue), true); + eb.addField("New Display Separately", "╰┈➤"+BooleanFormatter.formatToYesOrNo(newValue), true); eb.addBlankField(true); - break; + } - case "color": - eb.addField("🎨 Old Color", "╰┈➤"+ ColorFormatter.formatToHex(oldValue), true); - eb.addField("🎨 New Color", "╰┈➤"+ColorFormatter.formatToHex(newValue), true); + case "color" -> { + eb.addField("Old Color", "╰┈➤"+ ColorFormatter.formatToHex(oldValue), true); + eb.addField("New Color", "╰┈➤"+ColorFormatter.formatToHex(newValue), true); eb.addBlankField(true); - break; + } - case "permissions": - eb.addField("Old Role Permissions", PermissionResolver.getParsedPermissions(oldValue, "✅"), true); - eb.addField("New Role Permissions", PermissionResolver.getParsedPermissions(newValue, "✅"), true); + case "permissions" -> { + eb.addField("Old Role Permissions", RoleUtils.resolveRolePermissions(oldValue, "✅"), true); + eb.addField("New Role Permissions", RoleUtils.resolveRolePermissions(newValue, "✅"), true); eb.addBlankField(true); - break; + } - case "mentionable": - eb.addField("🔗 Old Mentionable", "╰┈➤"+BooleanFormatter.formatToEmoji(oldValue), true); - eb.addField("🔗 New Mentionable", "╰┈➤"+BooleanFormatter.formatToEmoji(newValue), true); + case "mentionable" -> { + eb.addField("Old Mentionable", "╰┈➤"+BooleanFormatter.formatToYesOrNo(oldValue), true); + eb.addField("New Mentionable", "╰┈➤"+BooleanFormatter.formatToYesOrNo(newValue), true); eb.addBlankField(true); - break; + } - case "colors": - eb.addField("🌈 Old Gradient Color System", "╰┈➤"+ColorFormatter.formatGradientColorSystemToHex(oldValue), true); - eb.addField("🌈 New Gradient Color System", "╰┈➤"+ColorFormatter.formatGradientColorSystemToHex(newValue), true); + case "colors" -> { + eb.addField("Old Gradient Color System", ColorFormatter.formatGradientColorSystemToHex(oldValue), true); + eb.addField("New Gradient Color System", ColorFormatter.formatGradientColorSystemToHex(newValue), true); eb.addBlankField(true); - break; - default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); + } + + default -> { + eb.addField("Unimplemented Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); + } + } - } + }); eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/utils/RoleUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/utils/RoleUtils.java index 02195363..adf54c22 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/utils/RoleUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/utils/RoleUtils.java @@ -2,35 +2,57 @@ import lombok.NonNull; import lombok.experimental.UtilityClass; -import net.dv8tion.jda.api.entities.Role; -import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; +import net.dv8tion.jda.api.Permission; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.List; -import java.util.Map; +import java.util.EnumSet; @UtilityClass public class RoleUtils { - // Parses an array list of map of role objects supplied by JDA - // roles are exposed as arraylists of maps [{name=role, id=1}, {name=role2, id=2}] - @NotNull - public static String parseRoleListMap(@NonNull GuildAuditLogEntryCreateEvent event, @Nullable Object roleObject) { - - if(roleObject==null) return "N/A"; - - if (roleObject instanceof List roleList) { - StringBuilder roleString = new StringBuilder(); - roleList.forEach(o -> { - if (o instanceof Map roleMap && roleMap.containsKey("id")) { - String roleId = (String) roleMap.get("id"); - Role role = event.getGuild().getRoleById(roleId); - roleString.append(role!=null ? role.getAsMention() : roleMap.get("name")).append(" "); - } - }); - return roleString.toString().trim(); + // INTERNAL HELPERS + @Nullable + private static Long parseLong(@Nullable Object possibleLongValue) { + if (possibleLongValue == null) return null; + try { + return Long.parseLong(String.valueOf(possibleLongValue)); + } catch (NumberFormatException e) { + return null; + } + } + + @Nullable + private static Integer parseInt(@Nullable Object possibleIntegerValue) { + if (possibleIntegerValue == null) return null; + try { + return Integer.parseInt(String.valueOf(possibleIntegerValue)); + } catch (NumberFormatException e) { + return null; } - return "N/A"; + } + + // ROLE UTILS + + @NotNull + public static String resolveRolePermissions (@Nullable Object permissionsValue, @NonNull String emoji) { + Long permissionLong = parseLong(permissionsValue); + if(permissionLong==null) + return "Permission cannot be parsed"; + + if(permissionLong==0) + return "No Permissions set"; + + StringBuilder permissions = new StringBuilder(); + EnumSet permissionEnum = Permission.getPermissions(permissionLong); + + permissionEnum.forEach(permission -> permissions + .append(emoji) + .append(" ") + .append(permission.getName()) + .append(System.lineSeparator()) + ); + + return permissions.toString().trim(); } } From 65b1c08b00e36c6b36df76690fe7df46937f869d Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Mon, 9 Feb 2026 19:29:12 +0530 Subject: [PATCH 039/104] refactor(utilities): remove message encryption and permission resolver utilities - delete the `MessageEncryption.java` utility class - delete the `PermissionResolver.java` utility class - these utilities are no longer required since their methods have already been ported / refactored into better alternatives Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../commons/utilities/MessageEncryption.java | 44 --------- .../commons/utilities/PermissionResolver.java | 89 ------------------- 2 files changed, 133 deletions(-) delete mode 100644 src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/MessageEncryption.java delete mode 100644 src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/PermissionResolver.java diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/MessageEncryption.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/MessageEncryption.java deleted file mode 100644 index 5f3c8f86..00000000 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/MessageEncryption.java +++ /dev/null @@ -1,44 +0,0 @@ -package io.github.eggy03.papertrail.bot.commons.utilities; - -import lombok.experimental.UtilityClass; -import lombok.extern.slf4j.Slf4j; -import org.jasypt.encryption.pbe.StandardPBEStringEncryptor; - -@UtilityClass -@Slf4j -public class MessageEncryption { - - private static final String SECRET = EnvConfig.get("MESSAGE_SECRET"); - private static final String ALGORITHM = "PBEWITHSHA256AND256BITAES-CBC-BC"; - - private static StandardPBEStringEncryptor getEncryptor() { - StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor(); - encryptor.setPassword(SECRET); - encryptor.setAlgorithm(ALGORITHM); - encryptor.setKeyObtentionIterations(100_000); - return encryptor; - } - - private static boolean isSecretEmpty() { - return SECRET == null || SECRET.isBlank(); - } - - public static String encrypt(String plainText) { - if(isSecretEmpty()) { - log.error("MESSAGE_SECRET is empty! No message will be encrypted and a null will be returned instead"); - return null; - } - StandardPBEStringEncryptor enc = getEncryptor(); - return enc.encrypt(plainText); - } - - public static String decrypt(String encryptedText) { - if(isSecretEmpty()) { - log.error("MESSAGE_SECRET is empty! No message will be decrypted and a null will be returned instead"); - return null; - } - StandardPBEStringEncryptor enc = getEncryptor(); - return enc.decrypt(encryptedText); - } - -} diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/PermissionResolver.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/PermissionResolver.java deleted file mode 100644 index 912ce539..00000000 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/PermissionResolver.java +++ /dev/null @@ -1,89 +0,0 @@ -package io.github.eggy03.papertrail.bot.commons.utilities; - -import lombok.experimental.UtilityClass; - -import java.util.Map; - -/** - @see Discord Permissions - */ -@UtilityClass -public class PermissionResolver { - - private static final Map PERMISSION_MAP = Map.ofEntries( - Map.entry(1L, "CREATE_INSTANT_INVITE"), - Map.entry(1L << 1, "KICK_MEMBERS"), - Map.entry(1L << 2, "BAN_MEMBERS"), - Map.entry(1L << 3, "ADMINISTRATOR"), - Map.entry(1L << 4, "MANAGE_CHANNELS"), - Map.entry(1L << 5, "MANAGE_GUILD"), - Map.entry(1L << 6, "ADD_REACTIONS"), - Map.entry(1L << 7, "VIEW_AUDIT_LOG"), - Map.entry(1L << 8, "PRIORITY_SPEAKER"), - Map.entry(1L << 9, "STREAM"), - Map.entry(1L << 10, "VIEW_CHANNEL"), - Map.entry(1L << 11, "SEND_MESSAGES"), - Map.entry(1L << 12, "SEND_TTS_MESSAGES"), - Map.entry(1L << 13, "MANAGE_MESSAGES"), - Map.entry(1L << 14, "EMBED_LINKS"), - Map.entry(1L << 15, "ATTACH_FILES"), - Map.entry(1L << 16, "READ_MESSAGE_HISTORY"), - Map.entry(1L << 17, "MENTION_EVERYONE"), - Map.entry(1L << 18, "USE_EXTERNAL_EMOJIS"), - Map.entry(1L << 19, "VIEW_GUILD_INSIGHTS"), - Map.entry(1L << 20, "CONNECT"), - Map.entry(1L << 21, "SPEAK"), - Map.entry(1L << 22, "MUTE_MEMBERS"), - Map.entry(1L << 23, "DEAFEN_MEMBERS"), - Map.entry(1L << 24, "MOVE_MEMBERS"), - Map.entry(1L << 25, "USE_VAD"), - Map.entry(1L << 26, "CHANGE_NICKNAME"), - Map.entry(1L << 27, "MANAGE_NICKNAMES"), - Map.entry(1L << 28, "MANAGE_ROLES"), - Map.entry(1L << 29, "MANAGE_WEBHOOKS"), - Map.entry(1L << 30, "MANAGE_GUILD_EXPRESSIONS"), - Map.entry(1L << 31, "USE_APPLICATION_COMMANDS"), - Map.entry(1L << 32, "REQUEST_TO_SPEAK"), - Map.entry(1L << 33, "MANAGE_EVENTS"), - Map.entry(1L << 34, "MANAGE_THREADS"), - Map.entry(1L << 35, "CREATE_PUBLIC_THREADS"), - Map.entry(1L << 36, "CREATE_PRIVATE_THREADS"), - Map.entry(1L << 37, "USE_EXTERNAL_STICKERS"), - Map.entry(1L << 38, "SEND_MESSAGES_IN_THREADS"), - Map.entry(1L << 39, "USE_EMBEDDED_ACTIVITIES"), - Map.entry(1L << 40, "MODERATE_MEMBERS"), - Map.entry(1L << 41, "VIEW_CREATOR_MONETIZATION_ANALYTICS"), - Map.entry(1L << 42, "USE_SOUNDBOARD"), - Map.entry(1L << 43, "CREATE_GUILD_EXPRESSIONS"), - Map.entry(1L << 44, "CREATE_EVENTS"), - Map.entry(1L << 45, "USE_EXTERNAL_SOUNDS"), - Map.entry(1L << 46, "SEND_VOICE_MESSAGES"), - - Map.entry(1L << 49, "SEND_POLLS"), - Map.entry(1L << 50, "USE_EXTERNAL_APPS"), - Map.entry(1L << 51, "PIN_MESSAGES"), - Map.entry(1L << 52, "BYPASS_SLOWMODE") - ); - - private static String parsePermissions(long bitfield, String emoji){ - StringBuilder permissions = new StringBuilder(); - for(Map.Entry entry: PERMISSION_MAP.entrySet()) { - if((bitfield & entry.getKey()) != 0) { - permissions.append(emoji).append(entry.getValue()).append(System.lineSeparator()); - } - } - return permissions.toString(); - } - - public static String getParsedPermissions(Object permissionValues, String emoji) { // this emoji is ❌ for denied permissions and ✅ for allowed - if(permissionValues==null) { - return "ERROR: Value Returned Null"; - } - - try { - return parsePermissions(Long.parseLong(permissionValues.toString()), emoji); - } catch (NumberFormatException e) { - return "No Parsable Permissions Detected"; - } - } -} From a4495d006d9ada990f6c90e6cdb5ec23a38fdbd0 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Mon, 9 Feb 2026 19:34:27 +0530 Subject: [PATCH 040/104] refactor(commons): standardize utility package and class names - rename `io.github.eggy03.papertrail.bot.commons.utilities` package to `io.github.eggy03.papertrail.bot.commons.utils` - rename `BooleanFormatter` to `BooleanUtils` - rename `ColorFormatter` to `ColorUtils` - rename `DurationFormatter` to `DurationUtils` - update all imports and usages of affected utility classes Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../BooleanUtils.java} | 4 ++-- .../ColorUtils.java} | 4 ++-- .../DurationUtils.java} | 4 ++-- .../{utilities => utils}/EnvConfig.java | 2 +- ...ledEventRecurrenceRuleStructureParser.java | 2 +- .../{utilities => utils}/TypeResolver.java | 2 +- .../audit/event/AuditLogEventListener.java | 2 +- .../event/guild/GuildBoostEventListener.java | 2 +- .../GuildMemberJoinAndLeaveEventListener.java | 10 +++++----- .../event/guild/GuildPollEventListener.java | 2 +- .../event/guild/GuildVoiceEventListener.java | 2 +- .../AutoModerationRuleCreateEventHelper.java | 4 ++-- .../channel/ChannelCreateEventHelper.java | 8 ++++---- .../channel/ChannelUpdateEventHelper.java | 20 +++++++++---------- .../helper/guild/GuildUpdateEventHelper.java | 10 +++++----- .../invite/InviteCreateEventHelper.java | 8 ++++---- .../invite/InviteDeleteEventHelper.java | 4 ++-- .../member/MemberUpdateEventHelper.java | 12 +++++------ .../OnboardingPromptCreateEventHelper.java | 8 ++++---- .../OnboardingPromptDeleteEventHelper.java | 8 ++++---- .../OnboardingPromptUpdateEventHelper.java | 14 ++++++------- .../helper/role/RoleDeleteEventHelper.java | 12 +++++------ .../helper/role/RoleUpdateEventHelper.java | 20 +++++++++---------- .../ScheduledEventCreateEventHelper.java | 4 ++-- .../ScheduledEventDeleteEventHelper.java | 4 ++-- .../ScheduledEventUpdateEventHelper.java | 4 ++-- .../thread/ThreadCreateEventHelper.java | 12 +++++------ .../thread/ThreadDeleteEventHelper.java | 12 +++++------ .../thread/ThreadUpdateEventHelper.java | 20 +++++++++---------- .../setup/AuditLogSetupCommandListener.java | 2 +- .../message/event/MessageLogListener.java | 2 +- .../setup/MessageLogSetupCommandListener.java | 2 +- .../bot/listeners/misc/SelfKickListener.java | 2 +- .../misc/ServerStatCommandListener.java | 4 ++-- .../bot/main/ConnectionInitializer.java | 2 +- 35 files changed, 117 insertions(+), 117 deletions(-) rename src/main/java/io/github/eggy03/papertrail/bot/commons/{utilities/BooleanFormatter.java => utils/BooleanUtils.java} (89%) rename src/main/java/io/github/eggy03/papertrail/bot/commons/{utilities/ColorFormatter.java => utils/ColorUtils.java} (93%) rename src/main/java/io/github/eggy03/papertrail/bot/commons/{utilities/DurationFormatter.java => utils/DurationUtils.java} (96%) rename src/main/java/io/github/eggy03/papertrail/bot/commons/{utilities => utils}/EnvConfig.java (86%) rename src/main/java/io/github/eggy03/papertrail/bot/commons/{utilities => utils}/GuildScheduledEventRecurrenceRuleStructureParser.java (98%) rename src/main/java/io/github/eggy03/papertrail/bot/commons/{utilities => utils}/TypeResolver.java (95%) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/BooleanFormatter.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/BooleanUtils.java similarity index 89% rename from src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/BooleanFormatter.java rename to src/main/java/io/github/eggy03/papertrail/bot/commons/utils/BooleanUtils.java index 35290129..8cf9cdf7 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/BooleanFormatter.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/BooleanUtils.java @@ -1,10 +1,10 @@ -package io.github.eggy03.papertrail.bot.commons.utilities; +package io.github.eggy03.papertrail.bot.commons.utils; import lombok.experimental.UtilityClass; import org.jetbrains.annotations.NotNull; @UtilityClass -public class BooleanFormatter { +public class BooleanUtils { @NotNull public static String formatToEmoji (Object value) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/ColorFormatter.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/ColorUtils.java similarity index 93% rename from src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/ColorFormatter.java rename to src/main/java/io/github/eggy03/papertrail/bot/commons/utils/ColorUtils.java index 23251b2b..c954013f 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/ColorFormatter.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/ColorUtils.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.commons.utilities; +package io.github.eggy03.papertrail.bot.commons.utils; import lombok.experimental.UtilityClass; @@ -6,7 +6,7 @@ import java.util.Map; @UtilityClass -public class ColorFormatter { +public class ColorUtils { public static String formatToHex(Object colorValueInteger) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/DurationFormatter.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/DurationUtils.java similarity index 96% rename from src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/DurationFormatter.java rename to src/main/java/io/github/eggy03/papertrail/bot/commons/utils/DurationUtils.java index 6c4fb71b..24c16cf7 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/DurationFormatter.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/DurationUtils.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.commons.utilities; +package io.github.eggy03.papertrail.bot.commons.utils; import lombok.experimental.UtilityClass; @@ -8,7 +8,7 @@ import java.time.format.DateTimeParseException; @UtilityClass -public class DurationFormatter { +public class DurationUtils { public static String formatSeconds(Object seconds) { if (seconds == null) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/EnvConfig.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/EnvConfig.java similarity index 86% rename from src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/EnvConfig.java rename to src/main/java/io/github/eggy03/papertrail/bot/commons/utils/EnvConfig.java index 71deb86b..bc0d530e 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/EnvConfig.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/EnvConfig.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.commons.utilities; +package io.github.eggy03.papertrail.bot.commons.utils; import io.github.cdimascio.dotenv.Dotenv; import lombok.experimental.UtilityClass; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/GuildScheduledEventRecurrenceRuleStructureParser.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/GuildScheduledEventRecurrenceRuleStructureParser.java similarity index 98% rename from src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/GuildScheduledEventRecurrenceRuleStructureParser.java rename to src/main/java/io/github/eggy03/papertrail/bot/commons/utils/GuildScheduledEventRecurrenceRuleStructureParser.java index 6968b030..a41e5432 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/GuildScheduledEventRecurrenceRuleStructureParser.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/GuildScheduledEventRecurrenceRuleStructureParser.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.commons.utilities; +package io.github.eggy03.papertrail.bot.commons.utils; import lombok.experimental.UtilityClass; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/TypeResolver.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/TypeResolver.java similarity index 95% rename from src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/TypeResolver.java rename to src/main/java/io/github/eggy03/papertrail/bot/commons/utils/TypeResolver.java index d8dfe0dd..9b0ff958 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utilities/TypeResolver.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/TypeResolver.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.commons.utilities; +package io.github.eggy03.papertrail.bot.commons.utils; import lombok.experimental.UtilityClass; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/AuditLogEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/AuditLogEventListener.java index f559eb1a..1494c32e 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/AuditLogEventListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/AuditLogEventListener.java @@ -1,6 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.event; -import io.github.eggy03.papertrail.bot.commons.utilities.EnvConfig; +import io.github.eggy03.papertrail.bot.commons.utils.EnvConfig; import io.github.eggy03.papertrail.bot.listeners.audit.helper.automod.AutoModerationFlagToChannelEventHelper; import io.github.eggy03.papertrail.bot.listeners.audit.helper.automod.AutoModerationMemberTimeoutEventHelper; import io.github.eggy03.papertrail.bot.listeners.audit.helper.automod.AutoModerationRuleBlockMessageEventHelper; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildBoostEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildBoostEventListener.java index 1600cba5..b2b302e2 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildBoostEventListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildBoostEventListener.java @@ -1,6 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.event.guild; -import io.github.eggy03.papertrail.bot.commons.utilities.EnvConfig; +import io.github.eggy03.papertrail.bot.commons.utils.EnvConfig; import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; import io.github.eggy03.papertrail.sdk.entity.AuditLogRegistrationEntity; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildMemberJoinAndLeaveEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildMemberJoinAndLeaveEventListener.java index 6001cdc8..61b541ed 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildMemberJoinAndLeaveEventListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildMemberJoinAndLeaveEventListener.java @@ -1,8 +1,8 @@ package io.github.eggy03.papertrail.bot.listeners.audit.event.guild; -import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; -import io.github.eggy03.papertrail.bot.commons.utilities.DurationFormatter; -import io.github.eggy03.papertrail.bot.commons.utilities.EnvConfig; +import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; +import io.github.eggy03.papertrail.bot.commons.utils.DurationUtils; +import io.github.eggy03.papertrail.bot.commons.utils.EnvConfig; import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; import io.github.eggy03.papertrail.sdk.entity.AuditLogRegistrationEntity; import net.dv8tion.jda.api.EmbedBuilder; @@ -55,8 +55,8 @@ public void onGuildMemberJoin(@NotNull GuildMemberJoinEvent event) { eb.setThumbnail(user.getEffectiveAvatarUrl()); eb.addField("ℹ️ Member Mention", "╰┈➤"+user.getAsMention(), false); eb.addField("🆔 Member ID", "╰┈➤"+user.getId(), false); - eb.addField("📅 Account Created", "╰┈➤"+DurationFormatter.isoToLocalTimeCounter(user.getTimeCreated()), false); - eb.addField("🤖 Bot Account", "╰┈➤"+ BooleanFormatter.formatToYesOrNo(user.isBot()), false); + eb.addField("📅 Account Created", "╰┈➤"+ DurationUtils.isoToLocalTimeCounter(user.getTimeCreated()), false); + eb.addField("🤖 Bot Account", "╰┈➤"+ BooleanUtils.formatToYesOrNo(user.isBot()), false); eb.setFooter("Member Join Detection"); eb.setTimestamp(Instant.now()); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildPollEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildPollEventListener.java index a5ab4be9..707aad0f 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildPollEventListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildPollEventListener.java @@ -1,6 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.event.guild; -import io.github.eggy03.papertrail.bot.commons.utilities.EnvConfig; +import io.github.eggy03.papertrail.bot.commons.utils.EnvConfig; import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; import io.github.eggy03.papertrail.sdk.entity.AuditLogRegistrationEntity; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildVoiceEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildVoiceEventListener.java index 669b88ff..c519cd1b 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildVoiceEventListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildVoiceEventListener.java @@ -1,6 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.event.guild; -import io.github.eggy03.papertrail.bot.commons.utilities.EnvConfig; +import io.github.eggy03.papertrail.bot.commons.utils.EnvConfig; import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; import io.github.eggy03.papertrail.sdk.entity.AuditLogRegistrationEntity; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleCreateEventHelper.java index df774fbb..70879177 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleCreateEventHelper.java @@ -1,6 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.automod; -import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; +import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; import io.github.eggy03.papertrail.bot.listeners.audit.helper.automod.utils.AutoModUtils; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; @@ -39,7 +39,7 @@ public static void format (GuildAuditLogEntryCreateEvent event, String channelId switch (changeKey) { - case "enabled" -> eb.addField("Enabled", "╰┈➤"+ BooleanFormatter.formatToYesOrNo(newValue), false); + case "enabled" -> eb.addField("Enabled", "╰┈➤"+ BooleanUtils.formatToYesOrNo(newValue), false); case "trigger_type" -> eb.addField("Trigger Type", "╰┈➤"+ AutoModUtils.autoModTriggerTypeResolver(newValue), false); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelCreateEventHelper.java index 0d9dfb53..b76c2111 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelCreateEventHelper.java @@ -1,7 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.channel; -import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; -import io.github.eggy03.papertrail.bot.commons.utilities.DurationFormatter; +import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; +import io.github.eggy03.papertrail.bot.commons.utils.DurationUtils; import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; @@ -46,11 +46,11 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT switch (changeKey) { case "user_limit" -> eb.addField("User Limit", "╰┈➤"+ ChannelUtils.resolveVoiceChannelUserLimit(newValue), false); - case "rate_limit_per_user" -> eb.addField("Slow Mode", "╰┈➤"+ DurationFormatter.formatSeconds(newValue), false); + case "rate_limit_per_user" -> eb.addField("Slow Mode", "╰┈➤"+ DurationUtils.formatSeconds(newValue), false); case "type" -> eb.addField("Channel Type", "╰┈➤"+ ChannelUtils.resolveChannelType(newValue), false); - case "nsfw" -> eb.addField("Is NSFW", "╰┈➤"+ BooleanFormatter.formatToYesOrNo(newValue), false); + case "nsfw" -> eb.addField("Is NSFW", "╰┈➤"+ BooleanUtils.formatToYesOrNo(newValue), false); case "name" -> { eb.addField("Channel Name", "╰┈➤"+newValue, false); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelUpdateEventHelper.java index 15a8a634..e7ed8500 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelUpdateEventHelper.java @@ -1,7 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.channel; -import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; -import io.github.eggy03.papertrail.bot.commons.utilities.DurationFormatter; +import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; +import io.github.eggy03.papertrail.bot.commons.utils.DurationUtils; import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; @@ -53,20 +53,20 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT } case "rate_limit_per_user" -> { - eb.addField("Old Slow mode Value", "╰┈➤"+ DurationFormatter.formatSeconds(oldValue), true); - eb.addField("New Slow mode Value", "╰┈➤"+DurationFormatter.formatSeconds(newValue), true); + eb.addField("Old Slow mode Value", "╰┈➤"+ DurationUtils.formatSeconds(oldValue), true); + eb.addField("New Slow mode Value", "╰┈➤"+ DurationUtils.formatSeconds(newValue), true); eb.addBlankField(true); } case "default_thread_rate_limit_per_user" -> { - eb.addField("Old Thread Slow mode Value", "╰┈➤"+ DurationFormatter.formatSeconds(oldValue), true); - eb.addField("New Thread Slow mode Value", "╰┈➤"+DurationFormatter.formatSeconds(newValue), true); + eb.addField("Old Thread Slow mode Value", "╰┈➤"+ DurationUtils.formatSeconds(oldValue), true); + eb.addField("New Thread Slow mode Value", "╰┈➤"+ DurationUtils.formatSeconds(newValue), true); eb.addBlankField(true); } case "nsfw" -> { - eb.addField("Was NSFW", "╰┈➤"+ BooleanFormatter.formatToYesOrNo(oldValue), true); - eb.addField("Is NSFW", "╰┈➤"+BooleanFormatter.formatToYesOrNo(newValue), true); + eb.addField("Was NSFW", "╰┈➤"+ BooleanUtils.formatToYesOrNo(oldValue), true); + eb.addField("Is NSFW", "╰┈➤"+ BooleanUtils.formatToYesOrNo(newValue), true); eb.addBlankField(true); } @@ -101,8 +101,8 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT } case "default_auto_archive_duration" -> { - eb.addField("Old Hide After Inactivity Timer", "╰┈➤"+DurationFormatter.formatMinutes(oldValue), true); - eb.addField("New Hide After Inactivity Timer", "╰┈➤"+DurationFormatter.formatMinutes(newValue), true); + eb.addField("Old Hide After Inactivity Timer", "╰┈➤"+ DurationUtils.formatMinutes(oldValue), true); + eb.addField("New Hide After Inactivity Timer", "╰┈➤"+ DurationUtils.formatMinutes(newValue), true); eb.addBlankField(true); } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/GuildUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/GuildUpdateEventHelper.java index f0c0c456..49ee911a 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/GuildUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/GuildUpdateEventHelper.java @@ -1,7 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.guild; -import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; -import io.github.eggy03.papertrail.bot.commons.utilities.DurationFormatter; +import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; +import io.github.eggy03.papertrail.bot.commons.utils.DurationUtils; import io.github.eggy03.papertrail.bot.listeners.audit.helper.guild.utils.GuildUtils; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; @@ -57,15 +57,15 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT case "default_message_notifications" -> eb.addField("Default Message Notifications Update", GuildUtils.resolveGuildDefaultMessageNotificationLevel(newValue), false); - case "afk_timeout" -> eb.addField("AFK Channel Timeout Change", DurationFormatter.formatSeconds(newValue), false); + case "afk_timeout" -> eb.addField("AFK Channel Timeout Change", DurationUtils.formatSeconds(newValue), false); case "system_channel_id" -> eb.addField("Community Updates Channel Changed To", GuildUtils.resolveMentionableChannel(newValue, event), false); - case "widget_enabled" -> eb.addField("Widget Enabled", BooleanFormatter.formatToYesOrNo(newValue), false); + case "widget_enabled" -> eb.addField("Widget Enabled", BooleanUtils.formatToYesOrNo(newValue), false); case "widget_channel_id" -> eb.addField("Widget Channel Changed To", GuildUtils.resolveMentionableChannel(newValue, event), false); - case "premium_progress_bar_enabled" -> eb.addField("Server Boost Progress Bar Enabled", BooleanFormatter.formatToYesOrNo(newValue), false); + case "premium_progress_bar_enabled" -> eb.addField("Server Boost Progress Bar Enabled", BooleanUtils.formatToYesOrNo(newValue), false); case "mfa_level" -> eb.addField("MFA Requirement Set To", GuildUtils.resolveGuildModActionMFALevel(newValue), false); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteCreateEventHelper.java index ef252ca2..6dfad0ed 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteCreateEventHelper.java @@ -1,7 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.invite; -import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; -import io.github.eggy03.papertrail.bot.commons.utilities.DurationFormatter; +import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; +import io.github.eggy03.papertrail.bot.commons.utils.DurationUtils; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -45,7 +45,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.addField("Invite Created By", "╰┈➤"+ mentionableInviter, false); } - case "temporary" -> eb.addField("Temporary Invite", "╰┈➤"+ BooleanFormatter.formatToYesOrNo(newValue), false); + case "temporary" -> eb.addField("Temporary Invite", "╰┈➤"+ BooleanUtils.formatToYesOrNo(newValue), false); case "max_uses" -> { int maxUses = Integer.parseInt(String.valueOf(newValue)); @@ -56,7 +56,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT // ignore } - case "max_age" -> eb.addField("Expires After", "╰┈➤"+ DurationFormatter.formatSeconds(newValue), false); + case "max_age" -> eb.addField("Expires After", "╰┈➤"+ DurationUtils.formatSeconds(newValue), false); case "channel_id" -> { GuildChannel channel = ale.getGuild().getGuildChannelById(String.valueOf(newValue)); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteDeleteEventHelper.java index 41c4a695..ed65e263 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteDeleteEventHelper.java @@ -1,6 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.invite; -import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; +import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -45,7 +45,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT eb.addField("Invite Originally Created By", "╰┈➤"+(inviter != null ? inviter.getAsMention() : "`Unknown`"), false); } - case "temporary" -> eb.addField("Temporary Invite", "╰┈➤"+ BooleanFormatter.formatToYesOrNo(oldValue), false); + case "temporary" -> eb.addField("Temporary Invite", "╰┈➤"+ BooleanUtils.formatToYesOrNo(oldValue), false); case "max_uses", "flags", "max_age" -> { // ignore diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberUpdateEventHelper.java index 66e469a4..d78c81b2 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberUpdateEventHelper.java @@ -1,7 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.member; -import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; -import io.github.eggy03.papertrail.bot.commons.utilities.DurationFormatter; +import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; +import io.github.eggy03.papertrail.bot.commons.utils.DurationUtils; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -54,18 +54,18 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT } else { eb.setColor(Color.YELLOW); eb.addField("Timeout Received", "╰┈➤ Member has received a timeout", false); - eb.addField("Timeout Ends On", "╰┈➤"+ DurationFormatter.isoToLocalTimeCounter(newValue), false); + eb.addField("Timeout Ends On", "╰┈➤"+ DurationUtils.isoToLocalTimeCounter(newValue), false); eb.addField("Timeout Reason", "╰┈➤"+(ale.getReason()!=null ? ale.getReason() : "No Reason Provided"), false); } } case "nick" -> eb.addField("Nickname Update", "╰┈➤"+resolveNickNameChanges(oldValue, newValue), false); - case "mute" -> eb.addField("Is Muted in VC", BooleanFormatter.formatToYesOrNo(newValue), false); + case "mute" -> eb.addField("Is Muted in VC", BooleanUtils.formatToYesOrNo(newValue), false); - case "deaf" -> eb.addField("Is Deafened in VC", BooleanFormatter.formatToYesOrNo(newValue), false); + case "deaf" -> eb.addField("Is Deafened in VC", BooleanUtils.formatToYesOrNo(newValue), false); - case "bypasses_verification" -> eb.addField("Bypass Verification", BooleanFormatter.formatToEnabledOrDisabled(newValue), false); + case "bypasses_verification" -> eb.addField("Bypass Verification", BooleanUtils.formatToEnabledOrDisabled(newValue), false); default -> { eb.addField("Unimplemented Change Key", changeKey, false); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptCreateEventHelper.java index 39ac6943..c759f027 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptCreateEventHelper.java @@ -1,6 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.onboarding; -import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; +import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -38,9 +38,9 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT Object newValue = changeValue.getNewValue(); switch (changeKey){ - case "single_select" -> eb.addField("Single Selection Mode", BooleanFormatter.formatToYesOrNo(newValue), false); + case "single_select" -> eb.addField("Single Selection Mode", BooleanUtils.formatToYesOrNo(newValue), false); - case "required" -> eb.addField("Required", BooleanFormatter.formatToYesOrNo(newValue), false); + case "required" -> eb.addField("Required", BooleanUtils.formatToYesOrNo(newValue), false); case "type", "id" -> { // skip @@ -50,7 +50,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT case "options" -> eb.addField("Question Options", "Review the options in Onboarding Settings", false); - case "in_onboarding" -> eb.addField("Is a Pre-Join Question", BooleanFormatter.formatToYesOrNo(newValue), false); + case "in_onboarding" -> eb.addField("Is a Pre-Join Question", BooleanUtils.formatToYesOrNo(newValue), false); default -> { eb.addField("Unimplemented Change Key", changeKey, false); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptDeleteEventHelper.java index 69256235..eefd0eb0 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptDeleteEventHelper.java @@ -1,6 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.onboarding; -import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; +import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -39,16 +39,16 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT switch (changeKey){ - case "single_select" -> eb.addField("Single Selection Mode", BooleanFormatter.formatToYesOrNo(oldValue), false); + case "single_select" -> eb.addField("Single Selection Mode", BooleanUtils.formatToYesOrNo(oldValue), false); - case "required" -> eb.addField("Was Required", BooleanFormatter.formatToYesOrNo(oldValue), false); + case "required" -> eb.addField("Was Required", BooleanUtils.formatToYesOrNo(oldValue), false); case "type", "id", "options" -> { // skip } case "title" -> eb.addField("Question Title", String.valueOf(oldValue), false); - case "in_onboarding" -> eb.addField("Was a Pre-Join Question", BooleanFormatter.formatToYesOrNo(oldValue), false); + case "in_onboarding" -> eb.addField("Was a Pre-Join Question", BooleanUtils.formatToYesOrNo(oldValue), false); default -> { eb.addField("Unimplemented Change Key", changeKey, false); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptUpdateEventHelper.java index 8aa30932..05cc0ff5 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptUpdateEventHelper.java @@ -1,6 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.onboarding; -import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; +import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -39,13 +39,13 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT switch (changeKey){ case "single_select" -> { - eb.addField("Old Single Selection Mode", BooleanFormatter.formatToYesOrNo(oldValue), false); - eb.addField("New Single Selection Mode", BooleanFormatter.formatToYesOrNo(newValue), false); + eb.addField("Old Single Selection Mode", BooleanUtils.formatToYesOrNo(oldValue), false); + eb.addField("New Single Selection Mode", BooleanUtils.formatToYesOrNo(newValue), false); } case "required" -> { - eb.addField("Was Required", BooleanFormatter.formatToYesOrNo(oldValue), false); - eb.addField("Is Required", BooleanFormatter.formatToYesOrNo(newValue), false); + eb.addField("Was Required", BooleanUtils.formatToYesOrNo(oldValue), false); + eb.addField("Is Required", BooleanUtils.formatToYesOrNo(newValue), false); } case "type", "id" -> { @@ -60,8 +60,8 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT case "options" -> eb.addField("Question Options", "Review the changed options in Onboarding Settings", false); case "in_onboarding" -> { - eb.addField("Was a Pre-Join Question", BooleanFormatter.formatToYesOrNo(oldValue), false); - eb.addField("Is a Pre-Join Question", BooleanFormatter.formatToYesOrNo(newValue), false); + eb.addField("Was a Pre-Join Question", BooleanUtils.formatToYesOrNo(oldValue), false); + eb.addField("Is a Pre-Join Question", BooleanUtils.formatToYesOrNo(newValue), false); } default -> { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleDeleteEventHelper.java index fc9651c8..19f0ecd3 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleDeleteEventHelper.java @@ -1,7 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.role; -import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; -import io.github.eggy03.papertrail.bot.commons.utilities.ColorFormatter; +import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; +import io.github.eggy03.papertrail.bot.commons.utils.ColorUtils; import io.github.eggy03.papertrail.bot.listeners.audit.helper.role.utils.RoleUtils; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; @@ -42,15 +42,15 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT case "name"-> eb.addField("Role Name", "╰┈➤"+oldValue, false); - case "hoist"-> eb.addField("Display Separately", "╰┈➤"+ BooleanFormatter.formatToYesOrNo(oldValue), false); + case "hoist"-> eb.addField("Display Separately", "╰┈➤"+ BooleanUtils.formatToYesOrNo(oldValue), false); - case "color" -> eb.addField("Color", "╰┈➤"+ ColorFormatter.formatToHex(oldValue), false); + case "color" -> eb.addField("Color", "╰┈➤"+ ColorUtils.formatToHex(oldValue), false); case "permissions"-> eb.addField("Role Permissions", RoleUtils.resolveRolePermissions(oldValue, "✅"), false); - case "mentionable"-> eb.addField("Mentionable", "╰┈➤"+BooleanFormatter.formatToYesOrNo(oldValue), false); + case "mentionable"-> eb.addField("Mentionable", "╰┈➤"+ BooleanUtils.formatToYesOrNo(oldValue), false); - case "colors" -> eb.addField("Gradient Color System", ColorFormatter.formatGradientColorSystemToHex(oldValue), false); + case "colors" -> eb.addField("Gradient Color System", ColorUtils.formatGradientColorSystemToHex(oldValue), false); default -> { eb.addField("Unimplemented Change Key", changeKey, false); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleUpdateEventHelper.java index ec21b42c..dc935814 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleUpdateEventHelper.java @@ -1,7 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.role; -import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; -import io.github.eggy03.papertrail.bot.commons.utilities.ColorFormatter; +import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; +import io.github.eggy03.papertrail.bot.commons.utils.ColorUtils; import io.github.eggy03.papertrail.bot.listeners.audit.helper.role.utils.RoleUtils; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; @@ -53,14 +53,14 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT } case "hoist" -> { - eb.addField("Old Display Separately", "╰┈➤"+ BooleanFormatter.formatToYesOrNo(oldValue), true); - eb.addField("New Display Separately", "╰┈➤"+BooleanFormatter.formatToYesOrNo(newValue), true); + eb.addField("Old Display Separately", "╰┈➤"+ BooleanUtils.formatToYesOrNo(oldValue), true); + eb.addField("New Display Separately", "╰┈➤"+ BooleanUtils.formatToYesOrNo(newValue), true); eb.addBlankField(true); } case "color" -> { - eb.addField("Old Color", "╰┈➤"+ ColorFormatter.formatToHex(oldValue), true); - eb.addField("New Color", "╰┈➤"+ColorFormatter.formatToHex(newValue), true); + eb.addField("Old Color", "╰┈➤"+ ColorUtils.formatToHex(oldValue), true); + eb.addField("New Color", "╰┈➤"+ ColorUtils.formatToHex(newValue), true); eb.addBlankField(true); } @@ -71,14 +71,14 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT } case "mentionable" -> { - eb.addField("Old Mentionable", "╰┈➤"+BooleanFormatter.formatToYesOrNo(oldValue), true); - eb.addField("New Mentionable", "╰┈➤"+BooleanFormatter.formatToYesOrNo(newValue), true); + eb.addField("Old Mentionable", "╰┈➤"+ BooleanUtils.formatToYesOrNo(oldValue), true); + eb.addField("New Mentionable", "╰┈➤"+ BooleanUtils.formatToYesOrNo(newValue), true); eb.addBlankField(true); } case "colors" -> { - eb.addField("Old Gradient Color System", ColorFormatter.formatGradientColorSystemToHex(oldValue), true); - eb.addField("New Gradient Color System", ColorFormatter.formatGradientColorSystemToHex(newValue), true); + eb.addField("Old Gradient Color System", ColorUtils.formatGradientColorSystemToHex(oldValue), true); + eb.addField("New Gradient Color System", ColorUtils.formatGradientColorSystemToHex(newValue), true); eb.addBlankField(true); } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventCreateEventHelper.java index 9d725c2c..d78b3217 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventCreateEventHelper.java @@ -1,7 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.scheduledevent; -import io.github.eggy03.papertrail.bot.commons.utilities.GuildScheduledEventRecurrenceRuleStructureParser; -import io.github.eggy03.papertrail.bot.commons.utilities.TypeResolver; +import io.github.eggy03.papertrail.bot.commons.utils.GuildScheduledEventRecurrenceRuleStructureParser; +import io.github.eggy03.papertrail.bot.commons.utils.TypeResolver; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventDeleteEventHelper.java index 001abae9..3dca1b87 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventDeleteEventHelper.java @@ -1,7 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.scheduledevent; -import io.github.eggy03.papertrail.bot.commons.utilities.GuildScheduledEventRecurrenceRuleStructureParser; -import io.github.eggy03.papertrail.bot.commons.utilities.TypeResolver; +import io.github.eggy03.papertrail.bot.commons.utils.GuildScheduledEventRecurrenceRuleStructureParser; +import io.github.eggy03.papertrail.bot.commons.utils.TypeResolver; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java index b9028c3c..219f8423 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java @@ -1,7 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.scheduledevent; -import io.github.eggy03.papertrail.bot.commons.utilities.GuildScheduledEventRecurrenceRuleStructureParser; -import io.github.eggy03.papertrail.bot.commons.utilities.TypeResolver; +import io.github.eggy03.papertrail.bot.commons.utils.GuildScheduledEventRecurrenceRuleStructureParser; +import io.github.eggy03.papertrail.bot.commons.utils.TypeResolver; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadCreateEventHelper.java index c0663c8b..4efb66cc 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadCreateEventHelper.java @@ -1,7 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.thread; -import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; -import io.github.eggy03.papertrail.bot.commons.utilities.DurationFormatter; +import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; +import io.github.eggy03.papertrail.bot.commons.utils.DurationUtils; import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; @@ -46,15 +46,15 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT switch(change) { case "locked": - eb.addField("🔒 Locked", "╰┈➤"+ BooleanFormatter.formatToEmoji(newValue), false); + eb.addField("🔒 Locked", "╰┈➤"+ BooleanUtils.formatToEmoji(newValue), false); break; case "auto_archive_duration": - eb.addField("🕒 Auto Archive Duration", "╰┈➤"+ DurationFormatter.formatMinutes(newValue), false); + eb.addField("🕒 Auto Archive Duration", "╰┈➤"+ DurationUtils.formatMinutes(newValue), false); break; case "rate_limit_per_user": - eb.addField("🐌 Slowmode Limit", "╰┈➤"+DurationFormatter.formatSeconds(newValue), false); + eb.addField("🐌 Slowmode Limit", "╰┈➤"+ DurationUtils.formatSeconds(newValue), false); break; // TODO make threadutils for resolving thread types @@ -63,7 +63,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT break; case "archived": - eb.addField("🗄️ Archived", "╰┈➤"+BooleanFormatter.formatToEmoji(newValue), false); + eb.addField("🗄️ Archived", "╰┈➤"+ BooleanUtils.formatToEmoji(newValue), false); break; case "flags": diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadDeleteEventHelper.java index 04d5070b..91dc0699 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadDeleteEventHelper.java @@ -1,7 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.thread; -import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; -import io.github.eggy03.papertrail.bot.commons.utilities.DurationFormatter; +import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; +import io.github.eggy03.papertrail.bot.commons.utils.DurationUtils; import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; @@ -42,15 +42,15 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT switch(change) { case "🔒 locked": - eb.addField("Locked", "╰┈➤"+ BooleanFormatter.formatToEmoji(oldValue), false); + eb.addField("Locked", "╰┈➤"+ BooleanUtils.formatToEmoji(oldValue), false); break; case "🕒 auto_archive_duration": - eb.addField("Auto Archive Duration", "╰┈➤"+ DurationFormatter.formatMinutes(oldValue), false); + eb.addField("Auto Archive Duration", "╰┈➤"+ DurationUtils.formatMinutes(oldValue), false); break; case "rate_limit_per_user": - eb.addField("🐌 Slowmode Limit", "╰┈➤"+DurationFormatter.formatSeconds(oldValue), false); + eb.addField("🐌 Slowmode Limit", "╰┈➤"+ DurationUtils.formatSeconds(oldValue), false); break; // TODO make threadutils @@ -59,7 +59,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT break; case "archived": - eb.addField("🗄️ Archived", "╰┈➤"+ BooleanFormatter.formatToEmoji(oldValue), false); + eb.addField("🗄️ Archived", "╰┈➤"+ BooleanUtils.formatToEmoji(oldValue), false); break; case "flags": diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadUpdateEventHelper.java index e10e0b43..b08ee006 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadUpdateEventHelper.java @@ -1,7 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.thread; -import io.github.eggy03.papertrail.bot.commons.utilities.BooleanFormatter; -import io.github.eggy03.papertrail.bot.commons.utilities.DurationFormatter; +import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; +import io.github.eggy03.papertrail.bot.commons.utils.DurationUtils; import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; @@ -47,20 +47,20 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT switch(change) { case "locked": - eb.addField("🔒 Old Lock Status", "╰┈➤"+ BooleanFormatter.formatToEmoji(oldValue), true); - eb.addField("🔒 New Lock Status", "╰┈➤"+ BooleanFormatter.formatToEmoji(newValue), true); + eb.addField("🔒 Old Lock Status", "╰┈➤"+ BooleanUtils.formatToEmoji(oldValue), true); + eb.addField("🔒 New Lock Status", "╰┈➤"+ BooleanUtils.formatToEmoji(newValue), true); eb.addBlankField(true); break; case "auto_archive_duration": - eb.addField("🕒 Old Auto Archive Duration", "╰┈➤"+ DurationFormatter.formatMinutes(oldValue), true); - eb.addField("🕒 New Auto Archive Duration", "╰┈➤"+DurationFormatter.formatMinutes(newValue), true); + eb.addField("🕒 Old Auto Archive Duration", "╰┈➤"+ DurationUtils.formatMinutes(oldValue), true); + eb.addField("🕒 New Auto Archive Duration", "╰┈➤"+ DurationUtils.formatMinutes(newValue), true); eb.addBlankField(true); break; case "rate_limit_per_user": - eb.addField("🐌 Old Slowmode Limit", "╰┈➤"+DurationFormatter.formatSeconds(oldValue), true); - eb.addField("🐌 New Slowmode Limit", "╰┈➤"+DurationFormatter.formatSeconds(newValue), true); + eb.addField("🐌 Old Slowmode Limit", "╰┈➤"+ DurationUtils.formatSeconds(oldValue), true); + eb.addField("🐌 New Slowmode Limit", "╰┈➤"+ DurationUtils.formatSeconds(newValue), true); eb.addBlankField(true); break; @@ -72,8 +72,8 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT break; case "archived": - eb.addField("🗄️ Old Archive Status", "╰┈➤"+BooleanFormatter.formatToEmoji(oldValue), true); - eb.addField("🗄️ New Archive Status", "╰┈➤"+BooleanFormatter.formatToEmoji(newValue), true); + eb.addField("🗄️ Old Archive Status", "╰┈➤"+ BooleanUtils.formatToEmoji(oldValue), true); + eb.addField("🗄️ New Archive Status", "╰┈➤"+ BooleanUtils.formatToEmoji(newValue), true); eb.addBlankField(true); break; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/setup/AuditLogSetupCommandListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/setup/AuditLogSetupCommandListener.java index 6dd6b706..3568e16e 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/setup/AuditLogSetupCommandListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/setup/AuditLogSetupCommandListener.java @@ -1,6 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.setup; -import io.github.eggy03.papertrail.bot.commons.utilities.EnvConfig; +import io.github.eggy03.papertrail.bot.commons.utils.EnvConfig; import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; import io.github.eggy03.papertrail.sdk.entity.AuditLogRegistrationEntity; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/event/MessageLogListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/event/MessageLogListener.java index 122355f4..c6e4b705 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/event/MessageLogListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/event/MessageLogListener.java @@ -1,7 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.message.event; import com.google.common.base.Splitter; -import io.github.eggy03.papertrail.bot.commons.utilities.EnvConfig; +import io.github.eggy03.papertrail.bot.commons.utils.EnvConfig; import io.github.eggy03.papertrail.sdk.client.MessageLogContentClient; import io.github.eggy03.papertrail.sdk.client.MessageLogRegistrationClient; import io.github.eggy03.papertrail.sdk.entity.MessageLogContentEntity; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/setup/MessageLogSetupCommandListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/setup/MessageLogSetupCommandListener.java index f062531c..f78354c2 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/setup/MessageLogSetupCommandListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/setup/MessageLogSetupCommandListener.java @@ -1,6 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.message.setup; -import io.github.eggy03.papertrail.bot.commons.utilities.EnvConfig; +import io.github.eggy03.papertrail.bot.commons.utils.EnvConfig; import io.github.eggy03.papertrail.sdk.client.MessageLogRegistrationClient; import io.github.eggy03.papertrail.sdk.entity.MessageLogRegistrationEntity; import net.dv8tion.jda.api.EmbedBuilder; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/SelfKickListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/SelfKickListener.java index cfcc6395..8ea73eae 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/SelfKickListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/SelfKickListener.java @@ -1,6 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.misc; -import io.github.eggy03.papertrail.bot.commons.utilities.EnvConfig; +import io.github.eggy03.papertrail.bot.commons.utils.EnvConfig; import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; import io.github.eggy03.papertrail.sdk.client.MessageLogRegistrationClient; import net.dv8tion.jda.api.entities.Guild; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/ServerStatCommandListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/ServerStatCommandListener.java index 370424ce..4a8217a9 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/ServerStatCommandListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/ServerStatCommandListener.java @@ -1,6 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.misc; -import io.github.eggy03.papertrail.bot.commons.utilities.DurationFormatter; +import io.github.eggy03.papertrail.bot.commons.utils.DurationUtils; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.OnlineStatus; import net.dv8tion.jda.api.entities.Guild; @@ -53,7 +53,7 @@ public void onSlashCommandInteraction(SlashCommandInteractionEvent event) { eb.addField("🏠 Guild Name", "╰┈➤"+guild.getName(), false); eb.addField("👑 Guild Owner", "╰┈➤"+ Objects.requireNonNull(guild.getMemberById(guild.getOwnerId())).getAsMention(), false); - eb.addField("📅 Guild Created On", "╰┈➤"+DurationFormatter.isoToLocalTimeCounter(guild.getTimeCreated()), false); + eb.addField("📅 Guild Created On", "╰┈➤"+ DurationUtils.isoToLocalTimeCounter(guild.getTimeCreated()), false); eb.addField("🔗 Guild Vanity URL", "╰┈➤"+(guild.getVanityUrl() !=null ? guild.getVanityUrl() : "Not Set"), false); eb.addField("👥 Member Count", "╰┈➤"+userCount, true); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/main/ConnectionInitializer.java b/src/main/java/io/github/eggy03/papertrail/bot/main/ConnectionInitializer.java index 84cae55d..64bbdbd8 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/main/ConnectionInitializer.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/main/ConnectionInitializer.java @@ -1,6 +1,6 @@ package io.github.eggy03.papertrail.bot.main; -import io.github.eggy03.papertrail.bot.commons.utilities.EnvConfig; +import io.github.eggy03.papertrail.bot.commons.utils.EnvConfig; import io.github.eggy03.papertrail.bot.listeners.misc.ActivityUpdateListener; import lombok.Getter; import net.dv8tion.jda.api.OnlineStatus; From 0375c55b1a77dc889a6059df3c2cfe1b5969719c Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Mon, 9 Feb 2026 19:45:43 +0530 Subject: [PATCH 041/104] refactor(commons): extract number parsing utilities - Move `parseInt` and `parseLong` methods to `src/main/java/io/github/eggy03/papertrail/bot/commons/utils/NumberFormatUtils.java`. - Remove duplicate parsing methods from `GuildUtils.java`, `RoleUtils.java`, `ChannelUtils.java`, and `AutoModUtils.java`. - Update affected files to use static imports from the new `NumberFormatUtils`. - Centralize common utility logic to reduce duplication and improve maintainability. Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../bot/commons/utils/NumberFormatUtils.java | 29 +++++++++++++++++++ .../helper/automod/utils/AutoModUtils.java | 24 ++------------- .../helper/channel/utils/ChannelUtils.java | 24 ++------------- .../audit/helper/guild/utils/GuildUtils.java | 24 ++------------- .../audit/helper/role/utils/RoleUtils.java | 25 ++-------------- 5 files changed, 39 insertions(+), 87 deletions(-) create mode 100644 src/main/java/io/github/eggy03/papertrail/bot/commons/utils/NumberFormatUtils.java diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/NumberFormatUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/NumberFormatUtils.java new file mode 100644 index 00000000..c1552b24 --- /dev/null +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/NumberFormatUtils.java @@ -0,0 +1,29 @@ +package io.github.eggy03.papertrail.bot.commons.utils; + +import lombok.experimental.UtilityClass; +import org.jetbrains.annotations.Nullable; + +@UtilityClass +public class NumberFormatUtils { + + // INTERNAL HELPERS + @Nullable + public static Long parseLong(@Nullable Object possibleLongValue) { + if (possibleLongValue == null) return null; + try { + return Long.parseLong(String.valueOf(possibleLongValue)); + } catch (NumberFormatException e) { + return null; + } + } + + @Nullable + public static Integer parseInt(@Nullable Object possibleIntegerValue) { + if (possibleIntegerValue == null) return null; + try { + return Integer.parseInt(String.valueOf(possibleIntegerValue)); + } catch (NumberFormatException e) { + return null; + } + } +} diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutoModUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutoModUtils.java index 996b5cf5..ab056ee2 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutoModUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutoModUtils.java @@ -6,33 +6,13 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import static io.github.eggy03.papertrail.bot.commons.utils.NumberFormatUtils.parseInt; + @UtilityClass public class AutoModUtils { public static final String NOT_AVAILABLE = "N/A"; - // INTERNAL HELPERS - @Nullable - @SuppressWarnings("unused") - private static Long parseLong(@Nullable Object possibleLongValue) { - if (possibleLongValue == null) return null; - try { - return Long.parseLong(String.valueOf(possibleLongValue)); - } catch (NumberFormatException e) { - return null; - } - } - - @Nullable - private static Integer parseInt(@Nullable Object possibleIntegerValue) { - if (possibleIntegerValue == null) return null; - try { - return Integer.parseInt(String.valueOf(possibleIntegerValue)); - } catch (NumberFormatException e) { - return null; - } - } - // AUTO MOD UTILS @NotNull public static String autoModEventTypeResolver(@Nullable Object autoModEventTypeInteger) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java index 671e5a9d..e1dd0ca8 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java @@ -12,30 +12,12 @@ import java.util.EnumSet; +import static io.github.eggy03.papertrail.bot.commons.utils.NumberFormatUtils.parseInt; +import static io.github.eggy03.papertrail.bot.commons.utils.NumberFormatUtils.parseLong; + @UtilityClass public class ChannelUtils { - // INTERNAL HELPERS - @Nullable - private static Long parseLong(@Nullable Object possibleLongValue) { - if (possibleLongValue == null) return null; - try { - return Long.parseLong(String.valueOf(possibleLongValue)); - } catch (NumberFormatException e) { - return null; - } - } - - @Nullable - private static Integer parseInt(@Nullable Object possibleIntegerValue) { - if (possibleIntegerValue == null) return null; - try { - return Integer.parseInt(String.valueOf(possibleIntegerValue)); - } catch (NumberFormatException e) { - return null; - } - } - // CHANNEL UTILS @NotNull public static String resolveChannelType(@Nullable Object channelTypeInteger) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/utils/GuildUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/utils/GuildUtils.java index f86c83eb..8f6feed3 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/utils/GuildUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/utils/GuildUtils.java @@ -8,32 +8,14 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import static io.github.eggy03.papertrail.bot.commons.utils.NumberFormatUtils.parseInt; +import static io.github.eggy03.papertrail.bot.commons.utils.NumberFormatUtils.parseLong; + @UtilityClass public class GuildUtils { public static final String NOT_AVAILABLE = "N/A"; - // INTERNAL HELPERS - @Nullable - private static Long parseLong(@Nullable Object possibleLongValue) { - if (possibleLongValue == null) return null; - try { - return Long.parseLong(String.valueOf(possibleLongValue)); - } catch (NumberFormatException e) { - return null; - } - } - - @Nullable - private static Integer parseInt(@Nullable Object possibleIntegerValue) { - if (possibleIntegerValue == null) return null; - try { - return Integer.parseInt(String.valueOf(possibleIntegerValue)); - } catch (NumberFormatException e) { - return null; - } - } - // GUILD UTILS @NotNull public static String resolveGuildVerificationLevel(@Nullable Object verificationLevelInteger) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/utils/RoleUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/utils/RoleUtils.java index adf54c22..346f5cd8 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/utils/RoleUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/utils/RoleUtils.java @@ -8,32 +8,11 @@ import java.util.EnumSet; +import static io.github.eggy03.papertrail.bot.commons.utils.NumberFormatUtils.parseLong; + @UtilityClass public class RoleUtils { - // INTERNAL HELPERS - @Nullable - private static Long parseLong(@Nullable Object possibleLongValue) { - if (possibleLongValue == null) return null; - try { - return Long.parseLong(String.valueOf(possibleLongValue)); - } catch (NumberFormatException e) { - return null; - } - } - - @Nullable - private static Integer parseInt(@Nullable Object possibleIntegerValue) { - if (possibleIntegerValue == null) return null; - try { - return Integer.parseInt(String.valueOf(possibleIntegerValue)); - } catch (NumberFormatException e) { - return null; - } - } - - // ROLE UTILS - @NotNull public static String resolveRolePermissions (@Nullable Object permissionsValue, @NonNull String emoji) { Long permissionLong = parseLong(permissionsValue); From f665643d306d6f35415e9de233713442474f5c46 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Mon, 9 Feb 2026 20:58:52 +0530 Subject: [PATCH 042/104] refactor(scheduledevent): consolidate scheduled event utilities - move scheduled event parsing from old utils to `ScheduledEventUtils.java` - update audit event helpers to use the new utility - improve type and status resolution with JDA's `ScheduledEvent` enums Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../bot/commons/utils/TypeResolver.java | 51 ---------------- .../ScheduledEventCreateEventHelper.java | 9 ++- .../ScheduledEventDeleteEventHelper.java | 9 ++- .../ScheduledEventUpdateEventHelper.java | 15 +++-- .../utils/ScheduledEventUtils.java} | 60 +++++++++++++------ 5 files changed, 58 insertions(+), 86 deletions(-) delete mode 100644 src/main/java/io/github/eggy03/papertrail/bot/commons/utils/TypeResolver.java rename src/main/java/io/github/eggy03/papertrail/bot/{commons/utils/GuildScheduledEventRecurrenceRuleStructureParser.java => listeners/audit/helper/scheduledevent/utils/ScheduledEventUtils.java} (59%) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/TypeResolver.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/TypeResolver.java deleted file mode 100644 index 9b0ff958..00000000 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/TypeResolver.java +++ /dev/null @@ -1,51 +0,0 @@ -package io.github.eggy03.papertrail.bot.commons.utils; - -import lombok.experimental.UtilityClass; - -/* - * Resolves Object subtypes from their given IDs - * @see Discord Channel Types - */ -@UtilityClass -public class TypeResolver { - - - public static String scheduleEventTypeResolver(Object type) { - if (type == null) { - return "ERROR: Value Returned Null"; - } - - try { - int t = Integer.parseInt(type.toString()); - return switch (t) { - case 1 -> "Stage Event"; - case 2 -> "Voice Event"; - case 3 -> "Text Event"; - default -> "Unknown"; - }; - } catch (NumberFormatException e) { - return "No Parsable Type Values Detected"; - } - - } - - public static String scheduleEventStatusTypeResolver(Object type) { - if (type == null) { - return "ERROR: Value Returned Null"; - } - - try { - int t = Integer.parseInt(type.toString()); - return switch (t) { - case 1 -> "Scheduled"; - case 2 -> "Active"; - case 3 -> "Completed"; - case 4 -> "Cancelled"; - default -> "Unknown"; - }; - } catch (NumberFormatException e) { - return "No Parsable Type Values Detected"; - } - - } -} diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventCreateEventHelper.java index d78b3217..719ba289 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventCreateEventHelper.java @@ -1,7 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.scheduledevent; -import io.github.eggy03.papertrail.bot.commons.utils.GuildScheduledEventRecurrenceRuleStructureParser; -import io.github.eggy03.papertrail.bot.commons.utils.TypeResolver; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.scheduledevent.utils.ScheduledEventUtils; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -42,7 +41,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT switch(change) { case "entity_type": - eb.addField("📂 Event Type", "╰┈➤"+ TypeResolver.scheduleEventTypeResolver(newValue), false); + eb.addField("📂 Event Type", "╰┈➤"+ ScheduledEventUtils.resolveEventType(newValue), false); break; case "privacy_level", "image_hash": @@ -57,7 +56,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT break; case "status": - eb.addField("📊 Event Status", "╰┈➤"+TypeResolver.scheduleEventStatusTypeResolver(newValue), false); + eb.addField("📊 Event Status", "╰┈➤"+ScheduledEventUtils.resolveStatusType(newValue), false); break; case "location": @@ -70,7 +69,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT break; case "recurrence_rule": - eb.addField("📊 Recurrence Rule", GuildScheduledEventRecurrenceRuleStructureParser.parse(newValue), false); + eb.addField("📊 Recurrence Rule", ScheduledEventUtils.resolveRecurrenceRules(newValue), false); break; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventDeleteEventHelper.java index 3dca1b87..4f973ad9 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventDeleteEventHelper.java @@ -1,7 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.scheduledevent; -import io.github.eggy03.papertrail.bot.commons.utils.GuildScheduledEventRecurrenceRuleStructureParser; -import io.github.eggy03.papertrail.bot.commons.utils.TypeResolver; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.scheduledevent.utils.ScheduledEventUtils; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -42,7 +41,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT switch(change) { case "entity_type": - eb.addField("📂 Event Type", "╰┈➤"+ TypeResolver.scheduleEventTypeResolver(oldValue), false); + eb.addField("📂 Event Type", "╰┈➤"+ ScheduledEventUtils.resolveEventType(oldValue), false); break; case "privacy_level", "image_hash": @@ -57,7 +56,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT break; case "status": - eb.addField("📊 Event Status", "╰┈➤"+TypeResolver.scheduleEventStatusTypeResolver(oldValue), false); + eb.addField("📊 Event Status", "╰┈➤"+ScheduledEventUtils.resolveStatusType(oldValue), false); break; case "location": @@ -70,7 +69,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT break; case "recurrence_rule": - eb.addField("📊 Recurrence Rule", GuildScheduledEventRecurrenceRuleStructureParser.parse(oldValue), false); + eb.addField("📊 Recurrence Rule", ScheduledEventUtils.resolveRecurrenceRules(oldValue), false); break; default: diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java index 219f8423..e773156c 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java @@ -1,7 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.scheduledevent; -import io.github.eggy03.papertrail.bot.commons.utils.GuildScheduledEventRecurrenceRuleStructureParser; -import io.github.eggy03.papertrail.bot.commons.utils.TypeResolver; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.scheduledevent.utils.ScheduledEventUtils; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -45,8 +44,8 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT switch(change) { case "entity_type": - eb.addField("📂 Old Event Type", "╰┈➤"+ TypeResolver.scheduleEventTypeResolver(oldValue), false); - eb.addField("📂 New Event Type", "╰┈➤"+TypeResolver.scheduleEventTypeResolver(newValue), false); + eb.addField("📂 Old Event Type", "╰┈➤"+ScheduledEventUtils.resolveEventType(oldValue), false); + eb.addField("📂 New Event Type", "╰┈➤"+ScheduledEventUtils.resolveEventType(newValue), false); break; case "privacy_level", "image_hash": @@ -63,8 +62,8 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT break; case "status": - eb.addField("📊 Old Event Status", "╰┈➤"+TypeResolver.scheduleEventStatusTypeResolver(oldValue), false); - eb.addField("📊 New Event Status", "╰┈➤"+TypeResolver.scheduleEventStatusTypeResolver(newValue), false); + eb.addField("📊 Old Event Status", "╰┈➤"+ScheduledEventUtils.resolveStatusType(oldValue), false); + eb.addField("📊 New Event Status", "╰┈➤"+ScheduledEventUtils.resolveStatusType(newValue), false); break; case "location": @@ -80,8 +79,8 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT break; case "recurrence_rule": - eb.addField("📊 Old Recurrence Rule", GuildScheduledEventRecurrenceRuleStructureParser.parse(oldValue), false); - eb.addField("📊 New Recurrence Rule", GuildScheduledEventRecurrenceRuleStructureParser.parse(newValue), false); + eb.addField("📊 Old Recurrence Rule", ScheduledEventUtils.resolveRecurrenceRules(oldValue), false); + eb.addField("📊 New Recurrence Rule", ScheduledEventUtils.resolveRecurrenceRules(newValue), false); break; default: diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/GuildScheduledEventRecurrenceRuleStructureParser.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/utils/ScheduledEventUtils.java similarity index 59% rename from src/main/java/io/github/eggy03/papertrail/bot/commons/utils/GuildScheduledEventRecurrenceRuleStructureParser.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/utils/ScheduledEventUtils.java index a41e5432..9bf11d05 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/GuildScheduledEventRecurrenceRuleStructureParser.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/utils/ScheduledEventUtils.java @@ -1,16 +1,42 @@ -package io.github.eggy03.papertrail.bot.commons.utils; +package io.github.eggy03.papertrail.bot.listeners.audit.helper.scheduledevent.utils; import lombok.experimental.UtilityClass; +import net.dv8tion.jda.api.entities.ScheduledEvent; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.util.Map; -/** - * Parser for: Recurrence Rule Structure - */ +import static io.github.eggy03.papertrail.bot.commons.utils.NumberFormatUtils.parseInt; + @UtilityClass -public class GuildScheduledEventRecurrenceRuleStructureParser { +public class ScheduledEventUtils { + + @NotNull + public static String resolveEventType (@Nullable Object eventTypeInteger) { + + Integer eventType = parseInt(eventTypeInteger); + if (eventType == null) + return "N/A"; + + return ScheduledEvent.Type.fromKey(eventType).name(); + + } + + @NotNull + public static String resolveStatusType (@Nullable Object eventTypeInteger) { + Integer eventType = parseInt(eventTypeInteger); + if (eventType == null) + return "N/A"; + + return ScheduledEvent.Status.fromKey(eventType).name(); + } + + @NotNull + public static String resolveRecurrenceRules(@Nullable Object recurrenceRuleStructure) { - public static String parse(Object recurrenceRuleStructure) { + if(recurrenceRuleStructure==null) + return "N/A"; StringBuilder stringBuilder = new StringBuilder(); if(recurrenceRuleStructure instanceof Map recurrenceRuleMap) { @@ -19,72 +45,72 @@ public static String parse(Object recurrenceRuleStructure) { .append("**_Start Time of Interval_**") .append(System.lineSeparator()) .append("╰┈➤") - .append(String.valueOf(recurrenceRuleMap.get("start"))) + .append(recurrenceRuleMap.get("start")) .append(System.lineSeparator()); stringBuilder .append("**_End Time of Interval_**") .append(System.lineSeparator()) .append("╰┈➤") - .append(String.valueOf(recurrenceRuleMap.get("end"))) + .append(recurrenceRuleMap.get("end")) .append(System.lineSeparator()); stringBuilder .append("**_Frequency of Interval_**") .append(System.lineSeparator()) .append("╰┈➤") - .append(String.valueOf(recurrenceRuleMap.get("frequency"))) + .append(recurrenceRuleMap.get("frequency")) .append(System.lineSeparator()); stringBuilder .append("**_Spacing between events_**") .append(System.lineSeparator()) .append("╰┈➤") - .append(String.valueOf(recurrenceRuleMap.get("interval"))) + .append(recurrenceRuleMap.get("interval")) .append(System.lineSeparator()); stringBuilder .append("**_Weekday Recurrence_**") .append(System.lineSeparator()) .append("╰┈➤") - .append(String.valueOf(recurrenceRuleMap.get("by_weekday"))) + .append(recurrenceRuleMap.get("by_weekday")) .append(System.lineSeparator()); stringBuilder .append("**_Specific days within a weekday to recur on_**") .append(System.lineSeparator()) .append("╰┈➤") - .append(String.valueOf(recurrenceRuleMap.get("by_n_weekday"))) + .append(recurrenceRuleMap.get("by_n_weekday")) .append(System.lineSeparator()); stringBuilder .append("**_Monthly Recurrence_**") .append(System.lineSeparator()) .append("╰┈➤") - .append(String.valueOf(recurrenceRuleMap.get("by_month"))) + .append(recurrenceRuleMap.get("by_month")) .append(System.lineSeparator()); stringBuilder .append("**_Specific days within a month to recur on_**") .append(System.lineSeparator()) .append("╰┈➤") - .append(String.valueOf(recurrenceRuleMap.get("by_month_day"))) + .append(recurrenceRuleMap.get("by_month_day")) .append(System.lineSeparator()); stringBuilder .append("**_Set of days within a year to recur on_**") .append(System.lineSeparator()) .append("╰┈➤") - .append(String.valueOf(recurrenceRuleMap.get("by_year_day"))) + .append(recurrenceRuleMap.get("by_year_day")) .append(System.lineSeparator()); stringBuilder .append("**_Event to be repeated_**") .append(System.lineSeparator()) .append("╰┈➤") - .append(String.valueOf(recurrenceRuleMap.get("count"))); + .append(recurrenceRuleMap.get("count")); } - return stringBuilder.toString(); + return stringBuilder.toString().trim(); } } From 6714baa277e5ccd27c2316a9bc9c2c240456c399 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Tue, 10 Feb 2026 11:41:10 +0530 Subject: [PATCH 043/104] refactor(auditlog): improve scheduled event audit log processing - Refactor audit log change iteration from `for` loop to `forEach` lambda - Update `switch` statements to use modern Java 14+ arrow syntax - Enhance handling of `privacy_level`, `image_hash`, and `channel_id` in update events - Add default logging and embed field for unimplemented audit log change keys - Remove unused imports `AuditLogChange`, `Map`, `GuildChannel`, and `ScheduledEvent` Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../ScheduledEventCreateEventHelper.java | 79 +++++--------- .../ScheduledEventDeleteEventHelper.java | 72 ++++--------- .../ScheduledEventUpdateEventHelper.java | 102 ++++++++---------- 3 files changed, 91 insertions(+), 162 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventCreateEventHelper.java index 719ba289..a4dc87ab 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventCreateEventHelper.java @@ -4,16 +4,13 @@ import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; -import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import java.awt.Color; -import java.util.Map; @UtilityClass @Slf4j @@ -23,73 +20,49 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Scheduled Event Create Event"); - User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ A scheduled event was created"); + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Scheduled Event Create Event"); + eb.setDescription("ℹ️ A scheduled event was created by: " + mentionableExecutor); eb.setColor(Color.GREEN); + eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - for(Map.Entry changes: ale.getChanges().entrySet()) { - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); - - switch(change) { - case "entity_type": - eb.addField("📂 Event Type", "╰┈➤"+ ScheduledEventUtils.resolveEventType(newValue), false); - break; - - case "privacy_level", "image_hash": - break; - - case "name": - eb.addField("🏷️ Event Name", "╰┈➤"+newValue, false); - break; - - case "description": - eb.addField("📝 Event Description", "╰┈➤"+newValue, false); - break; - - case "status": - eb.addField("📊 Event Status", "╰┈➤"+ScheduledEventUtils.resolveStatusType(newValue), false); - break; - - case "location": - eb.addField("📍 Event Location", "╰┈➤"+newValue, false); - break; - - case "channel_id": - GuildChannel eventChannel = event.getGuild().getGuildChannelById(String.valueOf(newValue)); - eb.addField("💬 Event Channel", "╰┈➤"+(eventChannel!=null ? eventChannel.getAsMention() : String.valueOf(newValue)), false); - break; - - case "recurrence_rule": - eb.addField("📊 Recurrence Rule", ScheduledEventUtils.resolveRecurrenceRules(newValue), false); - break; - - - default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); + ale.getChanges().forEach((changeKey, changeValue) -> { + Object oldValue = changeValue.getOldValue(); + Object newValue = changeValue.getNewValue(); + + switch (changeKey) { + case "entity_type" -> eb.addField("Event Type", "╰┈➤" + ScheduledEventUtils.resolveEventType(newValue), false); + case "name" -> eb.addField("Event Name", "╰┈➤" + newValue, false); + case "description" -> eb.addField("Event Description", "╰┈➤" + newValue, false); + case "status" -> eb.addField("Event Status", "╰┈➤" + ScheduledEventUtils.resolveStatusType(newValue), false); + case "location" -> eb.addField("Event Location", "╰┈➤" + newValue, false); + case "privacy_level", "image_hash", "channel_id" -> { + // skip + } + case "recurrence_rule" -> eb.addField("Recurrence Rule", ScheduledEventUtils.resolveRecurrenceRules(newValue), false); + default -> { + eb.addField("Unimplemented Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); + } } + }); - } - - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventDeleteEventHelper.java index 4f973ad9..b6693e33 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventDeleteEventHelper.java @@ -4,16 +4,13 @@ import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; -import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import java.awt.Color; -import java.util.Map; @UtilityClass @Slf4j @@ -23,60 +20,37 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Scheduled Event Delete Event"); - User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ A scheduled event has been deleted"); + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Scheduled Event Delete Event"); + eb.setDescription("ℹ️ A scheduled event has been deleted by: "+mentionableExecutor); eb.setColor(Color.RED); + eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - for(Map.Entry changes: ale.getChanges().entrySet()) { - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); - - switch(change) { - case "entity_type": - eb.addField("📂 Event Type", "╰┈➤"+ ScheduledEventUtils.resolveEventType(oldValue), false); - break; - - case "privacy_level", "image_hash": - break; - - case "name": - eb.addField("🏷️ Event Name", "╰┈➤"+oldValue, false); - break; - - case "description": - eb.addField("📝 Event Description", "╰┈➤"+newValue, false); - break; - - case "status": - eb.addField("📊 Event Status", "╰┈➤"+ScheduledEventUtils.resolveStatusType(oldValue), false); - break; - - case "location": - eb.addField("📍 Event Location", "╰┈➤"+oldValue, false); - break; - - case "channel_id": - GuildChannel eventChannel = event.getGuild().getGuildChannelById(String.valueOf(oldValue)); - eb.addField("💬 Event Channel", "╰┈➤"+(eventChannel!=null ? eventChannel.getAsMention() : String.valueOf(oldValue)), false); - break; - - case "recurrence_rule": - eb.addField("📊 Recurrence Rule", ScheduledEventUtils.resolveRecurrenceRules(oldValue), false); - break; - - default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); + ale.getChanges().forEach((changeKey, changeValue) -> { + Object oldValue = changeValue.getOldValue(); + Object newValue = changeValue.getNewValue(); + + switch (changeKey) { + case "entity_type" -> eb.addField("Event Type", "╰┈➤" + ScheduledEventUtils.resolveEventType(oldValue), false); + case "name" -> eb.addField("Event Name", "╰┈➤" + oldValue, false); + case "description" -> eb.addField("Event Description", "╰┈➤" + oldValue, false); + case "status" -> eb.addField("Event Status", "╰┈➤" + ScheduledEventUtils.resolveStatusType(oldValue), false); + case "location" -> eb.addField("Event Location", "╰┈➤" + oldValue, false); + case "privacy_level", "image_hash", "channel_id" -> { + // skip + } + case "recurrence_rule" -> eb.addField("Recurrence Rule", ScheduledEventUtils.resolveRecurrenceRules(oldValue), false); + default -> { + eb.addField("Unimplemented Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); + } } - - } + }); eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java index e773156c..c00dd91a 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java @@ -4,18 +4,13 @@ import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; -import net.dv8tion.jda.api.entities.ScheduledEvent; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; -import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import java.awt.Color; -import java.util.Map; -import java.util.Objects; @UtilityClass @Slf4j @@ -25,69 +20,56 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Scheduled Event Update Event"); - User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - ScheduledEvent targetEvent = event.getGuild().getScheduledEventById(ale.getTargetId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ The following scheduled event was updated: "+ Objects.requireNonNull(targetEvent).getName()); + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Scheduled Event Update Event"); + eb.setDescription("ℹ️ The following scheduled event was updated by: "+mentionableExecutor); eb.setColor(Color.YELLOW); + eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - for(Map.Entry changes: ale.getChanges().entrySet()) { - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); - - switch(change) { - case "entity_type": - eb.addField("📂 Old Event Type", "╰┈➤"+ScheduledEventUtils.resolveEventType(oldValue), false); - eb.addField("📂 New Event Type", "╰┈➤"+ScheduledEventUtils.resolveEventType(newValue), false); - break; - - case "privacy_level", "image_hash": - break; - - case "name": - eb.addField("🏷️ Old Event Name", "╰┈➤"+oldValue, false); - eb.addField("🏷️ New Event Name","╰┈➤"+newValue, false); - break; - - case "description": - eb.addField("📝 Old Event Description", "╰┈➤"+oldValue, false); - eb.addField("📝 New Event Description", "╰┈➤"+newValue, false); - break; - - case "status": - eb.addField("📊 Old Event Status", "╰┈➤"+ScheduledEventUtils.resolveStatusType(oldValue), false); - eb.addField("📊 New Event Status", "╰┈➤"+ScheduledEventUtils.resolveStatusType(newValue), false); - break; - - case "location": - eb.addField("📍 Event Location", "╰┈➤"+oldValue, false); - eb.addField("📍 Event Location", "╰┈➤"+newValue, false); - break; - - case "channel_id": - GuildChannel eventChannel = event.getGuild().getGuildChannelById(String.valueOf(oldValue)); - eb.addField("💬 Old Event Channel", "╰┈➤"+(eventChannel!=null ? eventChannel.getAsMention() : String.valueOf(oldValue)), false); - eventChannel = event.getGuild().getGuildChannelById(String.valueOf(newValue)); - eb.addField("💬 New Event Channel", "╰┈➤"+(eventChannel!=null ? eventChannel.getAsMention() : String.valueOf(newValue)), false); - break; - - case "recurrence_rule": - eb.addField("📊 Old Recurrence Rule", ScheduledEventUtils.resolveRecurrenceRules(oldValue), false); - eb.addField("📊 New Recurrence Rule", ScheduledEventUtils.resolveRecurrenceRules(newValue), false); - break; - - default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); + ale.getChanges().forEach((changeKey, changeValue) -> { + Object oldValue = changeValue.getOldValue(); + Object newValue = changeValue.getNewValue(); + + switch (changeKey) { + case "entity_type" -> { + eb.addField("Old Event Type", "╰┈➤"+ScheduledEventUtils.resolveEventType(oldValue), false); + eb.addField("New Event Type", "╰┈➤"+ScheduledEventUtils.resolveEventType(newValue), false); + } + case "name" -> { + eb.addField("Old Event Name", "╰┈➤"+oldValue, false); + eb.addField("New Event Name","╰┈➤"+newValue, false); + } + case "description" -> { + eb.addField("Old Event Description", "╰┈➤"+oldValue, false); + eb.addField("New Event Description", "╰┈➤"+newValue, false); + } + case "status" -> { + eb.addField("Old Event Status", "╰┈➤"+ScheduledEventUtils.resolveStatusType(oldValue), false); + eb.addField("New Event Status", "╰┈➤"+ScheduledEventUtils.resolveStatusType(newValue), false); + } + case "location" -> { + eb.addField("Event Location", "╰┈➤"+oldValue, false); + eb.addField("Event Location", "╰┈➤"+newValue, false); + } + case "privacy_level" -> eb.addField("Privacy", "╰┈➤Event privacy has been updated", false); + case "image_hash" -> eb.addField("Image", "╰┈➤Event Image has been updated", false); + case "channel_id" -> eb.addField("Channel", "╰┈➤Event Channel has been updated", false); + + case "recurrence_rule" -> { + eb.addField("Old Recurrence Rule", ScheduledEventUtils.resolveRecurrenceRules(oldValue), false); + eb.addField("New Recurrence Rule", ScheduledEventUtils.resolveRecurrenceRules(newValue), false); + } + default -> { + eb.addField("Unimplemented Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); + } } - - } + }); eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); From 2342a31158abb8824ce2c54407626302f040b6c8 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Tue, 10 Feb 2026 14:05:00 +0530 Subject: [PATCH 044/104] style(log): shorten embed warning log messages - Make the warning message for unsent embeds more concise - Change "An embed is either empty or has exceeded the max length for characters" to "Embed is empty or too long" - Improve readability of log output Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../helper/automod/AutoModerationFlagToChannelEventHelper.java | 2 +- .../helper/automod/AutoModerationMemberTimeoutEventHelper.java | 2 +- .../automod/AutoModerationRuleBlockMessageEventHelper.java | 2 +- .../helper/automod/AutoModerationRuleCreateEventHelper.java | 2 +- .../helper/automod/AutoModerationRuleDeleteEventHelper.java | 2 +- .../helper/automod/AutoModerationRuleUpdateEventHelper.java | 2 +- .../bot/listeners/audit/helper/bot/BotAddEventHelper.java | 2 +- .../audit/helper/channel/ChannelCreateEventHelper.java | 2 +- .../audit/helper/channel/ChannelDeleteEventHelper.java | 2 +- .../audit/helper/channel/ChannelOverrideCreateEventHelper.java | 2 +- .../audit/helper/channel/ChannelOverrideDeleteEventHelper.java | 2 +- .../audit/helper/channel/ChannelOverrideUpdateEventHelper.java | 2 +- .../audit/helper/channel/ChannelUpdateEventHelper.java | 2 +- .../helper/channel/VoiceChannelStatusDeleteEventHelper.java | 2 +- .../helper/channel/VoiceChannelStatusUpdateEventHelper.java | 2 +- .../listeners/audit/helper/emoji/EmojiCreateEventHelper.java | 2 +- .../listeners/audit/helper/emoji/EmojiDeleteEventHelper.java | 2 +- .../listeners/audit/helper/emoji/EmojiUpdateEventHelper.java | 2 +- .../audit/helper/generic/GenericAuditLogEventHelper.java | 2 +- .../listeners/audit/helper/guild/GuildUpdateEventHelper.java | 2 +- .../audit/helper/integration/IntegrationCreateEventHelper.java | 2 +- .../audit/helper/integration/IntegrationDeleteEventHelper.java | 2 +- .../listeners/audit/helper/invite/InviteCreateEventHelper.java | 2 +- .../listeners/audit/helper/invite/InviteDeleteEventHelper.java | 2 +- .../audit/helper/member/MemberRoleUpdateEventHelper.java | 2 +- .../listeners/audit/helper/member/MemberUpdateEventHelper.java | 2 +- .../audit/helper/member/MemberVoiceKickEventHelper.java | 2 +- .../audit/helper/member/MemberVoiceMoveEventHelper.java | 2 +- .../listeners/audit/helper/message/MessagePinEventHelper.java | 2 +- .../listeners/audit/helper/message/MessageUnpinEventHelper.java | 2 +- .../bot/listeners/audit/helper/modactions/BanEventHelper.java | 2 +- .../bot/listeners/audit/helper/modactions/KickEventHelper.java | 2 +- .../bot/listeners/audit/helper/modactions/UnbanEventHelper.java | 2 +- .../helper/onboarding/OnboardingPromptCreateEventHelper.java | 2 +- .../helper/onboarding/OnboardingPromptDeleteEventHelper.java | 2 +- .../helper/onboarding/OnboardingPromptUpdateEventHelper.java | 2 +- .../audit/helper/onboarding/OnboardingUpdateEventHelper.java | 2 +- .../bot/listeners/audit/helper/role/RoleCreateEventHelper.java | 2 +- .../bot/listeners/audit/helper/role/RoleDeleteEventHelper.java | 2 +- .../bot/listeners/audit/helper/role/RoleUpdateEventHelper.java | 2 +- .../helper/scheduledevent/ScheduledEventCreateEventHelper.java | 2 +- .../helper/scheduledevent/ScheduledEventDeleteEventHelper.java | 2 +- .../helper/scheduledevent/ScheduledEventUpdateEventHelper.java | 2 +- .../helper/soundboard/SoundboardSoundUpdateEventHelper.java | 2 +- .../audit/helper/stage/StageInstanceCreateEventHelper.java | 2 +- .../audit/helper/stage/StageInstanceDeleteEventHelper.java | 2 +- .../audit/helper/stage/StageInstanceUpdateEventHelper.java | 2 +- .../audit/helper/sticker/StickerCreateEventHelper.java | 2 +- .../audit/helper/sticker/StickerDeleteEventHelper.java | 2 +- .../audit/helper/sticker/StickerUpdateEventHelper.java | 2 +- .../listeners/audit/helper/thread/ThreadCreateEventHelper.java | 2 +- .../listeners/audit/helper/thread/ThreadDeleteEventHelper.java | 2 +- .../listeners/audit/helper/thread/ThreadUpdateEventHelper.java | 2 +- .../audit/helper/webhook/WebhookCreateEventHelper.java | 2 +- .../audit/helper/webhook/WebhookRemoveEventHelper.java | 2 +- .../audit/helper/webhook/WebhookUpdateEventHelper.java | 2 +- 56 files changed, 56 insertions(+), 56 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationFlagToChannelEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationFlagToChannelEventHelper.java index de26960f..dce31d54 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationFlagToChannelEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationFlagToChannelEventHelper.java @@ -38,7 +38,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationMemberTimeoutEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationMemberTimeoutEventHelper.java index 111aa84c..09076b39 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationMemberTimeoutEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationMemberTimeoutEventHelper.java @@ -38,7 +38,7 @@ public static void format (GuildAuditLogEntryCreateEvent event, String channelId MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleBlockMessageEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleBlockMessageEventHelper.java index 1612c22b..abfa2315 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleBlockMessageEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleBlockMessageEventHelper.java @@ -38,7 +38,7 @@ public static void format (GuildAuditLogEntryCreateEvent event, String channelId MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleCreateEventHelper.java index 70879177..4127e7f0 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleCreateEventHelper.java @@ -59,7 +59,7 @@ public static void format (GuildAuditLogEntryCreateEvent event, String channelId MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleDeleteEventHelper.java index de85d1c0..1e955638 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleDeleteEventHelper.java @@ -45,7 +45,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleUpdateEventHelper.java index 0823ecbd..5777e9df 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleUpdateEventHelper.java @@ -43,7 +43,7 @@ public static void format (GuildAuditLogEntryCreateEvent event, String channelId MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/bot/BotAddEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/bot/BotAddEventHelper.java index 7b36bf82..d51fb198 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/bot/BotAddEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/bot/BotAddEventHelper.java @@ -40,7 +40,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelCreateEventHelper.java index b76c2111..21b58b72 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelCreateEventHelper.java @@ -77,7 +77,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelDeleteEventHelper.java index 2c42e2ed..894a2415 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelDeleteEventHelper.java @@ -59,7 +59,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideCreateEventHelper.java index 3fa5c746..f8165d52 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideCreateEventHelper.java @@ -66,7 +66,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideDeleteEventHelper.java index 5365b3a8..55480c5e 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideDeleteEventHelper.java @@ -66,7 +66,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java index e916db82..5e460b81 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java @@ -67,7 +67,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelUpdateEventHelper.java index e7ed8500..18fb9431 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelUpdateEventHelper.java @@ -125,7 +125,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusDeleteEventHelper.java index 0448e279..fede2511 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusDeleteEventHelper.java @@ -43,7 +43,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusUpdateEventHelper.java index e9235a85..0f61aa60 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusUpdateEventHelper.java @@ -43,7 +43,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiCreateEventHelper.java index 5f060743..6a6dcd93 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiCreateEventHelper.java @@ -49,7 +49,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiDeleteEventHelper.java index 59716468..1745f5f3 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiDeleteEventHelper.java @@ -49,7 +49,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiUpdateEventHelper.java index 0bbff4a2..e8117a5f 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiUpdateEventHelper.java @@ -50,7 +50,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/generic/GenericAuditLogEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/generic/GenericAuditLogEventHelper.java index 2433f0cf..c47b6ab4 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/generic/GenericAuditLogEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/generic/GenericAuditLogEventHelper.java @@ -38,7 +38,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/GuildUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/GuildUpdateEventHelper.java index 49ee911a..aeab1d17 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/GuildUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/GuildUpdateEventHelper.java @@ -100,7 +100,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationCreateEventHelper.java index e51dbf7b..c6880022 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationCreateEventHelper.java @@ -51,7 +51,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationDeleteEventHelper.java index 3ebac14c..5f9a7fbb 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationDeleteEventHelper.java @@ -50,7 +50,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteCreateEventHelper.java index 6dfad0ed..8ca171a8 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteCreateEventHelper.java @@ -76,7 +76,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteDeleteEventHelper.java index ed65e263..f7ea0d76 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteDeleteEventHelper.java @@ -71,7 +71,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberRoleUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberRoleUpdateEventHelper.java index 75e2a159..6999e910 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberRoleUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberRoleUpdateEventHelper.java @@ -59,7 +59,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberUpdateEventHelper.java index d78c81b2..6ead8f66 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberUpdateEventHelper.java @@ -79,7 +79,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceKickEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceKickEventHelper.java index 82e9c844..f492699d 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceKickEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceKickEventHelper.java @@ -37,7 +37,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceMoveEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceMoveEventHelper.java index e6e8a38a..5f35e35c 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceMoveEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceMoveEventHelper.java @@ -37,7 +37,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessagePinEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessagePinEventHelper.java index 1792bf0b..8fb87338 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessagePinEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessagePinEventHelper.java @@ -38,7 +38,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessageUnpinEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessageUnpinEventHelper.java index 99811b20..e963692f 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessageUnpinEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessageUnpinEventHelper.java @@ -38,7 +38,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/BanEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/BanEventHelper.java index 55dabcab..f5aeeaa6 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/BanEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/BanEventHelper.java @@ -44,7 +44,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/KickEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/KickEventHelper.java index 38ef3391..bd960592 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/KickEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/KickEventHelper.java @@ -44,7 +44,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/UnbanEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/UnbanEventHelper.java index da4ae444..59380f82 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/UnbanEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/UnbanEventHelper.java @@ -41,7 +41,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptCreateEventHelper.java index c759f027..d54b4c6a 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptCreateEventHelper.java @@ -65,7 +65,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptDeleteEventHelper.java index eefd0eb0..83a4384e 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptDeleteEventHelper.java @@ -62,7 +62,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptUpdateEventHelper.java index 05cc0ff5..8d752fa8 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptUpdateEventHelper.java @@ -76,7 +76,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingUpdateEventHelper.java index 76eb1140..d48e48b6 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingUpdateEventHelper.java @@ -71,7 +71,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleCreateEventHelper.java index 4ecf12f3..3b5be9ab 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleCreateEventHelper.java @@ -92,7 +92,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleDeleteEventHelper.java index 19f0ecd3..3e7a877c 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleDeleteEventHelper.java @@ -66,7 +66,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleUpdateEventHelper.java index dc935814..18570920 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleUpdateEventHelper.java @@ -95,7 +95,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventCreateEventHelper.java index a4dc87ab..7b2eceda 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventCreateEventHelper.java @@ -57,7 +57,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if (!mb.isSendable()) { - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventDeleteEventHelper.java index b6693e33..1a46ccb7 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventDeleteEventHelper.java @@ -57,7 +57,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java index c00dd91a..dd46f4da 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java @@ -76,7 +76,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundUpdateEventHelper.java index b0a0ad02..8fc9dc71 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundUpdateEventHelper.java @@ -74,7 +74,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceCreateEventHelper.java index 0ea347fb..e082429e 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceCreateEventHelper.java @@ -58,7 +58,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceDeleteEventHelper.java index 2ce234cf..a63d3c08 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceDeleteEventHelper.java @@ -58,7 +58,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceUpdateEventHelper.java index 4d10535d..2c3d4e16 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceUpdateEventHelper.java @@ -60,7 +60,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerCreateEventHelper.java index e2ad8089..b414f029 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerCreateEventHelper.java @@ -73,7 +73,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerDeleteEventHelper.java index 704b13ef..78a1f916 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerDeleteEventHelper.java @@ -70,7 +70,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerUpdateEventHelper.java index ee417b98..7518fbc0 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerUpdateEventHelper.java @@ -73,7 +73,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadCreateEventHelper.java index 4efb66cc..1de42076 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadCreateEventHelper.java @@ -85,7 +85,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadDeleteEventHelper.java index 91dc0699..8cf8b266 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadDeleteEventHelper.java @@ -80,7 +80,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadUpdateEventHelper.java index b08ee006..9151b6b3 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadUpdateEventHelper.java @@ -100,7 +100,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookCreateEventHelper.java index 2324d24d..e4eaf42f 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookCreateEventHelper.java @@ -69,7 +69,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookRemoveEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookRemoveEventHelper.java index bb46faa6..89b844e6 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookRemoveEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookRemoveEventHelper.java @@ -68,7 +68,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookUpdateEventHelper.java index a9b06448..8bbebe3b 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookUpdateEventHelper.java @@ -68,7 +68,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } From a098f806f6774b95503136254df0918b0c29f6ac Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Tue, 10 Feb 2026 15:34:36 +0530 Subject: [PATCH 045/104] refactor(audit-log): improve soundboard event embeds - modernize audit log change processing with `forEach` and enhanced `switch` - remove unused `AuditLogChange` and `Map` imports - enhance embed descriptions, field layout, and add unhandled key logging - update embed length warning message Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../SoundboardSoundCreateEventHelper.java | 52 +++++------- .../SoundboardSoundDeleteEventHelper.java | 51 +++++------- .../SoundboardSoundUpdateEventHelper.java | 81 +++++++++---------- 3 files changed, 81 insertions(+), 103 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundCreateEventHelper.java index 6293ff02..28c0cf11 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundCreateEventHelper.java @@ -3,7 +3,6 @@ import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; @@ -11,7 +10,6 @@ import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import java.awt.Color; -import java.util.Map; @UtilityClass @Slf4j @@ -21,56 +19,48 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Soundboard Sound Create Event"); - User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ A sound item was added to the soundboard"); + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Soundboard Sound Create Event"); + eb.setDescription("ℹ️ A sound item was added to the soundboard by: "+mentionableExecutor); eb.setColor(Color.GREEN); + eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - for(Map.Entry changes: ale.getChanges().entrySet()) { - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); - - switch(change) { + ale.getChanges().forEach((changeKey, changeValue)-> { - case "user_id", "sound_id", "id", "guild_id", "available": - break; + Object oldValue = changeValue.getOldValue(); + Object newValue = changeValue.getNewValue(); - case "volume": - eb.addField("Volume", "╰┈➤"+newValue, false); - break; + switch (changeKey) { - case "emoji_name": - eb.addField("Related Emoji", "╰┈➤"+newValue, false); - break; + case "user_id", "sound_id", "id", "guild_id", "available" -> { + // skip + } + case "volume" -> eb.addField("Volume", "╰┈➤"+newValue, false); - case "emoji_id": - eb.addField("Related Emoji ID", "╰┈➤"+newValue, false); - break; + case "emoji_name" -> eb.addField("Related Emoji", "╰┈➤"+newValue, false); - case "name": - eb.addField("Sound Item Name", "╰┈➤"+newValue, false); - break; + case "emoji_id" -> eb.addField("Related Emoji ID", "╰┈➤"+newValue, false); + case "name" -> eb.addField("Sound Item Name", "╰┈➤"+newValue, false); - default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); + default -> { + eb.addField("Unimplemented Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); + } } - - } + }); eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundDeleteEventHelper.java index 989be1f0..145fee8d 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundDeleteEventHelper.java @@ -3,7 +3,6 @@ import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; @@ -11,7 +10,6 @@ import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import java.awt.Color; -import java.util.Map; @UtilityClass @Slf4j @@ -21,55 +19,48 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Soundboard Sound Create Event"); - User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ A sound item was deleted from the soundboard"); + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Soundboard Sound Create Event"); + eb.setDescription("ℹ️ A sound item was deleted from the soundboard by: "+mentionableExecutor); eb.setColor(Color.RED); + eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - for(Map.Entry changes: ale.getChanges().entrySet()) { - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); + ale.getChanges().forEach((changeKey, changeValue)-> { - switch(change) { + Object oldValue = changeValue.getOldValue(); + Object newValue = changeValue.getNewValue(); - case "user_id", "sound_id", "id", "guild_id", "available": - break; + switch (changeKey) { - case "volume": - eb.addField("Volume", "╰┈➤"+oldValue, false); - break; + case "user_id", "sound_id", "id", "guild_id", "available" -> { + // skip + } + case "volume" -> eb.addField("Volume", "╰┈➤"+oldValue, false); - case "emoji_name": - eb.addField("Related Emoji", "╰┈➤"+oldValue, false); - break; + case "emoji_name" -> eb.addField("Related Emoji", "╰┈➤"+oldValue, false); - case "emoji_id": - eb.addField("Related Emoji ID", "╰┈➤"+oldValue, false); - break; + case "emoji_id" -> eb.addField("Related Emoji ID", "╰┈➤"+oldValue, false); - case "name": - eb.addField("Sound Item Name", "╰┈➤"+oldValue, false); - break; + case "name" -> eb.addField("Sound Item Name", "╰┈➤"+oldValue, false); - default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); + default -> { + eb.addField("Unimplemented Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); + } } - - } + }); eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); if(!mb.isSendable()){ - log.warn("An embed is either empty or has exceed the max length for characters, with current length: {}", eb.length()); + log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundUpdateEventHelper.java index 8fc9dc71..7ec5af1c 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundUpdateEventHelper.java @@ -3,7 +3,6 @@ import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; @@ -11,7 +10,6 @@ import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import java.awt.Color; -import java.util.Map; @UtilityClass @Slf4j @@ -21,53 +19,52 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Soundboard Sound Update Event"); - User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ A sound item in the soundboard was updated"); + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Soundboard Sound Update Event"); + eb.setDescription("ℹ️ A sound item in the soundboard was updated by: "+mentionableExecutor); eb.setColor(Color.YELLOW); + eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - - for(Map.Entry changes: ale.getChanges().entrySet()) { - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); - - switch(change) { - - case "user_id", "sound_id", "id", "guild_id", "available": - break; - - case "volume": - eb.addField("Old Volume", "╰┈➤"+oldValue, false); - eb.addField("New Volume", "╰┈➤"+newValue, false); - break; - - case "emoji_name": - eb.addField("Old Related Emoji", "╰┈➤"+oldValue, false); - eb.addField("New Related Emoji", "╰┈➤"+newValue, false); - break; - - case "emoji_id": - eb.addField("Old Related Emoji ID", "╰┈➤"+oldValue, false); - eb.addField("New Related Emoji ID", "╰┈➤"+newValue, false); - break; - - case "name": - eb.addField("Old Sound Item Name", "╰┈➤"+oldValue, false); - eb.addField("New Sound Item Name", "╰┈➤"+newValue, false); - break; - - - default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); + eb.addBlankField(true); + + ale.getChanges().forEach((changeKey, changeValue) -> { + Object oldValue = changeValue.getOldValue(); + Object newValue = changeValue.getNewValue(); + + switch (changeKey) { + case "user_id", "sound_id", "id", "guild_id", "available" ->{ + // skip + } + case "volume" -> { + eb.addField("Old Volume", "╰┈➤"+oldValue, true); + eb.addField("New Volume", "╰┈➤"+newValue, true); + eb.addBlankField(true); + } + case "emoji_name" -> { + eb.addField("Old Related Emoji", "╰┈➤"+oldValue, true); + eb.addField("New Related Emoji", "╰┈➤"+newValue, true); + eb.addBlankField(true); + } + case "emoji_id" -> { + eb.addField("Old Related Emoji ID", "╰┈➤"+oldValue, true); + eb.addField("New Related Emoji ID", "╰┈➤"+newValue, true); + eb.addBlankField(true); + } + case "name" -> { + eb.addField("Old Sound Item Name", "╰┈➤"+oldValue, true); + eb.addField("New Sound Item Name", "╰┈➤"+newValue, true); + eb.addBlankField(true); + } + default -> { + eb.addField("Unimplemented Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); + } } - - } + }); eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); From e2918167ba9ad8058b1a8a6350bc3fe9ac5b54c4 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Tue, 10 Feb 2026 16:19:23 +0530 Subject: [PATCH 046/104] feat(soundboard): add volume percentage formatting - Introduce `SoundboardUtils` to format soundboard volume as percentages - Add `parseDouble` overload to `NumberFormatUtils` for rounding - Apply new utility to soundboard audit log helpers for consistent volume display Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../bot/commons/utils/NumberFormatUtils.java | 15 +++++++++++++ .../SoundboardSoundCreateEventHelper.java | 3 ++- .../SoundboardSoundDeleteEventHelper.java | 3 ++- .../SoundboardSoundUpdateEventHelper.java | 5 +++-- .../soundboard/utils/SoundboardUtils.java | 22 +++++++++++++++++++ 5 files changed, 44 insertions(+), 4 deletions(-) create mode 100644 src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/utils/SoundboardUtils.java diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/NumberFormatUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/NumberFormatUtils.java index c1552b24..d97312d9 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/NumberFormatUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/NumberFormatUtils.java @@ -3,6 +3,9 @@ import lombok.experimental.UtilityClass; import org.jetbrains.annotations.Nullable; +import java.math.BigDecimal; +import java.math.RoundingMode; + @UtilityClass public class NumberFormatUtils { @@ -26,4 +29,16 @@ public static Integer parseInt(@Nullable Object possibleIntegerValue) { return null; } } + + @Nullable + public static Double parseDouble (@Nullable Object possibleDoubleValue, int roundingDigits, RoundingMode roundingMode) { + if(possibleDoubleValue==null) return null; + + try { + double doubleValue = Double.parseDouble(String.valueOf(possibleDoubleValue)); + return BigDecimal.valueOf(doubleValue).setScale(roundingDigits, roundingMode).doubleValue(); + } catch (NumberFormatException e){ + return null; + } + } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundCreateEventHelper.java index 28c0cf11..5b84ab68 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundCreateEventHelper.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.soundboard; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.soundboard.utils.SoundboardUtils; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -40,7 +41,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT case "user_id", "sound_id", "id", "guild_id", "available" -> { // skip } - case "volume" -> eb.addField("Volume", "╰┈➤"+newValue, false); + case "volume" -> eb.addField("Volume", "╰┈➤"+ SoundboardUtils.resolveVolumePercentage(newValue), false); case "emoji_name" -> eb.addField("Related Emoji", "╰┈➤"+newValue, false); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundDeleteEventHelper.java index 145fee8d..57ce5360 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundDeleteEventHelper.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.soundboard; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.soundboard.utils.SoundboardUtils; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -40,7 +41,7 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT case "user_id", "sound_id", "id", "guild_id", "available" -> { // skip } - case "volume" -> eb.addField("Volume", "╰┈➤"+oldValue, false); + case "volume" -> eb.addField("Volume", "╰┈➤"+ SoundboardUtils.resolveVolumePercentage(oldValue), false); case "emoji_name" -> eb.addField("Related Emoji", "╰┈➤"+oldValue, false); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundUpdateEventHelper.java index 7ec5af1c..a622ba59 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundUpdateEventHelper.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.soundboard; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.soundboard.utils.SoundboardUtils; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -40,8 +41,8 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT // skip } case "volume" -> { - eb.addField("Old Volume", "╰┈➤"+oldValue, true); - eb.addField("New Volume", "╰┈➤"+newValue, true); + eb.addField("Old Volume", "╰┈➤"+SoundboardUtils.resolveVolumePercentage(oldValue), true); + eb.addField("New Volume", "╰┈➤"+SoundboardUtils.resolveVolumePercentage(newValue), true); eb.addBlankField(true); } case "emoji_name" -> { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/utils/SoundboardUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/utils/SoundboardUtils.java new file mode 100644 index 00000000..7c2ad6b4 --- /dev/null +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/utils/SoundboardUtils.java @@ -0,0 +1,22 @@ +package io.github.eggy03.papertrail.bot.listeners.audit.helper.soundboard.utils; + +import lombok.experimental.UtilityClass; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.math.RoundingMode; + +import static io.github.eggy03.papertrail.bot.commons.utils.NumberFormatUtils.parseDouble; + +@UtilityClass +public class SoundboardUtils { + + @NotNull + public static String resolveVolumePercentage (@Nullable Object decimalVolume) { + Double volume = parseDouble(decimalVolume, 4, RoundingMode.HALF_UP); + if(volume==null) + return "N/A"; + + return (volume * 100)+"%"; + } +} From 0b51706dbc95c93997ce5577ea49f7e3684e3ad7 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Tue, 10 Feb 2026 19:30:11 +0530 Subject: [PATCH 047/104] refactor(commons): rename `NumberFormatUtils` to `NumberParseUtils` - Rename `NumberFormatUtils.java` to `NumberParseUtils.java` to accurately reflect its number parsing functionality - Update all usages of the utility class to reference `NumberParseUtils` - Remove redundant internal helper comment from the utility class - Also remove static references since lombok's @UtilityClass may confuse javac during imports Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- ...berFormatUtils.java => NumberParseUtils.java} | 3 +-- .../audit/helper/automod/utils/AutoModUtils.java | 7 +++---- .../audit/helper/channel/utils/ChannelUtils.java | 16 +++++++--------- .../audit/helper/guild/utils/GuildUtils.java | 16 +++++++--------- .../audit/helper/role/utils/RoleUtils.java | 5 ++--- .../utils/ScheduledEventUtils.java | 7 +++---- .../helper/soundboard/utils/SoundboardUtils.java | 5 ++--- 7 files changed, 25 insertions(+), 34 deletions(-) rename src/main/java/io/github/eggy03/papertrail/bot/commons/utils/{NumberFormatUtils.java => NumberParseUtils.java} (95%) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/NumberFormatUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/NumberParseUtils.java similarity index 95% rename from src/main/java/io/github/eggy03/papertrail/bot/commons/utils/NumberFormatUtils.java rename to src/main/java/io/github/eggy03/papertrail/bot/commons/utils/NumberParseUtils.java index d97312d9..a2df24d6 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/NumberFormatUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/NumberParseUtils.java @@ -7,9 +7,8 @@ import java.math.RoundingMode; @UtilityClass -public class NumberFormatUtils { +public class NumberParseUtils { - // INTERNAL HELPERS @Nullable public static Long parseLong(@Nullable Object possibleLongValue) { if (possibleLongValue == null) return null; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutoModUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutoModUtils.java index ab056ee2..fc4fa9df 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutoModUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutoModUtils.java @@ -1,13 +1,12 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.automod.utils; +import io.github.eggy03.papertrail.bot.commons.utils.NumberParseUtils; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.entities.automod.AutoModEventType; import net.dv8tion.jda.api.entities.automod.AutoModTriggerType; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import static io.github.eggy03.papertrail.bot.commons.utils.NumberFormatUtils.parseInt; - @UtilityClass public class AutoModUtils { @@ -16,7 +15,7 @@ public class AutoModUtils { // AUTO MOD UTILS @NotNull public static String autoModEventTypeResolver(@Nullable Object autoModEventTypeInteger) { - Integer eventTypeInt = parseInt(autoModEventTypeInteger); + Integer eventTypeInt = NumberParseUtils.parseInt(autoModEventTypeInteger); if (eventTypeInt == null) { return NOT_AVAILABLE; } @@ -25,7 +24,7 @@ public static String autoModEventTypeResolver(@Nullable Object autoModEventTypeI } public static String autoModTriggerTypeResolver(@Nullable Object autoModTriggerTypeInteger) { - Integer triggerTypeInt = parseInt(autoModTriggerTypeInteger); + Integer triggerTypeInt = NumberParseUtils.parseInt(autoModTriggerTypeInteger); if (triggerTypeInt == null) return NOT_AVAILABLE; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java index e1dd0ca8..3f9448f2 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils; +import io.github.eggy03.papertrail.bot.commons.utils.NumberParseUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.Permission; @@ -12,9 +13,6 @@ import java.util.EnumSet; -import static io.github.eggy03.papertrail.bot.commons.utils.NumberFormatUtils.parseInt; -import static io.github.eggy03.papertrail.bot.commons.utils.NumberFormatUtils.parseLong; - @UtilityClass public class ChannelUtils { @@ -22,7 +20,7 @@ public class ChannelUtils { @NotNull public static String resolveChannelType(@Nullable Object channelTypeInteger) { - Integer channelType = parseInt(channelTypeInteger); + Integer channelType = NumberParseUtils.parseInt(channelTypeInteger); if (channelType == null) return "Channel Type cannot be parsed: " + channelTypeInteger; @@ -31,7 +29,7 @@ public static String resolveChannelType(@Nullable Object channelTypeInteger) { @NotNull public static String resolveVoiceChannelUserLimit(Object limitNumber) { - Integer userLimit = parseInt(limitNumber); + Integer userLimit = NumberParseUtils.parseInt(limitNumber); if (userLimit == null) return "User Limit cannot be parsed"; @@ -40,7 +38,7 @@ public static String resolveVoiceChannelUserLimit(Object limitNumber) { @NotNull public static String resolveVoiceChannelBitrate(@Nullable Object bitrateInteger) { - Integer bitrate = parseInt(bitrateInteger); + Integer bitrate = NumberParseUtils.parseInt(bitrateInteger); if (bitrate == null) return "Voice Channel Bitrate cannot be parsed"; @@ -50,7 +48,7 @@ public static String resolveVoiceChannelBitrate(@Nullable Object bitrateInteger) @NotNull public static String resolveVoiceChannelVideoQuality(@Nullable Object voiceChannelVideoQualityInteger) { - Integer videoQuality = parseInt(voiceChannelVideoQualityInteger); + Integer videoQuality = NumberParseUtils.parseInt(voiceChannelVideoQualityInteger); return switch (videoQuality) { case 1 -> "Auto"; @@ -63,7 +61,7 @@ public static String resolveVoiceChannelVideoQuality(@Nullable Object voiceChann // CHANNEL OVERRIDE UTILS @NotNull public static String resolveChannelOverrideTargetType(@Nullable Object targetTypeInteger) { - Integer targetType = parseInt(targetTypeInteger); + Integer targetType = NumberParseUtils.parseInt(targetTypeInteger); return switch (targetType) { case 0 -> "Role"; @@ -77,7 +75,7 @@ public static String resolveChannelOverrideTargetType(@Nullable Object targetTyp @NotNull public static String resolveChannelOverridePermissions(@Nullable Object permissionValueLong, @NonNull String emoji) { - Long permissionValue = parseLong(permissionValueLong); + Long permissionValue = NumberParseUtils.parseLong(permissionValueLong); if (permissionValue == null) return "Permission Value cannot be parsed"; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/utils/GuildUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/utils/GuildUtils.java index 8f6feed3..47548516 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/utils/GuildUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/utils/GuildUtils.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.guild.utils; +import io.github.eggy03.papertrail.bot.commons.utils.NumberParseUtils; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; @@ -8,9 +9,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import static io.github.eggy03.papertrail.bot.commons.utils.NumberFormatUtils.parseInt; -import static io.github.eggy03.papertrail.bot.commons.utils.NumberFormatUtils.parseLong; - @UtilityClass public class GuildUtils { @@ -20,7 +18,7 @@ public class GuildUtils { @NotNull public static String resolveGuildVerificationLevel(@Nullable Object verificationLevelInteger) { - Integer verificationLevel = parseInt(verificationLevelInteger); + Integer verificationLevel = NumberParseUtils.parseInt(verificationLevelInteger); return switch (verificationLevel) { //we could have used JDA's Guild.VerficationLevel but they don't have description case 0 -> "NONE"; case 1 -> "LOW (Verified Email)"; @@ -35,7 +33,7 @@ public static String resolveGuildVerificationLevel(@Nullable Object verification @NotNull public static String resolveGuildModActionMFALevel(@Nullable Object mfaLevelInteger) { - Integer mfaLevel = parseInt(mfaLevelInteger); + Integer mfaLevel = NumberParseUtils.parseInt(mfaLevelInteger); if (mfaLevel == null) return NOT_AVAILABLE; @@ -45,7 +43,7 @@ public static String resolveGuildModActionMFALevel(@Nullable Object mfaLevelInte @NotNull public static String resolveGuildDefaultMessageNotificationLevel(@Nullable Object notificationLevelInteger) { - Integer notificationLevel = parseInt(notificationLevelInteger); + Integer notificationLevel = NumberParseUtils.parseInt(notificationLevelInteger); if (notificationLevel == null) return NOT_AVAILABLE; @@ -55,7 +53,7 @@ public static String resolveGuildDefaultMessageNotificationLevel(@Nullable Objec @NotNull public static String resolveExplicitContentFilterLevel(@Nullable Object explicitContentFilterLevelInteger) { - Integer ecfLevel = parseInt(explicitContentFilterLevelInteger); + Integer ecfLevel = NumberParseUtils.parseInt(explicitContentFilterLevelInteger); if (ecfLevel == null) return NOT_AVAILABLE; @@ -64,7 +62,7 @@ public static String resolveExplicitContentFilterLevel(@Nullable Object explicit @NotNull public static String resolveSystemChannelFlags(@Nullable Object systemChannelFlagsIntegerObject) { - Integer systemChannelFlagsInteger = parseInt(systemChannelFlagsIntegerObject); + Integer systemChannelFlagsInteger = NumberParseUtils.parseInt(systemChannelFlagsIntegerObject); if (systemChannelFlagsInteger == null) return NOT_AVAILABLE; @@ -86,7 +84,7 @@ public static String resolveSystemChannelFlags(@Nullable Object systemChannelFla // MISC @NotNull public static String resolveMentionableChannel(Object channelId, GuildAuditLogEntryCreateEvent event) { - Long channelIdLong = parseLong(channelId); + Long channelIdLong = NumberParseUtils.parseLong(channelId); if (channelIdLong == null) return NOT_AVAILABLE; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/utils/RoleUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/utils/RoleUtils.java index 346f5cd8..88169b3e 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/utils/RoleUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/utils/RoleUtils.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.role.utils; +import io.github.eggy03.papertrail.bot.commons.utils.NumberParseUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.Permission; @@ -8,14 +9,12 @@ import java.util.EnumSet; -import static io.github.eggy03.papertrail.bot.commons.utils.NumberFormatUtils.parseLong; - @UtilityClass public class RoleUtils { @NotNull public static String resolveRolePermissions (@Nullable Object permissionsValue, @NonNull String emoji) { - Long permissionLong = parseLong(permissionsValue); + Long permissionLong = NumberParseUtils.parseLong(permissionsValue); if(permissionLong==null) return "Permission cannot be parsed"; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/utils/ScheduledEventUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/utils/ScheduledEventUtils.java index 9bf11d05..a50ec1c8 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/utils/ScheduledEventUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/utils/ScheduledEventUtils.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.scheduledevent.utils; +import io.github.eggy03.papertrail.bot.commons.utils.NumberParseUtils; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.entities.ScheduledEvent; import org.jetbrains.annotations.NotNull; @@ -7,15 +8,13 @@ import java.util.Map; -import static io.github.eggy03.papertrail.bot.commons.utils.NumberFormatUtils.parseInt; - @UtilityClass public class ScheduledEventUtils { @NotNull public static String resolveEventType (@Nullable Object eventTypeInteger) { - Integer eventType = parseInt(eventTypeInteger); + Integer eventType = NumberParseUtils.parseInt(eventTypeInteger); if (eventType == null) return "N/A"; @@ -25,7 +24,7 @@ public static String resolveEventType (@Nullable Object eventTypeInteger) { @NotNull public static String resolveStatusType (@Nullable Object eventTypeInteger) { - Integer eventType = parseInt(eventTypeInteger); + Integer eventType = NumberParseUtils.parseInt(eventTypeInteger); if (eventType == null) return "N/A"; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/utils/SoundboardUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/utils/SoundboardUtils.java index 7c2ad6b4..a15ab5e5 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/utils/SoundboardUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/utils/SoundboardUtils.java @@ -1,19 +1,18 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.soundboard.utils; +import io.github.eggy03.papertrail.bot.commons.utils.NumberParseUtils; import lombok.experimental.UtilityClass; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.math.RoundingMode; -import static io.github.eggy03.papertrail.bot.commons.utils.NumberFormatUtils.parseDouble; - @UtilityClass public class SoundboardUtils { @NotNull public static String resolveVolumePercentage (@Nullable Object decimalVolume) { - Double volume = parseDouble(decimalVolume, 4, RoundingMode.HALF_UP); + Double volume = NumberParseUtils.parseDouble(decimalVolume, 4, RoundingMode.HALF_UP); if(volume==null) return "N/A"; From 9af050b1d0810e2e762b16d26f1c92bc2eaf8866 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Tue, 10 Feb 2026 20:18:30 +0530 Subject: [PATCH 048/104] refactor(stage-audit): enhance stage privacy level display - Introduce `StageUtils.java` to resolve stage privacy levels, improving clarity in audit log embeds - Refactor `StageInstance*EventHelper` classes to use `StageUtils` and modern Java constructs for audit log processing Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../stage/StageInstanceCreateEventHelper.java | 38 ++++++------- .../stage/StageInstanceDeleteEventHelper.java | 39 ++++++------- .../stage/StageInstanceUpdateEventHelper.java | 56 +++++++++---------- .../audit/helper/stage/utils/StageUtils.java | 23 ++++++++ 4 files changed, 83 insertions(+), 73 deletions(-) create mode 100644 src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/utils/StageUtils.java diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceCreateEventHelper.java index e082429e..92e17c19 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceCreateEventHelper.java @@ -1,9 +1,9 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.stage; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.stage.utils.StageUtils; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; @@ -11,7 +11,6 @@ import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import java.awt.Color; -import java.util.Map; @UtilityClass @Slf4j @@ -21,37 +20,32 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Stage Instance Create Event"); - User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ A stage instance was created"); + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Stage Instance Create Event"); + eb.setDescription("ℹ️ A stage instance was created by: "+mentionableExecutor); eb.setColor(Color.GREEN); + eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - for(Map.Entry changes: ale.getChanges().entrySet()) { - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); + ale.getChanges().forEach((changeKey, changeValue) -> { + Object oldValue = changeValue.getOldValue(); + Object newValue = changeValue.getNewValue(); - switch(change) { - case "topic": - eb.addField("📝 Stage Topic", "╰┈➤"+newValue, false); - break; + switch(changeKey) { + case "topic" -> eb.addField("Stage Topic", "╰┈➤"+newValue, false); - case "privacy_level": - eb.addField("🌐 Stage Privacy", "╰┈➤"+newValue, false); - eb.addField("Stage Privacy Result Inference", "-# A value of 1 means PUBLIC (deprecated) and 2 means GUILD_ONLY", false); - break; + case "privacy_level" -> eb.addField("Stage Privacy", "╰┈➤"+ StageUtils.resolveStagePrivacyLevel(newValue), false); - default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); + default -> { + eb.addField("Unimplemented Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); + } } - - } + }); eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceDeleteEventHelper.java index a63d3c08..5b6a5d7f 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceDeleteEventHelper.java @@ -1,9 +1,9 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.stage; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.stage.utils.StageUtils; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; @@ -11,7 +11,6 @@ import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import java.awt.Color; -import java.util.Map; @UtilityClass @Slf4j @@ -21,38 +20,32 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Stage Instance Delete Event"); - User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ A stage instance was deleted"); + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Stage Instance Delete Event"); + eb.setDescription("ℹ️ A stage instance was deleted by: "+mentionableExecutor); eb.setColor(Color.RED); + eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - for(Map.Entry changes: ale.getChanges().entrySet()) { - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); + ale.getChanges().forEach((changeKey, changeValue) -> { + Object oldValue = changeValue.getOldValue(); + Object newValue = changeValue.getNewValue(); - switch(change) { - case "topic": - eb.addField("📝 Deleted Stage Topic", "╰┈➤"+oldValue, false); - break; + switch(changeKey) { + case "topic" -> eb.addField("Stage Topic", "╰┈➤"+oldValue, false); - case "privacy_level": - eb.addField("🌐 Deleted Stage Privacy", "╰┈➤"+oldValue, false); - eb.addField("Stage Privacy Result Inference", "-# A value of 1 means PUBLIC (deprecated) and 2 means GUILD_ONLY", false); - break; + case "privacy_level" -> eb.addField("Stage Privacy", "╰┈➤"+ StageUtils.resolveStagePrivacyLevel(oldValue), false); - default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); + default -> { + eb.addField("Unimplemented Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); + } } - - } - + }); eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceUpdateEventHelper.java index 2c3d4e16..8eb2e987 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceUpdateEventHelper.java @@ -1,9 +1,9 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.stage; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.stage.utils.StageUtils; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; @@ -11,7 +11,6 @@ import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import java.awt.Color; -import java.util.Map; @UtilityClass @Slf4j @@ -21,39 +20,40 @@ public static void format(GuildAuditLogEntryCreateEvent event, String channelIdT AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Stage Instance Update Event"); - User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ A stage instance was updated"); + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Stage Instance Update Event"); + eb.setDescription("ℹ️ A stage instance was updated by: "+mentionableExecutor); eb.setColor(Color.YELLOW); + eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - - for(Map.Entry changes: ale.getChanges().entrySet()) { - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); - - switch(change) { - case "topic": - eb.addField("📝 OldStage Topic", "╰┈➤"+oldValue, false); - eb.addField("📝 New Stage Topic", "╰┈➤"+newValue, false); - break; - - case "privacy_level": - eb.addField("🌐 Old Stage Privacy","╰┈➤"+oldValue, false); - eb.addField("🌐 New Stage Privacy", "╰┈➤"+newValue, false); - eb.addField("Stage Privacy Result Inference", "-# A value of 1 means PUBLIC (deprecated) and 2 means GUILD_ONLY", false); - break; - - default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); + eb.addBlankField(true); + + ale.getChanges().forEach((changeKey, changeValue) -> { + Object oldValue = changeValue.getOldValue(); + Object newValue = changeValue.getNewValue(); + + switch(changeKey) { + case "topic" -> { + eb.addField("Old Stage Topic", "╰┈➤"+oldValue, true); + eb.addField("New Stage Topic", "╰┈➤"+newValue, true); + eb.addBlankField(true); + } + case "privacy_level" -> { + eb.addField("Old Stage Privacy", "╰┈➤"+ StageUtils.resolveStagePrivacyLevel(oldValue), true); + eb.addField("New Stage Privacy", "╰┈➤"+ StageUtils.resolveStagePrivacyLevel(newValue), true); + eb.addBlankField(true); + } + + default -> { + eb.addField("Unimplemented Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); + } } - - } + }); eb.setFooter("Audit Log Entry ID: "+ale.getId()); eb.setTimestamp(ale.getTimeCreated()); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/utils/StageUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/utils/StageUtils.java new file mode 100644 index 00000000..0f253b87 --- /dev/null +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/utils/StageUtils.java @@ -0,0 +1,23 @@ +package io.github.eggy03.papertrail.bot.listeners.audit.helper.stage.utils; + +import io.github.eggy03.papertrail.bot.commons.utils.NumberParseUtils; +import lombok.experimental.UtilityClass; +import net.dv8tion.jda.api.entities.StageInstance; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +@UtilityClass +public class StageUtils { + + @NotNull + public static String resolveStagePrivacyLevel(@Nullable Object stagePrivacyLevelInteger) { + Integer privacyLevel = NumberParseUtils.parseInt(stagePrivacyLevelInteger); + + if(privacyLevel==null) return "N/A"; + + //JDA removed this, and it technically shouldn't happen either since all stages are GUILD_ONLY now + if(privacyLevel==1) return "PUBLIC (Deprecated)"; + + return StageInstance.PrivacyLevel.fromKey(privacyLevel).name(); + } +} From 398027d6c5ce65c170a12ba2dcceed0a61e2d0fe Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Wed, 11 Feb 2026 11:18:06 +0530 Subject: [PATCH 049/104] refactor(utils): generalize guild events and add nullability annotations - Update event parameter type from `GuildAuditLogEntryCreateEvent` to `GenericGuildEvent` in audit helper utilities. - Add `@NonNull` and `@Nullable` annotations to various method parameters for improved nullability. Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../audit/helper/channel/utils/ChannelUtils.java | 6 +++--- .../listeners/audit/helper/guild/utils/GuildUtils.java | 5 +++-- .../listeners/audit/helper/member/utils/MemberUtils.java | 4 ++-- .../audit/helper/onboarding/utils/OnboardingUtils.java | 8 +++++--- 4 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java index 3f9448f2..670ede36 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java @@ -7,7 +7,7 @@ import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Role; import net.dv8tion.jda.api.entities.channel.ChannelType; -import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; +import net.dv8tion.jda.api.events.guild.GenericGuildEvent; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -28,7 +28,7 @@ public static String resolveChannelType(@Nullable Object channelTypeInteger) { } @NotNull - public static String resolveVoiceChannelUserLimit(Object limitNumber) { + public static String resolveVoiceChannelUserLimit(@Nullable Object limitNumber) { Integer userLimit = NumberParseUtils.parseInt(limitNumber); if (userLimit == null) return "User Limit cannot be parsed"; @@ -95,7 +95,7 @@ public static String resolveChannelOverridePermissions(@Nullable Object permissi // MISC UTILS @NotNull - public static String autoResolveMemberOrRole(@Nullable Object memberOrRoleId, @NonNull GuildAuditLogEntryCreateEvent event) { + public static String autoResolveMemberOrRole(@Nullable Object memberOrRoleId, @NonNull GenericGuildEvent event) { if (memberOrRoleId == null) return "Member/Role ID cannot be parsed"; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/utils/GuildUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/utils/GuildUtils.java index 47548516..95847bb1 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/utils/GuildUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/utils/GuildUtils.java @@ -1,11 +1,12 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.guild.utils; import io.github.eggy03.papertrail.bot.commons.utils.NumberParseUtils; +import lombok.NonNull; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; import net.dv8tion.jda.api.entities.guild.SystemChannelFlag; -import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; +import net.dv8tion.jda.api.events.guild.GenericGuildEvent; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -83,7 +84,7 @@ public static String resolveSystemChannelFlags(@Nullable Object systemChannelFla // MISC @NotNull - public static String resolveMentionableChannel(Object channelId, GuildAuditLogEntryCreateEvent event) { + public static String resolveMentionableChannel(Object channelId, @NonNull GenericGuildEvent event) { Long channelIdLong = NumberParseUtils.parseLong(channelId); if (channelIdLong == null) return NOT_AVAILABLE; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/utils/MemberUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/utils/MemberUtils.java index 794cb2e1..4b931de8 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/utils/MemberUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/utils/MemberUtils.java @@ -3,7 +3,7 @@ import lombok.NonNull; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.entities.Role; -import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; +import net.dv8tion.jda.api.events.guild.GenericGuildEvent; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -16,7 +16,7 @@ public class MemberUtils { // Parses an array list of map of role objects supplied by JDA // roles are exposed as arraylists of maps [{name=role, id=1}, {name=role2, id=2}] @NotNull - public static String parseRoleListMap(@NonNull GuildAuditLogEntryCreateEvent event, @Nullable Object roleObject) { + public static String parseRoleListMap(@NonNull GenericGuildEvent event, @Nullable Object roleObject) { if(roleObject==null) return "N/A"; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/utils/OnboardingUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/utils/OnboardingUtils.java index 23067979..e9f72333 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/utils/OnboardingUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/utils/OnboardingUtils.java @@ -1,9 +1,11 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.onboarding.utils; +import lombok.NonNull; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.util.List; @@ -11,7 +13,7 @@ public class OnboardingUtils { @NotNull - public static String formatMode(Object value) { + public static String formatMode(@Nullable Object value) { if(value==null) return "N/A"; return switch (String.valueOf(value)) { @@ -22,7 +24,7 @@ public static String formatMode(Object value) { } @NotNull - public static String formatStatus(Object value) { + public static String formatStatus(@Nullable Object value) { if(value==null) return "N/A"; @@ -33,7 +35,7 @@ public static String formatStatus(Object value) { } @NotNull - public static String resolveChannelsFromList(Guild guild, Object value) { + public static String resolveChannelsFromList(@NonNull Guild guild, @Nullable Object value) { if(value == null) return "No Resolvable Channel IDs"; StringBuilder sb = new StringBuilder(); From 991a852b5bd8d7a1031db16da1a905c1c872ecfe Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Wed, 11 Feb 2026 12:09:23 +0530 Subject: [PATCH 050/104] refactor(null-safety): enforce null-safety with `@NonNull` annotations - Apply `@NonNull` to method parameters, fields, and constants. - Use `@RequiredArgsConstructor` in `SelfKickListener` for constructor injection. - Update utility methods to return "`N/A`" for `null` inputs. Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../bot/commons/constant/ProjectInfo.java | 9 ++++++++- .../bot/commons/utils/BooleanUtils.java | 7 ++++--- .../bot/commons/utils/ColorUtils.java | 7 +++++-- .../bot/commons/utils/DurationUtils.java | 18 ++++++++++-------- .../audit/event/AuditLogEventListener.java | 5 ++++- .../event/guild/GuildBoostEventListener.java | 3 ++- .../GuildMemberJoinAndLeaveEventListener.java | 2 ++ .../event/guild/GuildPollEventListener.java | 3 ++- .../event/guild/GuildVoiceEventListener.java | 2 ++ ...AutoModerationFlagToChannelEventHelper.java | 3 ++- ...AutoModerationMemberTimeoutEventHelper.java | 3 ++- ...oModerationRuleBlockMessageEventHelper.java | 3 ++- .../AutoModerationRuleCreateEventHelper.java | 3 ++- .../AutoModerationRuleDeleteEventHelper.java | 3 ++- .../AutoModerationRuleUpdateEventHelper.java | 3 ++- .../helper/automod/utils/AutoModUtils.java | 3 +++ .../audit/helper/bot/BotAddEventHelper.java | 3 ++- .../channel/ChannelCreateEventHelper.java | 3 ++- .../channel/ChannelDeleteEventHelper.java | 3 ++- .../ChannelOverrideCreateEventHelper.java | 3 ++- .../ChannelOverrideDeleteEventHelper.java | 3 ++- .../ChannelOverrideUpdateEventHelper.java | 3 ++- .../channel/ChannelUpdateEventHelper.java | 3 ++- .../VoiceChannelStatusDeleteEventHelper.java | 3 ++- .../VoiceChannelStatusUpdateEventHelper.java | 3 ++- .../helper/emoji/EmojiCreateEventHelper.java | 3 ++- .../helper/emoji/EmojiDeleteEventHelper.java | 3 ++- .../helper/emoji/EmojiUpdateEventHelper.java | 3 ++- .../generic/GenericAuditLogEventHelper.java | 3 ++- .../helper/guild/GuildUpdateEventHelper.java | 3 ++- .../audit/helper/guild/utils/GuildUtils.java | 1 + .../IntegrationCreateEventHelper.java | 3 ++- .../IntegrationDeleteEventHelper.java | 3 ++- .../helper/invite/InviteCreateEventHelper.java | 3 ++- .../helper/invite/InviteDeleteEventHelper.java | 3 ++- .../member/MemberRoleUpdateEventHelper.java | 3 ++- .../helper/member/MemberUpdateEventHelper.java | 3 ++- .../member/MemberVoiceKickEventHelper.java | 3 ++- .../member/MemberVoiceMoveEventHelper.java | 3 ++- .../helper/message/MessagePinEventHelper.java | 3 ++- .../message/MessageUnpinEventHelper.java | 3 ++- .../helper/modactions/BanEventHelper.java | 3 ++- .../helper/modactions/KickEventHelper.java | 3 ++- .../helper/modactions/UnbanEventHelper.java | 3 ++- .../OnboardingPromptCreateEventHelper.java | 3 ++- .../OnboardingPromptDeleteEventHelper.java | 3 ++- .../OnboardingPromptUpdateEventHelper.java | 3 ++- .../OnboardingUpdateEventHelper.java | 3 ++- .../helper/role/RoleCreateEventHelper.java | 3 ++- .../helper/role/RoleDeleteEventHelper.java | 3 ++- .../helper/role/RoleUpdateEventHelper.java | 3 ++- .../ScheduledEventCreateEventHelper.java | 3 ++- .../ScheduledEventDeleteEventHelper.java | 3 ++- .../ScheduledEventUpdateEventHelper.java | 3 ++- .../SoundboardSoundCreateEventHelper.java | 3 ++- .../SoundboardSoundDeleteEventHelper.java | 3 ++- .../SoundboardSoundUpdateEventHelper.java | 3 ++- .../stage/StageInstanceCreateEventHelper.java | 3 ++- .../stage/StageInstanceDeleteEventHelper.java | 3 ++- .../stage/StageInstanceUpdateEventHelper.java | 3 ++- .../sticker/StickerCreateEventHelper.java | 3 ++- .../sticker/StickerDeleteEventHelper.java | 3 ++- .../sticker/StickerUpdateEventHelper.java | 3 ++- .../helper/thread/ThreadCreateEventHelper.java | 3 ++- .../helper/thread/ThreadDeleteEventHelper.java | 3 ++- .../helper/thread/ThreadUpdateEventHelper.java | 3 ++- .../webhook/WebhookCreateEventHelper.java | 3 ++- .../webhook/WebhookRemoveEventHelper.java | 3 ++- .../webhook/WebhookUpdateEventHelper.java | 3 ++- .../setup/AuditLogSetupCommandListener.java | 8 +++++--- .../message/event/MessageLogListener.java | 10 ++++++---- .../setup/MessageLogSetupCommandListener.java | 10 ++++++---- .../BotSetupInstructionCommandListener.java | 3 ++- .../bot/listeners/misc/SelfKickListener.java | 13 +++++++------ .../misc/ServerStatCommandListener.java | 3 ++- .../misc/SlashCommandRegistrationListener.java | 6 +++--- .../bot/main/ConnectionInitializer.java | 3 ++- .../eggy03/papertrail/bot/main/Start.java | 5 +++-- 78 files changed, 195 insertions(+), 100 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/constant/ProjectInfo.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/constant/ProjectInfo.java index 0ab7766d..213e9e19 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/constant/ProjectInfo.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/constant/ProjectInfo.java @@ -1,12 +1,19 @@ package io.github.eggy03.papertrail.bot.commons.constant; +import lombok.NonNull; + public class ProjectInfo { private ProjectInfo() { throw new IllegalStateException("Utility Class"); } - + + @NonNull public static final String APPNAME = "PaperTrail"; + + @NonNull public static final String VERSION = "v2.5.0"; + + @NonNull public static final String PROJECT_ISSUE_LINK="https://github.com/eggy03/PaperTrailBot/issues"; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/BooleanUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/BooleanUtils.java index 8cf9cdf7..a01c0e07 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/BooleanUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/BooleanUtils.java @@ -2,12 +2,13 @@ import lombok.experimental.UtilityClass; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; @UtilityClass public class BooleanUtils { @NotNull - public static String formatToEmoji (Object value) { + public static String formatToEmoji (@Nullable Object value) { if(value==null) return "N/A"; @@ -18,7 +19,7 @@ public static String formatToEmoji (Object value) { } @NotNull - public static String formatToYesOrNo (Object value) { + public static String formatToYesOrNo (@Nullable Object value) { if(value==null) return "N/A"; @@ -29,7 +30,7 @@ public static String formatToYesOrNo (Object value) { } @NotNull - public static String formatToEnabledOrDisabled (Object value) { + public static String formatToEnabledOrDisabled (@Nullable Object value) { if(value==null) return "N/A"; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/ColorUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/ColorUtils.java index c954013f..78f9c990 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/ColorUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/ColorUtils.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.commons.utils; import lombok.experimental.UtilityClass; +import org.jetbrains.annotations.Nullable; import java.util.IllegalFormatException; import java.util.Map; @@ -8,7 +9,7 @@ @UtilityClass public class ColorUtils { - public static String formatToHex(Object colorValueInteger) { + public static String formatToHex(@Nullable Object colorValueInteger) { if(colorValueInteger==null) return "N/A"; @@ -25,7 +26,9 @@ public static String formatToHex(Object colorValueInteger) { // gradient is returned as a hash map in the following structure // {"primary_color" = 123456789, "secondary_color" = 123456789, "tertiary_color" = 123456789} - public static String formatGradientColorSystemToHex(Object gradientMap) { + public static String formatGradientColorSystemToHex(@Nullable Object gradientMap) { + + if(gradientMap==null) return "N/A"; if(gradientMap instanceof Map colorMap){ diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/DurationUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/DurationUtils.java index 24c16cf7..737ad050 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/DurationUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/DurationUtils.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.commons.utils; import lombok.experimental.UtilityClass; +import org.jetbrains.annotations.Nullable; import java.time.Duration; import java.time.OffsetDateTime; @@ -10,9 +11,9 @@ @UtilityClass public class DurationUtils { - public static String formatSeconds(Object seconds) { + public static String formatSeconds(@Nullable Object seconds) { if (seconds == null) { - return "ERROR: Value Returned Null"; + return "N/A"; } try { @@ -43,9 +44,9 @@ public static String formatSeconds(Object seconds) { } - public static String formatMinutes(Object minutes) { + public static String formatMinutes(@Nullable Object minutes) { if (minutes == null) { - return "ERROR: Value Returned Null"; + return "N/A"; } try { long minutesLong = Long.parseLong(minutes.toString()); @@ -65,11 +66,12 @@ public static String formatMinutes(Object minutes) { } - public static String isoToLocalTimeCounter(Object isoTime) { + public static String isoToLocalTimeCounter(@Nullable Object isoTime) { + + if(isoTime==null) return "N/A"; + String isoTimeString = String.valueOf(isoTime); - if(isoTimeString==null || isoTimeString.equals("null") || isoTimeString.isBlank()) { - return "N/A"; - } + if(isoTimeString.trim().isEmpty()) return "N/A"; try { OffsetDateTime odt = OffsetDateTime.parse(isoTimeString, DateTimeFormatter.ISO_OFFSET_DATE_TIME); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/AuditLogEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/AuditLogEventListener.java index 1494c32e..235acc6e 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/AuditLogEventListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/AuditLogEventListener.java @@ -61,6 +61,7 @@ import io.github.eggy03.papertrail.bot.listeners.audit.helper.webhook.WebhookUpdateEventHelper; import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; import io.github.eggy03.papertrail.sdk.entity.AuditLogRegistrationEntity; +import lombok.NonNull; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.audit.ActionType; import net.dv8tion.jda.api.audit.AuditLogEntry; @@ -75,6 +76,8 @@ public class AuditLogEventListener extends ListenerAdapter { private final Executor vThreadPool; + + @NonNull private static final AuditLogRegistrationClient client = new AuditLogRegistrationClient(EnvConfig.get("API_URL")); public AuditLogEventListener(Executor vThreadPool) { @@ -90,7 +93,7 @@ public void onGuildAuditLogEntryCreate(@NotNull GuildAuditLogEntryCreateEvent ev }); } - private void auditLogParser(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + private void auditLogParser(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); ActionType action = ale.getType(); switch (action) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildBoostEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildBoostEventListener.java index b2b302e2..46e6f840 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildBoostEventListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildBoostEventListener.java @@ -3,6 +3,7 @@ import io.github.eggy03.papertrail.bot.commons.utils.EnvConfig; import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; import io.github.eggy03.papertrail.sdk.entity.AuditLogRegistrationEntity; +import lombok.NonNull; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Member; @@ -12,7 +13,6 @@ import net.dv8tion.jda.api.events.guild.update.GuildUpdateBoostCountEvent; import net.dv8tion.jda.api.events.guild.update.GuildUpdateBoostTierEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; -import org.jspecify.annotations.NonNull; import java.awt.Color; import java.time.Instant; @@ -23,6 +23,7 @@ // Experimental public class GuildBoostEventListener extends ListenerAdapter { + @NonNull private static final AuditLogRegistrationClient client = new AuditLogRegistrationClient(EnvConfig.get("API_URL")); private final Executor vThreadPool; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildMemberJoinAndLeaveEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildMemberJoinAndLeaveEventListener.java index 61b541ed..f34a1a89 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildMemberJoinAndLeaveEventListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildMemberJoinAndLeaveEventListener.java @@ -5,6 +5,7 @@ import io.github.eggy03.papertrail.bot.commons.utils.EnvConfig; import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; import io.github.eggy03.papertrail.sdk.entity.AuditLogRegistrationEntity; +import lombok.NonNull; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Member; @@ -25,6 +26,7 @@ // this event is logged in the same channel where the audit log events are logged public class GuildMemberJoinAndLeaveEventListener extends ListenerAdapter { + @NonNull private static final AuditLogRegistrationClient client = new AuditLogRegistrationClient(EnvConfig.get("API_URL")); private final Executor vThreadPool; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildPollEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildPollEventListener.java index 707aad0f..d065f2bd 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildPollEventListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildPollEventListener.java @@ -3,13 +3,13 @@ import io.github.eggy03.papertrail.bot.commons.utils.EnvConfig; import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; import io.github.eggy03.papertrail.sdk.entity.AuditLogRegistrationEntity; +import lombok.NonNull; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.messages.MessagePoll; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; -import org.jspecify.annotations.NonNull; import java.awt.Color; import java.time.Instant; @@ -19,6 +19,7 @@ public class GuildPollEventListener extends ListenerAdapter { + @NonNull private static final AuditLogRegistrationClient client = new AuditLogRegistrationClient(EnvConfig.get("API_URL")); private final Executor vThreadPool; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildVoiceEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildVoiceEventListener.java index c519cd1b..fe16a06b 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildVoiceEventListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildVoiceEventListener.java @@ -3,6 +3,7 @@ import io.github.eggy03.papertrail.bot.commons.utils.EnvConfig; import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; import io.github.eggy03.papertrail.sdk.entity.AuditLogRegistrationEntity; +import lombok.NonNull; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.MessageEmbed; @@ -21,6 +22,7 @@ // this event is logged in the same channel where the audit log events are logged public class GuildVoiceEventListener extends ListenerAdapter { + @NonNull private static final AuditLogRegistrationClient client = new AuditLogRegistrationClient(EnvConfig.get("API_URL")); private final Executor vThreadPool; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationFlagToChannelEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationFlagToChannelEventHelper.java index dce31d54..4fee1d96 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationFlagToChannelEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationFlagToChannelEventHelper.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.automod; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -15,7 +16,7 @@ @Slf4j public class AutoModerationFlagToChannelEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationMemberTimeoutEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationMemberTimeoutEventHelper.java index 09076b39..64a11cb8 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationMemberTimeoutEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationMemberTimeoutEventHelper.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.automod; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -15,7 +16,7 @@ @Slf4j public class AutoModerationMemberTimeoutEventHelper { - public static void format (GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format (@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleBlockMessageEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleBlockMessageEventHelper.java index abfa2315..4a3d5db9 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleBlockMessageEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleBlockMessageEventHelper.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.automod; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -15,7 +16,7 @@ @Slf4j public class AutoModerationRuleBlockMessageEventHelper { - public static void format (GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format (@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleCreateEventHelper.java index 4127e7f0..f4857cd2 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleCreateEventHelper.java @@ -2,6 +2,7 @@ import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; import io.github.eggy03.papertrail.bot.listeners.audit.helper.automod.utils.AutoModUtils; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -17,7 +18,7 @@ @Slf4j public class AutoModerationRuleCreateEventHelper { - public static void format (GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format (@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleDeleteEventHelper.java index 1e955638..04d933f5 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleDeleteEventHelper.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.automod; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -15,7 +16,7 @@ @Slf4j public class AutoModerationRuleDeleteEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleUpdateEventHelper.java index 5777e9df..489ac564 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleUpdateEventHelper.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.automod; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -16,7 +17,7 @@ @Slf4j public class AutoModerationRuleUpdateEventHelper { - public static void format (GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format (@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutoModUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutoModUtils.java index fc4fa9df..2a8272ea 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutoModUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutoModUtils.java @@ -1,15 +1,18 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.automod.utils; import io.github.eggy03.papertrail.bot.commons.utils.NumberParseUtils; +import lombok.NonNull; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.entities.automod.AutoModEventType; import net.dv8tion.jda.api.entities.automod.AutoModTriggerType; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; + @UtilityClass public class AutoModUtils { + @NonNull public static final String NOT_AVAILABLE = "N/A"; // AUTO MOD UTILS diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/bot/BotAddEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/bot/BotAddEventHelper.java index d51fb198..51dfb997 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/bot/BotAddEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/bot/BotAddEventHelper.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.bot; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -15,7 +16,7 @@ @Slf4j public class BotAddEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelCreateEventHelper.java index 21b58b72..af309611 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelCreateEventHelper.java @@ -3,6 +3,7 @@ import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; import io.github.eggy03.papertrail.bot.commons.utils.DurationUtils; import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -19,7 +20,7 @@ @Slf4j public class ChannelCreateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelDeleteEventHelper.java index 894a2415..a6b4df2a 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelDeleteEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.channel; import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -17,7 +18,7 @@ @Slf4j public class ChannelDeleteEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideCreateEventHelper.java index f8165d52..1f28dcf4 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideCreateEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.channel; import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -17,7 +18,7 @@ @Slf4j public class ChannelOverrideCreateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideDeleteEventHelper.java index 55480c5e..72bfc67c 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideDeleteEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.channel; import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -17,7 +18,7 @@ @Slf4j public class ChannelOverrideDeleteEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java index 5e460b81..5cfa672f 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.channel; import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -19,7 +20,7 @@ @Slf4j public class ChannelOverrideUpdateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelUpdateEventHelper.java index 18fb9431..623df6b3 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelUpdateEventHelper.java @@ -3,6 +3,7 @@ import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; import io.github.eggy03.papertrail.bot.commons.utils.DurationUtils; import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -19,7 +20,7 @@ @Slf4j public class ChannelUpdateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusDeleteEventHelper.java index fede2511..bf93d188 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusDeleteEventHelper.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.channel; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -16,7 +17,7 @@ @Slf4j public class VoiceChannelStatusDeleteEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusUpdateEventHelper.java index 0f61aa60..6c7dfc6a 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusUpdateEventHelper.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.channel; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -16,7 +17,7 @@ @Slf4j public class VoiceChannelStatusUpdateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiCreateEventHelper.java index 6a6dcd93..05fd7aa2 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiCreateEventHelper.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.emoji; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -15,7 +16,7 @@ @Slf4j public class EmojiCreateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiDeleteEventHelper.java index 1745f5f3..ea43b86b 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiDeleteEventHelper.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.emoji; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -15,7 +16,7 @@ @Slf4j public class EmojiDeleteEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiUpdateEventHelper.java index e8117a5f..b1d9f158 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiUpdateEventHelper.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.emoji; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -15,7 +16,7 @@ @Slf4j public class EmojiUpdateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/generic/GenericAuditLogEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/generic/GenericAuditLogEventHelper.java index c47b6ab4..d4ff6355 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/generic/GenericAuditLogEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/generic/GenericAuditLogEventHelper.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.generic; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -16,7 +17,7 @@ @Slf4j public class GenericAuditLogEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/GuildUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/GuildUpdateEventHelper.java index aeab1d17..2da83d99 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/GuildUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/GuildUpdateEventHelper.java @@ -3,6 +3,7 @@ import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; import io.github.eggy03.papertrail.bot.commons.utils.DurationUtils; import io.github.eggy03.papertrail.bot.listeners.audit.helper.guild.utils.GuildUtils; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -18,7 +19,7 @@ @Slf4j public class GuildUpdateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/utils/GuildUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/utils/GuildUtils.java index 95847bb1..da1b4841 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/utils/GuildUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/utils/GuildUtils.java @@ -13,6 +13,7 @@ @UtilityClass public class GuildUtils { + @NonNull public static final String NOT_AVAILABLE = "N/A"; // GUILD UTILS diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationCreateEventHelper.java index c6880022..f6bd03a1 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationCreateEventHelper.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.integration; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -15,7 +16,7 @@ @Slf4j public class IntegrationCreateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationDeleteEventHelper.java index 5f9a7fbb..bf772649 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationDeleteEventHelper.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.integration; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -15,7 +16,7 @@ @Slf4j public class IntegrationDeleteEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteCreateEventHelper.java index 8ca171a8..1135ce16 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteCreateEventHelper.java @@ -2,6 +2,7 @@ import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; import io.github.eggy03.papertrail.bot.commons.utils.DurationUtils; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -18,7 +19,7 @@ @Slf4j public class InviteCreateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteDeleteEventHelper.java index f7ea0d76..d28c3150 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteDeleteEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.invite; import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -17,7 +18,7 @@ @Slf4j public class InviteDeleteEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberRoleUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberRoleUpdateEventHelper.java index 6999e910..c29c1735 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberRoleUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberRoleUpdateEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.member; import io.github.eggy03.papertrail.bot.listeners.audit.helper.member.utils.MemberUtils; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -17,7 +18,7 @@ @Slf4j public class MemberRoleUpdateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberUpdateEventHelper.java index 6ead8f66..c8896dd6 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberUpdateEventHelper.java @@ -2,6 +2,7 @@ import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; import io.github.eggy03.papertrail.bot.commons.utils.DurationUtils; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -20,7 +21,7 @@ @Slf4j public class MemberUpdateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceKickEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceKickEventHelper.java index f492699d..70b68c12 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceKickEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceKickEventHelper.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.member; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -17,7 +18,7 @@ public class MemberVoiceKickEventHelper { // the audit log does not expose much information regarding member vc move and kick events // therefore GuildVoiceEventListener has been created to know about channels the target has been moved or kicked from - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceMoveEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceMoveEventHelper.java index 5f35e35c..5a95b26b 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceMoveEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceMoveEventHelper.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.member; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -17,7 +18,7 @@ public class MemberVoiceMoveEventHelper { // the audit log does not expose much information regarding member vc move and kick events // therefore GuildVoiceEventListener has been created to know about channels the target has been moved or kicked from - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessagePinEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessagePinEventHelper.java index 8fb87338..841187b2 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessagePinEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessagePinEventHelper.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.message; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -17,7 +18,7 @@ public class MessagePinEventHelper { // this audit log event does not expose anything other than the target of the event who sent the message // nothing about the person who pinned it or the message itself - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessageUnpinEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessageUnpinEventHelper.java index e963692f..6683c863 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessageUnpinEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessageUnpinEventHelper.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.message; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -17,7 +18,7 @@ public class MessageUnpinEventHelper { // this audit log event does not expose anything other than the target of the event who sent the message // nothing about the person who un-pinned it or the message itself - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/BanEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/BanEventHelper.java index f5aeeaa6..688fe3c2 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/BanEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/BanEventHelper.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.modactions; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -15,7 +16,7 @@ @Slf4j public class BanEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/KickEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/KickEventHelper.java index bd960592..bbaebc08 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/KickEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/KickEventHelper.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.modactions; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -15,7 +16,7 @@ @Slf4j public class KickEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/UnbanEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/UnbanEventHelper.java index 59380f82..92398846 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/UnbanEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/UnbanEventHelper.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.modactions; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -15,7 +16,7 @@ @Slf4j public class UnbanEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptCreateEventHelper.java index d54b4c6a..074981cd 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptCreateEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.onboarding; import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -16,7 +17,7 @@ @Slf4j public class OnboardingPromptCreateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptDeleteEventHelper.java index 83a4384e..88e36ce3 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptDeleteEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.onboarding; import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -16,7 +17,7 @@ @Slf4j public class OnboardingPromptDeleteEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptUpdateEventHelper.java index 8d752fa8..ebab13af 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptUpdateEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.onboarding; import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -16,7 +17,7 @@ @Slf4j public class OnboardingPromptUpdateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingUpdateEventHelper.java index d48e48b6..a5aa4e40 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingUpdateEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.onboarding; import io.github.eggy03.papertrail.bot.listeners.audit.helper.onboarding.utils.OnboardingUtils; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -17,7 +18,7 @@ @Slf4j public class OnboardingUpdateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleCreateEventHelper.java index 3b5be9ab..76950688 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleCreateEventHelper.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.role; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -18,7 +19,7 @@ @Slf4j public class RoleCreateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleDeleteEventHelper.java index 3e7a877c..2b65b044 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleDeleteEventHelper.java @@ -3,6 +3,7 @@ import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; import io.github.eggy03.papertrail.bot.commons.utils.ColorUtils; import io.github.eggy03.papertrail.bot.listeners.audit.helper.role.utils.RoleUtils; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -18,7 +19,7 @@ @Slf4j public class RoleDeleteEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleUpdateEventHelper.java index 18570920..014b0fcf 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleUpdateEventHelper.java @@ -3,6 +3,7 @@ import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; import io.github.eggy03.papertrail.bot.commons.utils.ColorUtils; import io.github.eggy03.papertrail.bot.listeners.audit.helper.role.utils.RoleUtils; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -19,7 +20,7 @@ @Slf4j public class RoleUpdateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventCreateEventHelper.java index 7b2eceda..5b409009 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventCreateEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.scheduledevent; import io.github.eggy03.papertrail.bot.listeners.audit.helper.scheduledevent.utils.ScheduledEventUtils; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -16,7 +17,7 @@ @Slf4j public class ScheduledEventCreateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventDeleteEventHelper.java index 1a46ccb7..89ad30a6 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventDeleteEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.scheduledevent; import io.github.eggy03.papertrail.bot.listeners.audit.helper.scheduledevent.utils.ScheduledEventUtils; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -16,7 +17,7 @@ @Slf4j public class ScheduledEventDeleteEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java index dd46f4da..d342bd90 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.scheduledevent; import io.github.eggy03.papertrail.bot.listeners.audit.helper.scheduledevent.utils.ScheduledEventUtils; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -16,7 +17,7 @@ @Slf4j public class ScheduledEventUpdateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundCreateEventHelper.java index 5b84ab68..2e0703c2 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundCreateEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.soundboard; import io.github.eggy03.papertrail.bot.listeners.audit.helper.soundboard.utils.SoundboardUtils; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -16,7 +17,7 @@ @Slf4j public class SoundboardSoundCreateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundDeleteEventHelper.java index 57ce5360..d7080668 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundDeleteEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.soundboard; import io.github.eggy03.papertrail.bot.listeners.audit.helper.soundboard.utils.SoundboardUtils; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -16,7 +17,7 @@ @Slf4j public class SoundboardSoundDeleteEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundUpdateEventHelper.java index a622ba59..71ce01e1 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundUpdateEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.soundboard; import io.github.eggy03.papertrail.bot.listeners.audit.helper.soundboard.utils.SoundboardUtils; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -16,7 +17,7 @@ @Slf4j public class SoundboardSoundUpdateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceCreateEventHelper.java index 92e17c19..ad9969b7 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceCreateEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.stage; import io.github.eggy03.papertrail.bot.listeners.audit.helper.stage.utils.StageUtils; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -16,7 +17,7 @@ @Slf4j public class StageInstanceCreateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceDeleteEventHelper.java index 5b6a5d7f..2193fc6f 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceDeleteEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.stage; import io.github.eggy03.papertrail.bot.listeners.audit.helper.stage.utils.StageUtils; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -16,7 +17,7 @@ @Slf4j public class StageInstanceDeleteEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceUpdateEventHelper.java index 8eb2e987..2cd57a40 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceUpdateEventHelper.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.stage; import io.github.eggy03.papertrail.bot.listeners.audit.helper.stage.utils.StageUtils; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -16,7 +17,7 @@ @Slf4j public class StageInstanceUpdateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerCreateEventHelper.java index b414f029..281b6cd0 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerCreateEventHelper.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.sticker; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -18,7 +19,7 @@ @Slf4j public class StickerCreateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerDeleteEventHelper.java index 78a1f916..db813d41 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerDeleteEventHelper.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.sticker; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -17,7 +18,7 @@ @Slf4j public class StickerDeleteEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerUpdateEventHelper.java index 7518fbc0..672b37d3 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerUpdateEventHelper.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.sticker; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -19,7 +20,7 @@ @Slf4j public class StickerUpdateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadCreateEventHelper.java index 1de42076..b193fb7d 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadCreateEventHelper.java @@ -3,6 +3,7 @@ import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; import io.github.eggy03.papertrail.bot.commons.utils.DurationUtils; import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -21,7 +22,7 @@ @Slf4j public class ThreadCreateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadDeleteEventHelper.java index 8cf8b266..ecd13ce4 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadDeleteEventHelper.java @@ -3,6 +3,7 @@ import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; import io.github.eggy03.papertrail.bot.commons.utils.DurationUtils; import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -20,7 +21,7 @@ @Slf4j public class ThreadDeleteEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadUpdateEventHelper.java index 9151b6b3..893915be 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadUpdateEventHelper.java @@ -3,6 +3,7 @@ import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; import io.github.eggy03.papertrail.bot.commons.utils.DurationUtils; import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -21,7 +22,7 @@ @Slf4j public class ThreadUpdateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookCreateEventHelper.java index e4eaf42f..9a52e887 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookCreateEventHelper.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.webhook; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -18,7 +19,7 @@ @Slf4j public class WebhookCreateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookRemoveEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookRemoveEventHelper.java index 89b844e6..bf7aa732 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookRemoveEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookRemoveEventHelper.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.webhook; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -18,7 +19,7 @@ @Slf4j public class WebhookRemoveEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookUpdateEventHelper.java index 8bbebe3b..3cb87e90 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookUpdateEventHelper.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.webhook; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -18,7 +19,7 @@ @Slf4j public class WebhookUpdateEventHelper { - public static void format(GuildAuditLogEntryCreateEvent event, String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/setup/AuditLogSetupCommandListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/setup/AuditLogSetupCommandListener.java index 3568e16e..7d5b38a8 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/setup/AuditLogSetupCommandListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/setup/AuditLogSetupCommandListener.java @@ -3,6 +3,7 @@ import io.github.eggy03.papertrail.bot.commons.utils.EnvConfig; import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; import io.github.eggy03.papertrail.sdk.entity.AuditLogRegistrationEntity; +import lombok.NonNull; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.Guild; @@ -18,10 +19,11 @@ public class AuditLogSetupCommandListener extends ListenerAdapter { + @NonNull private static final AuditLogRegistrationClient client = new AuditLogRegistrationClient(EnvConfig.get("API_URL")); @Override - public void onSlashCommandInteraction(SlashCommandInteractionEvent event) { + public void onSlashCommandInteraction(@NonNull SlashCommandInteractionEvent event) { if(!event.getName().equals("auditlog")){ return; @@ -51,7 +53,7 @@ public void onSlashCommandInteraction(SlashCommandInteractionEvent event) { } - private void setAuditLogging(SlashCommandInteractionEvent event) { + private void setAuditLogging(@NonNull SlashCommandInteractionEvent event) { // Only members in a guild with MANAGE_SERVER permissions should be able to use this command Member callerMember = event.getMember(); @@ -90,7 +92,7 @@ private void setAuditLogging(SlashCommandInteractionEvent event) { } - private void retrieveAuditLoggingChannel(SlashCommandInteractionEvent event) { + private void retrieveAuditLoggingChannel(@NonNull SlashCommandInteractionEvent event) { // Only members in a guild with MANAGE_SERVER permissions should be able to use this command Member callerMember = event.getMember(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/event/MessageLogListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/event/MessageLogListener.java index c6e4b705..ad55a888 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/event/MessageLogListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/event/MessageLogListener.java @@ -6,6 +6,7 @@ import io.github.eggy03.papertrail.sdk.client.MessageLogRegistrationClient; import io.github.eggy03.papertrail.sdk.entity.MessageLogContentEntity; import io.github.eggy03.papertrail.sdk.entity.MessageLogRegistrationEntity; +import lombok.NonNull; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.MessageEmbed; @@ -15,7 +16,6 @@ import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.events.message.MessageUpdateEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; -import org.jetbrains.annotations.NotNull; import java.awt.Color; import java.time.Instant; @@ -26,7 +26,9 @@ @Slf4j public class MessageLogListener extends ListenerAdapter { + @NonNull private static final MessageLogRegistrationClient registrationClient = new MessageLogRegistrationClient(EnvConfig.get("API_URL")); + @NonNull private static final MessageLogContentClient contentClient = new MessageLogContentClient(EnvConfig.get("API_URL")); private final Executor vThreadPool; @@ -36,7 +38,7 @@ public MessageLogListener(Executor vThreadPool) { } @Override - public void onMessageReceived(MessageReceivedEvent event) { + public void onMessageReceived(@NonNull MessageReceivedEvent event) { // if the author is a bot or system, don't log if(event.getAuthor().isBot() || event.getAuthor().isSystem()) { @@ -64,7 +66,7 @@ public void onMessageReceived(MessageReceivedEvent event) { } @Override - public void onMessageUpdate(MessageUpdateEvent event) { + public void onMessageUpdate(@NonNull MessageUpdateEvent event) { if(event.getAuthor().isBot() || event.getAuthor().isSystem()) { return; @@ -129,7 +131,7 @@ public void onMessageUpdate(MessageUpdateEvent event) { } @Override - public void onMessageDelete(@NotNull MessageDeleteEvent event) { + public void onMessageDelete(@NonNull MessageDeleteEvent event) { vThreadPool.execute(()-> { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/setup/MessageLogSetupCommandListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/setup/MessageLogSetupCommandListener.java index f78354c2..71c0019e 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/setup/MessageLogSetupCommandListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/setup/MessageLogSetupCommandListener.java @@ -3,6 +3,7 @@ import io.github.eggy03.papertrail.bot.commons.utils.EnvConfig; import io.github.eggy03.papertrail.sdk.client.MessageLogRegistrationClient; import io.github.eggy03.papertrail.sdk.entity.MessageLogRegistrationEntity; +import lombok.NonNull; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.Guild; @@ -18,10 +19,11 @@ public class MessageLogSetupCommandListener extends ListenerAdapter { + @NonNull private static final MessageLogRegistrationClient client = new MessageLogRegistrationClient(EnvConfig.get("API_URL")); @Override - public void onSlashCommandInteraction(SlashCommandInteractionEvent event) { + public void onSlashCommandInteraction(@NonNull SlashCommandInteractionEvent event) { if(!event.getName().equals("messagelog")){ return; @@ -50,7 +52,7 @@ public void onSlashCommandInteraction(SlashCommandInteractionEvent event) { } } - private void setMessageLogging(SlashCommandInteractionEvent event) { + private void setMessageLogging(@NonNull SlashCommandInteractionEvent event) { // Only members in a guild with ADMINISTRATOR permissions should be able to use this command Member callerMember = event.getMember(); @@ -89,7 +91,7 @@ private void setMessageLogging(SlashCommandInteractionEvent event) { } - private void retrieveMessageLoggingChannel(SlashCommandInteractionEvent event) { + private void retrieveMessageLoggingChannel(@NonNull SlashCommandInteractionEvent event) { // Only members in a guild with ADMINISTRATOR permissions should be able to use this command Member callerMember = event.getMember(); @@ -129,7 +131,7 @@ private void retrieveMessageLoggingChannel(SlashCommandInteractionEvent event) { }); } - private void unsetMessageLogging(SlashCommandInteractionEvent event) { + private void unsetMessageLogging(@NonNull SlashCommandInteractionEvent event) { // Only members in a guild with ADMINISTRATOR permissions should be able to use this command Member callerMember = event.getMember(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/BotSetupInstructionCommandListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/BotSetupInstructionCommandListener.java index ca4b5a9e..704cf4f2 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/BotSetupInstructionCommandListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/BotSetupInstructionCommandListener.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.misc; import io.github.eggy03.papertrail.bot.commons.constant.ProjectInfo; +import lombok.NonNull; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent; @@ -12,7 +13,7 @@ public class BotSetupInstructionCommandListener extends ListenerAdapter { @Override - public void onSlashCommandInteraction(SlashCommandInteractionEvent event) { + public void onSlashCommandInteraction(@NonNull SlashCommandInteractionEvent event) { if (event.getName().equals("setup")) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/SelfKickListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/SelfKickListener.java index 8ea73eae..38a50527 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/SelfKickListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/SelfKickListener.java @@ -3,29 +3,30 @@ import io.github.eggy03.papertrail.bot.commons.utils.EnvConfig; import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; import io.github.eggy03.papertrail.sdk.client.MessageLogRegistrationClient; +import lombok.NonNull; +import lombok.RequiredArgsConstructor; import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.events.guild.GuildLeaveEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; -import org.jetbrains.annotations.NotNull; import java.util.concurrent.Executor; /* * This class will have methods that unregister the log channels from the database after the bot has been kicked */ +@RequiredArgsConstructor public class SelfKickListener extends ListenerAdapter { + @NonNull private static final AuditLogRegistrationClient alClient = new AuditLogRegistrationClient(EnvConfig.get("API_URL")); + + @NonNull private static final MessageLogRegistrationClient mlClient = new MessageLogRegistrationClient(EnvConfig.get("API_URL")); private final Executor vThreadPool; - public SelfKickListener(Executor vThreadPool) { - this.vThreadPool = vThreadPool; - } - @Override - public void onGuildLeave(@NotNull GuildLeaveEvent event) { + public void onGuildLeave(@NonNull GuildLeaveEvent event) { Guild leftGuild = event.getGuild(); vThreadPool.execute(()->{ diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/ServerStatCommandListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/ServerStatCommandListener.java index 4a8217a9..8671536a 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/ServerStatCommandListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/ServerStatCommandListener.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.misc; import io.github.eggy03.papertrail.bot.commons.utils.DurationUtils; +import lombok.NonNull; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.OnlineStatus; import net.dv8tion.jda.api.entities.Guild; @@ -17,7 +18,7 @@ public class ServerStatCommandListener extends ListenerAdapter{ @Override - public void onSlashCommandInteraction(SlashCommandInteractionEvent event) { + public void onSlashCommandInteraction(@NonNull SlashCommandInteractionEvent event) { if(event.getName().equals("stats")) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/SlashCommandRegistrationListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/SlashCommandRegistrationListener.java index 1f9024ea..1f1e71d7 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/SlashCommandRegistrationListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/SlashCommandRegistrationListener.java @@ -1,12 +1,12 @@ package io.github.eggy03.papertrail.bot.listeners.misc; +import lombok.NonNull; import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.events.session.ReadyEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; import net.dv8tion.jda.api.interactions.commands.build.CommandData; import net.dv8tion.jda.api.interactions.commands.build.Commands; import net.dv8tion.jda.api.interactions.commands.build.SubcommandData; -import org.jetbrains.annotations.NotNull; /* * Registers all the slash commands places throughout the code @@ -14,11 +14,11 @@ public class SlashCommandRegistrationListener extends ListenerAdapter { @Override - public void onReady(@NotNull ReadyEvent event) { + public void onReady(@NonNull ReadyEvent event) { setAuditLogCommands(event.getJDA()); } - private void setAuditLogCommands(JDA jda) { + private void setAuditLogCommands(@NonNull JDA jda) { CommandData auditLog = Commands.slash("auditlog", "manage audit log options") .addSubcommands(new SubcommandData("set", "set audit log channel here")) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/main/ConnectionInitializer.java b/src/main/java/io/github/eggy03/papertrail/bot/main/ConnectionInitializer.java index 64bbdbd8..22f3bb24 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/main/ConnectionInitializer.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/main/ConnectionInitializer.java @@ -3,6 +3,7 @@ import io.github.eggy03.papertrail.bot.commons.utils.EnvConfig; import io.github.eggy03.papertrail.bot.listeners.misc.ActivityUpdateListener; import lombok.Getter; +import lombok.NonNull; import net.dv8tion.jda.api.OnlineStatus; import net.dv8tion.jda.api.requests.GatewayIntent; import net.dv8tion.jda.api.sharding.DefaultShardManagerBuilder; @@ -19,7 +20,7 @@ public class ConnectionInitializer { // returns the manager that manages multiple shards (instances) of the bot // Manages multiple shards (instances) of the bot - private final ShardManager manager; + private final @NonNull ShardManager manager; public ConnectionInitializer() { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/main/Start.java b/src/main/java/io/github/eggy03/papertrail/bot/main/Start.java index c62fe7e0..d1b0efcf 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/main/Start.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/main/Start.java @@ -14,6 +14,7 @@ import io.github.eggy03.papertrail.bot.listeners.misc.BotSetupInstructionCommandListener; import io.github.eggy03.papertrail.bot.listeners.misc.SelfKickListener; import io.github.eggy03.papertrail.bot.listeners.misc.ServerStatCommandListener; +import lombok.NonNull; import net.dv8tion.jda.api.sharding.ShardManager; import java.io.IOException; @@ -26,7 +27,7 @@ public class Start { // All I/O blocking operations run inside the vThreadPool - private static final Executor vThreadPool = Executors.newVirtualThreadPerTaskExecutor(); + private static final @NonNull Executor vThreadPool = Executors.newVirtualThreadPerTaskExecutor(); public static void main(String[] args) throws IOException { @@ -57,7 +58,7 @@ public static void main(String[] args) throws IOException { static class PingHandler implements HttpHandler { @Override - public void handle(HttpExchange exchange) throws IOException { + public void handle(@NonNull HttpExchange exchange) throws IOException { exchange.sendResponseHeaders(200, -1); } } From edfd03fd82bc6390bfd8059b4f05d582da431316 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Wed, 11 Feb 2026 12:12:59 +0530 Subject: [PATCH 051/104] refactor(project-info): apply @UtilityClass annotation Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../eggy03/papertrail/bot/commons/constant/ProjectInfo.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/constant/ProjectInfo.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/constant/ProjectInfo.java index 213e9e19..85557f8a 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/constant/ProjectInfo.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/constant/ProjectInfo.java @@ -1,12 +1,10 @@ package io.github.eggy03.papertrail.bot.commons.constant; import lombok.NonNull; +import lombok.experimental.UtilityClass; +@UtilityClass public class ProjectInfo { - - private ProjectInfo() { - throw new IllegalStateException("Utility Class"); - } @NonNull public static final String APPNAME = "PaperTrail"; From 2034404d4c9db4843d011f02d224ea6d082833ae Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Wed, 11 Feb 2026 12:13:20 +0530 Subject: [PATCH 052/104] style(ColorUtils): wrap single-line if statement in block Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../eggy03/papertrail/bot/commons/utils/ColorUtils.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/ColorUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/ColorUtils.java index 78f9c990..e588b727 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/ColorUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/ColorUtils.java @@ -28,7 +28,9 @@ public static String formatToHex(@Nullable Object colorValueInteger) { // {"primary_color" = 123456789, "secondary_color" = 123456789, "tertiary_color" = 123456789} public static String formatGradientColorSystemToHex(@Nullable Object gradientMap) { - if(gradientMap==null) return "N/A"; + if(gradientMap==null) { + return "N/A"; + } if(gradientMap instanceof Map colorMap){ @@ -40,6 +42,5 @@ public static String formatGradientColorSystemToHex(@Nullable Object gradientMap } return "N/A"; - } } From c8487f149d66589e3fdbd0d268bfa7d26c7afd4a Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Wed, 11 Feb 2026 12:21:54 +0530 Subject: [PATCH 053/104] refactor(listeners): replace explicit constructors with lombok - Apply `@RequiredArgsConstructor` to listener classes to generate constructors - Remove manual constructor definitions across multiple listener files - Add `@NonNull` to the `dotenv` field in `EnvConfig.java` Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../eggy03/papertrail/bot/commons/utils/EnvConfig.java | 2 ++ .../bot/listeners/audit/event/AuditLogEventListener.java | 6 ++---- .../audit/event/guild/GuildBoostEventListener.java | 6 ++---- .../event/guild/GuildMemberJoinAndLeaveEventListener.java | 6 ++---- .../listeners/audit/event/guild/GuildPollEventListener.java | 6 ++---- .../audit/event/guild/GuildVoiceEventListener.java | 6 ++---- .../bot/listeners/message/event/MessageLogListener.java | 6 ++---- .../bot/listeners/misc/ActivityUpdateListener.java | 6 ++---- 8 files changed, 16 insertions(+), 28 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/EnvConfig.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/EnvConfig.java index bc0d530e..3a159d14 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/EnvConfig.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/EnvConfig.java @@ -1,11 +1,13 @@ package io.github.eggy03.papertrail.bot.commons.utils; import io.github.cdimascio.dotenv.Dotenv; +import lombok.NonNull; import lombok.experimental.UtilityClass; @UtilityClass public class EnvConfig { + @NonNull private static final Dotenv dotenv = Dotenv.configure().ignoreIfMalformed().ignoreIfMissing().load(); public static String get(String key) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/AuditLogEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/AuditLogEventListener.java index 235acc6e..2eb36100 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/AuditLogEventListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/AuditLogEventListener.java @@ -62,6 +62,7 @@ import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; import io.github.eggy03.papertrail.sdk.entity.AuditLogRegistrationEntity; import lombok.NonNull; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.audit.ActionType; import net.dv8tion.jda.api.audit.AuditLogEntry; @@ -73,6 +74,7 @@ import java.util.concurrent.Executor; @Slf4j +@RequiredArgsConstructor public class AuditLogEventListener extends ListenerAdapter { private final Executor vThreadPool; @@ -80,10 +82,6 @@ public class AuditLogEventListener extends ListenerAdapter { @NonNull private static final AuditLogRegistrationClient client = new AuditLogRegistrationClient(EnvConfig.get("API_URL")); - public AuditLogEventListener(Executor vThreadPool) { - this.vThreadPool = vThreadPool; - } - @Override public void onGuildAuditLogEntryCreate(@NotNull GuildAuditLogEntryCreateEvent event) { vThreadPool.execute(() -> { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildBoostEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildBoostEventListener.java index 46e6f840..a27758b0 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildBoostEventListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildBoostEventListener.java @@ -4,6 +4,7 @@ import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; import io.github.eggy03.papertrail.sdk.entity.AuditLogRegistrationEntity; import lombok.NonNull; +import lombok.RequiredArgsConstructor; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Member; @@ -21,16 +22,13 @@ import java.util.concurrent.Executor; // Experimental +@RequiredArgsConstructor public class GuildBoostEventListener extends ListenerAdapter { @NonNull private static final AuditLogRegistrationClient client = new AuditLogRegistrationClient(EnvConfig.get("API_URL")); private final Executor vThreadPool; - public GuildBoostEventListener(Executor vThreadPool) { - this.vThreadPool = vThreadPool; - } - @Override public void onGuildUpdateBoostTier(@NonNull GuildUpdateBoostTierEvent event) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildMemberJoinAndLeaveEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildMemberJoinAndLeaveEventListener.java index f34a1a89..8115e83e 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildMemberJoinAndLeaveEventListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildMemberJoinAndLeaveEventListener.java @@ -6,6 +6,7 @@ import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; import io.github.eggy03.papertrail.sdk.entity.AuditLogRegistrationEntity; import lombok.NonNull; +import lombok.RequiredArgsConstructor; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Member; @@ -24,16 +25,13 @@ // this event is not properly logged in the audit logs, hence the usage of JDA's listener is preferred // this event is logged in the same channel where the audit log events are logged +@RequiredArgsConstructor public class GuildMemberJoinAndLeaveEventListener extends ListenerAdapter { @NonNull private static final AuditLogRegistrationClient client = new AuditLogRegistrationClient(EnvConfig.get("API_URL")); private final Executor vThreadPool; - public GuildMemberJoinAndLeaveEventListener(Executor vThreadPool) { - this.vThreadPool = vThreadPool; - } - @Override public void onGuildMemberJoin(@NotNull GuildMemberJoinEvent event) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildPollEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildPollEventListener.java index d065f2bd..460f9f94 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildPollEventListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildPollEventListener.java @@ -4,6 +4,7 @@ import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; import io.github.eggy03.papertrail.sdk.entity.AuditLogRegistrationEntity; import lombok.NonNull; +import lombok.RequiredArgsConstructor; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; @@ -17,16 +18,13 @@ import java.util.Optional; import java.util.concurrent.Executor; +@RequiredArgsConstructor public class GuildPollEventListener extends ListenerAdapter { @NonNull private static final AuditLogRegistrationClient client = new AuditLogRegistrationClient(EnvConfig.get("API_URL")); private final Executor vThreadPool; - public GuildPollEventListener(Executor vThreadPool) { - this.vThreadPool = vThreadPool; - } - @Override public void onMessageReceived(@NonNull MessageReceivedEvent event) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildVoiceEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildVoiceEventListener.java index fe16a06b..536492f0 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildVoiceEventListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildVoiceEventListener.java @@ -4,6 +4,7 @@ import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; import io.github.eggy03.papertrail.sdk.entity.AuditLogRegistrationEntity; import lombok.NonNull; +import lombok.RequiredArgsConstructor; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.MessageEmbed; @@ -20,16 +21,13 @@ // this event is not properly logged in the audit logs, hence the usage of JDA's listener is preferred // this event is logged in the same channel where the audit log events are logged +@RequiredArgsConstructor public class GuildVoiceEventListener extends ListenerAdapter { @NonNull private static final AuditLogRegistrationClient client = new AuditLogRegistrationClient(EnvConfig.get("API_URL")); private final Executor vThreadPool; - public GuildVoiceEventListener(Executor vThreadPool) { - this.vThreadPool = vThreadPool; - } - @Override public void onGuildVoiceUpdate(@NotNull GuildVoiceUpdateEvent event) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/event/MessageLogListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/event/MessageLogListener.java index ad55a888..efdbce1d 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/event/MessageLogListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/event/MessageLogListener.java @@ -7,6 +7,7 @@ import io.github.eggy03.papertrail.sdk.entity.MessageLogContentEntity; import io.github.eggy03.papertrail.sdk.entity.MessageLogRegistrationEntity; import lombok.NonNull; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.MessageEmbed; @@ -24,6 +25,7 @@ import java.util.concurrent.Executor; @Slf4j +@RequiredArgsConstructor public class MessageLogListener extends ListenerAdapter { @NonNull @@ -33,10 +35,6 @@ public class MessageLogListener extends ListenerAdapter { private final Executor vThreadPool; - public MessageLogListener(Executor vThreadPool) { - this.vThreadPool = vThreadPool; - } - @Override public void onMessageReceived(@NonNull MessageReceivedEvent event) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/ActivityUpdateListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/ActivityUpdateListener.java index 9f48a287..740c59a3 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/ActivityUpdateListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/ActivityUpdateListener.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.misc; +import lombok.RequiredArgsConstructor; import net.dv8tion.jda.api.entities.Activity; import net.dv8tion.jda.api.events.guild.GuildJoinEvent; import net.dv8tion.jda.api.events.guild.GuildLeaveEvent; @@ -11,14 +12,11 @@ /* * This class updates the number of servers the bot is in */ +@RequiredArgsConstructor public class ActivityUpdateListener extends ListenerAdapter { private final ShardManager manager; - public ActivityUpdateListener(ShardManager manager) { - this.manager = manager; - } - @Override public void onReady(@NotNull ReadyEvent event) { // update on cold start updateActivity(); From 14394154822ffcba61d195ae36c264abceea7cfa Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Wed, 11 Feb 2026 12:36:04 +0530 Subject: [PATCH 054/104] style: apply jetbrains style cleanup Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../bot/commons/constant/ProjectInfo.java | 12 +- .../bot/commons/utils/BooleanUtils.java | 18 +-- .../bot/commons/utils/ColorUtils.java | 50 +++---- .../bot/commons/utils/DurationUtils.java | 126 ++++++++-------- .../bot/commons/utils/EnvConfig.java | 22 +-- .../bot/commons/utils/NumberParseUtils.java | 6 +- .../audit/event/AuditLogEventListener.java | 12 +- .../GuildMemberJoinAndLeaveEventListener.java | 58 ++++---- .../event/guild/GuildPollEventListener.java | 14 +- .../event/guild/GuildVoiceEventListener.java | 26 ++-- ...utoModerationFlagToChannelEventHelper.java | 8 +- ...utoModerationMemberTimeoutEventHelper.java | 10 +- ...ModerationRuleBlockMessageEventHelper.java | 10 +- .../AutoModerationRuleCreateEventHelper.java | 22 +-- .../AutoModerationRuleDeleteEventHelper.java | 8 +- .../AutoModerationRuleUpdateEventHelper.java | 12 +- .../helper/automod/utils/AutoModUtils.java | 2 +- .../audit/helper/bot/BotAddEventHelper.java | 12 +- .../channel/ChannelCreateEventHelper.java | 29 ++-- .../channel/ChannelDeleteEventHelper.java | 4 +- .../ChannelOverrideCreateEventHelper.java | 24 +-- .../ChannelOverrideDeleteEventHelper.java | 24 +-- .../ChannelOverrideUpdateEventHelper.java | 30 ++-- .../channel/ChannelUpdateEventHelper.java | 57 ++++---- .../VoiceChannelStatusDeleteEventHelper.java | 10 +- .../VoiceChannelStatusUpdateEventHelper.java | 10 +- .../helper/emoji/EmojiCreateEventHelper.java | 8 +- .../helper/emoji/EmojiDeleteEventHelper.java | 10 +- .../helper/emoji/EmojiUpdateEventHelper.java | 12 +- .../generic/GenericAuditLogEventHelper.java | 10 +- .../helper/guild/GuildUpdateEventHelper.java | 40 +++-- .../IntegrationCreateEventHelper.java | 14 +- .../IntegrationDeleteEventHelper.java | 14 +- .../invite/InviteCreateEventHelper.java | 21 +-- .../invite/InviteDeleteEventHelper.java | 21 +-- .../member/MemberRoleUpdateEventHelper.java | 18 ++- .../member/MemberUpdateEventHelper.java | 36 ++--- .../member/MemberVoiceKickEventHelper.java | 8 +- .../member/MemberVoiceMoveEventHelper.java | 8 +- .../helper/member/utils/MemberUtils.java | 4 +- .../helper/message/MessagePinEventHelper.java | 8 +- .../message/MessageUnpinEventHelper.java | 8 +- .../helper/modactions/BanEventHelper.java | 12 +- .../helper/modactions/KickEventHelper.java | 10 +- .../helper/modactions/UnbanEventHelper.java | 8 +- .../OnboardingPromptCreateEventHelper.java | 14 +- .../OnboardingPromptDeleteEventHelper.java | 14 +- .../OnboardingPromptUpdateEventHelper.java | 11 +- .../OnboardingUpdateEventHelper.java | 13 +- .../onboarding/utils/OnboardingUtils.java | 12 +- .../helper/role/RoleCreateEventHelper.java | 24 +-- .../helper/role/RoleDeleteEventHelper.java | 25 ++-- .../helper/role/RoleUpdateEventHelper.java | 28 ++-- .../audit/helper/role/utils/RoleUtils.java | 6 +- .../ScheduledEventCreateEventHelper.java | 9 +- .../ScheduledEventDeleteEventHelper.java | 17 ++- .../ScheduledEventUpdateEventHelper.java | 28 ++-- .../utils/ScheduledEventUtils.java | 8 +- .../SoundboardSoundCreateEventHelper.java | 19 +-- .../SoundboardSoundDeleteEventHelper.java | 19 +-- .../SoundboardSoundUpdateEventHelper.java | 26 ++-- .../soundboard/utils/SoundboardUtils.java | 6 +- .../stage/StageInstanceCreateEventHelper.java | 15 +- .../stage/StageInstanceDeleteEventHelper.java | 15 +- .../stage/StageInstanceUpdateEventHelper.java | 18 +-- .../audit/helper/stage/utils/StageUtils.java | 4 +- .../sticker/StickerCreateEventHelper.java | 24 +-- .../sticker/StickerDeleteEventHelper.java | 22 +-- .../sticker/StickerUpdateEventHelper.java | 20 +-- .../thread/ThreadCreateEventHelper.java | 34 ++--- .../thread/ThreadDeleteEventHelper.java | 30 ++-- .../thread/ThreadUpdateEventHelper.java | 66 ++++----- .../webhook/WebhookCreateEventHelper.java | 24 +-- .../webhook/WebhookRemoveEventHelper.java | 24 +-- .../webhook/WebhookUpdateEventHelper.java | 22 +-- .../setup/AuditLogSetupCommandListener.java | 70 ++++----- .../message/event/MessageLogListener.java | 70 ++++----- .../setup/MessageLogSetupCommandListener.java | 68 ++++----- .../misc/ActivityUpdateListener.java | 34 ++--- .../BotSetupInstructionCommandListener.java | 102 ++++++------- .../bot/listeners/misc/SelfKickListener.java | 26 ++-- .../misc/ServerStatCommandListener.java | 138 +++++++++--------- .../SlashCommandRegistrationListener.java | 30 ++-- .../bot/main/ConnectionInitializer.java | 72 ++++----- .../eggy03/papertrail/bot/main/Start.java | 43 +++--- src/main/resources/tinylog.properties | 9 +- 86 files changed, 1099 insertions(+), 1046 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/constant/ProjectInfo.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/constant/ProjectInfo.java index 85557f8a..2eab638d 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/constant/ProjectInfo.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/constant/ProjectInfo.java @@ -6,12 +6,12 @@ @UtilityClass public class ProjectInfo { - @NonNull - public static final String APPNAME = "PaperTrail"; + @NonNull + public static final String APPNAME = "PaperTrail"; - @NonNull - public static final String VERSION = "v2.5.0"; + @NonNull + public static final String VERSION = "v2.5.0"; - @NonNull - public static final String PROJECT_ISSUE_LINK="https://github.com/eggy03/PaperTrailBot/issues"; + @NonNull + public static final String PROJECT_ISSUE_LINK = "https://github.com/eggy03/PaperTrailBot/issues"; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/BooleanUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/BooleanUtils.java index a01c0e07..76dad34b 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/BooleanUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/BooleanUtils.java @@ -8,33 +8,33 @@ public class BooleanUtils { @NotNull - public static String formatToEmoji (@Nullable Object value) { - if(value==null) + public static String formatToEmoji(@Nullable Object value) { + if (value == null) return "N/A"; - if(Boolean.TRUE.equals(value)) + if (Boolean.TRUE.equals(value)) return "✅"; return "❌"; } @NotNull - public static String formatToYesOrNo (@Nullable Object value) { - if(value==null) + public static String formatToYesOrNo(@Nullable Object value) { + if (value == null) return "N/A"; - if(Boolean.TRUE.equals(value)) + if (Boolean.TRUE.equals(value)) return "Yes"; return "No"; } @NotNull - public static String formatToEnabledOrDisabled (@Nullable Object value) { - if(value==null) + public static String formatToEnabledOrDisabled(@Nullable Object value) { + if (value == null) return "N/A"; - if(Boolean.TRUE.equals(value)) + if (Boolean.TRUE.equals(value)) return "Enabled"; return "Disabled"; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/ColorUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/ColorUtils.java index e588b727..bda610f3 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/ColorUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/ColorUtils.java @@ -9,38 +9,38 @@ @UtilityClass public class ColorUtils { - public static String formatToHex(@Nullable Object colorValueInteger) { - - if(colorValueInteger==null) - return "N/A"; - - try { - int color = Integer.parseInt(String.valueOf(colorValueInteger)); - return String.format("#%06X", color); - } catch (NumberFormatException e ) { - return "No Parsable Color Integer Detected"; - } catch (IllegalFormatException e) { - return "Cannot parse color to hex"; - } - } + public static String formatToHex(@Nullable Object colorValueInteger) { + + if (colorValueInteger == null) + return "N/A"; + + try { + int color = Integer.parseInt(String.valueOf(colorValueInteger)); + return String.format("#%06X", color); + } catch (NumberFormatException e) { + return "No Parsable Color Integer Detected"; + } catch (IllegalFormatException e) { + return "Cannot parse color to hex"; + } + } // gradient is returned as a hash map in the following structure // {"primary_color" = 123456789, "secondary_color" = 123456789, "tertiary_color" = 123456789} - public static String formatGradientColorSystemToHex(@Nullable Object gradientMap) { + public static String formatGradientColorSystemToHex(@Nullable Object gradientMap) { - if(gradientMap==null) { - return "N/A"; - } + if (gradientMap == null) { + return "N/A"; + } - if(gradientMap instanceof Map colorMap){ + if (gradientMap instanceof Map colorMap) { - String primaryColor = "Primary Color: "+ formatToHex(colorMap.get("primary_color")); - String secondaryColor = "Secondary Color: "+ formatToHex(colorMap.get("secondary_color")); - String tertiaryColor = "Tertiary Color: "+ formatToHex(colorMap.get("tertiary_color")); + String primaryColor = "Primary Color: " + formatToHex(colorMap.get("primary_color")); + String secondaryColor = "Secondary Color: " + formatToHex(colorMap.get("secondary_color")); + String tertiaryColor = "Tertiary Color: " + formatToHex(colorMap.get("tertiary_color")); - return primaryColor+System.lineSeparator()+secondaryColor+System.lineSeparator()+tertiaryColor; + return primaryColor + System.lineSeparator() + secondaryColor + System.lineSeparator() + tertiaryColor; } - return "N/A"; - } + return "N/A"; + } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/DurationUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/DurationUtils.java index 737ad050..fe208d5a 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/DurationUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/DurationUtils.java @@ -11,75 +11,75 @@ @UtilityClass public class DurationUtils { - public static String formatSeconds(@Nullable Object seconds) { - if (seconds == null) { - return "N/A"; - } - - try { - long secondsLong = Long.parseLong(seconds.toString()); - if (secondsLong == 0L) return "No Limits"; - Duration d = Duration.ofSeconds(secondsLong); - long durationDays = d.toDays(); - long durationHours = d.toHoursPart(); - long durationMinutes = d.toMinutesPart(); + public static String formatSeconds(@Nullable Object seconds) { + if (seconds == null) { + return "N/A"; + } + + try { + long secondsLong = Long.parseLong(seconds.toString()); + if (secondsLong == 0L) return "No Limits"; + Duration d = Duration.ofSeconds(secondsLong); + long durationDays = d.toDays(); + long durationHours = d.toHoursPart(); + long durationMinutes = d.toMinutesPart(); long durationSeconds = d.toSecondsPart(); - StringBuilder sb = new StringBuilder(); + StringBuilder sb = new StringBuilder(); - if (durationDays > 0) + if (durationDays > 0) sb.append(durationDays).append("d "); - if (durationHours > 0) + if (durationHours > 0) sb.append(durationHours).append("h "); - if (durationMinutes > 0) + if (durationMinutes > 0) sb.append(durationMinutes).append("m "); - if(durationSeconds > 0) + if (durationSeconds > 0) sb.append(durationSeconds).append("s"); - return sb.toString().trim(); - } catch (NumberFormatException e) { - return "Duration Cannot Be Parsed"; - } - - - } - - public static String formatMinutes(@Nullable Object minutes) { - if (minutes == null) { - return "N/A"; - } - try { - long minutesLong = Long.parseLong(minutes.toString()); - if (minutesLong == 0L) return "No Limits"; - Duration d = Duration.ofMinutes(minutesLong); - long days = d.toDays(); - long hours = d.toHoursPart(); - - StringBuilder sb = new StringBuilder(); - if (days > 0) sb.append(days).append("d "); - if (hours > 0) sb.append(hours).append("h "); - return sb.toString().trim(); - } catch (NumberFormatException e) { - return "Duration Cannot Be Parsed"; - } - - - } - - public static String isoToLocalTimeCounter(@Nullable Object isoTime) { - - if(isoTime==null) return "N/A"; - - String isoTimeString = String.valueOf(isoTime); - if(isoTimeString.trim().isEmpty()) return "N/A"; - - try { - OffsetDateTime odt = OffsetDateTime.parse(isoTimeString, DateTimeFormatter.ISO_OFFSET_DATE_TIME); - long unixTimestamp = odt.toEpochSecond(); - return ""; - } catch (DateTimeParseException e) { - return "Could Not Parse Date And Time"; - } - - } + return sb.toString().trim(); + } catch (NumberFormatException e) { + return "Duration Cannot Be Parsed"; + } + + + } + + public static String formatMinutes(@Nullable Object minutes) { + if (minutes == null) { + return "N/A"; + } + try { + long minutesLong = Long.parseLong(minutes.toString()); + if (minutesLong == 0L) return "No Limits"; + Duration d = Duration.ofMinutes(minutesLong); + long days = d.toDays(); + long hours = d.toHoursPart(); + + StringBuilder sb = new StringBuilder(); + if (days > 0) sb.append(days).append("d "); + if (hours > 0) sb.append(hours).append("h "); + return sb.toString().trim(); + } catch (NumberFormatException e) { + return "Duration Cannot Be Parsed"; + } + + + } + + public static String isoToLocalTimeCounter(@Nullable Object isoTime) { + + if (isoTime == null) return "N/A"; + + String isoTimeString = String.valueOf(isoTime); + if (isoTimeString.trim().isEmpty()) return "N/A"; + + try { + OffsetDateTime odt = OffsetDateTime.parse(isoTimeString, DateTimeFormatter.ISO_OFFSET_DATE_TIME); + long unixTimestamp = odt.toEpochSecond(); + return ""; + } catch (DateTimeParseException e) { + return "Could Not Parse Date And Time"; + } + + } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/EnvConfig.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/EnvConfig.java index 3a159d14..d7ce3fd7 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/EnvConfig.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/EnvConfig.java @@ -7,16 +7,16 @@ @UtilityClass public class EnvConfig { - @NonNull - private static final Dotenv dotenv = Dotenv.configure().ignoreIfMalformed().ignoreIfMissing().load(); + @NonNull + private static final Dotenv dotenv = Dotenv.configure().ignoreIfMalformed().ignoreIfMissing().load(); - public static String get(String key) { - - String value = dotenv.get(key); - if (value != null) { - return value; - } - - return System.getenv(key); - } + public static String get(String key) { + + String value = dotenv.get(key); + if (value != null) { + return value; + } + + return System.getenv(key); + } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/NumberParseUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/NumberParseUtils.java index a2df24d6..800c9470 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/NumberParseUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/NumberParseUtils.java @@ -30,13 +30,13 @@ public static Integer parseInt(@Nullable Object possibleIntegerValue) { } @Nullable - public static Double parseDouble (@Nullable Object possibleDoubleValue, int roundingDigits, RoundingMode roundingMode) { - if(possibleDoubleValue==null) return null; + public static Double parseDouble(@Nullable Object possibleDoubleValue, int roundingDigits, RoundingMode roundingMode) { + if (possibleDoubleValue == null) return null; try { double doubleValue = Double.parseDouble(String.valueOf(possibleDoubleValue)); return BigDecimal.valueOf(doubleValue).setScale(roundingDigits, roundingMode).doubleValue(); - } catch (NumberFormatException e){ + } catch (NumberFormatException e) { return null; } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/AuditLogEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/AuditLogEventListener.java index 2eb36100..5c37aa4d 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/AuditLogEventListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/AuditLogEventListener.java @@ -77,10 +77,9 @@ @RequiredArgsConstructor public class AuditLogEventListener extends ListenerAdapter { - private final Executor vThreadPool; - @NonNull private static final AuditLogRegistrationClient client = new AuditLogRegistrationClient(EnvConfig.get("API_URL")); + private final Executor vThreadPool; @Override public void onGuildAuditLogEntryCreate(@NotNull GuildAuditLogEntryCreateEvent event) { @@ -96,9 +95,12 @@ private void auditLogParser(@NonNull GuildAuditLogEntryCreateEvent event, @NonNu ActionType action = ale.getType(); switch (action) { - case AUTO_MODERATION_FLAG_TO_CHANNEL -> AutoModerationFlagToChannelEventHelper.format(event, channelIdToSendTo); - case AUTO_MODERATION_MEMBER_TIMEOUT -> AutoModerationMemberTimeoutEventHelper.format(event, channelIdToSendTo); - case AUTO_MODERATION_RULE_BLOCK_MESSAGE -> AutoModerationRuleBlockMessageEventHelper.format(event, channelIdToSendTo); + case AUTO_MODERATION_FLAG_TO_CHANNEL -> + AutoModerationFlagToChannelEventHelper.format(event, channelIdToSendTo); + case AUTO_MODERATION_MEMBER_TIMEOUT -> + AutoModerationMemberTimeoutEventHelper.format(event, channelIdToSendTo); + case AUTO_MODERATION_RULE_BLOCK_MESSAGE -> + AutoModerationRuleBlockMessageEventHelper.format(event, channelIdToSendTo); case AUTO_MODERATION_RULE_CREATE -> AutoModerationRuleCreateEventHelper.format(event, channelIdToSendTo); case AUTO_MODERATION_RULE_UPDATE -> AutoModerationRuleUpdateEventHelper.format(event, channelIdToSendTo); case AUTO_MODERATION_RULE_DELETE -> AutoModerationRuleDeleteEventHelper.format(event, channelIdToSendTo); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildMemberJoinAndLeaveEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildMemberJoinAndLeaveEventListener.java index 8115e83e..82ec91a1 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildMemberJoinAndLeaveEventListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildMemberJoinAndLeaveEventListener.java @@ -30,13 +30,13 @@ public class GuildMemberJoinAndLeaveEventListener extends ListenerAdapter { @NonNull private static final AuditLogRegistrationClient client = new AuditLogRegistrationClient(EnvConfig.get("API_URL")); - private final Executor vThreadPool; + private final Executor vThreadPool; - @Override - public void onGuildMemberJoin(@NotNull GuildMemberJoinEvent event) { + @Override + public void onGuildMemberJoin(@NotNull GuildMemberJoinEvent event) { - vThreadPool.execute(()->{ - // guild member join and leave events are mapped to audit log table + vThreadPool.execute(() -> { + // guild member join and leave events are mapped to audit log table // Call the API and see if the event came from a registered Guild Optional response = client.getRegisteredGuild(event.getGuild().getId()); response.ifPresent(success -> { @@ -48,15 +48,15 @@ public void onGuildMemberJoin(@NotNull GuildMemberJoinEvent event) { EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("🛬 Member Join Event"); - eb.setDescription("A Member has joined "+guild.getName()); + eb.setDescription("A Member has joined " + guild.getName()); eb.setColor(Color.GREEN); - eb.addField("🏷️ Member Name", "╰┈➤"+user.getName(), false); + eb.addField("🏷️ Member Name", "╰┈➤" + user.getName(), false); eb.setThumbnail(user.getEffectiveAvatarUrl()); - eb.addField("ℹ️ Member Mention", "╰┈➤"+user.getAsMention(), false); - eb.addField("🆔 Member ID", "╰┈➤"+user.getId(), false); - eb.addField("📅 Account Created", "╰┈➤"+ DurationUtils.isoToLocalTimeCounter(user.getTimeCreated()), false); - eb.addField("🤖 Bot Account", "╰┈➤"+ BooleanUtils.formatToYesOrNo(user.isBot()), false); + eb.addField("ℹ️ Member Mention", "╰┈➤" + user.getAsMention(), false); + eb.addField("🆔 Member ID", "╰┈➤" + user.getId(), false); + eb.addField("📅 Account Created", "╰┈➤" + DurationUtils.isoToLocalTimeCounter(user.getTimeCreated()), false); + eb.addField("🤖 Bot Account", "╰┈➤" + BooleanUtils.formatToYesOrNo(user.isBot()), false); eb.setFooter("Member Join Detection"); eb.setTimestamp(Instant.now()); @@ -64,17 +64,17 @@ public void onGuildMemberJoin(@NotNull GuildMemberJoinEvent event) { MessageEmbed mb = eb.build(); TextChannel sendingChannel = event.getGuild().getTextChannelById(registeredChannelId); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } }); - }); - } + }); + } - @Override - public void onGuildMemberRemove(@NotNull GuildMemberRemoveEvent event) { + @Override + public void onGuildMemberRemove(@NotNull GuildMemberRemoveEvent event) { - vThreadPool.execute(() -> { + vThreadPool.execute(() -> { // Call the API and see if the event came from a registered Guild Optional response = client.getRegisteredGuild(event.getGuild().getId()); response.ifPresent(success -> { @@ -87,23 +87,23 @@ public void onGuildMemberRemove(@NotNull GuildMemberRemoveEvent event) { String memberJoinDate = "Member Not Cached"; boolean memberJoinDateTrustable = false; - if(member!=null){ - memberJoinDate = ""; + if (member != null) { + memberJoinDate = ""; memberJoinDateTrustable = member.hasTimeJoined(); } - String memberLeaveDate = ""; + String memberLeaveDate = ""; EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("🛫 Member Leave Event"); - eb.setDescription("A Member has left "+guild.getName()); + eb.setDescription("A Member has left " + guild.getName()); eb.setColor(Color.RED); - eb.addField("🏷️ Member Name", "╰┈➤"+user.getName(), false); + eb.addField("🏷️ Member Name", "╰┈➤" + user.getName(), false); eb.setThumbnail(user.getEffectiveAvatarUrl()); - eb.addField("🆔 Member ID", "╰┈➤"+user.getId(), false); - eb.addField("⌛ Member Joined The Server On","╰┈➤"+memberJoinDate, false); - eb.addField("⌛ Member Left The Server On","╰┈➤"+memberLeaveDate, false); - eb.addField("⌛ Member Join Date Validity", memberJoinDateTrustable ? "╰┈➤Valid" : "╰┈➤Invalid" , false); + eb.addField("🆔 Member ID", "╰┈➤" + user.getId(), false); + eb.addField("⌛ Member Joined The Server On", "╰┈➤" + memberJoinDate, false); + eb.addField("⌛ Member Left The Server On", "╰┈➤" + memberLeaveDate, false); + eb.addField("⌛ Member Join Date Validity", memberJoinDateTrustable ? "╰┈➤Valid" : "╰┈➤Invalid", false); eb.setFooter("If the member was loaded via lazy loading, join date will be identical to the guild creation date."); eb.setTimestamp(Instant.now()); @@ -111,12 +111,12 @@ public void onGuildMemberRemove(@NotNull GuildMemberRemoveEvent event) { MessageEmbed mb = eb.build(); TextChannel sendingChannel = event.getGuild().getTextChannelById(registeredChannelId); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } }); - }); - } + }); + } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildPollEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildPollEventListener.java index 460f9f94..9afbc73b 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildPollEventListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildPollEventListener.java @@ -28,14 +28,14 @@ public class GuildPollEventListener extends ListenerAdapter { @Override public void onMessageReceived(@NonNull MessageReceivedEvent event) { - if(!event.isFromGuild()) + if (!event.isFromGuild()) return; MessagePoll messagePoll = event.getMessage().getPoll(); - if(messagePoll==null) + if (messagePoll == null) return; - vThreadPool.execute(()-> { + vThreadPool.execute(() -> { // guild poll events are mapped to audit log table // Call the API and see if the event came from a registered Guild @@ -50,12 +50,12 @@ public void onMessageReceived(@NonNull MessageReceivedEvent event) { .append("*Answer: * ") .append(answer.getText()) .append(" *Emoji: * ") - .append(answer.getEmoji()==null ? "N/A" : answer.getEmoji().getFormatted()) + .append(answer.getEmoji() == null ? "N/A" : answer.getEmoji().getFormatted()) .append(System.lineSeparator()) ); - String expiryTime = messagePoll.getTimeExpiresAt()!=null ? - "" : + String expiryTime = messagePoll.getTimeExpiresAt() != null ? + "" : "N/A"; @@ -76,7 +76,7 @@ public void onMessageReceived(@NonNull MessageReceivedEvent event) { MessageEmbed mb = eb.build(); TextChannel sendingChannel = event.getGuild().getTextChannelById(registeredChannelId); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildVoiceEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildVoiceEventListener.java index 536492f0..a221527f 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildVoiceEventListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildVoiceEventListener.java @@ -26,14 +26,14 @@ public class GuildVoiceEventListener extends ListenerAdapter { @NonNull private static final AuditLogRegistrationClient client = new AuditLogRegistrationClient(EnvConfig.get("API_URL")); - private final Executor vThreadPool; + private final Executor vThreadPool; - @Override - public void onGuildVoiceUpdate(@NotNull GuildVoiceUpdateEvent event) { + @Override + public void onGuildVoiceUpdate(@NotNull GuildVoiceUpdateEvent event) { - vThreadPool.execute(()->{ + vThreadPool.execute(() -> { - // guild voice events are mapped to audit log table + // guild voice events are mapped to audit log table // Call the API and see if the event came from a registered Guild Optional response = client.getRegisteredGuild(event.getGuild().getId()); response.ifPresent(success -> { @@ -47,25 +47,25 @@ public void onGuildVoiceUpdate(@NotNull GuildVoiceUpdateEvent event) { AudioChannel left = event.getOldValue(); // can be null if user joined for first time AudioChannel joined = event.getNewValue(); // can be null if user left - if(left==null && joined!=null) { + if (left == null && joined != null) { // User has joined a vc eb.setDescription("A Member has joined a voice channel"); eb.setColor(Color.GREEN); - eb.addField("✅ Member Joined", "╰┈➤"+member.getAsMention()+" joined the voice channel "+joined.getAsMention(), false); + eb.addField("✅ Member Joined", "╰┈➤" + member.getAsMention() + " joined the voice channel " + joined.getAsMention(), false); } if (left != null && joined != null) { // Moved from one channel to another eb.setDescription("A Member has switched voice channels"); eb.setColor(Color.YELLOW); - eb.addField("🔄 Member Switched Channels", "╰┈➤"+member.getAsMention()+" joined the switched from channel "+left.getAsMention()+ " to "+joined.getAsMention(), false); + eb.addField("🔄 Member Switched Channels", "╰┈➤" + member.getAsMention() + " joined the switched from channel " + left.getAsMention() + " to " + joined.getAsMention(), false); } - if (left!=null && joined==null) { + if (left != null && joined == null) { // User disconnected voluntarily (or was disconnected by a moderator) eb.setDescription("A Member has left a voice channel"); eb.setColor(Color.RED); - eb.addField("❌ Member Left A Voice Channel", "╰┈➤"+member.getAsMention()+" left the voice channel "+left.getAsMention(), false); + eb.addField("❌ Member Left A Voice Channel", "╰┈➤" + member.getAsMention() + " left the voice channel " + left.getAsMention(), false); } eb.setFooter("Voice Activity Detection"); @@ -74,11 +74,11 @@ public void onGuildVoiceUpdate(@NotNull GuildVoiceUpdateEvent event) { MessageEmbed mb = eb.build(); TextChannel sendingChannel = event.getGuild().getTextChannelById(registeredChannelId); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } }); - }); - } + }); + } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationFlagToChannelEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationFlagToChannelEventHelper.java index 4fee1d96..bcb89a56 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationFlagToChannelEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationFlagToChannelEventHelper.java @@ -26,7 +26,7 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull User targetUser = ale.getJDA().getUserById(ale.getTargetId()); String mentionableTargetUser = (targetUser != null ? targetUser.getAsMention() : ale.getTargetId()); - eb.setDescription("Auto-mod has flagged a message sent by: "+mentionableTargetUser); + eb.setDescription("Auto-mod has flagged a message sent by: " + mentionableTargetUser); eb.setColor(Color.YELLOW); eb.addField("Action Type", String.valueOf(ale.getType()), true); @@ -34,17 +34,17 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.addField("Info", "For more info, check the channel where auto-mod is set to send events", false); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationMemberTimeoutEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationMemberTimeoutEventHelper.java index 64a11cb8..aafa4732 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationMemberTimeoutEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationMemberTimeoutEventHelper.java @@ -16,7 +16,7 @@ @Slf4j public class AutoModerationMemberTimeoutEventHelper { - public static void format (@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); @@ -26,7 +26,7 @@ public static void format (@NonNull GuildAuditLogEntryCreateEvent event, @NonNul User targetUser = ale.getJDA().getUserById(ale.getTargetId()); String mentionableTargetUser = (targetUser != null ? targetUser.getAsMention() : ale.getTargetId()); - eb.setDescription("Auto-mod has timed out "+mentionableTargetUser+" for a defined rule violation"); + eb.setDescription("Auto-mod has timed out " + mentionableTargetUser + " for a defined rule violation"); eb.setColor(Color.MAGENTA); eb.addField("Action Type", String.valueOf(ale.getType()), true); @@ -34,17 +34,17 @@ public static void format (@NonNull GuildAuditLogEntryCreateEvent event, @NonNul eb.addField("Info", "For more info, check the channel where auto-mod is set to send events", false); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleBlockMessageEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleBlockMessageEventHelper.java index 4a3d5db9..d18cd947 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleBlockMessageEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleBlockMessageEventHelper.java @@ -16,7 +16,7 @@ @Slf4j public class AutoModerationRuleBlockMessageEventHelper { - public static void format (@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); @@ -26,7 +26,7 @@ public static void format (@NonNull GuildAuditLogEntryCreateEvent event, @NonNul User targetUser = ale.getJDA().getUserById(ale.getTargetId()); String mentionableTargetUser = (targetUser != null ? targetUser.getAsMention() : ale.getTargetId()); - eb.setDescription("Auto-mod has blocked a message sent by: "+mentionableTargetUser); + eb.setDescription("Auto-mod has blocked a message sent by: " + mentionableTargetUser); eb.setColor(Color.ORANGE); eb.addField("Action Type", String.valueOf(ale.getType()), true); @@ -34,17 +34,17 @@ public static void format (@NonNull GuildAuditLogEntryCreateEvent event, @NonNul eb.addField("Info", "For more info, check the channel where auto-mod is set to send events", false); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleCreateEventHelper.java index f4857cd2..ae716087 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleCreateEventHelper.java @@ -18,7 +18,7 @@ @Slf4j public class AutoModerationRuleCreateEventHelper { - public static void format (@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); @@ -28,25 +28,27 @@ public static void format (@NonNull GuildAuditLogEntryCreateEvent event, @NonNul User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - eb.setDescription("ℹ️ The following AutoMod rule was created by: "+mentionableExecutor); + eb.setDescription("ℹ️ The following AutoMod rule was created by: " + mentionableExecutor); eb.setColor(Color.GREEN); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - ale.getChanges().forEach((changeKey, changeValue)-> { + ale.getChanges().forEach((changeKey, changeValue) -> { Object newValue = changeValue.getNewValue(); switch (changeKey) { - case "enabled" -> eb.addField("Enabled", "╰┈➤"+ BooleanUtils.formatToYesOrNo(newValue), false); + case "enabled" -> eb.addField("Enabled", "╰┈➤" + BooleanUtils.formatToYesOrNo(newValue), false); - case "trigger_type" -> eb.addField("Trigger Type", "╰┈➤"+ AutoModUtils.autoModTriggerTypeResolver(newValue), false); + case "trigger_type" -> + eb.addField("Trigger Type", "╰┈➤" + AutoModUtils.autoModTriggerTypeResolver(newValue), false); - case "event_type" -> eb.addField("Event Type", "╰┈➤"+ AutoModUtils.autoModEventTypeResolver(newValue), false); + case "event_type" -> + eb.addField("Event Type", "╰┈➤" + AutoModUtils.autoModEventTypeResolver(newValue), false); - case "name" -> eb.addField("AutoMod Rule Name ", "╰┈➤"+newValue, false); + case "name" -> eb.addField("AutoMod Rule Name ", "╰┈➤" + newValue, false); default -> { // ignore everything else @@ -55,17 +57,17 @@ public static void format (@NonNull GuildAuditLogEntryCreateEvent event, @NonNul }); eb.addField("Additional Info", "For more info on trigger metadata, actions, exempt roles and channels, visit Safety Setup in your server", false); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleDeleteEventHelper.java index 04d933f5..30a4f11b 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleDeleteEventHelper.java @@ -26,7 +26,7 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - eb.setDescription("ℹ️ The following AutoMod rule was deleted by: "+mentionableExecutor); + eb.setDescription("ℹ️ The following AutoMod rule was deleted by: " + mentionableExecutor); eb.setColor(Color.RED); eb.addField("Action Type", String.valueOf(ale.getType()), true); @@ -41,17 +41,17 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull } }); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleUpdateEventHelper.java index 489ac564..e5d876cb 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleUpdateEventHelper.java @@ -17,7 +17,7 @@ @Slf4j public class AutoModerationRuleUpdateEventHelper { - public static void format (@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { AuditLogEntry ale = event.getEntry(); @@ -27,7 +27,7 @@ public static void format (@NonNull GuildAuditLogEntryCreateEvent event, @NonNul User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - eb.setDescription("ℹ️ The following AutoMod rule was updated by: "+mentionableExecutor); + eb.setDescription("ℹ️ The following AutoMod rule was updated by: " + mentionableExecutor); eb.setColor(Color.YELLOW); eb.addField("Action Type", String.valueOf(ale.getType()), true); @@ -35,21 +35,21 @@ public static void format (@NonNull GuildAuditLogEntryCreateEvent event, @NonNul // add name of the rule which got updated AutoModRule rule = ale.getGuild().retrieveAutoModRuleById(ale.getTargetId()).complete(); - eb.addField("AutoMod Rule Name ", "╰┈➤"+rule.getName(), false); + eb.addField("AutoMod Rule Name ", "╰┈➤" + rule.getName(), false); eb.addField("Additional Info", "For more info on trigger metadata, actions, exempt roles and channel changes, visit Safety Setup in your server", false); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutoModUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutoModUtils.java index 2a8272ea..295b9daa 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutoModUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutoModUtils.java @@ -32,6 +32,6 @@ public static String autoModTriggerTypeResolver(@Nullable Object autoModTriggerT return NOT_AVAILABLE; - return AutoModTriggerType.fromKey(triggerTypeInt).name(); + return AutoModTriggerType.fromKey(triggerTypeInt).name(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/bot/BotAddEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/bot/BotAddEventHelper.java index 51dfb997..594c2fab 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/bot/BotAddEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/bot/BotAddEventHelper.java @@ -24,29 +24,29 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); User target = ale.getJDA().getUserById(ale.getTargetIdLong()); - String mentionableTarget = (target !=null ? target.getAsMention() : ale.getTargetId()); + String mentionableTarget = (target != null ? target.getAsMention() : ale.getTargetId()); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Bot Add Event"); - eb.setDescription("ℹ️ A bot was added by: "+mentionableExecutor); + eb.setDescription("ℹ️ A bot was added by: " + mentionableExecutor); eb.setColor(Color.CYAN); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - eb.addField("Bot Added: ", "╰┈➤"+mentionableTarget, false); + eb.addField("Bot Added: ", "╰┈➤" + mentionableTarget, false); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelCreateEventHelper.java index af309611..da3d03c0 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelCreateEventHelper.java @@ -28,37 +28,40 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); GuildChannel targetChannel = ale.getGuild().getGuildChannelById(ale.getTargetId()); - String mentionableTargetChannel = (targetChannel !=null ? targetChannel.getAsMention() : ale.getTargetId()); + String mentionableTargetChannel = (targetChannel != null ? targetChannel.getAsMention() : ale.getTargetId()); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Channel Create Event"); - eb.setDescription("ℹ️ The following channel was created by: "+mentionableExecutor); + eb.setDescription("ℹ️ The following channel was created by: " + mentionableExecutor); eb.setColor(Color.GREEN); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - ale.getChanges().forEach((changeKey, changeValue)-> { + ale.getChanges().forEach((changeKey, changeValue) -> { Object oldValue = changeValue.getOldValue(); Object newValue = changeValue.getNewValue(); switch (changeKey) { - case "user_limit" -> eb.addField("User Limit", "╰┈➤"+ ChannelUtils.resolveVoiceChannelUserLimit(newValue), false); + case "user_limit" -> + eb.addField("User Limit", "╰┈➤" + ChannelUtils.resolveVoiceChannelUserLimit(newValue), false); - case "rate_limit_per_user" -> eb.addField("Slow Mode", "╰┈➤"+ DurationUtils.formatSeconds(newValue), false); + case "rate_limit_per_user" -> + eb.addField("Slow Mode", "╰┈➤" + DurationUtils.formatSeconds(newValue), false); - case "type" -> eb.addField("Channel Type", "╰┈➤"+ ChannelUtils.resolveChannelType(newValue), false); + case "type" -> eb.addField("Channel Type", "╰┈➤" + ChannelUtils.resolveChannelType(newValue), false); - case "nsfw" -> eb.addField("Is NSFW", "╰┈➤"+ BooleanUtils.formatToYesOrNo(newValue), false); + case "nsfw" -> eb.addField("Is NSFW", "╰┈➤" + BooleanUtils.formatToYesOrNo(newValue), false); case "name" -> { - eb.addField("Channel Name", "╰┈➤"+newValue, false); - eb.addField("Channel Mention", "╰┈➤"+mentionableTargetChannel, true); + eb.addField("Channel Name", "╰┈➤" + newValue, false); + eb.addField("Channel Mention", "╰┈➤" + mentionableTargetChannel, true); } - case "bitrate" -> eb.addField("Voice Channel Bitrate", "╰┈➤"+ ChannelUtils.resolveVoiceChannelBitrate(newValue), false); + case "bitrate" -> + eb.addField("Voice Channel Bitrate", "╰┈➤" + ChannelUtils.resolveVoiceChannelBitrate(newValue), false); case "permission_overwrites", "flags", "template", "available_tags" -> { // the first two are for all types of channels and may stay empty during creation events @@ -73,17 +76,17 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull }); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelDeleteEventHelper.java index a6b4df2a..b8c5982a 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelDeleteEventHelper.java @@ -59,13 +59,13 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideCreateEventHelper.java index 1f28dcf4..b3aded2d 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideCreateEventHelper.java @@ -26,11 +26,11 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); GuildChannel targetChannel = event.getGuild().getGuildChannelById(ale.getTargetId()); - String mentionableTargetChannel = (targetChannel !=null ? targetChannel.getAsMention() : ale.getTargetId()); + String mentionableTargetChannel = (targetChannel != null ? targetChannel.getAsMention() : ale.getTargetId()); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Channel Override Create"); - eb.setDescription("ℹ️ The following channel overrides were created by: "+mentionableExecutor); + eb.setDescription("ℹ️ The following channel overrides were created by: " + mentionableExecutor); eb.setColor(Color.GREEN); eb.addField("Action Type", String.valueOf(ale.getType()), true); @@ -42,14 +42,18 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull switch (changeKey) { - case "type" -> eb.addField("Override Type", "╰┈➤"+ ChannelUtils.resolveChannelOverrideTargetType(newValue), false); + case "type" -> + eb.addField("Override Type", "╰┈➤" + ChannelUtils.resolveChannelOverrideTargetType(newValue), false); - case "deny" -> eb.addField("Denied Permissions", ChannelUtils.resolveChannelOverridePermissions(newValue, "❌"), false); - case "allow" -> eb.addField("Allowed Permissions", ChannelUtils.resolveChannelOverridePermissions(newValue, "✅"), false); + case "deny" -> + eb.addField("Denied Permissions", ChannelUtils.resolveChannelOverridePermissions(newValue, "❌"), false); + case "allow" -> + eb.addField("Allowed Permissions", ChannelUtils.resolveChannelOverridePermissions(newValue, "✅"), false); // id exposes the member/role id which for which the channel permissions are overridden // only one member/role permission id is fetched per loop - case "id" -> eb.addField("Target", "╰┈➤"+ChannelUtils.autoResolveMemberOrRole(newValue, event), false); + case "id" -> + eb.addField("Target", "╰┈➤" + ChannelUtils.autoResolveMemberOrRole(newValue, event), false); default -> { eb.addField("Unimplemented Change Key", changeKey, false); @@ -60,19 +64,19 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull // add the target channel whose permissions were overridden // exposed via ALE's TargetID - eb.addField("Target Channel", "╰┈➤"+mentionableTargetChannel, false); + eb.addField("Target Channel", "╰┈➤" + mentionableTargetChannel, false); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideDeleteEventHelper.java index 72bfc67c..21d2168b 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideDeleteEventHelper.java @@ -26,12 +26,12 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); GuildChannel targetChannel = event.getGuild().getGuildChannelById(ale.getTargetId()); - String mentionableTargetChannel = (targetChannel !=null ? targetChannel.getAsMention() : ale.getTargetId()); + String mentionableTargetChannel = (targetChannel != null ? targetChannel.getAsMention() : ale.getTargetId()); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Channel Override Delete"); - eb.setDescription("ℹ️ The following channel overrides were deleted by: "+mentionableExecutor); + eb.setDescription("ℹ️ The following channel overrides were deleted by: " + mentionableExecutor); eb.setColor(Color.RED); eb.addField("Action Type", String.valueOf(ale.getType()), true); @@ -43,14 +43,18 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull switch (changeKey) { - case "type" -> eb.addField("Override Type", "╰┈➤"+ ChannelUtils.resolveChannelOverrideTargetType(oldValue), false); + case "type" -> + eb.addField("Override Type", "╰┈➤" + ChannelUtils.resolveChannelOverrideTargetType(oldValue), false); - case "deny" -> eb.addField("Denied Permissions", ChannelUtils.resolveChannelOverridePermissions(oldValue, "❌"), false); - case "allow" -> eb.addField("Allowed Permissions", ChannelUtils.resolveChannelOverridePermissions(oldValue, "✅"), false); + case "deny" -> + eb.addField("Denied Permissions", ChannelUtils.resolveChannelOverridePermissions(oldValue, "❌"), false); + case "allow" -> + eb.addField("Allowed Permissions", ChannelUtils.resolveChannelOverridePermissions(oldValue, "✅"), false); // id exposes the member/role id which for which the channel permissions are overridden // only one member/role permission id is fetched per loop - case "id" -> eb.addField("Target", "╰┈➤"+ChannelUtils.autoResolveMemberOrRole(oldValue, event), false); + case "id" -> + eb.addField("Target", "╰┈➤" + ChannelUtils.autoResolveMemberOrRole(oldValue, event), false); default -> { eb.addField("Unimplemented Change Key", changeKey, false); @@ -60,19 +64,19 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull }); // add the target channel whose permissions were overridden // can be retrieved via ALE's TargetID - eb.addField("Target Channel", "╰┈➤"+mentionableTargetChannel, false); + eb.addField("Target Channel", "╰┈➤" + mentionableTargetChannel, false); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java index 5cfa672f..dce6c0e1 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java @@ -28,18 +28,18 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); GuildChannel targetChannel = event.getGuild().getGuildChannelById(ale.getTargetId()); - String mentionableTargetChannel = (targetChannel !=null ? targetChannel.getAsMention() : ale.getTargetId()); + String mentionableTargetChannel = (targetChannel != null ? targetChannel.getAsMention() : ale.getTargetId()); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Channel Override Update"); - eb.setDescription("ℹ️ The following channel overrides were updated by: "+mentionableExecutor); + eb.setDescription("ℹ️ The following channel overrides were updated by: " + mentionableExecutor); eb.setColor(Color.YELLOW); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - eb.addField("Override Type", "╰┈➤"+ ChannelUtils.resolveChannelOverrideTargetType(ale.getOptionByName("type")), false); - eb.addField("Permissions Overridden For", "╰┈➤"+getTargetRoleOrMember(ale, event), false); + eb.addField("Override Type", "╰┈➤" + ChannelUtils.resolveChannelOverrideTargetType(ale.getOptionByName("type")), false); + eb.addField("Permissions Overridden For", "╰┈➤" + getTargetRoleOrMember(ale, event), false); ale.getChanges().forEach((changeKey, changeValue) -> { @@ -48,8 +48,10 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull switch (changeKey) { - case "deny" -> eb.addField("Denied Permissions", ChannelUtils.resolveChannelOverridePermissions(newValue, "❌"), false); - case "allow" -> eb.addField("Allowed Permissions", ChannelUtils.resolveChannelOverridePermissions(newValue, "✅"), false); + case "deny" -> + eb.addField("Denied Permissions", ChannelUtils.resolveChannelOverridePermissions(newValue, "❌"), false); + case "allow" -> + eb.addField("Allowed Permissions", ChannelUtils.resolveChannelOverridePermissions(newValue, "✅"), false); default -> { eb.addField("Unimplemented Change Key", changeKey, false); @@ -61,19 +63,19 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull // add the target channel whose permissions were overridden // can be retrieved via ALE's TargetID - eb.addField("Target Channel", "╰┈➤"+mentionableTargetChannel, false); + eb.addField("Target Channel", "╰┈➤" + mentionableTargetChannel, false); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } @@ -86,7 +88,7 @@ private static String getTargetRoleOrMember(AuditLogEntry ale, GuildAuditLogEntr String overriddenId = ale.getOptionByName("id"); // id of the member or role String overriddenType = ale.getOptionByName("type"); // type that determines if the ID is that of a role or a member - if(overriddenId==null) + if (overriddenId == null) return "Member or Role ID is null"; return switch (overriddenType) { @@ -94,17 +96,17 @@ private static String getTargetRoleOrMember(AuditLogEntry ale, GuildAuditLogEntr case "0" -> { // It’s a role Role role = event.getGuild().getRoleById(overriddenId); - yield role!=null ? role.getAsMention() : overriddenId; + yield role != null ? role.getAsMention() : overriddenId; } case "1" -> { // It's a member Member member = event.getGuild().getMemberById(overriddenId); - yield member!=null ? member.getAsMention() : overriddenId; + yield member != null ? member.getAsMention() : overriddenId; } case null -> "Override Type is null"; - default -> "Unimplemented Override Type: "+overriddenType; + default -> "Unimplemented Override Type: " + overriddenType; }; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelUpdateEventHelper.java index 623df6b3..293c47ed 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelUpdateEventHelper.java @@ -28,19 +28,19 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); GuildChannel targetChannel = event.getGuild().getGuildChannelById(ale.getTargetId()); - String mentionableTargetChannel = (targetChannel !=null ? targetChannel.getAsMention() : ale.getTargetId()); + String mentionableTargetChannel = (targetChannel != null ? targetChannel.getAsMention() : ale.getTargetId()); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Channel Update Event"); - eb.setDescription("ℹ️ The following channel was updated by: "+mentionableExecutor); + eb.setDescription("ℹ️ The following channel was updated by: " + mentionableExecutor); eb.setColor(Color.YELLOW); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); eb.addBlankField(true); - ale.getChanges().forEach((changeKey, changeValue)-> { + ale.getChanges().forEach((changeKey, changeValue) -> { Object oldValue = changeValue.getOldValue(); Object newValue = changeValue.getNewValue(); @@ -48,67 +48,68 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull switch (changeKey) { case "user_limit" -> { - eb.addField("Old User Limit", "╰┈➤"+ChannelUtils.resolveVoiceChannelUserLimit(oldValue), true); - eb.addField("New User Limit", "╰┈➤"+ChannelUtils.resolveVoiceChannelUserLimit(newValue), true); + eb.addField("Old User Limit", "╰┈➤" + ChannelUtils.resolveVoiceChannelUserLimit(oldValue), true); + eb.addField("New User Limit", "╰┈➤" + ChannelUtils.resolveVoiceChannelUserLimit(newValue), true); eb.addBlankField(true); } case "rate_limit_per_user" -> { - eb.addField("Old Slow mode Value", "╰┈➤"+ DurationUtils.formatSeconds(oldValue), true); - eb.addField("New Slow mode Value", "╰┈➤"+ DurationUtils.formatSeconds(newValue), true); + eb.addField("Old Slow mode Value", "╰┈➤" + DurationUtils.formatSeconds(oldValue), true); + eb.addField("New Slow mode Value", "╰┈➤" + DurationUtils.formatSeconds(newValue), true); eb.addBlankField(true); } case "default_thread_rate_limit_per_user" -> { - eb.addField("Old Thread Slow mode Value", "╰┈➤"+ DurationUtils.formatSeconds(oldValue), true); - eb.addField("New Thread Slow mode Value", "╰┈➤"+ DurationUtils.formatSeconds(newValue), true); + eb.addField("Old Thread Slow mode Value", "╰┈➤" + DurationUtils.formatSeconds(oldValue), true); + eb.addField("New Thread Slow mode Value", "╰┈➤" + DurationUtils.formatSeconds(newValue), true); eb.addBlankField(true); } case "nsfw" -> { - eb.addField("Was NSFW", "╰┈➤"+ BooleanUtils.formatToYesOrNo(oldValue), true); - eb.addField("Is NSFW", "╰┈➤"+ BooleanUtils.formatToYesOrNo(newValue), true); + eb.addField("Was NSFW", "╰┈➤" + BooleanUtils.formatToYesOrNo(oldValue), true); + eb.addField("Is NSFW", "╰┈➤" + BooleanUtils.formatToYesOrNo(newValue), true); eb.addBlankField(true); } case "video_quality_mode" -> { - eb.addField("Old Video Quality Mode", "╰┈➤"+ChannelUtils.resolveVoiceChannelVideoQuality(oldValue), true); - eb.addField("New Video Quality Mode", "╰┈➤"+ChannelUtils.resolveVoiceChannelVideoQuality(newValue), true); + eb.addField("Old Video Quality Mode", "╰┈➤" + ChannelUtils.resolveVoiceChannelVideoQuality(oldValue), true); + eb.addField("New Video Quality Mode", "╰┈➤" + ChannelUtils.resolveVoiceChannelVideoQuality(newValue), true); eb.addBlankField(true); } case "name" -> { - eb.addField("Old Channel Name", "╰┈➤"+oldValue, true); - eb.addField("New Channel Name", "╰┈➤"+newValue, true); + eb.addField("Old Channel Name", "╰┈➤" + oldValue, true); + eb.addField("New Channel Name", "╰┈➤" + newValue, true); eb.addBlankField(true); } case "bitrate" -> { - eb.addField("Old Voice Channel Bitrate", "╰┈➤"+ChannelUtils.resolveVoiceChannelBitrate(oldValue), true); - eb.addField("New Voice Channel Bitrate", "╰┈➤"+ChannelUtils.resolveVoiceChannelBitrate(newValue), true); + eb.addField("Old Voice Channel Bitrate", "╰┈➤" + ChannelUtils.resolveVoiceChannelBitrate(oldValue), true); + eb.addField("New Voice Channel Bitrate", "╰┈➤" + ChannelUtils.resolveVoiceChannelBitrate(newValue), true); eb.addBlankField(true); } case "rtc_region" -> { - eb.addField("Old Region", "╰┈➤"+oldValue, true); - eb.addField("New Region", "╰┈➤"+newValue, true); + eb.addField("Old Region", "╰┈➤" + oldValue, true); + eb.addField("New Region", "╰┈➤" + newValue, true); eb.addBlankField(true); } case "topic" -> { - eb.addField("Old Topic", "╰┈➤"+oldValue, true); - eb.addField("New topic", "╰┈➤"+newValue, true); + eb.addField("Old Topic", "╰┈➤" + oldValue, true); + eb.addField("New topic", "╰┈➤" + newValue, true); eb.addBlankField(true); } case "default_auto_archive_duration" -> { - eb.addField("Old Hide After Inactivity Timer", "╰┈➤"+ DurationUtils.formatMinutes(oldValue), true); - eb.addField("New Hide After Inactivity Timer", "╰┈➤"+ DurationUtils.formatMinutes(newValue), true); + eb.addField("Old Hide After Inactivity Timer", "╰┈➤" + DurationUtils.formatMinutes(oldValue), true); + eb.addField("New Hide After Inactivity Timer", "╰┈➤" + DurationUtils.formatMinutes(newValue), true); eb.addBlankField(true); } case "available_tags" -> eb.addField("Tags", "╰┈➤The channel's tags were updated", false); - case "default_reaction_emoji" -> eb.addField("Reaction Emoji", "╰┈➤Default reaction emoji was updated", false); + case "default_reaction_emoji" -> + eb.addField("Reaction Emoji", "╰┈➤Default reaction emoji was updated", false); default -> { eb.addField("Unimplemented Change Key", changeKey, false); @@ -119,19 +120,19 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull }); // mention the channel that got updated, id can be exposed via ALE's TargetID - eb.addField("Target Channel", "╰┈➤"+mentionableTargetChannel, false); + eb.addField("Target Channel", "╰┈➤" + mentionableTargetChannel, false); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusDeleteEventHelper.java index bf93d188..8c7726fb 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusDeleteEventHelper.java @@ -36,20 +36,20 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - eb.addField("Status Deleted By", "╰┈➤"+mentionableExecutor, false); - eb.addField("Target Voice Channel", "╰┈➤"+mentionableTargetChannel, false); + eb.addField("Status Deleted By", "╰┈➤" + mentionableExecutor, false); + eb.addField("Target Voice Channel", "╰┈➤" + mentionableTargetChannel, false); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusUpdateEventHelper.java index 6c7dfc6a..812b7564 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusUpdateEventHelper.java @@ -36,20 +36,20 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - eb.addField("Status Updated By", "╰┈➤"+mentionableExecutor, false); - eb.addField("Target Voice Channel", "╰┈➤"+mentionableTargetChannel, false); + eb.addField("Status Updated By", "╰┈➤" + mentionableExecutor, false); + eb.addField("Target Voice Channel", "╰┈➤" + mentionableTargetChannel, false); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiCreateEventHelper.java index 05fd7aa2..ebbc6bc0 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiCreateEventHelper.java @@ -25,7 +25,7 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Emoji Create Event"); - eb.setDescription("ℹ️ The following emoji was created by: "+mentionableExecutor); + eb.setDescription("ℹ️ The following emoji was created by: " + mentionableExecutor); eb.setColor(Color.GREEN); eb.addField("Action Type", String.valueOf(ale.getType()), true); @@ -45,17 +45,17 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull } }); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiDeleteEventHelper.java index ea43b86b..2dcf766f 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiDeleteEventHelper.java @@ -25,7 +25,7 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Emoji Delete Event"); - eb.setDescription("ℹ️ The following emoji was deleted by: "+mentionableExecutor); + eb.setDescription("ℹ️ The following emoji was deleted by: " + mentionableExecutor); eb.setColor(Color.RED); eb.addField("Action Type", String.valueOf(ale.getType()), true); @@ -43,19 +43,19 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); } }); - eb.addField("Deleted Emoji ID", "╰┈➤"+ale.getTargetId(), false); + eb.addField("Deleted Emoji ID", "╰┈➤" + ale.getTargetId(), false); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiUpdateEventHelper.java index b1d9f158..595589e4 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiUpdateEventHelper.java @@ -26,7 +26,7 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Emoji Update Event"); - eb.setDescription("ℹ️ The following emoji was updated by: "+mentionableExecutor); + eb.setDescription("ℹ️ The following emoji was updated by: " + mentionableExecutor); eb.setColor(Color.YELLOW); eb.addField("Action Type", String.valueOf(ale.getType()), true); @@ -38,25 +38,25 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull Object newValue = changeValue.getNewValue(); if (changeKey.equals("name")) { - eb.addField("Emoji Name Updated", "╰┈➤"+"From "+oldValue+" to "+newValue, false); - eb.addField("Target Emoji", "╰┈➤"+"<:"+newValue+":"+ale.getTargetId()+">", false); + eb.addField("Emoji Name Updated", "╰┈➤" + "From " + oldValue + " to " + newValue, false); + eb.addField("Target Emoji", "╰┈➤" + "<:" + newValue + ":" + ale.getTargetId() + ">", false); } else { eb.addField("Unimplemented Change Key", changeKey, false); log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); } }); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/generic/GenericAuditLogEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/generic/GenericAuditLogEventHelper.java index d4ff6355..15b1c40f 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/generic/GenericAuditLogEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/generic/GenericAuditLogEventHelper.java @@ -26,25 +26,25 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Generic Event"); - eb.setDescription("An un-implemented action event has been triggered by: "+mentionableExecutor); + eb.setDescription("An un-implemented action event has been triggered by: " + mentionableExecutor); eb.setColor(Color.LIGHT_GRAY); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); ale.getChanges().forEach((changeKey, changeValue) -> { - eb.addField(changeKey, "OLD_VALUE: "+changeValue.getOldValue(), false); - eb.addField(changeKey, "NEW_VALUE: "+changeValue.getNewValue(), false); + eb.addField(changeKey, "OLD_VALUE: " + changeValue.getOldValue(), false); + eb.addField(changeKey, "NEW_VALUE: " + changeValue.getNewValue(), false); }); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/GuildUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/GuildUpdateEventHelper.java index 2da83d99..844d5d7c 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/GuildUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/GuildUpdateEventHelper.java @@ -54,23 +54,31 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull case "preferred_locale" -> eb.addField("Preferred Locale Set To", String.valueOf(newValue), false); - case "afk_channel_id" -> eb.addField("AFK Channel Changed To", GuildUtils.resolveMentionableChannel(newValue, event), false); + case "afk_channel_id" -> + eb.addField("AFK Channel Changed To", GuildUtils.resolveMentionableChannel(newValue, event), false); - case "default_message_notifications" -> eb.addField("Default Message Notifications Update", GuildUtils.resolveGuildDefaultMessageNotificationLevel(newValue), false); + case "default_message_notifications" -> + eb.addField("Default Message Notifications Update", GuildUtils.resolveGuildDefaultMessageNotificationLevel(newValue), false); - case "afk_timeout" -> eb.addField("AFK Channel Timeout Change", DurationUtils.formatSeconds(newValue), false); + case "afk_timeout" -> + eb.addField("AFK Channel Timeout Change", DurationUtils.formatSeconds(newValue), false); - case "system_channel_id" -> eb.addField("Community Updates Channel Changed To", GuildUtils.resolveMentionableChannel(newValue, event), false); + case "system_channel_id" -> + eb.addField("Community Updates Channel Changed To", GuildUtils.resolveMentionableChannel(newValue, event), false); case "widget_enabled" -> eb.addField("Widget Enabled", BooleanUtils.formatToYesOrNo(newValue), false); - case "widget_channel_id" -> eb.addField("Widget Channel Changed To", GuildUtils.resolveMentionableChannel(newValue, event), false); + case "widget_channel_id" -> + eb.addField("Widget Channel Changed To", GuildUtils.resolveMentionableChannel(newValue, event), false); - case "premium_progress_bar_enabled" -> eb.addField("Server Boost Progress Bar Enabled", BooleanUtils.formatToYesOrNo(newValue), false); + case "premium_progress_bar_enabled" -> + eb.addField("Server Boost Progress Bar Enabled", BooleanUtils.formatToYesOrNo(newValue), false); - case "mfa_level" -> eb.addField("MFA Requirement Set To", GuildUtils.resolveGuildModActionMFALevel(newValue), false); + case "mfa_level" -> + eb.addField("MFA Requirement Set To", GuildUtils.resolveGuildModActionMFALevel(newValue), false); - case "verification_level" -> eb.addField("Verification Level Set To", GuildUtils.resolveGuildVerificationLevel(newValue), false); + case "verification_level" -> + eb.addField("Verification Level Set To", GuildUtils.resolveGuildVerificationLevel(newValue), false); case "owner_id" -> { User oldOwner = ale.getJDA().getUserById(String.valueOf(oldValue)); @@ -81,13 +89,17 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.addField("New Owner", mentionableNewOwner, false); } - case "public_updates_channel_id" -> eb.addField("Announcements Channel Changed To", GuildUtils.resolveMentionableChannel(newValue, event), false); + case "public_updates_channel_id" -> + eb.addField("Announcements Channel Changed To", GuildUtils.resolveMentionableChannel(newValue, event), false); - case "rules_channel_id" -> eb.addField("Rules Channel Changed To", GuildUtils.resolveMentionableChannel(newValue, event), false); + case "rules_channel_id" -> + eb.addField("Rules Channel Changed To", GuildUtils.resolveMentionableChannel(newValue, event), false); - case "system_channel_flags" -> eb.addField("System Channel Flags", GuildUtils.resolveSystemChannelFlags(newValue), false); + case "system_channel_flags" -> + eb.addField("System Channel Flags", GuildUtils.resolveSystemChannelFlags(newValue), false); - case "explicit_content_filter" -> eb.addField("Explicit Content Filter", GuildUtils.resolveExplicitContentFilterLevel(newValue), false); + case "explicit_content_filter" -> + eb.addField("Explicit Content Filter", GuildUtils.resolveExplicitContentFilterLevel(newValue), false); default -> { eb.addField("Unimplemented Change Key", changeKey, false); @@ -100,13 +112,13 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationCreateEventHelper.java index f6bd03a1..8be4fbf1 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationCreateEventHelper.java @@ -25,7 +25,7 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Integration Create Event"); - eb.setDescription("ℹ️ The following integration was created by: "+mentionableExecutor); + eb.setDescription("ℹ️ The following integration was created by: " + mentionableExecutor); eb.setColor(Color.PINK); eb.addField("Action Type", String.valueOf(ale.getType()), true); @@ -36,9 +36,9 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull Object oldValue = changeValue.getOldValue(); Object newValue = changeValue.getNewValue(); - switch(changeKey) { - case "type" -> eb.addField("Integration Type","╰┈➤"+newValue, false); - case "name" -> eb.addField("Integration Name", "╰┈➤"+newValue, false); + switch (changeKey) { + case "type" -> eb.addField("Integration Type", "╰┈➤" + newValue, false); + case "name" -> eb.addField("Integration Name", "╰┈➤" + newValue, false); default -> { eb.addField("Unimplemented Change Key", changeKey, false); @@ -47,17 +47,17 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull } }); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationDeleteEventHelper.java index bf772649..b39ccb81 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationDeleteEventHelper.java @@ -25,7 +25,7 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Integration Delete Event"); - eb.setDescription("ℹ️ The following integration was deleted by: "+mentionableExecutor); + eb.setDescription("ℹ️ The following integration was deleted by: " + mentionableExecutor); eb.setColor(Color.MAGENTA); eb.addField("Action Type", String.valueOf(ale.getType()), true); @@ -35,9 +35,9 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull Object oldValue = changeValue.getOldValue(); Object newValue = changeValue.getNewValue(); - switch(changeKey) { - case "type" -> eb.addField("Integration Type","╰┈➤"+oldValue, false); - case "name" -> eb.addField("Integration Name", "╰┈➤"+oldValue, false); + switch (changeKey) { + case "type" -> eb.addField("Integration Type", "╰┈➤" + oldValue, false); + case "name" -> eb.addField("Integration Name", "╰┈➤" + oldValue, false); default -> { eb.addField("Unimplemented Change Key", changeKey, false); @@ -46,17 +46,17 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull } }); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteCreateEventHelper.java index 1135ce16..36bb5f3c 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteCreateEventHelper.java @@ -31,37 +31,38 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - ale.getChanges().forEach((changeKey, changeValue)-> { + ale.getChanges().forEach((changeKey, changeValue) -> { Object oldValue = changeValue.getOldValue(); Object newValue = changeValue.getNewValue(); switch (changeKey) { - case "code" -> eb.addField("Invite Code", "╰┈➤"+newValue, false); + case "code" -> eb.addField("Invite Code", "╰┈➤" + newValue, false); case "inviter_id" -> { User inviter = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableInviter = (inviter != null ? inviter.getAsMention() : ale.getUserId()); - eb.addField("Invite Created By", "╰┈➤"+ mentionableInviter, false); + eb.addField("Invite Created By", "╰┈➤" + mentionableInviter, false); } - case "temporary" -> eb.addField("Temporary Invite", "╰┈➤"+ BooleanUtils.formatToYesOrNo(newValue), false); + case "temporary" -> + eb.addField("Temporary Invite", "╰┈➤" + BooleanUtils.formatToYesOrNo(newValue), false); case "max_uses" -> { int maxUses = Integer.parseInt(String.valueOf(newValue)); - eb.addField("Max Uses", "╰┈➤"+(maxUses == 0 ? "Unlimited" : String.valueOf(maxUses)), false); + eb.addField("Max Uses", "╰┈➤" + (maxUses == 0 ? "Unlimited" : String.valueOf(maxUses)), false); } case "uses", "flags" -> { // ignore } - case "max_age" -> eb.addField("Expires After", "╰┈➤"+ DurationUtils.formatSeconds(newValue), false); + case "max_age" -> eb.addField("Expires After", "╰┈➤" + DurationUtils.formatSeconds(newValue), false); case "channel_id" -> { GuildChannel channel = ale.getGuild().getGuildChannelById(String.valueOf(newValue)); - eb.addField("Invite Channel", "╰┈➤"+(channel != null ? channel.getAsMention() : "`"+newValue+"`"), false); + eb.addField("Invite Channel", "╰┈➤" + (channel != null ? channel.getAsMention() : "`" + newValue + "`"), false); } default -> { @@ -72,17 +73,17 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull } }); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteDeleteEventHelper.java index d28c3150..3e1ac4a6 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteDeleteEventHelper.java @@ -28,35 +28,36 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - eb.setDescription("ℹ️ The following invite has been deleted by: "+mentionableExecutor); + eb.setDescription("ℹ️ The following invite has been deleted by: " + mentionableExecutor); eb.setColor(Color.BLUE); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - ale.getChanges().forEach((changeKey, changeValue)-> { + ale.getChanges().forEach((changeKey, changeValue) -> { Object oldValue = changeValue.getOldValue(); Object newValue = changeValue.getNewValue(); switch (changeKey) { - case "code" -> eb.addField("Deleted Invite Code", "╰┈➤"+oldValue, false); + case "code" -> eb.addField("Deleted Invite Code", "╰┈➤" + oldValue, false); case "inviter_id" -> { User inviter = ale.getJDA().getUserById(String.valueOf(oldValue)); - eb.addField("Invite Originally Created By", "╰┈➤"+(inviter != null ? inviter.getAsMention() : "`Unknown`"), false); + eb.addField("Invite Originally Created By", "╰┈➤" + (inviter != null ? inviter.getAsMention() : "`Unknown`"), false); } - case "temporary" -> eb.addField("Temporary Invite", "╰┈➤"+ BooleanUtils.formatToYesOrNo(oldValue), false); + case "temporary" -> + eb.addField("Temporary Invite", "╰┈➤" + BooleanUtils.formatToYesOrNo(oldValue), false); case "max_uses", "flags", "max_age" -> { // ignore } - case "uses" -> eb.addField("Number of times the invite was used", "╰┈➤"+oldValue, false); + case "uses" -> eb.addField("Number of times the invite was used", "╰┈➤" + oldValue, false); case "channel_id" -> { Channel channel = ale.getGuild().getGuildChannelById(String.valueOf(oldValue)); - eb.addField("Invite Channel", "╰┈➤"+(channel != null ? channel.getAsMention() : "`"+oldValue+"`"), false); + eb.addField("Invite Channel", "╰┈➤" + (channel != null ? channel.getAsMention() : "`" + oldValue + "`"), false); } default -> { @@ -67,17 +68,17 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull } }); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberRoleUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberRoleUpdateEventHelper.java index c29c1735..dce4bb48 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberRoleUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberRoleUpdateEventHelper.java @@ -26,27 +26,29 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); User target = ale.getJDA().getUserById(ale.getTargetIdLong()); - String mentionableTarget = (target !=null ? target.getAsMention() : ale.getTargetId()); + String mentionableTarget = (target != null ? target.getAsMention() : ale.getTargetId()); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Member Role Update"); - eb.setDescription("ℹ️ The following member had their role(s) updated by: "+mentionableExecutor); + eb.setDescription("ℹ️ The following member had their role(s) updated by: " + mentionableExecutor); eb.setThumbnail(Objects.requireNonNull(event.getGuild().getMemberById(ale.getTargetIdLong())).getEffectiveAvatarUrl()); eb.setColor(Color.YELLOW); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - eb.addField("\uD83C\uDFF7️️ Target Member", "╰┈➤"+mentionableTarget, false); + eb.addField("\uD83C\uDFF7️️ Target Member", "╰┈➤" + mentionableTarget, false); ale.getChanges().forEach((changeKey, changeValue) -> { Object oldValue = changeValue.getOldValue(); Object newValue = changeValue.getNewValue(); switch (changeKey) { - case "$add" -> eb.addField("✅ Role(s) Added", "╰┈➤"+ MemberUtils.parseRoleListMap(event, newValue), false); + case "$add" -> + eb.addField("✅ Role(s) Added", "╰┈➤" + MemberUtils.parseRoleListMap(event, newValue), false); - case "$remove" -> eb.addField("❌ Role(s) Removed", "╰┈➤"+MemberUtils.parseRoleListMap(event, newValue), false); + case "$remove" -> + eb.addField("❌ Role(s) Removed", "╰┈➤" + MemberUtils.parseRoleListMap(event, newValue), false); default -> { eb.addField("Unimplemented Change Key", changeKey, false); @@ -55,17 +57,17 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull } }); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberUpdateEventHelper.java index c8896dd6..53d65465 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberUpdateEventHelper.java @@ -29,18 +29,18 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); User target = ale.getJDA().getUserById(ale.getTargetIdLong()); - String mentionableTarget = (target !=null ? target.getAsMention() : ale.getTargetId()); + String mentionableTarget = (target != null ? target.getAsMention() : ale.getTargetId()); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Member Update Event"); - eb.setDescription("ℹ️ The following member was updated by: "+mentionableExecutor); + eb.setDescription("ℹ️ The following member was updated by: " + mentionableExecutor); eb.setThumbnail(Objects.requireNonNull(event.getGuild().getMemberById(ale.getTargetId())).getEffectiveAvatarUrl()); eb.setColor(Color.CYAN); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - eb.addField("Target", "╰┈➤"+mentionableTarget, false); + eb.addField("Target", "╰┈➤" + mentionableTarget, false); ale.getChanges().forEach((changeKey, changeValue) -> { Object oldValue = changeValue.getOldValue(); @@ -49,24 +49,26 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull switch (changeKey) { case "communication_disabled_until" -> { - if(newValue==null) { + if (newValue == null) { eb.setColor(Color.GREEN); eb.addField("Timeout Lifted", "╰┈➤ Timeout has been removed", false); } else { eb.setColor(Color.YELLOW); eb.addField("Timeout Received", "╰┈➤ Member has received a timeout", false); - eb.addField("Timeout Ends On", "╰┈➤"+ DurationUtils.isoToLocalTimeCounter(newValue), false); - eb.addField("Timeout Reason", "╰┈➤"+(ale.getReason()!=null ? ale.getReason() : "No Reason Provided"), false); + eb.addField("Timeout Ends On", "╰┈➤" + DurationUtils.isoToLocalTimeCounter(newValue), false); + eb.addField("Timeout Reason", "╰┈➤" + (ale.getReason() != null ? ale.getReason() : "No Reason Provided"), false); } } - case "nick" -> eb.addField("Nickname Update", "╰┈➤"+resolveNickNameChanges(oldValue, newValue), false); + case "nick" -> + eb.addField("Nickname Update", "╰┈➤" + resolveNickNameChanges(oldValue, newValue), false); case "mute" -> eb.addField("Is Muted in VC", BooleanUtils.formatToYesOrNo(newValue), false); case "deaf" -> eb.addField("Is Deafened in VC", BooleanUtils.formatToYesOrNo(newValue), false); - case "bypasses_verification" -> eb.addField("Bypass Verification", BooleanUtils.formatToEnabledOrDisabled(newValue), false); + case "bypasses_verification" -> + eb.addField("Bypass Verification", BooleanUtils.formatToEnabledOrDisabled(newValue), false); default -> { eb.addField("Unimplemented Change Key", changeKey, false); @@ -75,17 +77,17 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull } }); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } @@ -94,16 +96,16 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull @SuppressWarnings("all") private static String resolveNickNameChanges(@Nullable Object oldNickValue, @Nullable Object newNickValue) { - if(oldNickValue==null && newNickValue!=null) { // change from global name to a new nickname in the server - return "New Nickname Added: `"+newNickValue+"`"; + if (oldNickValue == null && newNickValue != null) { // change from global name to a new nickname in the server + return "New Nickname Added: `" + newNickValue + "`"; } - if (oldNickValue!=null && newNickValue==null) { // change to the global name from having a nickname - return "Reset to Global Name from: `"+oldNickValue+"`"; + if (oldNickValue != null && newNickValue == null) { // change to the global name from having a nickname + return "Reset to Global Name from: `" + oldNickValue + "`"; } - if (oldNickValue!=null && newNickValue!=null) { // changing from one nick to another - return "Changed nickname from: `"+oldNickValue+"` to: `"+newNickValue+"`"; + if (oldNickValue != null && newNickValue != null) { // changing from one nick to another + return "Changed nickname from: `" + oldNickValue + "` to: `" + newNickValue + "`"; } // both shouldn't be null which indicates that names couldn't be fetched from the event diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceKickEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceKickEventHelper.java index 70b68c12..f4ed145b 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceKickEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceKickEventHelper.java @@ -27,23 +27,23 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Member Voice Kick Event"); - eb.setDescription("ℹ️ A member was kicked from a voice channel by: "+mentionableExecutor); + eb.setDescription("ℹ️ A member was kicked from a voice channel by: " + mentionableExecutor); eb.setColor(Color.RED); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceMoveEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceMoveEventHelper.java index 5a95b26b..2790d694 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceMoveEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceMoveEventHelper.java @@ -27,23 +27,23 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Member Voice Move Event"); - eb.setDescription("ℹ️ A member was moved to a different voice channel by: "+mentionableExecutor); + eb.setDescription("ℹ️ A member was moved to a different voice channel by: " + mentionableExecutor); eb.setColor(Color.YELLOW); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/utils/MemberUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/utils/MemberUtils.java index 4b931de8..0d777b70 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/utils/MemberUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/utils/MemberUtils.java @@ -18,7 +18,7 @@ public class MemberUtils { @NotNull public static String parseRoleListMap(@NonNull GenericGuildEvent event, @Nullable Object roleObject) { - if(roleObject==null) return "N/A"; + if (roleObject == null) return "N/A"; if (roleObject instanceof List roleList) { StringBuilder roleString = new StringBuilder(); @@ -26,7 +26,7 @@ public static String parseRoleListMap(@NonNull GenericGuildEvent event, @Nullabl if (o instanceof Map roleMap && roleMap.containsKey("id")) { String roleId = (String) roleMap.get("id"); Role role = event.getGuild().getRoleById(roleId); - roleString.append(role!=null ? role.getAsMention() : roleMap.get("name")).append(" "); + roleString.append(role != null ? role.getAsMention() : roleMap.get("name")).append(" "); } }); return roleString.toString().trim(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessagePinEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessagePinEventHelper.java index 841187b2..e786d197 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessagePinEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessagePinEventHelper.java @@ -28,23 +28,23 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull User target = ale.getJDA().getUserById(ale.getTargetId()); String mentionableTarget = (target != null ? target.getAsMention() : ale.getTargetId()); - eb.setDescription("**A message from **: "+ mentionableTarget +" was pinned"); + eb.setDescription("**A message from **: " + mentionableTarget + " was pinned"); eb.setColor(Color.PINK); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessageUnpinEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessageUnpinEventHelper.java index 6683c863..a7c1291e 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessageUnpinEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessageUnpinEventHelper.java @@ -28,23 +28,23 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull User target = ale.getJDA().getUserById(ale.getTargetId()); String mentionableTarget = (target != null ? target.getAsMention() : ale.getTargetId()); - eb.setDescription("**A message from **: "+ mentionableTarget +" un-pinned"); + eb.setDescription("**A message from **: " + mentionableTarget + " un-pinned"); eb.setColor(Color.MAGENTA); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/BanEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/BanEventHelper.java index 688fe3c2..f97e835a 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/BanEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/BanEventHelper.java @@ -22,35 +22,35 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull User moderator = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableModerator = (moderator != null ? moderator.getAsMention() : ale.getUserId()); - String reasonForBan = ale.getReason()==null ? "No Reason Provided" : ale.getReason(); + String reasonForBan = ale.getReason() == null ? "No Reason Provided" : ale.getReason(); // A REST Action is required here because banned members are not cached event.getJDA().retrieveUserById(ale.getTargetId()).queue(bannedUser -> { - String mentionableBannedUser = bannedUser!=null ? bannedUser.getAsMention() : ale.getTargetId(); + String mentionableBannedUser = bannedUser != null ? bannedUser.getAsMention() : ale.getTargetId(); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Ban Event"); - eb.setDescription("ℹ️ A moderator: "+mentionableModerator+" has banned a member"); + eb.setDescription("ℹ️ A moderator: " + mentionableModerator + " has banned a member"); eb.setColor(Color.RED); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - eb.addField("Banned Member", "╰┈➤"+mentionableBannedUser,false); + eb.addField("Banned Member", "╰┈➤" + mentionableBannedUser, false); eb.addField("Ban Reason", "╰┈➤" + reasonForBan, false); eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } }); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/KickEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/KickEventHelper.java index bbaebc08..cddf3f26 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/KickEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/KickEventHelper.java @@ -22,16 +22,16 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull User moderator = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableModerator = (moderator != null ? moderator.getAsMention() : ale.getUserId()); - String reasonForKick = ale.getReason()==null ? "No Reason Provided" : ale.getReason(); + String reasonForKick = ale.getReason() == null ? "No Reason Provided" : ale.getReason(); // A REST Action is required here because kicked members are not cached event.getJDA().retrieveUserById(ale.getTargetId()).queue(kickedUser -> { - String mentionableKickedUser = kickedUser!=null ? kickedUser.getAsMention() : ale.getTargetId(); + String mentionableKickedUser = kickedUser != null ? kickedUser.getAsMention() : ale.getTargetId(); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Kick Event"); - eb.setDescription("ℹ️ The following member was kicked by: "+mentionableModerator); + eb.setDescription("ℹ️ The following member was kicked by: " + mentionableModerator); eb.setColor(Color.ORANGE); eb.addField("Action Type", String.valueOf(ale.getType()), true); @@ -44,13 +44,13 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } }); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/UnbanEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/UnbanEventHelper.java index 92398846..3b5d4bd7 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/UnbanEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/UnbanEventHelper.java @@ -25,11 +25,11 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull event.getJDA().retrieveUserById(ale.getTargetId()).queue(unbannedUser -> { - String mentionableUnbannedUser = unbannedUser!=null ? unbannedUser.getAsMention() : ale.getTargetId(); + String mentionableUnbannedUser = unbannedUser != null ? unbannedUser.getAsMention() : ale.getTargetId(); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Member Unban Event"); - eb.setDescription("ℹ️ The following user was un-banned by: "+mentionableModerator); + eb.setDescription("ℹ️ The following user was un-banned by: " + mentionableModerator); eb.setColor(Color.GREEN); eb.addField("Action Type", String.valueOf(ale.getType()), true); @@ -41,13 +41,13 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } }); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptCreateEventHelper.java index 074981cd..518494dc 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptCreateEventHelper.java @@ -38,8 +38,9 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull Object oldValue = changeValue.getOldValue(); Object newValue = changeValue.getNewValue(); - switch (changeKey){ - case "single_select" -> eb.addField("Single Selection Mode", BooleanUtils.formatToYesOrNo(newValue), false); + switch (changeKey) { + case "single_select" -> + eb.addField("Single Selection Mode", BooleanUtils.formatToYesOrNo(newValue), false); case "required" -> eb.addField("Required", BooleanUtils.formatToYesOrNo(newValue), false); @@ -51,7 +52,8 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull case "options" -> eb.addField("Question Options", "Review the options in Onboarding Settings", false); - case "in_onboarding" -> eb.addField("Is a Pre-Join Question", BooleanUtils.formatToYesOrNo(newValue), false); + case "in_onboarding" -> + eb.addField("Is a Pre-Join Question", BooleanUtils.formatToYesOrNo(newValue), false); default -> { eb.addField("Unimplemented Change Key", changeKey, false); @@ -61,17 +63,17 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull }); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptDeleteEventHelper.java index 88e36ce3..f5503461 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptDeleteEventHelper.java @@ -38,9 +38,10 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull Object oldValue = changeValue.getOldValue(); Object newValue = changeValue.getNewValue(); - switch (changeKey){ + switch (changeKey) { - case "single_select" -> eb.addField("Single Selection Mode", BooleanUtils.formatToYesOrNo(oldValue), false); + case "single_select" -> + eb.addField("Single Selection Mode", BooleanUtils.formatToYesOrNo(oldValue), false); case "required" -> eb.addField("Was Required", BooleanUtils.formatToYesOrNo(oldValue), false); @@ -49,7 +50,8 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull } case "title" -> eb.addField("Question Title", String.valueOf(oldValue), false); - case "in_onboarding" -> eb.addField("Was a Pre-Join Question", BooleanUtils.formatToYesOrNo(oldValue), false); + case "in_onboarding" -> + eb.addField("Was a Pre-Join Question", BooleanUtils.formatToYesOrNo(oldValue), false); default -> { eb.addField("Unimplemented Change Key", changeKey, false); @@ -58,17 +60,17 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull } }); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptUpdateEventHelper.java index ebab13af..e47824ef 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptUpdateEventHelper.java @@ -38,7 +38,7 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull Object oldValue = changeValue.getOldValue(); Object newValue = changeValue.getNewValue(); - switch (changeKey){ + switch (changeKey) { case "single_select" -> { eb.addField("Old Single Selection Mode", BooleanUtils.formatToYesOrNo(oldValue), false); eb.addField("New Single Selection Mode", BooleanUtils.formatToYesOrNo(newValue), false); @@ -58,7 +58,8 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.addField("New Question Title", String.valueOf(newValue), false); } - case "options" -> eb.addField("Question Options", "Review the changed options in Onboarding Settings", false); + case "options" -> + eb.addField("Question Options", "Review the changed options in Onboarding Settings", false); case "in_onboarding" -> { eb.addField("Was a Pre-Join Question", BooleanUtils.formatToYesOrNo(oldValue), false); @@ -72,17 +73,17 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull } }); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingUpdateEventHelper.java index a5aa4e40..7780b800 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingUpdateEventHelper.java @@ -40,7 +40,7 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull Object oldValue = changeValue.getOldValue(); Object newValue = changeValue.getNewValue(); - switch (changeKey){ + switch (changeKey) { case "enabled" -> { eb.addField("Old Onboarding Status", OnboardingUtils.formatStatus(oldValue), false); eb.addField("New Onboarding Status", OnboardingUtils.formatStatus(newValue), true); @@ -51,13 +51,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.addField("New Onboarding Mode", OnboardingUtils.formatMode(newValue), true); } - case "default_channel_ids" ->{ + case "default_channel_ids" -> { eb.addField("Old Default Channels", OnboardingUtils.resolveChannelsFromList(guild, oldValue), false); eb.addField("New Default Channels", OnboardingUtils.resolveChannelsFromList(guild, newValue), false); } // triggered also when prompts are deleted/created besides the default of update - case "prompts" -> eb.addField("Prompt Updates", "Overall Pre-join/Post-join questions may have been updated.\n Review changes manually.", false); + case "prompts" -> + eb.addField("Prompt Updates", "Overall Pre-join/Post-join questions may have been updated.\n Review changes manually.", false); default -> { eb.addField("Unimplemented Change Key", changeKey, false); @@ -67,17 +68,17 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull }); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/utils/OnboardingUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/utils/OnboardingUtils.java index e9f72333..67d0f819 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/utils/OnboardingUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/utils/OnboardingUtils.java @@ -14,7 +14,7 @@ public class OnboardingUtils { @NotNull public static String formatMode(@Nullable Object value) { - if(value==null) return "N/A"; + if (value == null) return "N/A"; return switch (String.valueOf(value)) { case "1" -> "Advanced Mode"; @@ -25,10 +25,10 @@ public static String formatMode(@Nullable Object value) { @NotNull public static String formatStatus(@Nullable Object value) { - if(value==null) + if (value == null) return "N/A"; - if(Boolean.TRUE.equals(value)) + if (Boolean.TRUE.equals(value)) return "Enabled"; return "Disabled"; @@ -36,13 +36,13 @@ public static String formatStatus(@Nullable Object value) { @NotNull public static String resolveChannelsFromList(@NonNull Guild guild, @Nullable Object value) { - if(value == null) return "No Resolvable Channel IDs"; + if (value == null) return "No Resolvable Channel IDs"; StringBuilder sb = new StringBuilder(); - if(value instanceof List channelIdList) { + if (value instanceof List channelIdList) { channelIdList.forEach(channelId -> { GuildChannel channel = guild.getGuildChannelById((String) channelId); - sb.append(channel!=null ? channel.getAsMention() : channelId).append(" "); + sb.append(channel != null ? channel.getAsMention() : channelId).append(" "); }); } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleCreateEventHelper.java index 76950688..a6d6e416 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleCreateEventHelper.java @@ -27,17 +27,17 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); Role targetRole = ale.getJDA().getRoleById(ale.getTargetId()); - String mentionableTargetRole = (targetRole !=null ? targetRole.getAsMention() : ale.getTargetId()); + String mentionableTargetRole = (targetRole != null ? targetRole.getAsMention() : ale.getTargetId()); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Role Create Event"); - eb.setDescription("The following role was created by: "+mentionableExecutor); + eb.setDescription("The following role was created by: " + mentionableExecutor); eb.setColor(Color.GREEN); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - eb.addField("Target Role", "╰┈➤"+mentionableTargetRole, false); + eb.addField("Target Role", "╰┈➤" + mentionableTargetRole, false); ale.getChanges().forEach((changeKey, changeValue) -> { @@ -46,10 +46,10 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull switch (changeKey) { - case "name" -> eb.addField("Role Name", "╰┈➤"+newValue, false); + case "name" -> eb.addField("Role Name", "╰┈➤" + newValue, false); case "colors", "hoist", "color", "permissions", "mentionable" -> { - /* discord for some reason shows the following to be default/null even + /* discord for some reason shows the following to be default/null even * when you set them during the creation of the role itself * and delegates them to ROLE_UPDATE event */ @@ -63,16 +63,16 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull } }); - for(Map.Entry changes: ale.getChanges().entrySet()) { + for (Map.Entry changes : ale.getChanges().entrySet()) { String change = changes.getKey(); Object oldValue = changes.getValue().getOldValue(); Object newValue = changes.getValue().getNewValue(); - switch(change) { + switch (change) { case "name": - eb.addField("🏷️ Role Name", "╰┈➤"+newValue, false); + eb.addField("🏷️ Role Name", "╰┈➤" + newValue, false); break; /* @@ -84,21 +84,21 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull break; default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); + eb.addField(change, "from " + oldValue + " to " + newValue, false); } } - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleDeleteEventHelper.java index 2b65b044..afae659c 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleDeleteEventHelper.java @@ -29,7 +29,7 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Role Delete Event"); - eb.setDescription("ℹ️ The following role was deleted by: "+mentionableExecutor); + eb.setDescription("ℹ️ The following role was deleted by: " + mentionableExecutor); eb.setColor(Color.RED); eb.addField("Action Type", String.valueOf(ale.getType()), true); @@ -41,17 +41,20 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull switch (changeKey) { - case "name"-> eb.addField("Role Name", "╰┈➤"+oldValue, false); + case "name" -> eb.addField("Role Name", "╰┈➤" + oldValue, false); - case "hoist"-> eb.addField("Display Separately", "╰┈➤"+ BooleanUtils.formatToYesOrNo(oldValue), false); + case "hoist" -> + eb.addField("Display Separately", "╰┈➤" + BooleanUtils.formatToYesOrNo(oldValue), false); - case "color" -> eb.addField("Color", "╰┈➤"+ ColorUtils.formatToHex(oldValue), false); + case "color" -> eb.addField("Color", "╰┈➤" + ColorUtils.formatToHex(oldValue), false); - case "permissions"-> eb.addField("Role Permissions", RoleUtils.resolveRolePermissions(oldValue, "✅"), false); + case "permissions" -> + eb.addField("Role Permissions", RoleUtils.resolveRolePermissions(oldValue, "✅"), false); - case "mentionable"-> eb.addField("Mentionable", "╰┈➤"+ BooleanUtils.formatToYesOrNo(oldValue), false); + case "mentionable" -> eb.addField("Mentionable", "╰┈➤" + BooleanUtils.formatToYesOrNo(oldValue), false); - case "colors" -> eb.addField("Gradient Color System", ColorUtils.formatGradientColorSystemToHex(oldValue), false); + case "colors" -> + eb.addField("Gradient Color System", ColorUtils.formatGradientColorSystemToHex(oldValue), false); default -> { eb.addField("Unimplemented Change Key", changeKey, false); @@ -60,19 +63,19 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull } }); - eb.addField("🆔 Deleted Role ID", "╰┈➤"+ale.getTargetId(), false); + eb.addField("🆔 Deleted Role ID", "╰┈➤" + ale.getTargetId(), false); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleUpdateEventHelper.java index 014b0fcf..9e7adf37 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleUpdateEventHelper.java @@ -28,17 +28,17 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); Role targetRole = ale.getJDA().getRoleById(ale.getTargetId()); - String mentionableTargetRole = (targetRole !=null ? targetRole.getAsMention() : ale.getTargetId()); + String mentionableTargetRole = (targetRole != null ? targetRole.getAsMention() : ale.getTargetId()); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Role Update Event"); - eb.setDescription("ℹ️ The following role was updated by: "+mentionableExecutor); + eb.setDescription("ℹ️ The following role was updated by: " + mentionableExecutor); eb.setColor(Color.YELLOW); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - eb.addField("Target Role", "╰┈➤"+mentionableTargetRole, false); + eb.addField("Target Role", "╰┈➤" + mentionableTargetRole, false); ale.getChanges().forEach((changeKey, changeValue) -> { @@ -48,20 +48,20 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull switch (changeKey) { case "name" -> { - eb.addField("Old Role Name", "╰┈➤"+oldValue, true); - eb.addField("New Role Name", "╰┈➤"+newValue, true); + eb.addField("Old Role Name", "╰┈➤" + oldValue, true); + eb.addField("New Role Name", "╰┈➤" + newValue, true); eb.addBlankField(true); } case "hoist" -> { - eb.addField("Old Display Separately", "╰┈➤"+ BooleanUtils.formatToYesOrNo(oldValue), true); - eb.addField("New Display Separately", "╰┈➤"+ BooleanUtils.formatToYesOrNo(newValue), true); + eb.addField("Old Display Separately", "╰┈➤" + BooleanUtils.formatToYesOrNo(oldValue), true); + eb.addField("New Display Separately", "╰┈➤" + BooleanUtils.formatToYesOrNo(newValue), true); eb.addBlankField(true); } case "color" -> { - eb.addField("Old Color", "╰┈➤"+ ColorUtils.formatToHex(oldValue), true); - eb.addField("New Color", "╰┈➤"+ ColorUtils.formatToHex(newValue), true); + eb.addField("Old Color", "╰┈➤" + ColorUtils.formatToHex(oldValue), true); + eb.addField("New Color", "╰┈➤" + ColorUtils.formatToHex(newValue), true); eb.addBlankField(true); } @@ -72,8 +72,8 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull } case "mentionable" -> { - eb.addField("Old Mentionable", "╰┈➤"+ BooleanUtils.formatToYesOrNo(oldValue), true); - eb.addField("New Mentionable", "╰┈➤"+ BooleanUtils.formatToYesOrNo(newValue), true); + eb.addField("Old Mentionable", "╰┈➤" + BooleanUtils.formatToYesOrNo(oldValue), true); + eb.addField("New Mentionable", "╰┈➤" + BooleanUtils.formatToYesOrNo(newValue), true); eb.addBlankField(true); } @@ -91,17 +91,17 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull } }); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/utils/RoleUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/utils/RoleUtils.java index 88169b3e..0c542e9a 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/utils/RoleUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/utils/RoleUtils.java @@ -13,12 +13,12 @@ public class RoleUtils { @NotNull - public static String resolveRolePermissions (@Nullable Object permissionsValue, @NonNull String emoji) { + public static String resolveRolePermissions(@Nullable Object permissionsValue, @NonNull String emoji) { Long permissionLong = NumberParseUtils.parseLong(permissionsValue); - if(permissionLong==null) + if (permissionLong == null) return "Permission cannot be parsed"; - if(permissionLong==0) + if (permissionLong == 0) return "No Permissions set"; StringBuilder permissions = new StringBuilder(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventCreateEventHelper.java index 5b409009..ec838072 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventCreateEventHelper.java @@ -37,15 +37,18 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull Object newValue = changeValue.getNewValue(); switch (changeKey) { - case "entity_type" -> eb.addField("Event Type", "╰┈➤" + ScheduledEventUtils.resolveEventType(newValue), false); + case "entity_type" -> + eb.addField("Event Type", "╰┈➤" + ScheduledEventUtils.resolveEventType(newValue), false); case "name" -> eb.addField("Event Name", "╰┈➤" + newValue, false); case "description" -> eb.addField("Event Description", "╰┈➤" + newValue, false); - case "status" -> eb.addField("Event Status", "╰┈➤" + ScheduledEventUtils.resolveStatusType(newValue), false); + case "status" -> + eb.addField("Event Status", "╰┈➤" + ScheduledEventUtils.resolveStatusType(newValue), false); case "location" -> eb.addField("Event Location", "╰┈➤" + newValue, false); case "privacy_level", "image_hash", "channel_id" -> { // skip } - case "recurrence_rule" -> eb.addField("Recurrence Rule", ScheduledEventUtils.resolveRecurrenceRules(newValue), false); + case "recurrence_rule" -> + eb.addField("Recurrence Rule", ScheduledEventUtils.resolveRecurrenceRules(newValue), false); default -> { eb.addField("Unimplemented Change Key", changeKey, false); log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventDeleteEventHelper.java index 89ad30a6..ff07d3ed 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventDeleteEventHelper.java @@ -26,7 +26,7 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Scheduled Event Delete Event"); - eb.setDescription("ℹ️ A scheduled event has been deleted by: "+mentionableExecutor); + eb.setDescription("ℹ️ A scheduled event has been deleted by: " + mentionableExecutor); eb.setColor(Color.RED); eb.addField("Action Type", String.valueOf(ale.getType()), true); @@ -37,15 +37,18 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull Object newValue = changeValue.getNewValue(); switch (changeKey) { - case "entity_type" -> eb.addField("Event Type", "╰┈➤" + ScheduledEventUtils.resolveEventType(oldValue), false); + case "entity_type" -> + eb.addField("Event Type", "╰┈➤" + ScheduledEventUtils.resolveEventType(oldValue), false); case "name" -> eb.addField("Event Name", "╰┈➤" + oldValue, false); case "description" -> eb.addField("Event Description", "╰┈➤" + oldValue, false); - case "status" -> eb.addField("Event Status", "╰┈➤" + ScheduledEventUtils.resolveStatusType(oldValue), false); + case "status" -> + eb.addField("Event Status", "╰┈➤" + ScheduledEventUtils.resolveStatusType(oldValue), false); case "location" -> eb.addField("Event Location", "╰┈➤" + oldValue, false); case "privacy_level", "image_hash", "channel_id" -> { // skip } - case "recurrence_rule" -> eb.addField("Recurrence Rule", ScheduledEventUtils.resolveRecurrenceRules(oldValue), false); + case "recurrence_rule" -> + eb.addField("Recurrence Rule", ScheduledEventUtils.resolveRecurrenceRules(oldValue), false); default -> { eb.addField("Unimplemented Change Key", changeKey, false); log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); @@ -53,17 +56,17 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull } }); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java index d342bd90..842ab826 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java @@ -26,7 +26,7 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Scheduled Event Update Event"); - eb.setDescription("ℹ️ The following scheduled event was updated by: "+mentionableExecutor); + eb.setDescription("ℹ️ The following scheduled event was updated by: " + mentionableExecutor); eb.setColor(Color.YELLOW); eb.addField("Action Type", String.valueOf(ale.getType()), true); @@ -38,24 +38,24 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull switch (changeKey) { case "entity_type" -> { - eb.addField("Old Event Type", "╰┈➤"+ScheduledEventUtils.resolveEventType(oldValue), false); - eb.addField("New Event Type", "╰┈➤"+ScheduledEventUtils.resolveEventType(newValue), false); + eb.addField("Old Event Type", "╰┈➤" + ScheduledEventUtils.resolveEventType(oldValue), false); + eb.addField("New Event Type", "╰┈➤" + ScheduledEventUtils.resolveEventType(newValue), false); } case "name" -> { - eb.addField("Old Event Name", "╰┈➤"+oldValue, false); - eb.addField("New Event Name","╰┈➤"+newValue, false); + eb.addField("Old Event Name", "╰┈➤" + oldValue, false); + eb.addField("New Event Name", "╰┈➤" + newValue, false); } case "description" -> { - eb.addField("Old Event Description", "╰┈➤"+oldValue, false); - eb.addField("New Event Description", "╰┈➤"+newValue, false); + eb.addField("Old Event Description", "╰┈➤" + oldValue, false); + eb.addField("New Event Description", "╰┈➤" + newValue, false); } case "status" -> { - eb.addField("Old Event Status", "╰┈➤"+ScheduledEventUtils.resolveStatusType(oldValue), false); - eb.addField("New Event Status", "╰┈➤"+ScheduledEventUtils.resolveStatusType(newValue), false); + eb.addField("Old Event Status", "╰┈➤" + ScheduledEventUtils.resolveStatusType(oldValue), false); + eb.addField("New Event Status", "╰┈➤" + ScheduledEventUtils.resolveStatusType(newValue), false); } case "location" -> { - eb.addField("Event Location", "╰┈➤"+oldValue, false); - eb.addField("Event Location", "╰┈➤"+newValue, false); + eb.addField("Event Location", "╰┈➤" + oldValue, false); + eb.addField("Event Location", "╰┈➤" + newValue, false); } case "privacy_level" -> eb.addField("Privacy", "╰┈➤Event privacy has been updated", false); case "image_hash" -> eb.addField("Image", "╰┈➤Event Image has been updated", false); @@ -72,17 +72,17 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull } }); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/utils/ScheduledEventUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/utils/ScheduledEventUtils.java index a50ec1c8..2079a0a3 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/utils/ScheduledEventUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/utils/ScheduledEventUtils.java @@ -12,7 +12,7 @@ public class ScheduledEventUtils { @NotNull - public static String resolveEventType (@Nullable Object eventTypeInteger) { + public static String resolveEventType(@Nullable Object eventTypeInteger) { Integer eventType = NumberParseUtils.parseInt(eventTypeInteger); if (eventType == null) @@ -23,7 +23,7 @@ public static String resolveEventType (@Nullable Object eventTypeInteger) { } @NotNull - public static String resolveStatusType (@Nullable Object eventTypeInteger) { + public static String resolveStatusType(@Nullable Object eventTypeInteger) { Integer eventType = NumberParseUtils.parseInt(eventTypeInteger); if (eventType == null) return "N/A"; @@ -34,11 +34,11 @@ public static String resolveStatusType (@Nullable Object eventTypeInteger) { @NotNull public static String resolveRecurrenceRules(@Nullable Object recurrenceRuleStructure) { - if(recurrenceRuleStructure==null) + if (recurrenceRuleStructure == null) return "N/A"; StringBuilder stringBuilder = new StringBuilder(); - if(recurrenceRuleStructure instanceof Map recurrenceRuleMap) { + if (recurrenceRuleStructure instanceof Map recurrenceRuleMap) { stringBuilder .append("**_Start Time of Interval_**") diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundCreateEventHelper.java index 2e0703c2..8f8f3725 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundCreateEventHelper.java @@ -26,13 +26,13 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Soundboard Sound Create Event"); - eb.setDescription("ℹ️ A sound item was added to the soundboard by: "+mentionableExecutor); + eb.setDescription("ℹ️ A sound item was added to the soundboard by: " + mentionableExecutor); eb.setColor(Color.GREEN); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - ale.getChanges().forEach((changeKey, changeValue)-> { + ale.getChanges().forEach((changeKey, changeValue) -> { Object oldValue = changeValue.getOldValue(); Object newValue = changeValue.getNewValue(); @@ -42,13 +42,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull case "user_id", "sound_id", "id", "guild_id", "available" -> { // skip } - case "volume" -> eb.addField("Volume", "╰┈➤"+ SoundboardUtils.resolveVolumePercentage(newValue), false); + case "volume" -> + eb.addField("Volume", "╰┈➤" + SoundboardUtils.resolveVolumePercentage(newValue), false); - case "emoji_name" -> eb.addField("Related Emoji", "╰┈➤"+newValue, false); + case "emoji_name" -> eb.addField("Related Emoji", "╰┈➤" + newValue, false); - case "emoji_id" -> eb.addField("Related Emoji ID", "╰┈➤"+newValue, false); + case "emoji_id" -> eb.addField("Related Emoji ID", "╰┈➤" + newValue, false); - case "name" -> eb.addField("Sound Item Name", "╰┈➤"+newValue, false); + case "name" -> eb.addField("Sound Item Name", "╰┈➤" + newValue, false); default -> { eb.addField("Unimplemented Change Key", changeKey, false); @@ -57,17 +58,17 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull } }); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundDeleteEventHelper.java index d7080668..0d9e3632 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundDeleteEventHelper.java @@ -26,13 +26,13 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Soundboard Sound Create Event"); - eb.setDescription("ℹ️ A sound item was deleted from the soundboard by: "+mentionableExecutor); + eb.setDescription("ℹ️ A sound item was deleted from the soundboard by: " + mentionableExecutor); eb.setColor(Color.RED); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - ale.getChanges().forEach((changeKey, changeValue)-> { + ale.getChanges().forEach((changeKey, changeValue) -> { Object oldValue = changeValue.getOldValue(); Object newValue = changeValue.getNewValue(); @@ -42,13 +42,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull case "user_id", "sound_id", "id", "guild_id", "available" -> { // skip } - case "volume" -> eb.addField("Volume", "╰┈➤"+ SoundboardUtils.resolveVolumePercentage(oldValue), false); + case "volume" -> + eb.addField("Volume", "╰┈➤" + SoundboardUtils.resolveVolumePercentage(oldValue), false); - case "emoji_name" -> eb.addField("Related Emoji", "╰┈➤"+oldValue, false); + case "emoji_name" -> eb.addField("Related Emoji", "╰┈➤" + oldValue, false); - case "emoji_id" -> eb.addField("Related Emoji ID", "╰┈➤"+oldValue, false); + case "emoji_id" -> eb.addField("Related Emoji ID", "╰┈➤" + oldValue, false); - case "name" -> eb.addField("Sound Item Name", "╰┈➤"+oldValue, false); + case "name" -> eb.addField("Sound Item Name", "╰┈➤" + oldValue, false); default -> { eb.addField("Unimplemented Change Key", changeKey, false); @@ -57,17 +58,17 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull } }); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundUpdateEventHelper.java index 71ce01e1..45a73e0f 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundUpdateEventHelper.java @@ -26,7 +26,7 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Soundboard Sound Update Event"); - eb.setDescription("ℹ️ A sound item in the soundboard was updated by: "+mentionableExecutor); + eb.setDescription("ℹ️ A sound item in the soundboard was updated by: " + mentionableExecutor); eb.setColor(Color.YELLOW); eb.addField("Action Type", String.valueOf(ale.getType()), true); @@ -38,27 +38,27 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull Object newValue = changeValue.getNewValue(); switch (changeKey) { - case "user_id", "sound_id", "id", "guild_id", "available" ->{ + case "user_id", "sound_id", "id", "guild_id", "available" -> { // skip } case "volume" -> { - eb.addField("Old Volume", "╰┈➤"+SoundboardUtils.resolveVolumePercentage(oldValue), true); - eb.addField("New Volume", "╰┈➤"+SoundboardUtils.resolveVolumePercentage(newValue), true); + eb.addField("Old Volume", "╰┈➤" + SoundboardUtils.resolveVolumePercentage(oldValue), true); + eb.addField("New Volume", "╰┈➤" + SoundboardUtils.resolveVolumePercentage(newValue), true); eb.addBlankField(true); } case "emoji_name" -> { - eb.addField("Old Related Emoji", "╰┈➤"+oldValue, true); - eb.addField("New Related Emoji", "╰┈➤"+newValue, true); + eb.addField("Old Related Emoji", "╰┈➤" + oldValue, true); + eb.addField("New Related Emoji", "╰┈➤" + newValue, true); eb.addBlankField(true); } case "emoji_id" -> { - eb.addField("Old Related Emoji ID", "╰┈➤"+oldValue, true); - eb.addField("New Related Emoji ID", "╰┈➤"+newValue, true); + eb.addField("Old Related Emoji ID", "╰┈➤" + oldValue, true); + eb.addField("New Related Emoji ID", "╰┈➤" + newValue, true); eb.addBlankField(true); } case "name" -> { - eb.addField("Old Sound Item Name", "╰┈➤"+oldValue, true); - eb.addField("New Sound Item Name", "╰┈➤"+newValue, true); + eb.addField("Old Sound Item Name", "╰┈➤" + oldValue, true); + eb.addField("New Sound Item Name", "╰┈➤" + newValue, true); eb.addBlankField(true); } default -> { @@ -68,17 +68,17 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull } }); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/utils/SoundboardUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/utils/SoundboardUtils.java index a15ab5e5..dfe5305f 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/utils/SoundboardUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/utils/SoundboardUtils.java @@ -11,11 +11,11 @@ public class SoundboardUtils { @NotNull - public static String resolveVolumePercentage (@Nullable Object decimalVolume) { + public static String resolveVolumePercentage(@Nullable Object decimalVolume) { Double volume = NumberParseUtils.parseDouble(decimalVolume, 4, RoundingMode.HALF_UP); - if(volume==null) + if (volume == null) return "N/A"; - return (volume * 100)+"%"; + return (volume * 100) + "%"; } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceCreateEventHelper.java index ad9969b7..4bbd3d05 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceCreateEventHelper.java @@ -26,7 +26,7 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Stage Instance Create Event"); - eb.setDescription("ℹ️ A stage instance was created by: "+mentionableExecutor); + eb.setDescription("ℹ️ A stage instance was created by: " + mentionableExecutor); eb.setColor(Color.GREEN); eb.addField("Action Type", String.valueOf(ale.getType()), true); @@ -36,10 +36,11 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull Object oldValue = changeValue.getOldValue(); Object newValue = changeValue.getNewValue(); - switch(changeKey) { - case "topic" -> eb.addField("Stage Topic", "╰┈➤"+newValue, false); + switch (changeKey) { + case "topic" -> eb.addField("Stage Topic", "╰┈➤" + newValue, false); - case "privacy_level" -> eb.addField("Stage Privacy", "╰┈➤"+ StageUtils.resolveStagePrivacyLevel(newValue), false); + case "privacy_level" -> + eb.addField("Stage Privacy", "╰┈➤" + StageUtils.resolveStagePrivacyLevel(newValue), false); default -> { eb.addField("Unimplemented Change Key", changeKey, false); @@ -48,17 +49,17 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull } }); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceDeleteEventHelper.java index 2193fc6f..b71b1c26 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceDeleteEventHelper.java @@ -26,7 +26,7 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Stage Instance Delete Event"); - eb.setDescription("ℹ️ A stage instance was deleted by: "+mentionableExecutor); + eb.setDescription("ℹ️ A stage instance was deleted by: " + mentionableExecutor); eb.setColor(Color.RED); eb.addField("Action Type", String.valueOf(ale.getType()), true); @@ -36,10 +36,11 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull Object oldValue = changeValue.getOldValue(); Object newValue = changeValue.getNewValue(); - switch(changeKey) { - case "topic" -> eb.addField("Stage Topic", "╰┈➤"+oldValue, false); + switch (changeKey) { + case "topic" -> eb.addField("Stage Topic", "╰┈➤" + oldValue, false); - case "privacy_level" -> eb.addField("Stage Privacy", "╰┈➤"+ StageUtils.resolveStagePrivacyLevel(oldValue), false); + case "privacy_level" -> + eb.addField("Stage Privacy", "╰┈➤" + StageUtils.resolveStagePrivacyLevel(oldValue), false); default -> { eb.addField("Unimplemented Change Key", changeKey, false); @@ -47,17 +48,17 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull } } }); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceUpdateEventHelper.java index 2cd57a40..ac05ffdf 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceUpdateEventHelper.java @@ -26,7 +26,7 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Stage Instance Update Event"); - eb.setDescription("ℹ️ A stage instance was updated by: "+mentionableExecutor); + eb.setDescription("ℹ️ A stage instance was updated by: " + mentionableExecutor); eb.setColor(Color.YELLOW); eb.addField("Action Type", String.valueOf(ale.getType()), true); @@ -37,15 +37,15 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull Object oldValue = changeValue.getOldValue(); Object newValue = changeValue.getNewValue(); - switch(changeKey) { + switch (changeKey) { case "topic" -> { - eb.addField("Old Stage Topic", "╰┈➤"+oldValue, true); - eb.addField("New Stage Topic", "╰┈➤"+newValue, true); + eb.addField("Old Stage Topic", "╰┈➤" + oldValue, true); + eb.addField("New Stage Topic", "╰┈➤" + newValue, true); eb.addBlankField(true); } case "privacy_level" -> { - eb.addField("Old Stage Privacy", "╰┈➤"+ StageUtils.resolveStagePrivacyLevel(oldValue), true); - eb.addField("New Stage Privacy", "╰┈➤"+ StageUtils.resolveStagePrivacyLevel(newValue), true); + eb.addField("Old Stage Privacy", "╰┈➤" + StageUtils.resolveStagePrivacyLevel(oldValue), true); + eb.addField("New Stage Privacy", "╰┈➤" + StageUtils.resolveStagePrivacyLevel(newValue), true); eb.addBlankField(true); } @@ -56,17 +56,17 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull } }); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/utils/StageUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/utils/StageUtils.java index 0f253b87..c5b1a886 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/utils/StageUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/utils/StageUtils.java @@ -13,10 +13,10 @@ public class StageUtils { public static String resolveStagePrivacyLevel(@Nullable Object stagePrivacyLevelInteger) { Integer privacyLevel = NumberParseUtils.parseInt(stagePrivacyLevelInteger); - if(privacyLevel==null) return "N/A"; + if (privacyLevel == null) return "N/A"; //JDA removed this, and it technically shouldn't happen either since all stages are GUILD_ONLY now - if(privacyLevel==1) return "PUBLIC (Deprecated)"; + if (privacyLevel == 1) return "PUBLIC (Deprecated)"; return StageInstance.PrivacyLevel.fromKey(privacyLevel).name(); } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerCreateEventHelper.java index 281b6cd0..5b4567fd 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerCreateEventHelper.java @@ -29,57 +29,57 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ The following sticker was created"); + eb.setDescription("👤 **By**: " + mentionableExecutor + "\nℹ️ The following sticker was created"); eb.setColor(Color.GREEN); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - for(Map.Entry changes: ale.getChanges().entrySet()) { + for (Map.Entry changes : ale.getChanges().entrySet()) { String change = changes.getKey(); Object oldValue = changes.getValue().getOldValue(); Object newValue = changes.getValue().getNewValue(); - switch(change) { + switch (change) { case "format_type", "type", "asset", "available", "guild_id": break; case "id": - eb.addField("🆔 Sticker ID", "╰┈➤"+newValue, false); + eb.addField("🆔 Sticker ID", "╰┈➤" + newValue, false); GuildSticker sticker = event.getGuild().getStickerById(String.valueOf(newValue)); - eb.addField("🔗 Sticker Link", "╰┈➤"+(sticker!=null ? sticker.getIconUrl() : "N/A"), false); + eb.addField("🔗 Sticker Link", "╰┈➤" + (sticker != null ? sticker.getIconUrl() : "N/A"), false); break; case "tags": - eb.addField("ℹ️ Related Emoji", "╰┈➤"+newValue, false); + eb.addField("ℹ️ Related Emoji", "╰┈➤" + newValue, false); break; case "description": - eb.addField("📝 Description", "╰┈➤"+newValue, false); + eb.addField("📝 Description", "╰┈➤" + newValue, false); break; case "name": - eb.addField("🏷️ Sticker Name", "╰┈➤"+newValue, false); + eb.addField("🏷️ Sticker Name", "╰┈➤" + newValue, false); break; default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); + eb.addField(change, "from " + oldValue + " to " + newValue, false); } } - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerDeleteEventHelper.java index db813d41..616f2a70 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerDeleteEventHelper.java @@ -28,55 +28,55 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ The following sticker was deleted"); + eb.setDescription("👤 **By**: " + mentionableExecutor + "\nℹ️ The following sticker was deleted"); eb.setColor(Color.RED); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - for(Map.Entry changes: ale.getChanges().entrySet()) { + for (Map.Entry changes : ale.getChanges().entrySet()) { String change = changes.getKey(); Object oldValue = changes.getValue().getOldValue(); Object newValue = changes.getValue().getNewValue(); - switch(change) { + switch (change) { case "format_type", "type", "asset", "available", "guild_id": break; case "id": - eb.addField("🆔 Sticker ID", "╰┈➤"+oldValue, false); + eb.addField("🆔 Sticker ID", "╰┈➤" + oldValue, false); break; case "tags": - eb.addField("ℹ️ Related Emoji", "╰┈➤"+oldValue, false); + eb.addField("ℹ️ Related Emoji", "╰┈➤" + oldValue, false); break; case "description": - eb.addField("📝 Description", "╰┈➤"+oldValue, false); + eb.addField("📝 Description", "╰┈➤" + oldValue, false); break; case "name": - eb.addField("🏷️ Sticker Name", "╰┈➤"+oldValue, false); + eb.addField("🏷️ Sticker Name", "╰┈➤" + oldValue, false); break; default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); + eb.addField(change, "from " + oldValue + " to " + newValue, false); } } - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerUpdateEventHelper.java index 672b37d3..88b0c63e 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerUpdateEventHelper.java @@ -32,7 +32,7 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull GuildSticker targetSticker = event.getGuild().getStickerById(ale.getTargetId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ The following sticker was updated"); + eb.setDescription("👤 **By**: " + mentionableExecutor + "\nℹ️ The following sticker was updated"); eb.setColor(Color.YELLOW); eb.addField("Action Type", String.valueOf(ale.getType()), true); @@ -41,45 +41,45 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.addField("🏷️ Target Sticker Name", Objects.requireNonNull(targetSticker).getName(), false); eb.addField("🔗 Target Sticker Url", targetSticker.getIconUrl(), false); - for(Map.Entry changes: ale.getChanges().entrySet()) { + for (Map.Entry changes : ale.getChanges().entrySet()) { String change = changes.getKey(); Object oldValue = changes.getValue().getOldValue(); Object newValue = changes.getValue().getNewValue(); - switch(change) { + switch (change) { case "format_type", "type", "asset", "available", "guild_id", "id": break; case "tags": - eb.addField("ℹ️ Related Emoji", "╰┈➤"+"from "+oldValue+" to "+newValue, false); + eb.addField("ℹ️ Related Emoji", "╰┈➤" + "from " + oldValue + " to " + newValue, false); break; case "description": - eb.addField("📝 Description", "╰┈➤"+"from `"+oldValue+"` to `"+newValue+"`", false); + eb.addField("📝 Description", "╰┈➤" + "from `" + oldValue + "` to `" + newValue + "`", false); break; case "name": - eb.addField("🏷️ Sticker Name", "╰┈➤"+"from `"+oldValue+"` to `"+newValue+"`", false); + eb.addField("🏷️ Sticker Name", "╰┈➤" + "from `" + oldValue + "` to `" + newValue + "`", false); break; default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); + eb.addField(change, "from " + oldValue + " to " + newValue, false); } } - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadCreateEventHelper.java index b193fb7d..07a4a365 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadCreateEventHelper.java @@ -33,65 +33,65 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); ThreadChannel targetThread = event.getGuild().getThreadChannelById(ale.getTargetId()); - String mentionableTargetThread = (targetThread !=null ? targetThread.getAsMention() : ale.getTargetId()); + String mentionableTargetThread = (targetThread != null ? targetThread.getAsMention() : ale.getTargetId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ A thread has been created"); + eb.setDescription("👤 **By**: " + mentionableExecutor + "\nℹ️ A thread has been created"); eb.setColor(Color.GREEN); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - for(Map.Entry changes: ale.getChanges().entrySet()) { + for (Map.Entry changes : ale.getChanges().entrySet()) { String change = changes.getKey(); Object oldValue = changes.getValue().getOldValue(); Object newValue = changes.getValue().getNewValue(); - switch(change) { + switch (change) { case "locked": - eb.addField("🔒 Locked", "╰┈➤"+ BooleanUtils.formatToEmoji(newValue), false); + eb.addField("🔒 Locked", "╰┈➤" + BooleanUtils.formatToEmoji(newValue), false); break; case "auto_archive_duration": - eb.addField("🕒 Auto Archive Duration", "╰┈➤"+ DurationUtils.formatMinutes(newValue), false); + eb.addField("🕒 Auto Archive Duration", "╰┈➤" + DurationUtils.formatMinutes(newValue), false); break; case "rate_limit_per_user": - eb.addField("🐌 Slowmode Limit", "╰┈➤"+ DurationUtils.formatSeconds(newValue), false); + eb.addField("🐌 Slowmode Limit", "╰┈➤" + DurationUtils.formatSeconds(newValue), false); break; - // TODO make threadutils for resolving thread types + // TODO make threadutils for resolving thread types case "type": - eb.addField("📁 Thread Type", "╰┈➤"+ ChannelUtils.resolveChannelType(newValue), false); + eb.addField("📁 Thread Type", "╰┈➤" + ChannelUtils.resolveChannelType(newValue), false); break; case "archived": - eb.addField("🗄️ Archived", "╰┈➤"+ BooleanUtils.formatToEmoji(newValue), false); + eb.addField("🗄️ Archived", "╰┈➤" + BooleanUtils.formatToEmoji(newValue), false); break; case "flags": - eb.addField("🚩 Flags", "╰┈➤"+newValue, false); + eb.addField("🚩 Flags", "╰┈➤" + newValue, false); break; case "name": - eb.addField("🏷️ Thread Name", "╰┈➤"+newValue, false); + eb.addField("🏷️ Thread Name", "╰┈➤" + newValue, false); break; default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); + eb.addField(change, "from " + oldValue + " to " + newValue, false); } } - eb.addField("🧵 Target Thread", "╰┈➤"+mentionableTargetThread, false); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.addField("🧵 Target Thread", "╰┈➤" + mentionableTargetThread, false); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadDeleteEventHelper.java index ecd13ce4..4476e428 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadDeleteEventHelper.java @@ -31,62 +31,62 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ A thread has been deleted"); + eb.setDescription("👤 **By**: " + mentionableExecutor + "\nℹ️ A thread has been deleted"); eb.setColor(Color.RED); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - for(Map.Entry changes: ale.getChanges().entrySet()) { + for (Map.Entry changes : ale.getChanges().entrySet()) { String change = changes.getKey(); Object oldValue = changes.getValue().getOldValue(); Object newValue = changes.getValue().getNewValue(); - switch(change) { + switch (change) { case "🔒 locked": - eb.addField("Locked", "╰┈➤"+ BooleanUtils.formatToEmoji(oldValue), false); + eb.addField("Locked", "╰┈➤" + BooleanUtils.formatToEmoji(oldValue), false); break; case "🕒 auto_archive_duration": - eb.addField("Auto Archive Duration", "╰┈➤"+ DurationUtils.formatMinutes(oldValue), false); + eb.addField("Auto Archive Duration", "╰┈➤" + DurationUtils.formatMinutes(oldValue), false); break; case "rate_limit_per_user": - eb.addField("🐌 Slowmode Limit", "╰┈➤"+ DurationUtils.formatSeconds(oldValue), false); + eb.addField("🐌 Slowmode Limit", "╰┈➤" + DurationUtils.formatSeconds(oldValue), false); break; - // TODO make threadutils + // TODO make threadutils case "type": - eb.addField("📁 Thread Type", "╰┈➤"+ ChannelUtils.resolveChannelType(oldValue), false); + eb.addField("📁 Thread Type", "╰┈➤" + ChannelUtils.resolveChannelType(oldValue), false); break; case "archived": - eb.addField("🗄️ Archived", "╰┈➤"+ BooleanUtils.formatToEmoji(oldValue), false); + eb.addField("🗄️ Archived", "╰┈➤" + BooleanUtils.formatToEmoji(oldValue), false); break; case "flags": - eb.addField("🚩 Flags", "╰┈➤"+oldValue, false); + eb.addField("🚩 Flags", "╰┈➤" + oldValue, false); break; case "name": - eb.addField("🏷️ Thread Name", "╰┈➤"+oldValue, false); + eb.addField("🏷️ Thread Name", "╰┈➤" + oldValue, false); break; default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); + eb.addField(change, "from " + oldValue + " to " + newValue, false); } } - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadUpdateEventHelper.java index 893915be..9a688725 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadUpdateEventHelper.java @@ -22,9 +22,9 @@ @Slf4j public class ThreadUpdateEventHelper { - public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { - AuditLogEntry ale = event.getEntry(); + AuditLogEntry ale = event.getEntry(); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Thread Update Event"); @@ -33,81 +33,81 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); ThreadChannel targetThread = event.getGuild().getThreadChannelById(ale.getTargetId()); - String mentionableTargetThread = (targetThread !=null ? targetThread.getAsMention() : ale.getTargetId()); + String mentionableTargetThread = (targetThread != null ? targetThread.getAsMention() : ale.getTargetId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ A thread has been updated"); + eb.setDescription("👤 **By**: " + mentionableExecutor + "\nℹ️ A thread has been updated"); eb.setColor(Color.YELLOW); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); eb.addBlankField(true); - for(Map.Entry changes: ale.getChanges().entrySet()) { + for (Map.Entry changes : ale.getChanges().entrySet()) { String change = changes.getKey(); Object oldValue = changes.getValue().getOldValue(); Object newValue = changes.getValue().getNewValue(); - switch(change) { + switch (change) { case "locked": - eb.addField("🔒 Old Lock Status", "╰┈➤"+ BooleanUtils.formatToEmoji(oldValue), true); - eb.addField("🔒 New Lock Status", "╰┈➤"+ BooleanUtils.formatToEmoji(newValue), true); + eb.addField("🔒 Old Lock Status", "╰┈➤" + BooleanUtils.formatToEmoji(oldValue), true); + eb.addField("🔒 New Lock Status", "╰┈➤" + BooleanUtils.formatToEmoji(newValue), true); eb.addBlankField(true); break; case "auto_archive_duration": - eb.addField("🕒 Old Auto Archive Duration", "╰┈➤"+ DurationUtils.formatMinutes(oldValue), true); - eb.addField("🕒 New Auto Archive Duration", "╰┈➤"+ DurationUtils.formatMinutes(newValue), true); + eb.addField("🕒 Old Auto Archive Duration", "╰┈➤" + DurationUtils.formatMinutes(oldValue), true); + eb.addField("🕒 New Auto Archive Duration", "╰┈➤" + DurationUtils.formatMinutes(newValue), true); eb.addBlankField(true); break; case "rate_limit_per_user": - eb.addField("🐌 Old Slowmode Limit", "╰┈➤"+ DurationUtils.formatSeconds(oldValue), true); - eb.addField("🐌 New Slowmode Limit", "╰┈➤"+ DurationUtils.formatSeconds(newValue), true); + eb.addField("🐌 Old Slowmode Limit", "╰┈➤" + DurationUtils.formatSeconds(oldValue), true); + eb.addField("🐌 New Slowmode Limit", "╰┈➤" + DurationUtils.formatSeconds(newValue), true); eb.addBlankField(true); break; - // TODO make threadutils + // TODO make threadutils case "type": - eb.addField("📁 Old Thread Type", "╰┈➤"+ChannelUtils.resolveChannelType(oldValue), true); - eb.addField("📁 New Thread Type", "╰┈➤"+ChannelUtils.resolveChannelType(newValue), true); + eb.addField("📁 Old Thread Type", "╰┈➤" + ChannelUtils.resolveChannelType(oldValue), true); + eb.addField("📁 New Thread Type", "╰┈➤" + ChannelUtils.resolveChannelType(newValue), true); eb.addBlankField(true); break; case "archived": - eb.addField("🗄️ Old Archive Status", "╰┈➤"+ BooleanUtils.formatToEmoji(oldValue), true); - eb.addField("🗄️ New Archive Status", "╰┈➤"+ BooleanUtils.formatToEmoji(newValue), true); + eb.addField("🗄️ Old Archive Status", "╰┈➤" + BooleanUtils.formatToEmoji(oldValue), true); + eb.addField("🗄️ New Archive Status", "╰┈➤" + BooleanUtils.formatToEmoji(newValue), true); eb.addBlankField(true); break; case "flags": - eb.addField("🚩 Old Flag Value", "╰┈➤"+oldValue, true); - eb.addField("🚩 New Flag Value", "╰┈➤"+newValue, true); + eb.addField("🚩 Old Flag Value", "╰┈➤" + oldValue, true); + eb.addField("🚩 New Flag Value", "╰┈➤" + newValue, true); eb.addBlankField(true); break; case "name": - eb.addField("🏷️ Old Thread Name", "╰┈➤"+oldValue, true); - eb.addField("🏷️ New Thread Name", "╰┈➤"+newValue, true); + eb.addField("🏷️ Old Thread Name", "╰┈➤" + oldValue, true); + eb.addField("🏷️ New Thread Name", "╰┈➤" + newValue, true); eb.addBlankField(true); break; default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); + eb.addField(change, "from " + oldValue + " to " + newValue, false); } } - eb.addField("🧵 Target Thread", "╰┈➤"+mentionableTargetThread, false); - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.addField("🧵 Target Thread", "╰┈➤" + mentionableTargetThread, false); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ - log.warn("Embed is empty or too long (current length: {}).", eb.length()); - return; - } + MessageEmbed mb = eb.build(); + if (!mb.isSendable()) { + log.warn("Embed is empty or too long (current length: {}).", eb.length()); + return; + } - TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); - } + TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); + if (sendingChannel != null && sendingChannel.canTalk()) { + sendingChannel.sendMessageEmbeds(mb).queue(); + } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookCreateEventHelper.java index 9a52e887..600a8c8b 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookCreateEventHelper.java @@ -29,53 +29,53 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ A webhook has been created"); + eb.setDescription("👤 **By**: " + mentionableExecutor + "\nℹ️ A webhook has been created"); eb.setColor(Color.GREEN); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - for(Map.Entry changes: ale.getChanges().entrySet()) { + for (Map.Entry changes : ale.getChanges().entrySet()) { String change = changes.getKey(); Object oldValue = changes.getValue().getOldValue(); Object newValue = changes.getValue().getNewValue(); - switch(change) { + switch (change) { case "type": - eb.addField("Webhook Type", "╰┈➤"+newValue, false); + eb.addField("Webhook Type", "╰┈➤" + newValue, false); eb.addField("Webhook Type Explanation", "-# 0 for PING; 1 for Event", false); break; case "avatar_Hash": - eb.addField("Avatar Hash", "╰┈➤"+newValue, false); + eb.addField("Avatar Hash", "╰┈➤" + newValue, false); break; case "channel_id": GuildChannel targetChannel = event.getGuild().getGuildChannelById(String.valueOf(newValue)); - String mentionableTargetChannel = (targetChannel !=null ? targetChannel.getAsMention() : String.valueOf(newValue)); - eb.addField("Channel", "╰┈➤"+mentionableTargetChannel, false); + String mentionableTargetChannel = (targetChannel != null ? targetChannel.getAsMention() : String.valueOf(newValue)); + eb.addField("Channel", "╰┈➤" + mentionableTargetChannel, false); break; case "name": - eb.addField("Webhook Name", "╰┈➤"+newValue, false); + eb.addField("Webhook Name", "╰┈➤" + newValue, false); break; default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); + eb.addField(change, "from " + oldValue + " to " + newValue, false); } } - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookRemoveEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookRemoveEventHelper.java index bf7aa732..16b3f093 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookRemoveEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookRemoveEventHelper.java @@ -29,52 +29,52 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ A webhook has been removed"); + eb.setDescription("👤 **By**: " + mentionableExecutor + "\nℹ️ A webhook has been removed"); eb.setColor(Color.RED); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - for(Map.Entry changes: ale.getChanges().entrySet()) { + for (Map.Entry changes : ale.getChanges().entrySet()) { String change = changes.getKey(); Object oldValue = changes.getValue().getOldValue(); Object newValue = changes.getValue().getNewValue(); - switch(change) { + switch (change) { case "type": - eb.addField("📡 Webhook Type", "╰┈➤"+oldValue, false); + eb.addField("📡 Webhook Type", "╰┈➤" + oldValue, false); break; case "avatar_hash": - eb.addField("🖼️ Avatar Hash", "╰┈➤"+oldValue, false); + eb.addField("🖼️ Avatar Hash", "╰┈➤" + oldValue, false); break; case "channel_id": GuildChannel targetChannel = event.getGuild().getGuildChannelById(String.valueOf(oldValue)); - String mentionableTargetChannel = (targetChannel !=null ? targetChannel.getAsMention() : String.valueOf(oldValue)); - eb.addField("💬 Channel", "╰┈➤"+mentionableTargetChannel, false); + String mentionableTargetChannel = (targetChannel != null ? targetChannel.getAsMention() : String.valueOf(oldValue)); + eb.addField("💬 Channel", "╰┈➤" + mentionableTargetChannel, false); break; case "name": - eb.addField("🏷️ Webhook Name", "╰┈➤"+oldValue, false); + eb.addField("🏷️ Webhook Name", "╰┈➤" + oldValue, false); break; default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); + eb.addField(change, "from " + oldValue + " to " + newValue, false); } } - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookUpdateEventHelper.java index 3cb87e90..d14364e5 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookUpdateEventHelper.java @@ -29,52 +29,52 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - eb.setDescription("👤 **By**: "+mentionableExecutor+"\nℹ️ A webhook has been updated"); + eb.setDescription("👤 **By**: " + mentionableExecutor + "\nℹ️ A webhook has been updated"); eb.setColor(Color.YELLOW); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - for(Map.Entry changes: ale.getChanges().entrySet()) { + for (Map.Entry changes : ale.getChanges().entrySet()) { String change = changes.getKey(); Object oldValue = changes.getValue().getOldValue(); Object newValue = changes.getValue().getNewValue(); - switch(change) { + switch (change) { case "type": eb.addField("📡 Webhook Type", "╰┈➤ " + newValue, false); break; case "avatar_hash": - eb.addField("🖼️ Avatar Hash", "╰┈➤"+"from `"+oldValue+"` to `"+newValue+"`", false); + eb.addField("🖼️ Avatar Hash", "╰┈➤" + "from `" + oldValue + "` to `" + newValue + "`", false); break; case "channel_id": GuildChannel targetChannel = event.getGuild().getGuildChannelById(String.valueOf(newValue)); - String mentionableTargetChannel = (targetChannel !=null ? targetChannel.getAsMention() : String.valueOf(newValue)); - eb.addField("💬 New Channel", "╰┈➤"+mentionableTargetChannel, false); + String mentionableTargetChannel = (targetChannel != null ? targetChannel.getAsMention() : String.valueOf(newValue)); + eb.addField("💬 New Channel", "╰┈➤" + mentionableTargetChannel, false); break; case "name": - eb.addField("🏷️ Webhook Name", "╰┈➤"+"from "+oldValue+" to "+newValue, false); + eb.addField("🏷️ Webhook Name", "╰┈➤" + "from " + oldValue + " to " + newValue, false); break; default: - eb.addField(change, "from "+oldValue+" to "+newValue, false); + eb.addField(change, "from " + oldValue + " to " + newValue, false); } } - eb.setFooter("Audit Log Entry ID: "+ale.getId()); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); MessageEmbed mb = eb.build(); - if(!mb.isSendable()){ + if (!mb.isSendable()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/setup/AuditLogSetupCommandListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/setup/AuditLogSetupCommandListener.java index 7d5b38a8..16a044d2 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/setup/AuditLogSetupCommandListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/setup/AuditLogSetupCommandListener.java @@ -22,38 +22,38 @@ public class AuditLogSetupCommandListener extends ListenerAdapter { @NonNull private static final AuditLogRegistrationClient client = new AuditLogRegistrationClient(EnvConfig.get("API_URL")); - @Override - public void onSlashCommandInteraction(@NonNull SlashCommandInteractionEvent event) { + @Override + public void onSlashCommandInteraction(@NonNull SlashCommandInteractionEvent event) { - if(!event.getName().equals("auditlog")){ + if (!event.getName().equals("auditlog")) { return; } - if(event.getSubcommandName()==null) { + if (event.getSubcommandName() == null) { return; } - switch(event.getSubcommandName()) { + switch (event.getSubcommandName()) { - case "set": - setAuditLogging(event); - break; + case "set": + setAuditLogging(event); + break; - case "view": - retrieveAuditLoggingChannel(event); - break; + case "view": + retrieveAuditLoggingChannel(event); + break; - case "remove": - unsetAuditLogging(event); - break; + case "remove": + unsetAuditLogging(event); + break; - default: - break; - } - } + default: + break; + } + } - private void setAuditLogging(@NonNull SlashCommandInteractionEvent event) { + private void setAuditLogging(@NonNull SlashCommandInteractionEvent event) { // Only members in a guild with MANAGE_SERVER permissions should be able to use this command Member callerMember = event.getMember(); @@ -92,7 +92,7 @@ private void setAuditLogging(@NonNull SlashCommandInteractionEvent event) { } - private void retrieveAuditLoggingChannel(@NonNull SlashCommandInteractionEvent event) { + private void retrieveAuditLoggingChannel(@NonNull SlashCommandInteractionEvent event) { // Only members in a guild with MANAGE_SERVER permissions should be able to use this command Member callerMember = event.getMember(); @@ -104,39 +104,39 @@ private void retrieveAuditLoggingChannel(@NonNull SlashCommandInteractionEvent e } if (!callerMember.hasPermission(Permission.MANAGE_SERVER)) { - event.reply("❌ You don't have the permission required to use this command.").setEphemeral(true).queue(); - return; - } - + event.reply("❌ You don't have the permission required to use this command.").setEphemeral(true).queue(); + return; + } + - // Call the API to retrieve the registered channel + // Call the API to retrieve the registered channel Optional response = client.getRegisteredGuild(callerGuild.getId()); - // if there is no channel_id for the given guild_id returned by the API, then inform - // the user of the same, else link the channel that has been registered + // if there is no channel_id for the given guild_id returned by the API, then inform + // the user of the same, else link the channel that has been registered response.ifPresentOrElse(success -> { String registeredChannelId = success.getChannelId(); - GuildChannel registeredChannel = event.getJDA().getGuildChannelById(registeredChannelId); + GuildChannel registeredChannel = event.getJDA().getGuildChannelById(registeredChannelId); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("📝 Audit Log Configuration"); eb.setColor(Color.CYAN); - eb.addField("✅ Channel Registration Check", "╰┈➤"+(registeredChannel!=null ? registeredChannel.getAsMention() : registeredChannelId)+ " is found to be registered as the audit log channel", false); + eb.addField("✅ Channel Registration Check", "╰┈➤" + (registeredChannel != null ? registeredChannel.getAsMention() : registeredChannelId) + " is found to be registered as the audit log channel", false); MessageEmbed mb = eb.build(); event.replyEmbeds(mb).setEphemeral(false).queue(); }, () -> { EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("📝 Audit Log Configuration"); - eb.addField("⚠️ Channel Registration Check", "╰┈➤"+"No channel has been registered for audit logs", false); + eb.addField("⚠️ Channel Registration Check", "╰┈➤" + "No channel has been registered for audit logs", false); eb.setColor(Color.YELLOW); MessageEmbed mb = eb.build(); event.replyEmbeds(mb).setEphemeral(false).queue(); }); - } + } - private void unsetAuditLogging(SlashCommandInteractionEvent event) { + private void unsetAuditLogging(SlashCommandInteractionEvent event) { // Only members in a guild with MANAGE_SERVER permissions should be able to use this command Member callerMember = event.getMember(); @@ -159,18 +159,18 @@ private void unsetAuditLogging(SlashCommandInteractionEvent event) { eb.setTitle("📝 Audit Log Configuration"); if (success) { - eb.addField("✅ Channel Removal", "╰┈➤"+"Channel successfully unset", false); + eb.addField("✅ Channel Removal", "╰┈➤" + "Channel successfully unset", false); eb.setColor(Color.GREEN); MessageEmbed mb = eb.build(); event.replyEmbeds(mb).setEphemeral(false).queue(); } else { - eb.addField("❌ Channel Removal Failure", "╰┈➤"+"Channel could not be unset.\nThis may be because no channel has been registered in this guild yet.", false); + eb.addField("❌ Channel Removal Failure", "╰┈➤" + "Channel could not be unset.\nThis may be because no channel has been registered in this guild yet.", false); eb.setColor(Color.YELLOW); MessageEmbed mb = eb.build(); event.replyEmbeds(mb).setEphemeral(false).queue(); } - } + } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/event/MessageLogListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/event/MessageLogListener.java index efdbce1d..b3c66c02 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/event/MessageLogListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/event/MessageLogListener.java @@ -35,19 +35,19 @@ public class MessageLogListener extends ListenerAdapter { private final Executor vThreadPool; - @Override - public void onMessageReceived(@NonNull MessageReceivedEvent event) { + @Override + public void onMessageReceived(@NonNull MessageReceivedEvent event) { - // if the author is a bot or system, don't log - if(event.getAuthor().isBot() || event.getAuthor().isSystem()) { - return; - } - // don't register non-textual contents - if(event.getMessage().getContentRaw().isEmpty()) { - return; - } + // if the author is a bot or system, don't log + if (event.getAuthor().isBot() || event.getAuthor().isSystem()) { + return; + } + // don't register non-textual contents + if (event.getMessage().getContentRaw().isEmpty()) { + return; + } - vThreadPool.execute(()-> { + vThreadPool.execute(() -> { // get the guild id for which the event was fired String guildId = event.getGuild().getId(); @@ -60,17 +60,17 @@ public void onMessageReceived(@NonNull MessageReceivedEvent event) { contentClient.logMessage(messageId, messageContent, authorId); }); - }); - } - - @Override - public void onMessageUpdate(@NonNull MessageUpdateEvent event) { + }); + } - if(event.getAuthor().isBot() || event.getAuthor().isSystem()) { - return; - } + @Override + public void onMessageUpdate(@NonNull MessageUpdateEvent event) { - vThreadPool.execute(()->{ + if (event.getAuthor().isBot() || event.getAuthor().isSystem()) { + return; + } + + vThreadPool.execute(() -> { // Get the guild id for which the event was fired String guildId = event.getGuild().getId(); @@ -93,7 +93,7 @@ public void onMessageUpdate(@NonNull MessageUpdateEvent event) { // Ignore events where the message content wasn't edited (e.g., pin, embed resolve, thread creates and updates) // This is required since MessageUpdateEvent is triggered in case of pins and embed resolves with no change to content - if(updatedMessage.equals(oldMessage)) { + if (updatedMessage.equals(oldMessage)) { return; } @@ -104,7 +104,7 @@ public void onMessageUpdate(@NonNull MessageUpdateEvent event) { EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("📝 Message Edit Event"); - eb.setDescription("A message sent by "+event.getAuthor().getAsMention()+" has been edited in: "+event.getJumpUrl()); + eb.setDescription("A message sent by " + event.getAuthor().getAsMention() + " has been edited in: " + event.getJumpUrl()); eb.setColor(Color.YELLOW); oldMessageSplits.forEach(split -> eb.addField("Old Message", split, false)); @@ -117,7 +117,7 @@ public void onMessageUpdate(@NonNull MessageUpdateEvent event) { // send the old and updated message to the registered channel TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } @@ -125,13 +125,13 @@ public void onMessageUpdate(@NonNull MessageUpdateEvent event) { contentClient.updateMessage(messageId, updatedMessage, event.getAuthor().getId()); }); }); - }); - } - - @Override - public void onMessageDelete(@NonNull MessageDeleteEvent event) { + }); + } + + @Override + public void onMessageDelete(@NonNull MessageDeleteEvent event) { - vThreadPool.execute(()-> { + vThreadPool.execute(() -> { // Get the guild id for which the event was fired String guildId = event.getGuild().getId(); @@ -154,17 +154,17 @@ public void onMessageDelete(@NonNull MessageDeleteEvent event) { String deletedMessageAuthorId = contentEntity.getAuthorId(); User author = event.getJDA().getUserById(deletedMessageAuthorId); - String mentionableAuthor = (author !=null ? author.getAsMention() : deletedMessageAuthorId); + String mentionableAuthor = (author != null ? author.getAsMention() : deletedMessageAuthorId); // Splitting is required because each field in an embed can display only up-to 1024 characters List deletedMessageSplits = Splitter.fixedLength(1024).splitToList(deletedMessage); EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("🗑️ Message Delete Event"); - eb.setDescription("A message sent by "+mentionableAuthor+" has been deleted from "+ event.getChannel().getAsMention()); + eb.setDescription("A message sent by " + mentionableAuthor + " has been deleted from " + event.getChannel().getAsMention()); eb.setColor(Color.RED); - deletedMessageSplits.forEach(split-> eb.addField("Deleted Message", split, false)); + deletedMessageSplits.forEach(split -> eb.addField("Deleted Message", split, false)); eb.setFooter(event.getGuild().getName()); eb.setTimestamp(Instant.now()); @@ -173,7 +173,7 @@ public void onMessageDelete(@NonNull MessageDeleteEvent event) { MessageEmbed mb = eb.build(); TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if(sendingChannel!=null && sendingChannel.canTalk()) { + if (sendingChannel != null && sendingChannel.canTalk()) { sendingChannel.sendMessageEmbeds(mb).queue(); } @@ -181,6 +181,6 @@ public void onMessageDelete(@NonNull MessageDeleteEvent event) { contentClient.deleteMessage(messageId); }); }); - }); - } + }); + } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/setup/MessageLogSetupCommandListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/setup/MessageLogSetupCommandListener.java index 71c0019e..d90aaf3d 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/setup/MessageLogSetupCommandListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/setup/MessageLogSetupCommandListener.java @@ -22,37 +22,37 @@ public class MessageLogSetupCommandListener extends ListenerAdapter { @NonNull private static final MessageLogRegistrationClient client = new MessageLogRegistrationClient(EnvConfig.get("API_URL")); - @Override - public void onSlashCommandInteraction(@NonNull SlashCommandInteractionEvent event) { + @Override + public void onSlashCommandInteraction(@NonNull SlashCommandInteractionEvent event) { - if(!event.getName().equals("messagelog")){ + if (!event.getName().equals("messagelog")) { return; } - if(event.getSubcommandName()==null) { + if (event.getSubcommandName() == null) { return; } - - switch(event.getSubcommandName()) { - - case "set": - setMessageLogging(event); - break; - - case "view": - retrieveMessageLoggingChannel(event); - break; - - case "remove": - unsetMessageLogging(event); - break; - - default: - break; - } - } - - private void setMessageLogging(@NonNull SlashCommandInteractionEvent event) { + + switch (event.getSubcommandName()) { + + case "set": + setMessageLogging(event); + break; + + case "view": + retrieveMessageLoggingChannel(event); + break; + + case "remove": + unsetMessageLogging(event); + break; + + default: + break; + } + } + + private void setMessageLogging(@NonNull SlashCommandInteractionEvent event) { // Only members in a guild with ADMINISTRATOR permissions should be able to use this command Member callerMember = event.getMember(); @@ -76,7 +76,7 @@ private void setMessageLogging(@NonNull SlashCommandInteractionEvent event) { eb.setTitle("Message Log Registration"); if (success) { - eb.addField("✅ Channel Registration Success","╰┈➤"+"All edited and deleted messages will be logged here", false); + eb.addField("✅ Channel Registration Success", "╰┈➤" + "All edited and deleted messages will be logged here", false); eb.setColor(Color.GREEN); MessageEmbed mb = eb.build(); @@ -90,8 +90,8 @@ private void setMessageLogging(@NonNull SlashCommandInteractionEvent event) { } } - - private void retrieveMessageLoggingChannel(@NonNull SlashCommandInteractionEvent event) { + + private void retrieveMessageLoggingChannel(@NonNull SlashCommandInteractionEvent event) { // Only members in a guild with ADMINISTRATOR permissions should be able to use this command Member callerMember = event.getMember(); @@ -117,21 +117,21 @@ private void retrieveMessageLoggingChannel(@NonNull SlashCommandInteractionEvent EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("📝 Message Log Configuration"); eb.setColor(Color.CYAN); - eb.addField("✅ Channel Registration Check", "╰┈➤"+(registeredChannel!=null ? registeredChannel.getAsMention() : registeredChannelId)+ " is found to be registered as the message log channel", false); + eb.addField("✅ Channel Registration Check", "╰┈➤" + (registeredChannel != null ? registeredChannel.getAsMention() : registeredChannelId) + " is found to be registered as the message log channel", false); MessageEmbed mb = eb.build(); event.replyEmbeds(mb).setEphemeral(false).queue(); }, () -> { EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("📝 Message Log Configuration"); - eb.addField("⚠️ Channel Registration Check", "╰┈➤"+"No channel has been registered for message logs", false); + eb.addField("⚠️ Channel Registration Check", "╰┈➤" + "No channel has been registered for message logs", false); eb.setColor(Color.YELLOW); MessageEmbed mb = eb.build(); event.replyEmbeds(mb).setEphemeral(false).queue(); }); - } - - private void unsetMessageLogging(@NonNull SlashCommandInteractionEvent event) { + } + + private void unsetMessageLogging(@NonNull SlashCommandInteractionEvent event) { // Only members in a guild with ADMINISTRATOR permissions should be able to use this command Member callerMember = event.getMember(); @@ -160,7 +160,7 @@ private void unsetMessageLogging(@NonNull SlashCommandInteractionEvent event) { MessageEmbed mb = eb.build(); event.replyEmbeds(mb).setEphemeral(false).queue(); } else { - eb.addField("❌ Channel Removal Failure", "╰┈➤"+"Channel could not be unset.\nThis may be because no channel has been registered in this guild yet.", false); + eb.addField("❌ Channel Removal Failure", "╰┈➤" + "Channel could not be unset.\nThis may be because no channel has been registered in this guild yet.", false); eb.setColor(Color.YELLOW); MessageEmbed mb = eb.build(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/ActivityUpdateListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/ActivityUpdateListener.java index 740c59a3..eac3037b 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/ActivityUpdateListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/ActivityUpdateListener.java @@ -10,30 +10,30 @@ import org.jetbrains.annotations.NotNull; /* - * This class updates the number of servers the bot is in + * This class updates the number of servers the bot is in */ @RequiredArgsConstructor public class ActivityUpdateListener extends ListenerAdapter { - private final ShardManager manager; + private final ShardManager manager; - @Override - public void onReady(@NotNull ReadyEvent event) { // update on cold start - updateActivity(); - } + @Override + public void onReady(@NotNull ReadyEvent event) { // update on cold start + updateActivity(); + } - @Override - public void onGuildJoin(@NotNull GuildJoinEvent event) { // update on guild join - updateActivity(); - } + @Override + public void onGuildJoin(@NotNull GuildJoinEvent event) { // update on guild join + updateActivity(); + } - @Override - public void onGuildLeave(@NotNull GuildLeaveEvent event) { // update on guild leave - updateActivity(); - } + @Override + public void onGuildLeave(@NotNull GuildLeaveEvent event) { // update on guild leave + updateActivity(); + } - private void updateActivity() { - manager.setActivity(Activity.customStatus("Monitoring In: "+manager.getGuildCache().size() + " Servers")); - } + private void updateActivity() { + manager.setActivity(Activity.customStatus("Monitoring In: " + manager.getGuildCache().size() + " Servers")); + } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/BotSetupInstructionCommandListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/BotSetupInstructionCommandListener.java index 704cf4f2..36e60fde 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/BotSetupInstructionCommandListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/BotSetupInstructionCommandListener.java @@ -11,56 +11,56 @@ import java.time.Instant; public class BotSetupInstructionCommandListener extends ListenerAdapter { - - @Override - public void onSlashCommandInteraction(@NonNull SlashCommandInteractionEvent event) { - - if (event.getName().equals("setup")) { - - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("🛠️ Setup Guide for " + ProjectInfo.APPNAME); - eb.setDescription("Welcome to **" + ProjectInfo.APPNAME + "**!\nHere's how to get started using the bot in your server."); - eb.setColor(Color.decode("#38e8bc")); - - eb.addField("1️⃣ Register Audit Log Channel", - "- Use `/auditlog set` to **register the current channel** for receiving audit log updates.\n╰┈➤ User must have `Manage Server` permission.", - false); - - eb.addField("2️⃣ View Registered Audit Log Channel", - "- Use `/auditlog view` to **check which channel** is currently registered for audit logs.\nThis is helpful if you're unsure where the audit logs are going.\n╰┈➤ User must have `Manage Server` permission.", - false); - - eb.addField("3️⃣ Unregister Audit Log Channel", - "- Use `/auditlog remove` to **unset the audit log channel** if you wish to stop logging or switch to another one.\n╰┈➤ User must have `Manage Server` permission.", - false); - - eb.addBlankField(false); - - eb.addField("4️⃣ Register Message Log Channel", - "- Use `/messagelog set` to **register the current channel** for receiving message logs.\n╰┈➤ User must have the `Administrator` permission.", - false); - - eb.addField("5️⃣ View Registered Message Log Channel", - "- Use `/messagelog view` to **check which channel** is currently registered for message logs.\nThis is helpful if you're unsure where the message logs are going.\n╰┈➤ User must have `Administrator` permission.", - false); - - eb.addField("6️⃣ Unregister Message Log Channel", - "- Use `/messagelog remove` to **unset the message log channel** if you wish to stop logging or switch to another one.\n╰┈➤ User must have `Administrator` permission.", - false); - - eb.addBlankField(false); - - eb.addField("7️⃣ View Server Stats", - "- Use `/stats` to **get useful server information** like member count, channel count, and more.", - false); - - eb.addField("📬 Need help?", "Create an issue on [GitHub](" + ProjectInfo.PROJECT_ISSUE_LINK+")", false); - eb.setFooter(ProjectInfo.APPNAME+" "+ProjectInfo.VERSION); - eb.setTimestamp(Instant.now()); - - MessageEmbed mb = eb.build(); - event.replyEmbeds(mb).setEphemeral(false).queue(); - } - } + + @Override + public void onSlashCommandInteraction(@NonNull SlashCommandInteractionEvent event) { + + if (event.getName().equals("setup")) { + + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("🛠️ Setup Guide for " + ProjectInfo.APPNAME); + eb.setDescription("Welcome to **" + ProjectInfo.APPNAME + "**!\nHere's how to get started using the bot in your server."); + eb.setColor(Color.decode("#38e8bc")); + + eb.addField("1️⃣ Register Audit Log Channel", + "- Use `/auditlog set` to **register the current channel** for receiving audit log updates.\n╰┈➤ User must have `Manage Server` permission.", + false); + + eb.addField("2️⃣ View Registered Audit Log Channel", + "- Use `/auditlog view` to **check which channel** is currently registered for audit logs.\nThis is helpful if you're unsure where the audit logs are going.\n╰┈➤ User must have `Manage Server` permission.", + false); + + eb.addField("3️⃣ Unregister Audit Log Channel", + "- Use `/auditlog remove` to **unset the audit log channel** if you wish to stop logging or switch to another one.\n╰┈➤ User must have `Manage Server` permission.", + false); + + eb.addBlankField(false); + + eb.addField("4️⃣ Register Message Log Channel", + "- Use `/messagelog set` to **register the current channel** for receiving message logs.\n╰┈➤ User must have the `Administrator` permission.", + false); + + eb.addField("5️⃣ View Registered Message Log Channel", + "- Use `/messagelog view` to **check which channel** is currently registered for message logs.\nThis is helpful if you're unsure where the message logs are going.\n╰┈➤ User must have `Administrator` permission.", + false); + + eb.addField("6️⃣ Unregister Message Log Channel", + "- Use `/messagelog remove` to **unset the message log channel** if you wish to stop logging or switch to another one.\n╰┈➤ User must have `Administrator` permission.", + false); + + eb.addBlankField(false); + + eb.addField("7️⃣ View Server Stats", + "- Use `/stats` to **get useful server information** like member count, channel count, and more.", + false); + + eb.addField("📬 Need help?", "Create an issue on [GitHub](" + ProjectInfo.PROJECT_ISSUE_LINK + ")", false); + eb.setFooter(ProjectInfo.APPNAME + " " + ProjectInfo.VERSION); + eb.setTimestamp(Instant.now()); + + MessageEmbed mb = eb.build(); + event.replyEmbeds(mb).setEphemeral(false).queue(); + } + } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/SelfKickListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/SelfKickListener.java index 38a50527..b7f7e1c4 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/SelfKickListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/SelfKickListener.java @@ -17,21 +17,21 @@ @RequiredArgsConstructor public class SelfKickListener extends ListenerAdapter { - @NonNull - private static final AuditLogRegistrationClient alClient = new AuditLogRegistrationClient(EnvConfig.get("API_URL")); + @NonNull + private static final AuditLogRegistrationClient alClient = new AuditLogRegistrationClient(EnvConfig.get("API_URL")); - @NonNull - private static final MessageLogRegistrationClient mlClient = new MessageLogRegistrationClient(EnvConfig.get("API_URL")); + @NonNull + private static final MessageLogRegistrationClient mlClient = new MessageLogRegistrationClient(EnvConfig.get("API_URL")); - private final Executor vThreadPool; + private final Executor vThreadPool; - @Override - public void onGuildLeave(@NonNull GuildLeaveEvent event) { + @Override + public void onGuildLeave(@NonNull GuildLeaveEvent event) { - Guild leftGuild = event.getGuild(); - vThreadPool.execute(()->{ - alClient.deleteRegisteredGuild(leftGuild.getId()); - mlClient.deleteRegisteredGuild(leftGuild.getId()); - }); - } + Guild leftGuild = event.getGuild(); + vThreadPool.execute(() -> { + alClient.deleteRegisteredGuild(leftGuild.getId()); + mlClient.deleteRegisteredGuild(leftGuild.getId()); + }); + } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/ServerStatCommandListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/ServerStatCommandListener.java index 8671536a..3c8d97bf 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/ServerStatCommandListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/ServerStatCommandListener.java @@ -15,76 +15,74 @@ import java.util.List; import java.util.Objects; -public class ServerStatCommandListener extends ListenerAdapter{ - - @Override - public void onSlashCommandInteraction(@NonNull SlashCommandInteractionEvent event) { - - if(event.getName().equals("stats")) { - - Guild guild = event.getGuild(); - if (guild == null) { - event.reply("You can only use this command in Guilds").setEphemeral(true).queue(); - return; - } +public class ServerStatCommandListener extends ListenerAdapter { - List members = guild.getMemberCache().asList(); - int botCount = 0; - int userCount = 0; - int onlineUserCount = 0; - for(Member member: members) { - if(member.getUser().isBot()) { - botCount++; - } - - else { - OnlineStatus status = member.getOnlineStatus(); - if(status.equals(OnlineStatus.DO_NOT_DISTURB) || status.equals(OnlineStatus.IDLE) || status.equals(OnlineStatus.ONLINE)) { - onlineUserCount++; - } - userCount++; - } - } - - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("📊 Server Statistics 📊"); - eb.setDescription("📁 Server Statistics For: **"+guild.getName()+"**"); - eb.setThumbnail(guild.getIconUrl()); - eb.setColor(Color.PINK); - - eb.addField("🏠 Guild Name", "╰┈➤"+guild.getName(), false); - eb.addField("👑 Guild Owner", "╰┈➤"+ Objects.requireNonNull(guild.getMemberById(guild.getOwnerId())).getAsMention(), false); - eb.addField("📅 Guild Created On", "╰┈➤"+ DurationUtils.isoToLocalTimeCounter(guild.getTimeCreated()), false); - eb.addField("🔗 Guild Vanity URL", "╰┈➤"+(guild.getVanityUrl() !=null ? guild.getVanityUrl() : "Not Set"), false); - - eb.addField("👥 Member Count", "╰┈➤"+userCount, true); - eb.addField("🤖 Bot Count", "╰┈➤"+botCount, true); - eb.addField("🟢 Members Online", "╰┈➤"+onlineUserCount+"/"+userCount, true); - - List boosters = guild.getBoosters(); - StringBuilder mentionableBoosters = new StringBuilder(); - for(Member booster: boosters) { - mentionableBoosters.append(booster.getAsMention()).append(" "); - } - eb.addField("🚀 Guild Boosters ", "╰┈➤"+mentionableBoosters, false); - eb.addField("💖 Guild Boost Count", "╰┈➤"+guild.getBoostCount(), false); - eb.addField("📎 Booster Role", "╰┈➤"+(guild.getBoostRole() !=null ? guild.getBoostRole().getAsMention() : "No Boost Role Found"), false); - eb.addField("🗼 Boost Tier", "╰┈➤"+ guild.getBoostTier(), false); - - eb.addField("🌐 Locale", "╰┈➤"+guild.getLocale().getNativeName(), true); - eb.addField("🔒 Verification", "╰┈➤"+guild.getVerificationLevel().name(), true); - eb.addField("🧱 Roles", "╰┈➤"+guild.getRoles().size(), true); - eb.addField("🗂️ Categories", "╰┈➤"+guild.getCategories().size(), true); - eb.addField("💬 Text Channels", "╰┈➤"+guild.getTextChannels().size(), true); - eb.addField("🔊 Voice Channels", "╰┈➤"+guild.getVoiceChannels().size(), true); + @Override + public void onSlashCommandInteraction(@NonNull SlashCommandInteractionEvent event) { - eb.addField("📋 Data Requested By", "╰┈➤"+ Objects.requireNonNull(event.getMember()).getAsMention(), false); - eb.setFooter("📋 Stats By: PaperTrail 📋"); - eb.setTimestamp(Instant.now()); - - MessageEmbed mb = eb.build(); - event.replyEmbeds(mb).setEphemeral(false).queue(); - } - - } + if (event.getName().equals("stats")) { + + Guild guild = event.getGuild(); + if (guild == null) { + event.reply("You can only use this command in Guilds").setEphemeral(true).queue(); + return; + } + + List members = guild.getMemberCache().asList(); + int botCount = 0; + int userCount = 0; + int onlineUserCount = 0; + for (Member member : members) { + if (member.getUser().isBot()) { + botCount++; + } else { + OnlineStatus status = member.getOnlineStatus(); + if (status.equals(OnlineStatus.DO_NOT_DISTURB) || status.equals(OnlineStatus.IDLE) || status.equals(OnlineStatus.ONLINE)) { + onlineUserCount++; + } + userCount++; + } + } + + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("📊 Server Statistics 📊"); + eb.setDescription("📁 Server Statistics For: **" + guild.getName() + "**"); + eb.setThumbnail(guild.getIconUrl()); + eb.setColor(Color.PINK); + + eb.addField("🏠 Guild Name", "╰┈➤" + guild.getName(), false); + eb.addField("👑 Guild Owner", "╰┈➤" + Objects.requireNonNull(guild.getMemberById(guild.getOwnerId())).getAsMention(), false); + eb.addField("📅 Guild Created On", "╰┈➤" + DurationUtils.isoToLocalTimeCounter(guild.getTimeCreated()), false); + eb.addField("🔗 Guild Vanity URL", "╰┈➤" + (guild.getVanityUrl() != null ? guild.getVanityUrl() : "Not Set"), false); + + eb.addField("👥 Member Count", "╰┈➤" + userCount, true); + eb.addField("🤖 Bot Count", "╰┈➤" + botCount, true); + eb.addField("🟢 Members Online", "╰┈➤" + onlineUserCount + "/" + userCount, true); + + List boosters = guild.getBoosters(); + StringBuilder mentionableBoosters = new StringBuilder(); + for (Member booster : boosters) { + mentionableBoosters.append(booster.getAsMention()).append(" "); + } + eb.addField("🚀 Guild Boosters ", "╰┈➤" + mentionableBoosters, false); + eb.addField("💖 Guild Boost Count", "╰┈➤" + guild.getBoostCount(), false); + eb.addField("📎 Booster Role", "╰┈➤" + (guild.getBoostRole() != null ? guild.getBoostRole().getAsMention() : "No Boost Role Found"), false); + eb.addField("🗼 Boost Tier", "╰┈➤" + guild.getBoostTier(), false); + + eb.addField("🌐 Locale", "╰┈➤" + guild.getLocale().getNativeName(), true); + eb.addField("🔒 Verification", "╰┈➤" + guild.getVerificationLevel().name(), true); + eb.addField("🧱 Roles", "╰┈➤" + guild.getRoles().size(), true); + eb.addField("🗂️ Categories", "╰┈➤" + guild.getCategories().size(), true); + eb.addField("💬 Text Channels", "╰┈➤" + guild.getTextChannels().size(), true); + eb.addField("🔊 Voice Channels", "╰┈➤" + guild.getVoiceChannels().size(), true); + + eb.addField("📋 Data Requested By", "╰┈➤" + Objects.requireNonNull(event.getMember()).getAsMention(), false); + eb.setFooter("📋 Stats By: PaperTrail 📋"); + eb.setTimestamp(Instant.now()); + + MessageEmbed mb = eb.build(); + event.replyEmbeds(mb).setEphemeral(false).queue(); + } + + } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/SlashCommandRegistrationListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/SlashCommandRegistrationListener.java index 1f1e71d7..e91d10d8 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/SlashCommandRegistrationListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/SlashCommandRegistrationListener.java @@ -13,12 +13,12 @@ */ public class SlashCommandRegistrationListener extends ListenerAdapter { - @Override - public void onReady(@NonNull ReadyEvent event) { - setAuditLogCommands(event.getJDA()); - } + @Override + public void onReady(@NonNull ReadyEvent event) { + setAuditLogCommands(event.getJDA()); + } - private void setAuditLogCommands(@NonNull JDA jda) { + private void setAuditLogCommands(@NonNull JDA jda) { CommandData auditLog = Commands.slash("auditlog", "manage audit log options") .addSubcommands(new SubcommandData("set", "set audit log channel here")) @@ -29,17 +29,17 @@ private void setAuditLogCommands(@NonNull JDA jda) { .addSubcommands(new SubcommandData("set", "set message log channel here")) .addSubcommands(new SubcommandData("view", "view message log channel")) .addSubcommands(new SubcommandData("remove", "unset message log channel")); - - CommandData serverStats = Commands.slash("stats", - "Provides Server Statistics"); - CommandData setup = Commands.slash("setup", "Provides a guide on setting up the bot"); + CommandData serverStats = Commands.slash("stats", + "Provides Server Statistics"); - jda.updateCommands() - .addCommands(auditLog, + CommandData setup = Commands.slash("setup", "Provides a guide on setting up the bot"); + + jda.updateCommands() + .addCommands(auditLog, messageLog, - serverStats, - setup) - .queue(); - } + serverStats, + setup) + .queue(); + } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/main/ConnectionInitializer.java b/src/main/java/io/github/eggy03/papertrail/bot/main/ConnectionInitializer.java index 22f3bb24..63498c49 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/main/ConnectionInitializer.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/main/ConnectionInitializer.java @@ -20,41 +20,41 @@ public class ConnectionInitializer { // returns the manager that manages multiple shards (instances) of the bot // Manages multiple shards (instances) of the bot - private final @NonNull ShardManager manager; - - public ConnectionInitializer() { - - String token = EnvConfig.get("TOKEN"); - - DefaultShardManagerBuilder builder = DefaultShardManagerBuilder.createDefault(token); - builder.enableIntents(GatewayIntent.SCHEDULED_EVENTS, - GatewayIntent.AUTO_MODERATION_EXECUTION, - GatewayIntent.AUTO_MODERATION_CONFIGURATION, - GatewayIntent.MESSAGE_CONTENT, - GatewayIntent.GUILD_MEMBERS, - GatewayIntent.GUILD_EXPRESSIONS, - GatewayIntent.GUILD_PRESENCES, - GatewayIntent.GUILD_MODERATION); - - builder.setStatus(OnlineStatus.ONLINE); - - //cache all users of the bot - builder.setMemberCachePolicy(MemberCachePolicy.ALL); - builder.setChunkingFilter(ChunkingFilter.ALL); - //you will still need builder.enableCache() to cache user activities and status - builder.enableCache(CacheFlag.ACTIVITY, - CacheFlag.CLIENT_STATUS, - CacheFlag.EMOJI, - CacheFlag.STICKER, - CacheFlag.ONLINE_STATUS, - CacheFlag.MEMBER_OVERRIDES, - CacheFlag.ROLE_TAGS, - CacheFlag.SCHEDULED_EVENTS); - - manager = builder.build(); - manager.addEventListener(new ActivityUpdateListener(manager)); - //manager.addEventListener(new SlashCommandRegistrationListener()); - // re-enable it only when adding/updating/deleting commands - } + private final @NonNull ShardManager manager; + + public ConnectionInitializer() { + + String token = EnvConfig.get("TOKEN"); + + DefaultShardManagerBuilder builder = DefaultShardManagerBuilder.createDefault(token); + builder.enableIntents(GatewayIntent.SCHEDULED_EVENTS, + GatewayIntent.AUTO_MODERATION_EXECUTION, + GatewayIntent.AUTO_MODERATION_CONFIGURATION, + GatewayIntent.MESSAGE_CONTENT, + GatewayIntent.GUILD_MEMBERS, + GatewayIntent.GUILD_EXPRESSIONS, + GatewayIntent.GUILD_PRESENCES, + GatewayIntent.GUILD_MODERATION); + + builder.setStatus(OnlineStatus.ONLINE); + + //cache all users of the bot + builder.setMemberCachePolicy(MemberCachePolicy.ALL); + builder.setChunkingFilter(ChunkingFilter.ALL); + //you will still need builder.enableCache() to cache user activities and status + builder.enableCache(CacheFlag.ACTIVITY, + CacheFlag.CLIENT_STATUS, + CacheFlag.EMOJI, + CacheFlag.STICKER, + CacheFlag.ONLINE_STATUS, + CacheFlag.MEMBER_OVERRIDES, + CacheFlag.ROLE_TAGS, + CacheFlag.SCHEDULED_EVENTS); + + manager = builder.build(); + manager.addEventListener(new ActivityUpdateListener(manager)); + //manager.addEventListener(new SlashCommandRegistrationListener()); + // re-enable it only when adding/updating/deleting commands + } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/main/Start.java b/src/main/java/io/github/eggy03/papertrail/bot/main/Start.java index d1b0efcf..2c2a0969 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/main/Start.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/main/Start.java @@ -21,45 +21,46 @@ import java.net.InetSocketAddress; import java.util.concurrent.Executor; import java.util.concurrent.Executors; + /* * The main class of the bot */ public class Start { - // All I/O blocking operations run inside the vThreadPool - private static final @NonNull Executor vThreadPool = Executors.newVirtualThreadPerTaskExecutor(); + // All I/O blocking operations run inside the vThreadPool + private static final @NonNull Executor vThreadPool = Executors.newVirtualThreadPerTaskExecutor(); - public static void main(String[] args) throws IOException { + public static void main(String[] args) throws IOException { - ConnectionInitializer ci = new ConnectionInitializer(); - ShardManager manager = ci.getManager(); + ConnectionInitializer ci = new ConnectionInitializer(); + ShardManager manager = ci.getManager(); - manager.addEventListener(new AuditLogSetupCommandListener()); - manager.addEventListener(new AuditLogEventListener(vThreadPool)); + manager.addEventListener(new AuditLogSetupCommandListener()); + manager.addEventListener(new AuditLogEventListener(vThreadPool)); - manager.addEventListener(new MessageLogSetupCommandListener()); - manager.addEventListener(new MessageLogListener(vThreadPool)); + manager.addEventListener(new MessageLogSetupCommandListener()); + manager.addEventListener(new MessageLogListener(vThreadPool)); - manager.addEventListener(new GuildVoiceEventListener(vThreadPool)); - manager.addEventListener(new GuildMemberJoinAndLeaveEventListener(vThreadPool)); - manager.addEventListener(new GuildPollEventListener(vThreadPool)); - manager.addEventListener(new GuildBoostEventListener(vThreadPool)); - manager.addEventListener(new SelfKickListener(vThreadPool)); + manager.addEventListener(new GuildVoiceEventListener(vThreadPool)); + manager.addEventListener(new GuildMemberJoinAndLeaveEventListener(vThreadPool)); + manager.addEventListener(new GuildPollEventListener(vThreadPool)); + manager.addEventListener(new GuildBoostEventListener(vThreadPool)); + manager.addEventListener(new SelfKickListener(vThreadPool)); - manager.addEventListener(new ServerStatCommandListener()); - manager.addEventListener(new BotSetupInstructionCommandListener()); + manager.addEventListener(new ServerStatCommandListener()); + manager.addEventListener(new BotSetupInstructionCommandListener()); // Custom health check endpoint - HttpServer server = HttpServer.create(new InetSocketAddress(8080), 0); + HttpServer server = HttpServer.create(new InetSocketAddress(8080), 0); server.createContext("/ping", new PingHandler()); server.setExecutor(null); // creates a default executor server.start(); - } - - static class PingHandler implements HttpHandler { + } + + static class PingHandler implements HttpHandler { @Override public void handle(@NonNull HttpExchange exchange) throws IOException { - exchange.sendResponseHeaders(200, -1); + exchange.sendResponseHeaders(200, -1); } } diff --git a/src/main/resources/tinylog.properties b/src/main/resources/tinylog.properties index 22ba864e..a9bf9fa4 100644 --- a/src/main/resources/tinylog.properties +++ b/src/main/resources/tinylog.properties @@ -1,5 +1,4 @@ -writer = console -writer.format = {level}: {class}.{method}()\n{message} -writer.level = info - -writingthread = true \ No newline at end of file +writer=console +writer.format={level}: {class}.{method}()\n{message} +writer.level=info +writingthread=true \ No newline at end of file From 4d68094cd77a1f47465822bcd2e05efdcd857f8e Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Wed, 11 Feb 2026 15:39:09 +0530 Subject: [PATCH 055/104] feat(sticker-audit): improve sticker audit log embeds - introduce `StickerUtils` for resolving sticker URLs - display sticker links in create and delete event embeds - refactor audit log change processing to use `forEach` - show old and new values for updated sticker fields - log unimplemented audit log change keys Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../sticker/StickerCreateEventHelper.java | 64 +++++++--------- .../sticker/StickerDeleteEventHelper.java | 61 +++++++--------- .../sticker/StickerUpdateEventHelper.java | 73 +++++++++---------- .../helper/sticker/utils/StickerUtils.java | 23 ++++++ 4 files changed, 106 insertions(+), 115 deletions(-) create mode 100644 src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/utils/StickerUtils.java diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerCreateEventHelper.java index 5b4567fd..50057ec4 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerCreateEventHelper.java @@ -1,19 +1,17 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.sticker; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.sticker.utils.StickerUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; -import net.dv8tion.jda.api.entities.sticker.GuildSticker; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import java.awt.Color; -import java.util.Map; @UtilityClass @Slf4j @@ -23,51 +21,39 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Sticker Create Event"); - User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - eb.setDescription("👤 **By**: " + mentionableExecutor + "\nℹ️ The following sticker was created"); + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Sticker Create Event"); + eb.setDescription("ℹ️ The following sticker was created by: " + mentionableExecutor); eb.setColor(Color.GREEN); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - for (Map.Entry changes : ale.getChanges().entrySet()) { - - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); - - switch (change) { - - case "format_type", "type", "asset", "available", "guild_id": - break; - - case "id": - eb.addField("🆔 Sticker ID", "╰┈➤" + newValue, false); - GuildSticker sticker = event.getGuild().getStickerById(String.valueOf(newValue)); - eb.addField("🔗 Sticker Link", "╰┈➤" + (sticker != null ? sticker.getIconUrl() : "N/A"), false); - break; - - case "tags": - eb.addField("ℹ️ Related Emoji", "╰┈➤" + newValue, false); - break; - - case "description": - eb.addField("📝 Description", "╰┈➤" + newValue, false); - break; - - case "name": - eb.addField("🏷️ Sticker Name", "╰┈➤" + newValue, false); - break; - - default: - eb.addField(change, "from " + oldValue + " to " + newValue, false); + ale.getChanges().forEach((changeKey, changeValue) -> { + Object oldValue = changeValue.getOldValue(); + Object newValue = changeValue.getNewValue(); + + switch (changeKey) { + case "format_type", "type", "asset", "available", "guild_id" -> { + // skip + } + case "id" -> { + eb.addField("Sticker ID", "╰┈➤" + newValue, false); + eb.addField("Sticker Link", "╰┈➤" + StickerUtils.resolveStickerUrl(event, newValue), false); + } + case "tags" -> eb.addField("Related Emoji", "╰┈➤" + newValue, false); + case "description" -> eb.addField("Description", "╰┈➤" + newValue, false); + case "name" -> eb.addField("Sticker Name", "╰┈➤" + newValue, false); + + default -> { + eb.addField("Unimplemented Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); + } } - } + }); eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerDeleteEventHelper.java index 616f2a70..f39f138f 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerDeleteEventHelper.java @@ -1,10 +1,10 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.sticker; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.sticker.utils.StickerUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; @@ -12,7 +12,6 @@ import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import java.awt.Color; -import java.util.Map; @UtilityClass @Slf4j @@ -22,49 +21,39 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Sticker Delete Event"); - User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - eb.setDescription("👤 **By**: " + mentionableExecutor + "\nℹ️ The following sticker was deleted"); + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Sticker Delete Event"); + eb.setDescription("ℹ️ The following sticker was deleted by: " + mentionableExecutor); eb.setColor(Color.RED); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - for (Map.Entry changes : ale.getChanges().entrySet()) { - - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); - - switch (change) { - - case "format_type", "type", "asset", "available", "guild_id": - break; - - case "id": - eb.addField("🆔 Sticker ID", "╰┈➤" + oldValue, false); - break; - - case "tags": - eb.addField("ℹ️ Related Emoji", "╰┈➤" + oldValue, false); - break; - - case "description": - eb.addField("📝 Description", "╰┈➤" + oldValue, false); - break; - - case "name": - eb.addField("🏷️ Sticker Name", "╰┈➤" + oldValue, false); - break; - - default: - eb.addField(change, "from " + oldValue + " to " + newValue, false); + ale.getChanges().forEach((changeKey, changeValue) -> { + Object oldValue = changeValue.getOldValue(); + Object newValue = changeValue.getNewValue(); + + switch (changeKey) { + case "format_type", "type", "asset", "available", "guild_id" -> { + // skip + } + case "id" -> { + eb.addField("Sticker ID", "╰┈➤" + oldValue, false); + eb.addField("Sticker Link", "╰┈➤" + StickerUtils.resolveStickerUrl(event, oldValue), false); + } + case "tags" -> eb.addField("Related Emoji", "╰┈➤" + oldValue, false); + case "description" -> eb.addField("Description", "╰┈➤" + oldValue, false); + case "name" -> eb.addField("Sticker Name", "╰┈➤" + oldValue, false); + + default -> { + eb.addField("Unimplemented Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); + } } - } + }); eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerUpdateEventHelper.java index 88b0c63e..02fab649 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerUpdateEventHelper.java @@ -4,17 +4,13 @@ import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; -import net.dv8tion.jda.api.entities.sticker.GuildSticker; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import java.awt.Color; -import java.util.Map; -import java.util.Objects; @UtilityClass @Slf4j @@ -24,50 +20,47 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Sticker Update Event"); - User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - GuildSticker targetSticker = event.getGuild().getStickerById(ale.getTargetId()); - - eb.setDescription("👤 **By**: " + mentionableExecutor + "\nℹ️ The following sticker was updated"); + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Sticker Update Event"); + eb.setDescription("ℹ️ The following sticker was updated by: " + mentionableExecutor); eb.setColor(Color.YELLOW); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - - eb.addField("🏷️ Target Sticker Name", Objects.requireNonNull(targetSticker).getName(), false); - eb.addField("🔗 Target Sticker Url", targetSticker.getIconUrl(), false); - - for (Map.Entry changes : ale.getChanges().entrySet()) { - - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); - - switch (change) { - - case "format_type", "type", "asset", "available", "guild_id", "id": - break; - - case "tags": - eb.addField("ℹ️ Related Emoji", "╰┈➤" + "from " + oldValue + " to " + newValue, false); - break; - - case "description": - eb.addField("📝 Description", "╰┈➤" + "from `" + oldValue + "` to `" + newValue + "`", false); - break; - - case "name": - eb.addField("🏷️ Sticker Name", "╰┈➤" + "from `" + oldValue + "` to `" + newValue + "`", false); - break; - - default: - eb.addField(change, "from " + oldValue + " to " + newValue, false); + eb.addBlankField(true); + + ale.getChanges().forEach((changeKey, changeValue) -> { + Object oldValue = changeValue.getOldValue(); + Object newValue = changeValue.getNewValue(); + + switch (changeKey) { + case "format_type", "type", "asset", "available", "guild_id", "id" -> { + // skip + } + case "tags" -> { + eb.addField("Old Related Emoji", "╰┈➤" + oldValue, true); + eb.addField("New Related Emoji", "╰┈➤" + newValue, true); + eb.addBlankField(true); + } + case "description" -> { + eb.addField("Old Description", "╰┈➤" + oldValue, true); + eb.addField("New Description", "╰┈➤" + newValue, true); + eb.addBlankField(true); + } + case "name" -> { + eb.addField("Old Sticker Name", "╰┈➤" + oldValue, true); + eb.addField("New Sticker Name", "╰┈➤" + newValue, true); + eb.addBlankField(true); + } + default -> { + eb.addField("Unimplemented Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); + } } - } + }); eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/utils/StickerUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/utils/StickerUtils.java new file mode 100644 index 00000000..c1c9b203 --- /dev/null +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/utils/StickerUtils.java @@ -0,0 +1,23 @@ +package io.github.eggy03.papertrail.bot.listeners.audit.helper.sticker.utils; + +import lombok.NonNull; +import lombok.experimental.UtilityClass; +import net.dv8tion.jda.api.entities.sticker.GuildSticker; +import net.dv8tion.jda.api.events.guild.GenericGuildEvent; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +@UtilityClass +public class StickerUtils { + + @NotNull + public static String resolveStickerUrl(@NonNull GenericGuildEvent event, @Nullable Object stickerId) { + if (stickerId == null) return "N/A"; + + GuildSticker sticker = event.getGuild().getStickerById(String.valueOf(stickerId)); + if (sticker == null) return "N/A"; + + return sticker.getIconUrl(); + + } +} From e8e75b7608dca209c0cd7e5abf1748d9fc61aa45 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Wed, 11 Feb 2026 16:12:21 +0530 Subject: [PATCH 056/104] feat(sticker-audit): resolve related emojis in sticker audit logs - Introduce `StickerUtils.resolveRelatedEmoji` to correctly format related emojis. - Apply emoji resolution to sticker create, delete, and update audit log events. - Update `StickerUtils.resolveStickerUrl` fallback for sticker IDs. - Change `tinylog.properties` logging level from `info` to `debug`. Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../sticker/StickerCreateEventHelper.java | 3 +- .../sticker/StickerDeleteEventHelper.java | 3 +- .../sticker/StickerUpdateEventHelper.java | 5 ++-- .../helper/sticker/utils/StickerUtils.java | 28 +++++++++++++++++-- src/main/resources/tinylog.properties | 2 +- 5 files changed, 34 insertions(+), 7 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerCreateEventHelper.java index 50057ec4..3c9bfe95 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerCreateEventHelper.java @@ -44,7 +44,8 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.addField("Sticker ID", "╰┈➤" + newValue, false); eb.addField("Sticker Link", "╰┈➤" + StickerUtils.resolveStickerUrl(event, newValue), false); } - case "tags" -> eb.addField("Related Emoji", "╰┈➤" + newValue, false); + case "tags" -> + eb.addField("Related Emoji", "╰┈➤" + StickerUtils.resolveRelatedEmoji(event, newValue), false); case "description" -> eb.addField("Description", "╰┈➤" + newValue, false); case "name" -> eb.addField("Sticker Name", "╰┈➤" + newValue, false); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerDeleteEventHelper.java index f39f138f..ab7e7760 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerDeleteEventHelper.java @@ -44,7 +44,8 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.addField("Sticker ID", "╰┈➤" + oldValue, false); eb.addField("Sticker Link", "╰┈➤" + StickerUtils.resolveStickerUrl(event, oldValue), false); } - case "tags" -> eb.addField("Related Emoji", "╰┈➤" + oldValue, false); + case "tags" -> + eb.addField("Related Emoji", "╰┈➤" + StickerUtils.resolveRelatedEmoji(event, oldValue), false); case "description" -> eb.addField("Description", "╰┈➤" + oldValue, false); case "name" -> eb.addField("Sticker Name", "╰┈➤" + oldValue, false); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerUpdateEventHelper.java index 02fab649..89651e4f 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerUpdateEventHelper.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.sticker; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.sticker.utils.StickerUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; @@ -41,8 +42,8 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull // skip } case "tags" -> { - eb.addField("Old Related Emoji", "╰┈➤" + oldValue, true); - eb.addField("New Related Emoji", "╰┈➤" + newValue, true); + eb.addField("Old Related Emoji", "╰┈➤" + StickerUtils.resolveRelatedEmoji(event, oldValue), true); + eb.addField("New Related Emoji", "╰┈➤" + StickerUtils.resolveRelatedEmoji(event, newValue), true); eb.addBlankField(true); } case "description" -> { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/utils/StickerUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/utils/StickerUtils.java index c1c9b203..4bd5e901 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/utils/StickerUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/utils/StickerUtils.java @@ -2,6 +2,7 @@ import lombok.NonNull; import lombok.experimental.UtilityClass; +import net.dv8tion.jda.api.entities.emoji.Emoji; import net.dv8tion.jda.api.entities.sticker.GuildSticker; import net.dv8tion.jda.api.events.guild.GenericGuildEvent; import org.jetbrains.annotations.NotNull; @@ -10,14 +11,37 @@ @UtilityClass public class StickerUtils { + public static final String FALLBACK_STRING = "N/A"; + @NotNull public static String resolveStickerUrl(@NonNull GenericGuildEvent event, @Nullable Object stickerId) { - if (stickerId == null) return "N/A"; + if (stickerId == null) return FALLBACK_STRING; GuildSticker sticker = event.getGuild().getStickerById(String.valueOf(stickerId)); - if (sticker == null) return "N/A"; + if (sticker == null) return String.valueOf(stickerId); return sticker.getIconUrl(); } + + // emojiIdLong does NOT give you snowflake IDs in case of Unicode emojis + // it only gives u IDs in case of custom emojis + // any values caught by NumberFormatException are Unicode emojis and can be returned raw + @NotNull + public static String resolveRelatedEmoji(@NonNull GenericGuildEvent event, @Nullable Object emojiIdLong) { + + if (emojiIdLong == null) return FALLBACK_STRING; + + try { + long emojiId = Long.parseLong(String.valueOf(emojiIdLong)); + Emoji emoji = event.getGuild().getEmojiById(emojiId); + if (emoji == null) + return String.valueOf(emojiId); + + return emoji.getFormatted(); + } catch (NumberFormatException e) { + return String.valueOf(emojiIdLong); + } + + } } diff --git a/src/main/resources/tinylog.properties b/src/main/resources/tinylog.properties index a9bf9fa4..629bfd0a 100644 --- a/src/main/resources/tinylog.properties +++ b/src/main/resources/tinylog.properties @@ -1,4 +1,4 @@ writer=console writer.format={level}: {class}.{method}()\n{message} -writer.level=info +writer.level=debug writingthread=true \ No newline at end of file From 5b75f5aef78b1aa4b7d2fac668f2acc262e1a0d9 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Wed, 11 Feb 2026 16:23:00 +0530 Subject: [PATCH 057/104] refactor(sticker-utils): add debug logging for sticker and emoji resolution - Add `@Slf4j` annotation to `StickerUtils` for logging - Introduce debug logging for null `stickerIdObject` and `emojiIdObject` - Log when `GuildSticker` or custom `Emoji` are not found by ID - Log when an emoji ID is treated as Unicode due to `NumberFormatException` - Rename parameters `stickerId` to `stickerIdObject` and `emojiIdLong` to `emojiIdObject` for clarity Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../helper/sticker/utils/StickerUtils.java | 44 ++++++++++++++----- 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/utils/StickerUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/utils/StickerUtils.java index 4bd5e901..6a168e53 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/utils/StickerUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/utils/StickerUtils.java @@ -2,6 +2,7 @@ import lombok.NonNull; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.entities.emoji.Emoji; import net.dv8tion.jda.api.entities.sticker.GuildSticker; import net.dv8tion.jda.api.events.guild.GenericGuildEvent; @@ -9,38 +10,57 @@ import org.jetbrains.annotations.Nullable; @UtilityClass +@Slf4j public class StickerUtils { public static final String FALLBACK_STRING = "N/A"; @NotNull - public static String resolveStickerUrl(@NonNull GenericGuildEvent event, @Nullable Object stickerId) { - if (stickerId == null) return FALLBACK_STRING; + public static String resolveStickerUrl(@NonNull GenericGuildEvent event, @Nullable Object stickerIdObject) { - GuildSticker sticker = event.getGuild().getStickerById(String.valueOf(stickerId)); - if (sticker == null) return String.valueOf(stickerId); + if (stickerIdObject == null) { + log.debug("stickerIdObject is null (guild={})", event.getGuild().getId()); + return FALLBACK_STRING; + } + + String stickerIdStr = String.valueOf(stickerIdObject); + GuildSticker sticker = event.getGuild().getStickerById(String.valueOf(stickerIdObject)); + + if (sticker == null) { + log.debug("sticker not found (stickerIdObject={}, guild={})", stickerIdStr, event.getGuild().getId()); + return stickerIdStr; + } return sticker.getIconUrl(); } - // emojiIdLong does NOT give you snowflake IDs in case of Unicode emojis + // emojiIdObject does NOT give you snowflake IDs in case of Unicode emojis // it only gives u IDs in case of custom emojis // any values caught by NumberFormatException are Unicode emojis and can be returned raw @NotNull - public static String resolveRelatedEmoji(@NonNull GenericGuildEvent event, @Nullable Object emojiIdLong) { + public static String resolveRelatedEmoji(@NonNull GenericGuildEvent event, @Nullable Object emojiIdObject) { - if (emojiIdLong == null) return FALLBACK_STRING; + if (emojiIdObject == null) { + log.debug("emojiIdObject is null (guild={})", event.getGuild().getId()); + return FALLBACK_STRING; + } + + String emojiIdString = String.valueOf(emojiIdObject); try { - long emojiId = Long.parseLong(String.valueOf(emojiIdLong)); - Emoji emoji = event.getGuild().getEmojiById(emojiId); - if (emoji == null) - return String.valueOf(emojiId); + long emojiIdLong = Long.parseLong(emojiIdString); + Emoji emoji = event.getGuild().getEmojiById(emojiIdLong); + if (emoji == null) { + log.debug("custom emoji not found (emojiIdLong={}, guild={})", emojiIdLong, event.getGuild().getId()); + return emojiIdString; + } return emoji.getFormatted(); + } catch (NumberFormatException e) { - return String.valueOf(emojiIdLong); + log.debug("value is not numeric, treating as Unicode (value={}, guild={})", emojiIdString, event.getGuild().getId()); + return String.valueOf(emojiIdObject); } } From 513e8e67e03aabadd82bcc07acc622b3745adccf Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Wed, 11 Feb 2026 16:54:37 +0530 Subject: [PATCH 058/104] feat(sticker): display sticker name in audit log for update events - Retrieve `GuildSticker` by `targetId` to get its name - Include the sticker's name in the audit log description for update events - Improve clarity and context for sticker update notifications Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../audit/helper/sticker/StickerUpdateEventHelper.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerUpdateEventHelper.java index 89651e4f..7f6321fc 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerUpdateEventHelper.java @@ -9,6 +9,7 @@ import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; +import net.dv8tion.jda.api.entities.sticker.GuildSticker; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import java.awt.Color; @@ -24,9 +25,12 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); + GuildSticker sticker = event.getGuild().getStickerById(ale.getTargetId()); + String mentionableSticker = (sticker != null ? sticker.getName() : ale.getTargetId()); + EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("Audit Log Entry | Sticker Update Event"); - eb.setDescription("ℹ️ The following sticker was updated by: " + mentionableExecutor); + eb.setDescription("ℹ️ The following sticker: " + mentionableSticker + " was updated by: " + mentionableExecutor); eb.setColor(Color.YELLOW); eb.addField("Action Type", String.valueOf(ale.getType()), true); From 609a7662e3e6a016bdb3292b22a35890f3331c63 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Wed, 11 Feb 2026 17:00:13 +0530 Subject: [PATCH 059/104] refactor(utils): add debug logging and improve error handling - Introduce `Slf4j` logging to all utility classes. - Log null inputs and parsing exceptions. - Return original input on parse failures in `DurationUtils` and `ColorUtils`. - Apply minor code quality improvements. Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../bot/commons/utils/BooleanUtils.java | 29 +++++++++++++------ .../bot/commons/utils/ColorUtils.java | 14 +++++++-- .../bot/commons/utils/DurationUtils.java | 23 +++++++++++---- .../bot/commons/utils/NumberParseUtils.java | 27 ++++++++++++++--- 4 files changed, 72 insertions(+), 21 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/BooleanUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/BooleanUtils.java index 76dad34b..9c0365b8 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/BooleanUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/BooleanUtils.java @@ -1,40 +1,51 @@ package io.github.eggy03.papertrail.bot.commons.utils; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @UtilityClass +@Slf4j public class BooleanUtils { @NotNull - public static String formatToEmoji(@Nullable Object value) { - if (value == null) + public static String formatToEmoji(@Nullable Object booleanValueObject) { + + if (booleanValueObject == null) { + log.debug("boolean value for formatting to emoji is null"); return "N/A"; + } - if (Boolean.TRUE.equals(value)) + if (Boolean.TRUE.equals(booleanValueObject)) return "✅"; return "❌"; } @NotNull - public static String formatToYesOrNo(@Nullable Object value) { - if (value == null) + public static String formatToYesOrNo(@Nullable Object booleanValueObject) { + + if (booleanValueObject == null) { + log.debug("boolean value for formatting to yes/no is null"); return "N/A"; + } + - if (Boolean.TRUE.equals(value)) + if (Boolean.TRUE.equals(booleanValueObject)) return "Yes"; return "No"; } @NotNull - public static String formatToEnabledOrDisabled(@Nullable Object value) { - if (value == null) + public static String formatToEnabledOrDisabled(@Nullable Object booleanValueObject) { + if (booleanValueObject == null) { + log.debug("boolean value for formatting to enabled/disabled is null"); return "N/A"; + } - if (Boolean.TRUE.equals(value)) + if (Boolean.TRUE.equals(booleanValueObject)) return "Enabled"; return "Disabled"; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/ColorUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/ColorUtils.java index bda610f3..e941f252 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/ColorUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/ColorUtils.java @@ -1,26 +1,32 @@ package io.github.eggy03.papertrail.bot.commons.utils; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.Nullable; import java.util.IllegalFormatException; import java.util.Map; @UtilityClass +@Slf4j public class ColorUtils { public static String formatToHex(@Nullable Object colorValueInteger) { - if (colorValueInteger == null) + if (colorValueInteger == null) { + log.debug("colorValueInteger is null"); return "N/A"; + } try { int color = Integer.parseInt(String.valueOf(colorValueInteger)); return String.format("#%06X", color); } catch (NumberFormatException e) { - return "No Parsable Color Integer Detected"; + log.debug("failed to parse color integer from value={}", colorValueInteger); + return String.valueOf(colorValueInteger); } catch (IllegalFormatException e) { - return "Cannot parse color to hex"; + log.debug("failed to format color integer to hex, value={}", colorValueInteger); + return String.valueOf(colorValueInteger); } } @@ -29,6 +35,7 @@ public static String formatToHex(@Nullable Object colorValueInteger) { public static String formatGradientColorSystemToHex(@Nullable Object gradientMap) { if (gradientMap == null) { + log.debug("color gradient map is null"); return "N/A"; } @@ -41,6 +48,7 @@ public static String formatGradientColorSystemToHex(@Nullable Object gradientMap return primaryColor + System.lineSeparator() + secondaryColor + System.lineSeparator() + tertiaryColor; } + log.debug("gradient value is not a Map, value={}", gradientMap); return "N/A"; } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/DurationUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/DurationUtils.java index fe208d5a..ebde0544 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/DurationUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/DurationUtils.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.commons.utils; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.Nullable; import java.time.Duration; @@ -9,10 +10,12 @@ import java.time.format.DateTimeParseException; @UtilityClass +@Slf4j public class DurationUtils { public static String formatSeconds(@Nullable Object seconds) { if (seconds == null) { + log.debug("seconds value is null"); return "N/A"; } @@ -38,7 +41,8 @@ public static String formatSeconds(@Nullable Object seconds) { return sb.toString().trim(); } catch (NumberFormatException e) { - return "Duration Cannot Be Parsed"; + log.debug("failed to parse seconds from value={}", seconds); + return String.valueOf(seconds); } @@ -46,6 +50,7 @@ public static String formatSeconds(@Nullable Object seconds) { public static String formatMinutes(@Nullable Object minutes) { if (minutes == null) { + log.debug("minutes value is null"); return "N/A"; } try { @@ -60,7 +65,8 @@ public static String formatMinutes(@Nullable Object minutes) { if (hours > 0) sb.append(hours).append("h "); return sb.toString().trim(); } catch (NumberFormatException e) { - return "Duration Cannot Be Parsed"; + log.debug("failed to parse minutes from value={}", minutes); + return String.valueOf(minutes); } @@ -68,17 +74,24 @@ public static String formatMinutes(@Nullable Object minutes) { public static String isoToLocalTimeCounter(@Nullable Object isoTime) { - if (isoTime == null) return "N/A"; + if (isoTime == null) { + log.debug("iso time is null"); + return "N/A"; + } String isoTimeString = String.valueOf(isoTime); - if (isoTimeString.trim().isEmpty()) return "N/A"; + if (isoTimeString.trim().isEmpty()) { + log.debug("iso time is blank"); + return "N/A"; + } try { OffsetDateTime odt = OffsetDateTime.parse(isoTimeString, DateTimeFormatter.ISO_OFFSET_DATE_TIME); long unixTimestamp = odt.toEpochSecond(); return ""; } catch (DateTimeParseException e) { - return "Could Not Parse Date And Time"; + log.debug("failed to parse ISO_OFFSET_DATE_TIME from value={}", isoTimeString); + return String.valueOf(isoTime); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/NumberParseUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/NumberParseUtils.java index 800c9470..c88b996c 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/NumberParseUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/NumberParseUtils.java @@ -1,42 +1,61 @@ package io.github.eggy03.papertrail.bot.commons.utils; +import lombok.NonNull; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.Nullable; import java.math.BigDecimal; import java.math.RoundingMode; @UtilityClass +@Slf4j public class NumberParseUtils { @Nullable public static Long parseLong(@Nullable Object possibleLongValue) { - if (possibleLongValue == null) return null; + + if (possibleLongValue == null) { + log.debug("long value is null"); + return null; + } + try { return Long.parseLong(String.valueOf(possibleLongValue)); } catch (NumberFormatException e) { + log.debug("failed to parse long from value={}", possibleLongValue); return null; } } @Nullable public static Integer parseInt(@Nullable Object possibleIntegerValue) { - if (possibleIntegerValue == null) return null; + + if (possibleIntegerValue == null) { + log.debug("int value is null"); + return null; + } try { return Integer.parseInt(String.valueOf(possibleIntegerValue)); } catch (NumberFormatException e) { + log.debug("failed to parse int from value={}", possibleIntegerValue); return null; } } @Nullable - public static Double parseDouble(@Nullable Object possibleDoubleValue, int roundingDigits, RoundingMode roundingMode) { - if (possibleDoubleValue == null) return null; + public static Double parseDouble(@Nullable Object possibleDoubleValue, int roundingDigits, @NonNull RoundingMode roundingMode) { + + if (possibleDoubleValue == null) { + log.debug("double value is null"); + return null; + } try { double doubleValue = Double.parseDouble(String.valueOf(possibleDoubleValue)); return BigDecimal.valueOf(doubleValue).setScale(roundingDigits, roundingMode).doubleValue(); } catch (NumberFormatException e) { + log.debug("failed to parse double from value={}, roundingDigits={}, roundingMode={}", possibleDoubleValue, roundingDigits, roundingMode); return null; } } From 5523860969b8301de1ea94799415be0601d2f2ce Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Wed, 11 Feb 2026 19:27:59 +0530 Subject: [PATCH 060/104] refactor(role-audit): relocate color formatting utilities - delete `ColorUtils.java` - move `formatToHex` and `formatGradientColorSystemToHex` from `ColorUtils` to `RoleUtils` - update `RoleUpdateEventHelper` and `RoleDeleteEventHelper` to use `RoleUtils` for color formatting - enhance `RoleUtils` with `FALLBACK_STRING` constant and `@Slf4j` annotation Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../bot/commons/utils/ColorUtils.java | 54 ------------------- .../helper/role/RoleDeleteEventHelper.java | 6 +-- .../helper/role/RoleUpdateEventHelper.java | 9 ++-- .../audit/helper/role/utils/RoleUtils.java | 51 +++++++++++++++++- 4 files changed, 56 insertions(+), 64 deletions(-) delete mode 100644 src/main/java/io/github/eggy03/papertrail/bot/commons/utils/ColorUtils.java diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/ColorUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/ColorUtils.java deleted file mode 100644 index e941f252..00000000 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/ColorUtils.java +++ /dev/null @@ -1,54 +0,0 @@ -package io.github.eggy03.papertrail.bot.commons.utils; - -import lombok.experimental.UtilityClass; -import lombok.extern.slf4j.Slf4j; -import org.jetbrains.annotations.Nullable; - -import java.util.IllegalFormatException; -import java.util.Map; - -@UtilityClass -@Slf4j -public class ColorUtils { - - public static String formatToHex(@Nullable Object colorValueInteger) { - - if (colorValueInteger == null) { - log.debug("colorValueInteger is null"); - return "N/A"; - } - - try { - int color = Integer.parseInt(String.valueOf(colorValueInteger)); - return String.format("#%06X", color); - } catch (NumberFormatException e) { - log.debug("failed to parse color integer from value={}", colorValueInteger); - return String.valueOf(colorValueInteger); - } catch (IllegalFormatException e) { - log.debug("failed to format color integer to hex, value={}", colorValueInteger); - return String.valueOf(colorValueInteger); - } - } - - // gradient is returned as a hash map in the following structure - // {"primary_color" = 123456789, "secondary_color" = 123456789, "tertiary_color" = 123456789} - public static String formatGradientColorSystemToHex(@Nullable Object gradientMap) { - - if (gradientMap == null) { - log.debug("color gradient map is null"); - return "N/A"; - } - - if (gradientMap instanceof Map colorMap) { - - String primaryColor = "Primary Color: " + formatToHex(colorMap.get("primary_color")); - String secondaryColor = "Secondary Color: " + formatToHex(colorMap.get("secondary_color")); - String tertiaryColor = "Tertiary Color: " + formatToHex(colorMap.get("tertiary_color")); - - return primaryColor + System.lineSeparator() + secondaryColor + System.lineSeparator() + tertiaryColor; - } - - log.debug("gradient value is not a Map, value={}", gradientMap); - return "N/A"; - } -} diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleDeleteEventHelper.java index afae659c..62222fcc 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleDeleteEventHelper.java @@ -1,7 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.role; import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; -import io.github.eggy03.papertrail.bot.commons.utils.ColorUtils; import io.github.eggy03.papertrail.bot.listeners.audit.helper.role.utils.RoleUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; @@ -46,15 +45,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull case "hoist" -> eb.addField("Display Separately", "╰┈➤" + BooleanUtils.formatToYesOrNo(oldValue), false); - case "color" -> eb.addField("Color", "╰┈➤" + ColorUtils.formatToHex(oldValue), false); + case "color" -> eb.addField("Color", "╰┈➤" + RoleUtils.formatToHex(oldValue), false); case "permissions" -> eb.addField("Role Permissions", RoleUtils.resolveRolePermissions(oldValue, "✅"), false); case "mentionable" -> eb.addField("Mentionable", "╰┈➤" + BooleanUtils.formatToYesOrNo(oldValue), false); - case "colors" -> - eb.addField("Gradient Color System", ColorUtils.formatGradientColorSystemToHex(oldValue), false); + case "colors" -> eb.addField("Gradient Color System", RoleUtils.formatGradientToHex(oldValue), false); default -> { eb.addField("Unimplemented Change Key", changeKey, false); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleUpdateEventHelper.java index 9e7adf37..199e7e6c 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleUpdateEventHelper.java @@ -1,7 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.role; import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; -import io.github.eggy03.papertrail.bot.commons.utils.ColorUtils; import io.github.eggy03.papertrail.bot.listeners.audit.helper.role.utils.RoleUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; @@ -60,8 +59,8 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull } case "color" -> { - eb.addField("Old Color", "╰┈➤" + ColorUtils.formatToHex(oldValue), true); - eb.addField("New Color", "╰┈➤" + ColorUtils.formatToHex(newValue), true); + eb.addField("Old Color", "╰┈➤" + RoleUtils.formatToHex(oldValue), true); + eb.addField("New Color", "╰┈➤" + RoleUtils.formatToHex(newValue), true); eb.addBlankField(true); } @@ -78,8 +77,8 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull } case "colors" -> { - eb.addField("Old Gradient Color System", ColorUtils.formatGradientColorSystemToHex(oldValue), true); - eb.addField("New Gradient Color System", ColorUtils.formatGradientColorSystemToHex(newValue), true); + eb.addField("Old Gradient Color System", RoleUtils.formatGradientToHex(oldValue), true); + eb.addField("New Gradient Color System", RoleUtils.formatGradientToHex(newValue), true); eb.addBlankField(true); } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/utils/RoleUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/utils/RoleUtils.java index 0c542e9a..180ab705 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/utils/RoleUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/utils/RoleUtils.java @@ -3,20 +3,26 @@ import io.github.eggy03.papertrail.bot.commons.utils.NumberParseUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.Permission; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.EnumSet; +import java.util.IllegalFormatException; +import java.util.Map; @UtilityClass +@Slf4j public class RoleUtils { + private static final String FALLBACK_STRING = "N/A"; + @NotNull public static String resolveRolePermissions(@Nullable Object permissionsValue, @NonNull String emoji) { Long permissionLong = NumberParseUtils.parseLong(permissionsValue); if (permissionLong == null) - return "Permission cannot be parsed"; + return FALLBACK_STRING; if (permissionLong == 0) return "No Permissions set"; @@ -33,4 +39,47 @@ public static String resolveRolePermissions(@Nullable Object permissionsValue, @ return permissions.toString().trim(); } + + public static String formatToHex(@Nullable Object colorValueInteger) { + + if (colorValueInteger == null) { + log.debug("colorValueInteger is null"); + return FALLBACK_STRING; + } + + String colorValueString = String.valueOf(colorValueInteger); + + try { + int color = Integer.parseInt(colorValueString); + return String.format("#%06X", color); + } catch (NumberFormatException e) { + log.debug("failed to parse color integer from value={})", colorValueInteger); + return colorValueString; + } catch (IllegalFormatException e) { + log.debug("failed to format color integer to hex, value={})", colorValueInteger); + return colorValueString; + } + } + + // gradient is returned as a hash map in the following structure + // {"primary_color" = 123456789, "secondary_color" = 123456789, "tertiary_color" = 123456789} + public static String formatGradientToHex(@Nullable Object gradientMap) { + + if (gradientMap == null) { + log.debug("color gradient map is null"); + return FALLBACK_STRING; + } + + if (gradientMap instanceof Map colorMap) { + + String primaryColor = "Primary Color: " + formatToHex(colorMap.get("primary_color")); + String secondaryColor = "Secondary Color: " + formatToHex(colorMap.get("secondary_color")); + String tertiaryColor = "Tertiary Color: " + formatToHex(colorMap.get("tertiary_color")); + + return primaryColor + System.lineSeparator() + secondaryColor + System.lineSeparator() + tertiaryColor; + } + + log.debug("gradient value is not a Map, value={}", gradientMap); + return gradientMap.toString(); + } } From 783f2449ae07d180b61c06d6e7febc3e933bec11 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Wed, 11 Feb 2026 19:58:08 +0530 Subject: [PATCH 061/104] refactor(utils): improve logging and standardize fallbacks - add `StackWalkerUtils` for call hierarchy in debug logs - standardize "N/A" to `FALLBACK_STRING` across utilities - integrate `@Slf4j` and call hierarchy into debug messages - cleanup `OnboardingUtils` method and `StickerUtils` logic Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../bot/commons/utils/BooleanUtils.java | 14 +++--- .../bot/commons/utils/DurationUtils.java | 24 +++++----- .../bot/commons/utils/NumberParseUtils.java | 13 ++--- .../bot/commons/utils/StackWalkerUtils.java | 25 ++++++++++ .../helper/automod/utils/AutoModUtils.java | 7 ++- .../helper/channel/utils/ChannelUtils.java | 17 +++---- .../audit/helper/guild/utils/GuildUtils.java | 16 +++---- .../helper/member/utils/MemberUtils.java | 13 ++++- .../onboarding/utils/OnboardingUtils.java | 33 +++++++------ .../utils/ScheduledEventUtils.java | 48 +++++++++---------- .../helper/sticker/utils/StickerUtils.java | 2 +- 11 files changed, 126 insertions(+), 86 deletions(-) create mode 100644 src/main/java/io/github/eggy03/papertrail/bot/commons/utils/StackWalkerUtils.java diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/BooleanUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/BooleanUtils.java index 9c0365b8..0e370c83 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/BooleanUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/BooleanUtils.java @@ -9,12 +9,14 @@ @Slf4j public class BooleanUtils { + private static final String FALLBACK_STRING = "N/A"; + @NotNull public static String formatToEmoji(@Nullable Object booleanValueObject) { if (booleanValueObject == null) { - log.debug("boolean value for formatting to emoji is null"); - return "N/A"; + log.debug("boolean value for formatting to emoji is null (caller={})", StackWalkerUtils.getCallHierarchy()); + return FALLBACK_STRING; } if (Boolean.TRUE.equals(booleanValueObject)) @@ -27,8 +29,8 @@ public static String formatToEmoji(@Nullable Object booleanValueObject) { public static String formatToYesOrNo(@Nullable Object booleanValueObject) { if (booleanValueObject == null) { - log.debug("boolean value for formatting to yes/no is null"); - return "N/A"; + log.debug("boolean value for formatting to yes/no is null (caller={})", StackWalkerUtils.getCallHierarchy()); + return FALLBACK_STRING; } @@ -41,8 +43,8 @@ public static String formatToYesOrNo(@Nullable Object booleanValueObject) { @NotNull public static String formatToEnabledOrDisabled(@Nullable Object booleanValueObject) { if (booleanValueObject == null) { - log.debug("boolean value for formatting to enabled/disabled is null"); - return "N/A"; + log.debug("boolean value for formatting to enabled/disabled is null (caller={})", StackWalkerUtils.getCallHierarchy()); + return FALLBACK_STRING; } if (Boolean.TRUE.equals(booleanValueObject)) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/DurationUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/DurationUtils.java index ebde0544..402f1568 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/DurationUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/DurationUtils.java @@ -13,10 +13,12 @@ @Slf4j public class DurationUtils { + private static final String FALLBACK_STRING = "N/A"; + public static String formatSeconds(@Nullable Object seconds) { if (seconds == null) { - log.debug("seconds value is null"); - return "N/A"; + log.debug("seconds value is null (caller={})", StackWalkerUtils.getCallHierarchy()); + return FALLBACK_STRING; } try { @@ -41,7 +43,7 @@ public static String formatSeconds(@Nullable Object seconds) { return sb.toString().trim(); } catch (NumberFormatException e) { - log.debug("failed to parse seconds from value={}", seconds); + log.debug("failed to parse seconds from value={} (caller={})", seconds, StackWalkerUtils.getCallHierarchy()); return String.valueOf(seconds); } @@ -50,8 +52,8 @@ public static String formatSeconds(@Nullable Object seconds) { public static String formatMinutes(@Nullable Object minutes) { if (minutes == null) { - log.debug("minutes value is null"); - return "N/A"; + log.debug("minutes value is null (caller={})", StackWalkerUtils.getCallHierarchy()); + return FALLBACK_STRING; } try { long minutesLong = Long.parseLong(minutes.toString()); @@ -65,7 +67,7 @@ public static String formatMinutes(@Nullable Object minutes) { if (hours > 0) sb.append(hours).append("h "); return sb.toString().trim(); } catch (NumberFormatException e) { - log.debug("failed to parse minutes from value={}", minutes); + log.debug("failed to parse minutes from value={} (caller={})", minutes, StackWalkerUtils.getCallHierarchy()); return String.valueOf(minutes); } @@ -75,14 +77,14 @@ public static String formatMinutes(@Nullable Object minutes) { public static String isoToLocalTimeCounter(@Nullable Object isoTime) { if (isoTime == null) { - log.debug("iso time is null"); - return "N/A"; + log.debug("iso time is null (caller={})", StackWalkerUtils.getCallHierarchy()); + return FALLBACK_STRING; } String isoTimeString = String.valueOf(isoTime); if (isoTimeString.trim().isEmpty()) { - log.debug("iso time is blank"); - return "N/A"; + log.debug("iso time is blank (caller={})", StackWalkerUtils.getCallHierarchy()); + return FALLBACK_STRING; } try { @@ -90,7 +92,7 @@ public static String isoToLocalTimeCounter(@Nullable Object isoTime) { long unixTimestamp = odt.toEpochSecond(); return ""; } catch (DateTimeParseException e) { - log.debug("failed to parse ISO_OFFSET_DATE_TIME from value={}", isoTimeString); + log.debug("failed to parse ISO_OFFSET_DATE_TIME from value={} (caller={})", isoTimeString, StackWalkerUtils.getCallHierarchy()); return String.valueOf(isoTime); } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/NumberParseUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/NumberParseUtils.java index c88b996c..1eb42f66 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/NumberParseUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/NumberParseUtils.java @@ -16,14 +16,14 @@ public class NumberParseUtils { public static Long parseLong(@Nullable Object possibleLongValue) { if (possibleLongValue == null) { - log.debug("long value is null"); + log.debug("long value is null (caller={})", StackWalkerUtils.getCallHierarchy()); return null; } try { return Long.parseLong(String.valueOf(possibleLongValue)); } catch (NumberFormatException e) { - log.debug("failed to parse long from value={}", possibleLongValue); + log.debug("failed to parse long from value={} (caller={})", possibleLongValue, StackWalkerUtils.getCallHierarchy()); return null; } } @@ -32,13 +32,13 @@ public static Long parseLong(@Nullable Object possibleLongValue) { public static Integer parseInt(@Nullable Object possibleIntegerValue) { if (possibleIntegerValue == null) { - log.debug("int value is null"); + log.debug("int value is null (caller={})", StackWalkerUtils.getCallHierarchy()); return null; } try { return Integer.parseInt(String.valueOf(possibleIntegerValue)); } catch (NumberFormatException e) { - log.debug("failed to parse int from value={}", possibleIntegerValue); + log.debug("failed to parse int from value={} (caller={})", possibleIntegerValue, StackWalkerUtils.getCallHierarchy()); return null; } } @@ -47,7 +47,7 @@ public static Integer parseInt(@Nullable Object possibleIntegerValue) { public static Double parseDouble(@Nullable Object possibleDoubleValue, int roundingDigits, @NonNull RoundingMode roundingMode) { if (possibleDoubleValue == null) { - log.debug("double value is null"); + log.debug("double value is null (caller={})", StackWalkerUtils.getCallHierarchy()); return null; } @@ -55,7 +55,8 @@ public static Double parseDouble(@Nullable Object possibleDoubleValue, int round double doubleValue = Double.parseDouble(String.valueOf(possibleDoubleValue)); return BigDecimal.valueOf(doubleValue).setScale(roundingDigits, roundingMode).doubleValue(); } catch (NumberFormatException e) { - log.debug("failed to parse double from value={}, roundingDigits={}, roundingMode={}", possibleDoubleValue, roundingDigits, roundingMode); + log.debug("failed to parse double from value={}, roundingDigits={}, roundingMode={} (caller={})" + , possibleDoubleValue, roundingDigits, roundingMode, StackWalkerUtils.getCallHierarchy()); return null; } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/StackWalkerUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/StackWalkerUtils.java new file mode 100644 index 00000000..ec5c0037 --- /dev/null +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/StackWalkerUtils.java @@ -0,0 +1,25 @@ +package io.github.eggy03.papertrail.bot.commons.utils; + +import lombok.experimental.UtilityClass; +import org.jetbrains.annotations.NotNull; + +import java.util.stream.Collectors; + +@UtilityClass +public class StackWalkerUtils { + + private static final StackWalker STACK_WALKER = StackWalker.getInstance(StackWalker.Option.RETAIN_CLASS_REFERENCE); + + // will show call hierarchies + @NotNull + public static String getCallHierarchy() { + return STACK_WALKER.walk(frames -> frames + .skip(1) + .limit(3) + .map(frame -> frame.getDeclaringClass().getSimpleName() + + "#" + frame.getMethodName() + + ":" + frame.getLineNumber() + ).collect(Collectors.joining(" -> ")) + ); + } +} diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutoModUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutoModUtils.java index 295b9daa..a55e48b3 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutoModUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutoModUtils.java @@ -13,14 +13,13 @@ public class AutoModUtils { @NonNull - public static final String NOT_AVAILABLE = "N/A"; + public static final String FALLBACK_STRING = "N/A"; - // AUTO MOD UTILS @NotNull public static String autoModEventTypeResolver(@Nullable Object autoModEventTypeInteger) { Integer eventTypeInt = NumberParseUtils.parseInt(autoModEventTypeInteger); if (eventTypeInt == null) { - return NOT_AVAILABLE; + return FALLBACK_STRING; } return AutoModEventType.fromKey(eventTypeInt).name(); @@ -29,7 +28,7 @@ public static String autoModEventTypeResolver(@Nullable Object autoModEventTypeI public static String autoModTriggerTypeResolver(@Nullable Object autoModTriggerTypeInteger) { Integer triggerTypeInt = NumberParseUtils.parseInt(autoModTriggerTypeInteger); if (triggerTypeInt == null) - return NOT_AVAILABLE; + return FALLBACK_STRING; return AutoModTriggerType.fromKey(triggerTypeInt).name(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java index 670ede36..aa75a242 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java @@ -16,13 +16,14 @@ @UtilityClass public class ChannelUtils { - // CHANNEL UTILS + public static final String FALLBACK_STRING = "N/A"; + @NotNull public static String resolveChannelType(@Nullable Object channelTypeInteger) { Integer channelType = NumberParseUtils.parseInt(channelTypeInteger); if (channelType == null) - return "Channel Type cannot be parsed: " + channelTypeInteger; + return FALLBACK_STRING; return ChannelType.fromId(channelType).name(); } @@ -31,7 +32,7 @@ public static String resolveChannelType(@Nullable Object channelTypeInteger) { public static String resolveVoiceChannelUserLimit(@Nullable Object limitNumber) { Integer userLimit = NumberParseUtils.parseInt(limitNumber); if (userLimit == null) - return "User Limit cannot be parsed"; + return FALLBACK_STRING; return userLimit == 0 ? "Unlimited" : userLimit.toString(); } @@ -40,7 +41,7 @@ public static String resolveVoiceChannelUserLimit(@Nullable Object limitNumber) public static String resolveVoiceChannelBitrate(@Nullable Object bitrateInteger) { Integer bitrate = NumberParseUtils.parseInt(bitrateInteger); if (bitrate == null) - return "Voice Channel Bitrate cannot be parsed"; + return FALLBACK_STRING; return (bitrate / 1000) + " kbps"; } @@ -53,7 +54,7 @@ public static String resolveVoiceChannelVideoQuality(@Nullable Object voiceChann return switch (videoQuality) { case 1 -> "Auto"; case 2 -> "720p/full"; - case null -> "Video Quality cannot be parsed"; + case null -> FALLBACK_STRING; default -> "Unknown Quality Mode: " + videoQuality; }; } @@ -66,7 +67,7 @@ public static String resolveChannelOverrideTargetType(@Nullable Object targetTyp return switch (targetType) { case 0 -> "Role"; case 1 -> "Member/Application"; - case null -> "Target Type cannot be parsed"; + case null -> FALLBACK_STRING; default -> "Unknown Type: " + targetType; }; @@ -77,7 +78,7 @@ public static String resolveChannelOverridePermissions(@Nullable Object permissi Long permissionValue = NumberParseUtils.parseLong(permissionValueLong); if (permissionValue == null) - return "Permission Value cannot be parsed"; + return FALLBACK_STRING; if (permissionValue == 0) return "Permissions synced with category"; @@ -98,7 +99,7 @@ public static String resolveChannelOverridePermissions(@Nullable Object permissi public static String autoResolveMemberOrRole(@Nullable Object memberOrRoleId, @NonNull GenericGuildEvent event) { if (memberOrRoleId == null) - return "Member/Role ID cannot be parsed"; + return FALLBACK_STRING; Member mb = event.getGuild().getMemberById(String.valueOf(memberOrRoleId)); Role r = event.getGuild().getRoleById(String.valueOf(memberOrRoleId)); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/utils/GuildUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/utils/GuildUtils.java index da1b4841..a1eb3bc6 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/utils/GuildUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/utils/GuildUtils.java @@ -14,7 +14,7 @@ public class GuildUtils { @NonNull - public static final String NOT_AVAILABLE = "N/A"; + public static final String FALLBACK_STRING = "N/A"; // GUILD UTILS @NotNull @@ -27,7 +27,7 @@ public static String resolveGuildVerificationLevel(@Nullable Object verification case 2 -> "MEDIUM (Registered on Discord for more than 5 minutes"; case 3 -> "HIGH (Must be a member of the server for longer than 10 minutes)"; case 4 -> "VERY_HIGH (Must have a verified phone number)"; - case null -> NOT_AVAILABLE; + case null -> FALLBACK_STRING; default -> "Unknown"; }; @@ -37,7 +37,7 @@ public static String resolveGuildVerificationLevel(@Nullable Object verification public static String resolveGuildModActionMFALevel(@Nullable Object mfaLevelInteger) { Integer mfaLevel = NumberParseUtils.parseInt(mfaLevelInteger); if (mfaLevel == null) - return NOT_AVAILABLE; + return FALLBACK_STRING; return Guild.MFALevel.fromKey(mfaLevel).name(); @@ -47,7 +47,7 @@ public static String resolveGuildModActionMFALevel(@Nullable Object mfaLevelInte public static String resolveGuildDefaultMessageNotificationLevel(@Nullable Object notificationLevelInteger) { Integer notificationLevel = NumberParseUtils.parseInt(notificationLevelInteger); if (notificationLevel == null) - return NOT_AVAILABLE; + return FALLBACK_STRING; return Guild.NotificationLevel.fromKey(notificationLevel).name(); @@ -57,7 +57,7 @@ public static String resolveGuildDefaultMessageNotificationLevel(@Nullable Objec public static String resolveExplicitContentFilterLevel(@Nullable Object explicitContentFilterLevelInteger) { Integer ecfLevel = NumberParseUtils.parseInt(explicitContentFilterLevelInteger); if (ecfLevel == null) - return NOT_AVAILABLE; + return FALLBACK_STRING; return Guild.ExplicitContentLevel.fromKey(ecfLevel).getDescription(); } @@ -67,7 +67,7 @@ public static String resolveSystemChannelFlags(@Nullable Object systemChannelFla Integer systemChannelFlagsInteger = NumberParseUtils.parseInt(systemChannelFlagsIntegerObject); if (systemChannelFlagsInteger == null) - return NOT_AVAILABLE; + return FALLBACK_STRING; if (systemChannelFlagsInteger == 0) return "No Flags Suppressed"; @@ -83,12 +83,12 @@ public static String resolveSystemChannelFlags(@Nullable Object systemChannelFla return systemChannelFlags.toString().trim(); } - // MISC + // MISC GUILD UTILS (BROADER COVERAGE) @NotNull public static String resolveMentionableChannel(Object channelId, @NonNull GenericGuildEvent event) { Long channelIdLong = NumberParseUtils.parseLong(channelId); if (channelIdLong == null) - return NOT_AVAILABLE; + return FALLBACK_STRING; GuildChannel channel = event.getGuild().getGuildChannelById(channelIdLong); return channel != null ? channel.getAsMention() : channelIdLong.toString(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/utils/MemberUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/utils/MemberUtils.java index 0d777b70..8deaa605 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/utils/MemberUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/utils/MemberUtils.java @@ -2,6 +2,7 @@ import lombok.NonNull; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.entities.Role; import net.dv8tion.jda.api.events.guild.GenericGuildEvent; import org.jetbrains.annotations.NotNull; @@ -11,14 +12,20 @@ import java.util.Map; @UtilityClass +@Slf4j public class MemberUtils { + public static final String FALLBACK_STRING = "N/A"; + // Parses an array list of map of role objects supplied by JDA // roles are exposed as arraylists of maps [{name=role, id=1}, {name=role2, id=2}] @NotNull public static String parseRoleListMap(@NonNull GenericGuildEvent event, @Nullable Object roleObject) { - if (roleObject == null) return "N/A"; + if (roleObject == null) { + log.debug("role object was null"); + return FALLBACK_STRING; + } if (roleObject instanceof List roleList) { StringBuilder roleString = new StringBuilder(); @@ -31,6 +38,8 @@ public static String parseRoleListMap(@NonNull GenericGuildEvent event, @Nullabl }); return roleString.toString().trim(); } - return "N/A"; + + log.debug("role object was not an instance of a list-map, value: {}", roleObject); + return FALLBACK_STRING; } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/utils/OnboardingUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/utils/OnboardingUtils.java index 67d0f819..f7404dc6 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/utils/OnboardingUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/utils/OnboardingUtils.java @@ -2,6 +2,7 @@ import lombok.NonNull; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; import org.jetbrains.annotations.NotNull; @@ -10,33 +11,34 @@ import java.util.List; @UtilityClass +@Slf4j public class OnboardingUtils { + public static final String FALLBACK_STRING = "N/A"; + @NotNull public static String formatMode(@Nullable Object value) { - if (value == null) return "N/A"; + if (value == null) { + log.debug("format mode value was null"); + return FALLBACK_STRING; + } return switch (String.valueOf(value)) { case "1" -> "Advanced Mode"; case "0" -> "Regular Mode"; - default -> "N/A"; + default -> { + log.debug("unrecognized value: {}", value); + yield "Unrecognized Mode: " + value; + } }; } - @NotNull - public static String formatStatus(@Nullable Object value) { - if (value == null) - return "N/A"; - - if (Boolean.TRUE.equals(value)) - return "Enabled"; - - return "Disabled"; - } - @NotNull public static String resolveChannelsFromList(@NonNull Guild guild, @Nullable Object value) { - if (value == null) return "No Resolvable Channel IDs"; + if (value == null) { + log.debug("channel list was null"); + return FALLBACK_STRING; + } StringBuilder sb = new StringBuilder(); if (value instanceof List channelIdList) { @@ -46,6 +48,7 @@ public static String resolveChannelsFromList(@NonNull Guild guild, @Nullable Obj }); } - return sb.toString(); + log.debug("channel list was not an instance of a list, value: {}", value); + return sb.toString().trim(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/utils/ScheduledEventUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/utils/ScheduledEventUtils.java index 2079a0a3..2d43dce6 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/utils/ScheduledEventUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/utils/ScheduledEventUtils.java @@ -2,6 +2,7 @@ import io.github.eggy03.papertrail.bot.commons.utils.NumberParseUtils; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.entities.ScheduledEvent; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -9,14 +10,17 @@ import java.util.Map; @UtilityClass +@Slf4j public class ScheduledEventUtils { + public static final String FALLBACK_STRING = "N/A"; + @NotNull public static String resolveEventType(@Nullable Object eventTypeInteger) { Integer eventType = NumberParseUtils.parseInt(eventTypeInteger); if (eventType == null) - return "N/A"; + return FALLBACK_STRING; return ScheduledEvent.Type.fromKey(eventType).name(); @@ -26,7 +30,7 @@ public static String resolveEventType(@Nullable Object eventTypeInteger) { public static String resolveStatusType(@Nullable Object eventTypeInteger) { Integer eventType = NumberParseUtils.parseInt(eventTypeInteger); if (eventType == null) - return "N/A"; + return FALLBACK_STRING; return ScheduledEvent.Status.fromKey(eventType).name(); } @@ -34,82 +38,76 @@ public static String resolveStatusType(@Nullable Object eventTypeInteger) { @NotNull public static String resolveRecurrenceRules(@Nullable Object recurrenceRuleStructure) { - if (recurrenceRuleStructure == null) - return "N/A"; + if (recurrenceRuleStructure == null) { + log.debug("recurrence rule object was null"); + return FALLBACK_STRING; + } StringBuilder stringBuilder = new StringBuilder(); if (recurrenceRuleStructure instanceof Map recurrenceRuleMap) { - stringBuilder - .append("**_Start Time of Interval_**") + stringBuilder.append("**_Start Time of Interval_**") .append(System.lineSeparator()) .append("╰┈➤") .append(recurrenceRuleMap.get("start")) .append(System.lineSeparator()); - stringBuilder - .append("**_End Time of Interval_**") + stringBuilder.append("**_End Time of Interval_**") .append(System.lineSeparator()) .append("╰┈➤") .append(recurrenceRuleMap.get("end")) .append(System.lineSeparator()); - stringBuilder - .append("**_Frequency of Interval_**") + stringBuilder.append("**_Frequency of Interval_**") .append(System.lineSeparator()) .append("╰┈➤") .append(recurrenceRuleMap.get("frequency")) .append(System.lineSeparator()); - stringBuilder - .append("**_Spacing between events_**") + stringBuilder.append("**_Spacing between events_**") .append(System.lineSeparator()) .append("╰┈➤") .append(recurrenceRuleMap.get("interval")) .append(System.lineSeparator()); - stringBuilder - .append("**_Weekday Recurrence_**") + stringBuilder.append("**_Weekday Recurrence_**") .append(System.lineSeparator()) .append("╰┈➤") .append(recurrenceRuleMap.get("by_weekday")) .append(System.lineSeparator()); - stringBuilder - .append("**_Specific days within a weekday to recur on_**") + stringBuilder.append("**_Specific days within a weekday to recur on_**") .append(System.lineSeparator()) .append("╰┈➤") .append(recurrenceRuleMap.get("by_n_weekday")) .append(System.lineSeparator()); - stringBuilder - .append("**_Monthly Recurrence_**") + stringBuilder.append("**_Monthly Recurrence_**") .append(System.lineSeparator()) .append("╰┈➤") .append(recurrenceRuleMap.get("by_month")) .append(System.lineSeparator()); - stringBuilder - .append("**_Specific days within a month to recur on_**") + stringBuilder.append("**_Specific days within a month to recur on_**") .append(System.lineSeparator()) .append("╰┈➤") .append(recurrenceRuleMap.get("by_month_day")) .append(System.lineSeparator()); - stringBuilder - .append("**_Set of days within a year to recur on_**") + stringBuilder.append("**_Set of days within a year to recur on_**") .append(System.lineSeparator()) .append("╰┈➤") .append(recurrenceRuleMap.get("by_year_day")) .append(System.lineSeparator()); - stringBuilder - .append("**_Event to be repeated_**") + stringBuilder.append("**_Event to be repeated_**") .append(System.lineSeparator()) .append("╰┈➤") .append(recurrenceRuleMap.get("count")); - } + } else + log.debug("Recurrence rule object was not an instance of a map, value: {}", recurrenceRuleStructure); + return stringBuilder.toString().trim(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/utils/StickerUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/utils/StickerUtils.java index 6a168e53..fd999419 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/utils/StickerUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/utils/StickerUtils.java @@ -60,7 +60,7 @@ public static String resolveRelatedEmoji(@NonNull GenericGuildEvent event, @Null } catch (NumberFormatException e) { log.debug("value is not numeric, treating as Unicode (value={}, guild={})", emojiIdString, event.getGuild().getId()); - return String.valueOf(emojiIdObject); + return emojiIdString; } } From 23723315dbb88f699739d6e32c36591bca2cab27 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Wed, 11 Feb 2026 20:16:05 +0530 Subject: [PATCH 062/104] refactor(scheduledevent): remove detailed recurrence rule from audit logs - Remove detailed recurrence rule display from create and delete event audit logs - Simplify recurrence rule update display in event audit logs - Deprecate `ScheduledEventUtils.resolveRecurrenceRules` Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../scheduledevent/ScheduledEventCreateEventHelper.java | 4 +--- .../scheduledevent/ScheduledEventDeleteEventHelper.java | 4 +--- .../scheduledevent/ScheduledEventUpdateEventHelper.java | 5 +---- .../helper/scheduledevent/utils/ScheduledEventUtils.java | 5 +++++ 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventCreateEventHelper.java index ec838072..649e9b61 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventCreateEventHelper.java @@ -44,11 +44,9 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull case "status" -> eb.addField("Event Status", "╰┈➤" + ScheduledEventUtils.resolveStatusType(newValue), false); case "location" -> eb.addField("Event Location", "╰┈➤" + newValue, false); - case "privacy_level", "image_hash", "channel_id" -> { + case "privacy_level", "image_hash", "channel_id", "recurrence_rule" -> { // skip } - case "recurrence_rule" -> - eb.addField("Recurrence Rule", ScheduledEventUtils.resolveRecurrenceRules(newValue), false); default -> { eb.addField("Unimplemented Change Key", changeKey, false); log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventDeleteEventHelper.java index ff07d3ed..b6511b1e 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventDeleteEventHelper.java @@ -44,11 +44,9 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull case "status" -> eb.addField("Event Status", "╰┈➤" + ScheduledEventUtils.resolveStatusType(oldValue), false); case "location" -> eb.addField("Event Location", "╰┈➤" + oldValue, false); - case "privacy_level", "image_hash", "channel_id" -> { + case "privacy_level", "image_hash", "channel_id", "recurrence_rule" -> { // skip } - case "recurrence_rule" -> - eb.addField("Recurrence Rule", ScheduledEventUtils.resolveRecurrenceRules(oldValue), false); default -> { eb.addField("Unimplemented Change Key", changeKey, false); log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java index 842ab826..2eb9f73a 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java @@ -60,11 +60,8 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull case "privacy_level" -> eb.addField("Privacy", "╰┈➤Event privacy has been updated", false); case "image_hash" -> eb.addField("Image", "╰┈➤Event Image has been updated", false); case "channel_id" -> eb.addField("Channel", "╰┈➤Event Channel has been updated", false); + case "recurrence_rule" -> eb.addField("Old Recurrence Rule", "Recurrence Rule has been updated", false); - case "recurrence_rule" -> { - eb.addField("Old Recurrence Rule", ScheduledEventUtils.resolveRecurrenceRules(oldValue), false); - eb.addField("New Recurrence Rule", ScheduledEventUtils.resolveRecurrenceRules(newValue), false); - } default -> { eb.addField("Unimplemented Change Key", changeKey, false); log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/utils/ScheduledEventUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/utils/ScheduledEventUtils.java index 2d43dce6..ca785fda 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/utils/ScheduledEventUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/utils/ScheduledEventUtils.java @@ -35,7 +35,12 @@ public static String resolveStatusType(@Nullable Object eventTypeInteger) { return ScheduledEvent.Status.fromKey(eventType).name(); } + + /** + * @deprecated + */ @NotNull + @Deprecated(forRemoval = true) public static String resolveRecurrenceRules(@Nullable Object recurrenceRuleStructure) { if (recurrenceRuleStructure == null) { From 9119262263f93872fdc31b9713d55e5215b25381 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Wed, 11 Feb 2026 22:49:06 +0530 Subject: [PATCH 063/104] feat(audit): enhance audit log processing and debugging - Streamline `RoleCreateEventHelper.java` by removing a redundant `for` loop for audit log changes. - Add `Slf4j` and debug logs to `ChannelUtils.java` for `autoResolveMemberOrRole` method to improve debugging. Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../helper/channel/utils/ChannelUtils.java | 7 ++++- .../helper/role/RoleCreateEventHelper.java | 29 ------------------- 2 files changed, 6 insertions(+), 30 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java index aa75a242..6fa919ca 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java @@ -3,6 +3,7 @@ import io.github.eggy03.papertrail.bot.commons.utils.NumberParseUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Role; @@ -14,6 +15,7 @@ import java.util.EnumSet; @UtilityClass +@Slf4j public class ChannelUtils { public static final String FALLBACK_STRING = "N/A"; @@ -98,8 +100,10 @@ public static String resolveChannelOverridePermissions(@Nullable Object permissi @NotNull public static String autoResolveMemberOrRole(@Nullable Object memberOrRoleId, @NonNull GenericGuildEvent event) { - if (memberOrRoleId == null) + if (memberOrRoleId == null) { + log.debug("null member/role id"); return FALLBACK_STRING; + } Member mb = event.getGuild().getMemberById(String.valueOf(memberOrRoleId)); Role r = event.getGuild().getRoleById(String.valueOf(memberOrRoleId)); @@ -110,6 +114,7 @@ public static String autoResolveMemberOrRole(@Nullable Object memberOrRoleId, @N return r.getAsMention(); } + log.debug("ID doesn't belong to a member or a role, value: {}", memberOrRoleId); return String.valueOf(memberOrRoleId); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleCreateEventHelper.java index a6d6e416..32de46d7 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleCreateEventHelper.java @@ -4,7 +4,6 @@ import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.Role; @@ -13,7 +12,6 @@ import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import java.awt.Color; -import java.util.Map; @UtilityClass @Slf4j @@ -54,39 +52,12 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull * and delegates them to ROLE_UPDATE event */ } - default -> { eb.addField("Unimplemented Change Key", changeKey, false); log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); } - } - }); - for (Map.Entry changes : ale.getChanges().entrySet()) { - - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); - - switch (change) { - - case "name": - eb.addField("🏷️ Role Name", "╰┈➤" + newValue, false); - break; - - /* - * discord for some reason shows the following to be default/null even - * when you set them during the creation of the role itself - * and delegates them to ROLE_UPDATE event - */ - case "colors", "hoist", "color", "permissions", "mentionable": - break; - - default: - eb.addField(change, "from " + oldValue + " to " + newValue, false); - } - } eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); From 558d2c41dfd6a08d15f2cf825fe142f58d0b7aeb Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Wed, 11 Feb 2026 23:07:46 +0530 Subject: [PATCH 064/104] docs(utils): add comment explaining logging rationale - Add a multi-line comment block to several utility classes. - Explain why logging isn't needed in some utility methods. - Reference `io.github.eggy03.papertrail.bot.commons.utils.StackWalkerUtils` for context. Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../listeners/audit/helper/automod/utils/AutoModUtils.java | 5 +++++ .../listeners/audit/helper/channel/utils/ChannelUtils.java | 5 +++++ .../bot/listeners/audit/helper/guild/utils/GuildUtils.java | 5 +++++ .../bot/listeners/audit/helper/member/utils/MemberUtils.java | 5 +++++ .../bot/listeners/audit/helper/role/utils/RoleUtils.java | 5 +++++ .../helper/scheduledevent/utils/ScheduledEventUtils.java | 5 +++++ .../audit/helper/soundboard/utils/SoundboardUtils.java | 5 +++++ .../bot/listeners/audit/helper/stage/utils/StageUtils.java | 5 +++++ 8 files changed, 40 insertions(+) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutoModUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutoModUtils.java index a55e48b3..93d6ff61 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutoModUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutoModUtils.java @@ -9,6 +9,11 @@ import org.jetbrains.annotations.Nullable; +/* + * See {@link io.github.eggy03.papertrail.bot.commons.utils.StackWalkerUtils} + * and other utilities in the util package + * to know why logging isn't needed here + */ @UtilityClass public class AutoModUtils { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java index 6fa919ca..6d8ffd23 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java @@ -14,6 +14,11 @@ import java.util.EnumSet; +/* + * See {@link io.github.eggy03.papertrail.bot.commons.utils.StackWalkerUtils} + * and other utilities in the util package + * to know why logging isn't needed in some of the methods here + */ @UtilityClass @Slf4j public class ChannelUtils { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/utils/GuildUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/utils/GuildUtils.java index a1eb3bc6..9709de81 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/utils/GuildUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/utils/GuildUtils.java @@ -10,6 +10,11 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +/* + * See {@link io.github.eggy03.papertrail.bot.commons.utils.StackWalkerUtils} + * and other utilities in the util package + * to know why logging isn't needed in some of the methods here + */ @UtilityClass public class GuildUtils { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/utils/MemberUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/utils/MemberUtils.java index 8deaa605..cc3dc3f6 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/utils/MemberUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/utils/MemberUtils.java @@ -11,6 +11,11 @@ import java.util.List; import java.util.Map; +/* + * See {@link io.github.eggy03.papertrail.bot.commons.utils.StackWalkerUtils} + * and other utilities in the util package + * to know why logging isn't needed in some of the methods here + */ @UtilityClass @Slf4j public class MemberUtils { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/utils/RoleUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/utils/RoleUtils.java index 180ab705..416550bc 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/utils/RoleUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/utils/RoleUtils.java @@ -12,6 +12,11 @@ import java.util.IllegalFormatException; import java.util.Map; +/* + * See {@link io.github.eggy03.papertrail.bot.commons.utils.StackWalkerUtils} + * and other utilities in the util package + * to know why logging isn't needed in some of the methods here + */ @UtilityClass @Slf4j public class RoleUtils { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/utils/ScheduledEventUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/utils/ScheduledEventUtils.java index ca785fda..c9a905dd 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/utils/ScheduledEventUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/utils/ScheduledEventUtils.java @@ -9,6 +9,11 @@ import java.util.Map; +/* + * See {@link io.github.eggy03.papertrail.bot.commons.utils.StackWalkerUtils} + * and other utilities in the util package + * to know why logging isn't needed in some of the methods here + */ @UtilityClass @Slf4j public class ScheduledEventUtils { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/utils/SoundboardUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/utils/SoundboardUtils.java index dfe5305f..1065823f 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/utils/SoundboardUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/utils/SoundboardUtils.java @@ -7,6 +7,11 @@ import java.math.RoundingMode; +/* + * See {@link io.github.eggy03.papertrail.bot.commons.utils.StackWalkerUtils} + * and other utilities in the util package + * to know why logging isn't needed in some of the methods here + */ @UtilityClass public class SoundboardUtils { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/utils/StageUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/utils/StageUtils.java index c5b1a886..b6bed96a 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/utils/StageUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/utils/StageUtils.java @@ -6,6 +6,11 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +/* + * See {@link io.github.eggy03.papertrail.bot.commons.utils.StackWalkerUtils} + * and other utilities in the util package + * to know why logging isn't needed in some of the methods here + */ @UtilityClass public class StageUtils { From 59f47bc0caa5122288ba1a82f24f4d05288fa236 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Thu, 12 Feb 2026 10:56:38 +0530 Subject: [PATCH 065/104] refactor(onboarding): standardize boolean status formatting - Replace calls to `OnboardingUtils.formatStatus` with `BooleanUtils.formatToEnabledOrDisabled` - Utilize a generic utility for formatting boolean values to "Enabled" or "Disabled" Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../audit/helper/onboarding/OnboardingUpdateEventHelper.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingUpdateEventHelper.java index 7780b800..4982e304 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingUpdateEventHelper.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.onboarding; +import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; import io.github.eggy03.papertrail.bot.listeners.audit.helper.onboarding.utils.OnboardingUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; @@ -42,8 +43,8 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull switch (changeKey) { case "enabled" -> { - eb.addField("Old Onboarding Status", OnboardingUtils.formatStatus(oldValue), false); - eb.addField("New Onboarding Status", OnboardingUtils.formatStatus(newValue), true); + eb.addField("Old Onboarding Status", BooleanUtils.formatToEnabledOrDisabled(oldValue), false); + eb.addField("New Onboarding Status", BooleanUtils.formatToEnabledOrDisabled(newValue), true); } case "mode" -> { From addf9a55605a0f9ec1ed9bafdf21dad3a518787f Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Thu, 12 Feb 2026 10:57:39 +0530 Subject: [PATCH 066/104] feat(thread-events): add thread utilities and refactor audit embeds - Introduce `ThreadUtils` for thread-specific formatting, including `resolveAutoArchiveDuration`. Refactor `ThreadCreateEventHelper`, `ThreadUpdateEventHelper`, and `ThreadDeleteEventHelper` to use it, enhancing embed clarity and standardizing boolean fields. Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../helper/channel/utils/ChannelUtils.java | 5 +- .../thread/ThreadCreateEventHelper.java | 66 ++++++------- .../thread/ThreadDeleteEventHelper.java | 64 ++++++------ .../thread/ThreadUpdateEventHelper.java | 99 +++++++++---------- .../helper/thread/utils/ThreadUtils.java | 29 ++++++ 5 files changed, 138 insertions(+), 125 deletions(-) create mode 100644 src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/utils/ThreadUtils.java diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java index 6d8ffd23..62de1cf3 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java @@ -24,7 +24,10 @@ public class ChannelUtils { public static final String FALLBACK_STRING = "N/A"; - + + /** + * can also be used for threads + */ @NotNull public static String resolveChannelType(@Nullable Object channelTypeInteger) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadCreateEventHelper.java index 07a4a365..bd1f3d1f 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadCreateEventHelper.java @@ -3,11 +3,11 @@ import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; import io.github.eggy03.papertrail.bot.commons.utils.DurationUtils; import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.thread.utils.ThreadUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; @@ -16,7 +16,6 @@ import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import java.awt.Color; -import java.util.Map; @UtilityClass @Slf4j @@ -26,61 +25,54 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Thread Create Event"); - User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); ThreadChannel targetThread = event.getGuild().getThreadChannelById(ale.getTargetId()); String mentionableTargetThread = (targetThread != null ? targetThread.getAsMention() : ale.getTargetId()); - eb.setDescription("👤 **By**: " + mentionableExecutor + "\nℹ️ A thread has been created"); + + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Thread Create Event"); + eb.setDescription("ℹ️ A thread has been created by: " + mentionableExecutor); eb.setColor(Color.GREEN); + eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - for (Map.Entry changes : ale.getChanges().entrySet()) { - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); + ale.getChanges().forEach((changeKey, changeValue) -> { + Object oldValue = changeValue.getOldValue(); + Object newValue = changeValue.getNewValue(); - switch (change) { - case "locked": - eb.addField("🔒 Locked", "╰┈➤" + BooleanUtils.formatToEmoji(newValue), false); - break; + switch (changeKey) { - case "auto_archive_duration": - eb.addField("🕒 Auto Archive Duration", "╰┈➤" + DurationUtils.formatMinutes(newValue), false); - break; + case "locked" -> eb.addField("Locked", "╰┈➤" + BooleanUtils.formatToYesOrNo(newValue), false); - case "rate_limit_per_user": - eb.addField("🐌 Slowmode Limit", "╰┈➤" + DurationUtils.formatSeconds(newValue), false); - break; + case "auto_archive_duration" -> + eb.addField("Auto Archive Duration", "╰┈➤" + ThreadUtils.resolveAutoArchiveDuration(newValue), false); - // TODO make threadutils for resolving thread types - case "type": - eb.addField("📁 Thread Type", "╰┈➤" + ChannelUtils.resolveChannelType(newValue), false); - break; + case "rate_limit_per_user" -> + eb.addField("Slow Mode Limit", "╰┈➤" + DurationUtils.formatSeconds(newValue), false); - case "archived": - eb.addField("🗄️ Archived", "╰┈➤" + BooleanUtils.formatToEmoji(newValue), false); - break; + case "type" -> eb.addField("Thread Type", "╰┈➤" + ChannelUtils.resolveChannelType(newValue), false); - case "flags": - eb.addField("🚩 Flags", "╰┈➤" + newValue, false); - break; + case "archived" -> eb.addField("Archived", "╰┈➤" + BooleanUtils.formatToYesOrNo(newValue), false); - case "name": - eb.addField("🏷️ Thread Name", "╰┈➤" + newValue, false); - break; + case "flags" -> { + // skip + } + case "invitable" -> eb.addField("Invitable", "╰┈➤" + BooleanUtils.formatToYesOrNo(newValue), false); - default: - eb.addField(change, "from " + oldValue + " to " + newValue, false); + case "name" -> eb.addField("Thread Name", "╰┈➤" + newValue, false); + + default -> { + eb.addField("Unimplemented Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); + } } + }); + eb.addField("Target Thread", "╰┈➤" + mentionableTargetThread, false); - } - eb.addField("🧵 Target Thread", "╰┈➤" + mentionableTargetThread, false); eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadDeleteEventHelper.java index 4476e428..30c46c48 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadDeleteEventHelper.java @@ -3,11 +3,11 @@ import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; import io.github.eggy03.papertrail.bot.commons.utils.DurationUtils; import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.thread.utils.ThreadUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; @@ -15,7 +15,6 @@ import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import java.awt.Color; -import java.util.Map; @UtilityClass @Slf4j @@ -25,57 +24,50 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Thread Delete Event"); - User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - eb.setDescription("👤 **By**: " + mentionableExecutor + "\nℹ️ A thread has been deleted"); + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Thread Delete Event"); + eb.setDescription("ℹ️ A thread has been deleted by: " + mentionableExecutor); eb.setColor(Color.RED); + eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - for (Map.Entry changes : ale.getChanges().entrySet()) { - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); + ale.getChanges().forEach((changeKey, changeValue) -> { + Object oldValue = changeValue.getOldValue(); + Object newValue = changeValue.getNewValue(); + + switch (changeKey) { - switch (change) { - case "🔒 locked": - eb.addField("Locked", "╰┈➤" + BooleanUtils.formatToEmoji(oldValue), false); - break; + case "locked" -> eb.addField("Locked", "╰┈➤" + BooleanUtils.formatToYesOrNo(oldValue), false); - case "🕒 auto_archive_duration": - eb.addField("Auto Archive Duration", "╰┈➤" + DurationUtils.formatMinutes(oldValue), false); - break; + case "auto_archive_duration" -> + eb.addField("Auto Archive Duration", "╰┈➤" + ThreadUtils.resolveAutoArchiveDuration(oldValue), false); - case "rate_limit_per_user": - eb.addField("🐌 Slowmode Limit", "╰┈➤" + DurationUtils.formatSeconds(oldValue), false); - break; + case "rate_limit_per_user" -> + eb.addField("Slow Mode Limit", "╰┈➤" + DurationUtils.formatSeconds(oldValue), false); - // TODO make threadutils - case "type": - eb.addField("📁 Thread Type", "╰┈➤" + ChannelUtils.resolveChannelType(oldValue), false); - break; + case "type" -> eb.addField("Thread Type", "╰┈➤" + ChannelUtils.resolveChannelType(oldValue), false); - case "archived": - eb.addField("🗄️ Archived", "╰┈➤" + BooleanUtils.formatToEmoji(oldValue), false); - break; + case "archived" -> eb.addField("Archived", "╰┈➤" + BooleanUtils.formatToYesOrNo(oldValue), false); - case "flags": - eb.addField("🚩 Flags", "╰┈➤" + oldValue, false); - break; + case "flags" -> { + // skip + } - case "name": - eb.addField("🏷️ Thread Name", "╰┈➤" + oldValue, false); - break; + case "invitable" -> eb.addField("Invitable", "╰┈➤" + BooleanUtils.formatToYesOrNo(oldValue), false); - default: - eb.addField(change, "from " + oldValue + " to " + newValue, false); + case "name" -> eb.addField("Thread Name", "╰┈➤" + oldValue, false); + + default -> { + eb.addField("Unimplemented Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); + } } + }); - } eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadUpdateEventHelper.java index 9a688725..437e5102 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadUpdateEventHelper.java @@ -3,11 +3,11 @@ import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; import io.github.eggy03.papertrail.bot.commons.utils.DurationUtils; import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.thread.utils.ThreadUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; @@ -16,7 +16,6 @@ import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import java.awt.Color; -import java.util.Map; @UtilityClass @Slf4j @@ -26,76 +25,74 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Thread Update Event"); - User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); ThreadChannel targetThread = event.getGuild().getThreadChannelById(ale.getTargetId()); String mentionableTargetThread = (targetThread != null ? targetThread.getAsMention() : ale.getTargetId()); - eb.setDescription("👤 **By**: " + mentionableExecutor + "\nℹ️ A thread has been updated"); + + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Thread Update Event"); + eb.setDescription("ℹ️ A thread has been updated by: " + mentionableExecutor); eb.setColor(Color.YELLOW); + eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); eb.addBlankField(true); - for (Map.Entry changes : ale.getChanges().entrySet()) { - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); + ale.getChanges().forEach((changeKey, changeValue) -> { + Object oldValue = changeValue.getOldValue(); + Object newValue = changeValue.getNewValue(); - switch (change) { - case "locked": - eb.addField("🔒 Old Lock Status", "╰┈➤" + BooleanUtils.formatToEmoji(oldValue), true); - eb.addField("🔒 New Lock Status", "╰┈➤" + BooleanUtils.formatToEmoji(newValue), true); - eb.addBlankField(true); - break; + switch (changeKey) { - case "auto_archive_duration": - eb.addField("🕒 Old Auto Archive Duration", "╰┈➤" + DurationUtils.formatMinutes(oldValue), true); - eb.addField("🕒 New Auto Archive Duration", "╰┈➤" + DurationUtils.formatMinutes(newValue), true); + case "locked" -> { + eb.addField("Was Locked", "╰┈➤" + BooleanUtils.formatToYesOrNo(oldValue), true); + eb.addField("Is Locked", "╰┈➤" + BooleanUtils.formatToYesOrNo(newValue), true); eb.addBlankField(true); - break; - - case "rate_limit_per_user": - eb.addField("🐌 Old Slowmode Limit", "╰┈➤" + DurationUtils.formatSeconds(oldValue), true); - eb.addField("🐌 New Slowmode Limit", "╰┈➤" + DurationUtils.formatSeconds(newValue), true); + } + case "auto_archive_duration" -> { + eb.addField("Old Auto Archive Duration", "╰┈➤" + ThreadUtils.resolveAutoArchiveDuration(oldValue), true); + eb.addField("New Auto Archive Duration", "╰┈➤" + ThreadUtils.resolveAutoArchiveDuration(newValue), true); eb.addBlankField(true); - break; - - // TODO make threadutils - case "type": - eb.addField("📁 Old Thread Type", "╰┈➤" + ChannelUtils.resolveChannelType(oldValue), true); - eb.addField("📁 New Thread Type", "╰┈➤" + ChannelUtils.resolveChannelType(newValue), true); + } + case "rate_limit_per_user" -> { + eb.addField("Old Slow Mode Limit", "╰┈➤" + DurationUtils.formatSeconds(oldValue), true); + eb.addField("New Slow Mode Limit", "╰┈➤" + DurationUtils.formatSeconds(newValue), true); eb.addBlankField(true); - break; - - case "archived": - eb.addField("🗄️ Old Archive Status", "╰┈➤" + BooleanUtils.formatToEmoji(oldValue), true); - eb.addField("🗄️ New Archive Status", "╰┈➤" + BooleanUtils.formatToEmoji(newValue), true); + } + case "type" -> { + eb.addField("Old Thread Type", "╰┈➤" + ChannelUtils.resolveChannelType(oldValue), true); + eb.addField("New Thread Type", "╰┈➤" + ChannelUtils.resolveChannelType(newValue), true); eb.addBlankField(true); - break; - - case "flags": - eb.addField("🚩 Old Flag Value", "╰┈➤" + oldValue, true); - eb.addField("🚩 New Flag Value", "╰┈➤" + newValue, true); + } + case "archived" -> { + eb.addField("Old Archive Status", "╰┈➤" + BooleanUtils.formatToEnabledOrDisabled(oldValue), true); + eb.addField("New Archive Status", "╰┈➤" + BooleanUtils.formatToEnabledOrDisabled(newValue), true); eb.addBlankField(true); - break; - - case "name": - eb.addField("🏷️ Old Thread Name", "╰┈➤" + oldValue, true); - eb.addField("🏷️ New Thread Name", "╰┈➤" + newValue, true); + } + case "flags" -> { + // skip + } + case "invitable" -> { + eb.addField("Was Invitable", "╰┈➤" + BooleanUtils.formatToYesOrNo(oldValue), true); + eb.addField("Is Invitable", "╰┈➤" + BooleanUtils.formatToYesOrNo(newValue), true); eb.addBlankField(true); - break; - - default: - eb.addField(change, "from " + oldValue + " to " + newValue, false); + } + case "name" -> { + eb.addField("Old Thread Name", "╰┈➤" + oldValue, true); + eb.addField("New Thread Name", "╰┈➤" + newValue, true); + eb.addBlankField(true); + } + default -> { + eb.addField("Unimplemented Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); + } } + }); + eb.addField("Target Thread", "╰┈➤" + mentionableTargetThread, false); - } - eb.addField("🧵 Target Thread", "╰┈➤" + mentionableTargetThread, false); eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/utils/ThreadUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/utils/ThreadUtils.java new file mode 100644 index 00000000..6018107c --- /dev/null +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/utils/ThreadUtils.java @@ -0,0 +1,29 @@ +package io.github.eggy03.papertrail.bot.listeners.audit.helper.thread.utils; + +import io.github.eggy03.papertrail.bot.commons.utils.NumberParseUtils; +import lombok.experimental.UtilityClass; +import net.dv8tion.jda.api.entities.channel.concrete.ThreadChannel; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/* + * See {@link io.github.eggy03.papertrail.bot.commons.utils.StackWalkerUtils} + * and other utilities in the util package + * to know why logging isn't needed in some of the methods here + */ +@UtilityClass +public class ThreadUtils { + + public static final String FALLBACK_STRING = "N/A"; + + @NotNull + public static String resolveAutoArchiveDuration(@Nullable Object minutes) { + + Integer minuteInt = NumberParseUtils.parseInt(minutes); + + if (minuteInt == null) + return "N/A"; + + return ThreadChannel.AutoArchiveDuration.fromKey(minuteInt).name(); + } +} From ec216fff9fe0fd3aa0f78730908f5a3484528ba5 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Thu, 12 Feb 2026 12:34:50 +0530 Subject: [PATCH 067/104] refactor(webhook): improve audit log event details - Extract webhook type resolution to `WebhookUtils` - Refactor webhook event helpers to use `WebhookUtils` and `GuildUtils` - Enhance embed formatting for webhook update events - Add logging for unhandled audit log change keys Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../webhook/WebhookCreateEventHelper.java | 61 ++++++++---------- .../webhook/WebhookRemoveEventHelper.java | 60 ++++++++--------- .../webhook/WebhookUpdateEventHelper.java | 64 +++++++++---------- .../helper/webhook/utils/WebhookUtils.java | 26 ++++++++ 4 files changed, 108 insertions(+), 103 deletions(-) create mode 100644 src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/utils/WebhookUtils.java diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookCreateEventHelper.java index 600a8c8b..1bd8f569 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookCreateEventHelper.java @@ -1,19 +1,18 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.webhook; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.guild.utils.GuildUtils; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.webhook.utils.WebhookUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; -import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import java.awt.Color; -import java.util.Map; @UtilityClass @Slf4j @@ -23,48 +22,38 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Webhook Create Event"); - User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - eb.setDescription("👤 **By**: " + mentionableExecutor + "\nℹ️ A webhook has been created"); + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Webhook Create Event"); + eb.setDescription("ℹ️ A webhook has been created by: " + mentionableExecutor); eb.setColor(Color.GREEN); + eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - for (Map.Entry changes : ale.getChanges().entrySet()) { - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); - - switch (change) { - case "type": - eb.addField("Webhook Type", "╰┈➤" + newValue, false); - eb.addField("Webhook Type Explanation", "-# 0 for PING; 1 for Event", false); - break; - - case "avatar_Hash": - eb.addField("Avatar Hash", "╰┈➤" + newValue, false); - break; - - case "channel_id": - GuildChannel targetChannel = event.getGuild().getGuildChannelById(String.valueOf(newValue)); - String mentionableTargetChannel = (targetChannel != null ? targetChannel.getAsMention() : String.valueOf(newValue)); - eb.addField("Channel", "╰┈➤" + mentionableTargetChannel, false); - break; - - case "name": - eb.addField("Webhook Name", "╰┈➤" + newValue, false); - break; - - - default: - eb.addField(change, "from " + oldValue + " to " + newValue, false); + ale.getChanges().forEach((changeKey, changeValue) -> { + Object oldValue = changeValue.getOldValue(); + Object newValue = changeValue.getNewValue(); + + switch (changeKey) { + + case "type" -> + eb.addField("Webhook Type", "╰┈➤" + WebhookUtils.resolveWebhookEventType(newValue), false); + case "avatar_hash" -> { + // skip + } + case "channel_id" -> + eb.addField("Channel", "╰┈➤" + GuildUtils.resolveMentionableChannel(newValue, event), false); + case "name" -> eb.addField("Webhook Name", "╰┈➤" + newValue, false); + default -> { + eb.addField("Unimplemented Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); + } } + }); - } eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookRemoveEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookRemoveEventHelper.java index 16b3f093..8d8e192a 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookRemoveEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookRemoveEventHelper.java @@ -1,19 +1,18 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.webhook; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.guild.utils.GuildUtils; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.webhook.utils.WebhookUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; -import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import java.awt.Color; -import java.util.Map; @UtilityClass @Slf4j @@ -23,47 +22,38 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Webhook Remove Event"); - User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - eb.setDescription("👤 **By**: " + mentionableExecutor + "\nℹ️ A webhook has been removed"); + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Webhook Remove Event"); + eb.setDescription("ℹ️ A webhook has been removed by: " + mentionableExecutor); eb.setColor(Color.RED); + eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - for (Map.Entry changes : ale.getChanges().entrySet()) { - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); - - switch (change) { - case "type": - eb.addField("📡 Webhook Type", "╰┈➤" + oldValue, false); - break; - - case "avatar_hash": - eb.addField("🖼️ Avatar Hash", "╰┈➤" + oldValue, false); - break; - - case "channel_id": - GuildChannel targetChannel = event.getGuild().getGuildChannelById(String.valueOf(oldValue)); - String mentionableTargetChannel = (targetChannel != null ? targetChannel.getAsMention() : String.valueOf(oldValue)); - eb.addField("💬 Channel", "╰┈➤" + mentionableTargetChannel, false); - break; - - case "name": - eb.addField("🏷️ Webhook Name", "╰┈➤" + oldValue, false); - break; - - - default: - eb.addField(change, "from " + oldValue + " to " + newValue, false); + ale.getChanges().forEach((changeKey, changeValue) -> { + Object oldValue = changeValue.getOldValue(); + Object newValue = changeValue.getNewValue(); + + switch (changeKey) { + + case "type" -> + eb.addField("Webhook Type", "╰┈➤" + WebhookUtils.resolveWebhookEventType(oldValue), false); + case "avatar_hash" -> { + // skip + } + case "channel_id" -> + eb.addField("Channel", "╰┈➤" + GuildUtils.resolveMentionableChannel(oldValue, event), false); + case "name" -> eb.addField("Webhook Name", "╰┈➤" + oldValue, false); + default -> { + eb.addField("Unimplemented Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); + } } + }); - } eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookUpdateEventHelper.java index d14364e5..ccd43c0a 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookUpdateEventHelper.java @@ -1,19 +1,18 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.webhook; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.guild.utils.GuildUtils; +import io.github.eggy03.papertrail.bot.listeners.audit.helper.webhook.utils.WebhookUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.audit.AuditLogChange; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; -import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; import java.awt.Color; -import java.util.Map; @UtilityClass @Slf4j @@ -33,37 +32,38 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setColor(Color.YELLOW); eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); - - for (Map.Entry changes : ale.getChanges().entrySet()) { - String change = changes.getKey(); - Object oldValue = changes.getValue().getOldValue(); - Object newValue = changes.getValue().getNewValue(); - - switch (change) { - case "type": - eb.addField("📡 Webhook Type", "╰┈➤ " + newValue, false); - break; - - case "avatar_hash": - eb.addField("🖼️ Avatar Hash", "╰┈➤" + "from `" + oldValue + "` to `" + newValue + "`", false); - break; - - case "channel_id": - GuildChannel targetChannel = event.getGuild().getGuildChannelById(String.valueOf(newValue)); - String mentionableTargetChannel = (targetChannel != null ? targetChannel.getAsMention() : String.valueOf(newValue)); - eb.addField("💬 New Channel", "╰┈➤" + mentionableTargetChannel, false); - break; - - case "name": - eb.addField("🏷️ Webhook Name", "╰┈➤" + "from " + oldValue + " to " + newValue, false); - break; - - - default: - eb.addField(change, "from " + oldValue + " to " + newValue, false); + eb.addBlankField(true); + + ale.getChanges().forEach((changeKey, changeValue) -> { + Object oldValue = changeValue.getOldValue(); + Object newValue = changeValue.getNewValue(); + + switch (changeKey) { + + case "type" -> { + eb.addField("Old Webhook Type", "╰┈➤" + WebhookUtils.resolveWebhookEventType(oldValue), true); + eb.addField("New Webhook Type", "╰┈➤" + WebhookUtils.resolveWebhookEventType(newValue), true); + eb.addBlankField(true); + } + case "avatar_hash" -> eb.addField("Avatar", "╰┈➤Avatar has been updated", false); + + case "channel_id" -> { + eb.addField("Old Channel", "╰┈➤" + GuildUtils.resolveMentionableChannel(oldValue, event), true); + eb.addField("New Channel", "╰┈➤" + GuildUtils.resolveMentionableChannel(newValue, event), true); + eb.addBlankField(true); + } + case "name" -> { + eb.addField("Old Webhook Name", "╰┈➤" + oldValue, true); + eb.addField("New Webhook Name", "╰┈➤" + newValue, true); + eb.addBlankField(true); + } + default -> { + eb.addField("Unimplemented Change Key", changeKey, false); + log.info("Unimplemented Change Key: {}\nOLD_VALUE: {}\nNEW_VALUE: {}", changeKey, oldValue, newValue); + } } + }); - } eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/utils/WebhookUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/utils/WebhookUtils.java new file mode 100644 index 00000000..213cb87c --- /dev/null +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/utils/WebhookUtils.java @@ -0,0 +1,26 @@ +package io.github.eggy03.papertrail.bot.listeners.audit.helper.webhook.utils; + +import io.github.eggy03.papertrail.bot.commons.utils.NumberParseUtils; +import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +@UtilityClass +@Slf4j +public class WebhookUtils { + + public static final String FALLBACK_STRING = "N/A"; + + @NotNull + public static String resolveWebhookEventType(@Nullable Object webhookInteger) { + Integer webhook = NumberParseUtils.parseInt(webhookInteger); + + return switch (webhook) { + case 0 -> "Ping"; + case 1 -> "Events"; + case null -> FALLBACK_STRING; + default -> "Unknown Type: " + webhook; + }; + } +} From 04b13ab91f0cde73df5b836226b6057154cdf29b Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Thu, 12 Feb 2026 13:23:23 +0530 Subject: [PATCH 068/104] style(audit-logs): improve audit log embed field display - Set `inline` parameter to `true` for `eb.addField` calls in `ScheduledEventUpdateEventHelper.java` and `OnboardingUpdateEventHelper.java`. - Add `eb.addBlankField(true)` after field pairs to improve spacing. - Enhance readability of audit log embeds by displaying fields on separate lines. - Correct `recurrence_rule` field name in `ScheduledEventUpdateEventHelper.java`. Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../OnboardingUpdateEventHelper.java | 12 +++++--- .../ScheduledEventUpdateEventHelper.java | 28 +++++++++++-------- 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingUpdateEventHelper.java index 4982e304..7c7968c7 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingUpdateEventHelper.java @@ -36,6 +36,7 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); + eb.addBlankField(true); ale.getChanges().forEach((changeKey, changeValue) -> { Object oldValue = changeValue.getOldValue(); @@ -43,18 +44,21 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull switch (changeKey) { case "enabled" -> { - eb.addField("Old Onboarding Status", BooleanUtils.formatToEnabledOrDisabled(oldValue), false); + eb.addField("Old Onboarding Status", BooleanUtils.formatToEnabledOrDisabled(oldValue), true); eb.addField("New Onboarding Status", BooleanUtils.formatToEnabledOrDisabled(newValue), true); + eb.addBlankField(true); } case "mode" -> { - eb.addField("Old Onboarding Mode", OnboardingUtils.formatMode(oldValue), false); + eb.addField("Old Onboarding Mode", OnboardingUtils.formatMode(oldValue), true); eb.addField("New Onboarding Mode", OnboardingUtils.formatMode(newValue), true); + eb.addBlankField(true); } case "default_channel_ids" -> { - eb.addField("Old Default Channels", OnboardingUtils.resolveChannelsFromList(guild, oldValue), false); - eb.addField("New Default Channels", OnboardingUtils.resolveChannelsFromList(guild, newValue), false); + eb.addField("Old Default Channels", OnboardingUtils.resolveChannelsFromList(guild, oldValue), true); + eb.addField("New Default Channels", OnboardingUtils.resolveChannelsFromList(guild, newValue), true); + eb.addBlankField(true); } // triggered also when prompts are deleted/created besides the default of update diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java index 2eb9f73a..baccc0f0 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java @@ -31,6 +31,7 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); + eb.addBlankField(true); ale.getChanges().forEach((changeKey, changeValue) -> { Object oldValue = changeValue.getOldValue(); @@ -38,29 +39,34 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull switch (changeKey) { case "entity_type" -> { - eb.addField("Old Event Type", "╰┈➤" + ScheduledEventUtils.resolveEventType(oldValue), false); - eb.addField("New Event Type", "╰┈➤" + ScheduledEventUtils.resolveEventType(newValue), false); + eb.addField("Old Event Type", "╰┈➤" + ScheduledEventUtils.resolveEventType(oldValue), true); + eb.addField("New Event Type", "╰┈➤" + ScheduledEventUtils.resolveEventType(newValue), true); + eb.addBlankField(true); } case "name" -> { - eb.addField("Old Event Name", "╰┈➤" + oldValue, false); - eb.addField("New Event Name", "╰┈➤" + newValue, false); + eb.addField("Old Event Name", "╰┈➤" + oldValue, true); + eb.addField("New Event Name", "╰┈➤" + newValue, true); + eb.addBlankField(true); } case "description" -> { - eb.addField("Old Event Description", "╰┈➤" + oldValue, false); - eb.addField("New Event Description", "╰┈➤" + newValue, false); + eb.addField("Old Event Description", "╰┈➤" + oldValue, true); + eb.addField("New Event Description", "╰┈➤" + newValue, true); + eb.addBlankField(true); } case "status" -> { - eb.addField("Old Event Status", "╰┈➤" + ScheduledEventUtils.resolveStatusType(oldValue), false); - eb.addField("New Event Status", "╰┈➤" + ScheduledEventUtils.resolveStatusType(newValue), false); + eb.addField("Old Event Status", "╰┈➤" + ScheduledEventUtils.resolveStatusType(oldValue), true); + eb.addField("New Event Status", "╰┈➤" + ScheduledEventUtils.resolveStatusType(newValue), true); + eb.addBlankField(true); } case "location" -> { - eb.addField("Event Location", "╰┈➤" + oldValue, false); - eb.addField("Event Location", "╰┈➤" + newValue, false); + eb.addField("Event Location", "╰┈➤" + oldValue, true); + eb.addField("Event Location", "╰┈➤" + newValue, true); + eb.addBlankField(true); } case "privacy_level" -> eb.addField("Privacy", "╰┈➤Event privacy has been updated", false); case "image_hash" -> eb.addField("Image", "╰┈➤Event Image has been updated", false); case "channel_id" -> eb.addField("Channel", "╰┈➤Event Channel has been updated", false); - case "recurrence_rule" -> eb.addField("Old Recurrence Rule", "Recurrence Rule has been updated", false); + case "recurrence_rule" -> eb.addField("Recurrence Rule", "╰┈➤Recurrence Rule has been updated", false); default -> { eb.addField("Unimplemented Change Key", changeKey, false); From 342f58b460c45963cae67a9d7523051edb329ab2 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Thu, 12 Feb 2026 13:36:15 +0530 Subject: [PATCH 069/104] refactor(codebase): add lombok `@NonNull` annotations - Add `@NonNull` to `FALLBACK_STRING` constants in utility classes - Apply `@NonNull` to `vThreadPool` fields in event listeners - Mark method parameters and return types with `@NonNull` for improved null safety Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../eggy03/papertrail/bot/commons/utils/BooleanUtils.java | 2 ++ .../eggy03/papertrail/bot/commons/utils/DurationUtils.java | 2 ++ .../bot/listeners/audit/event/AuditLogEventListener.java | 2 ++ .../listeners/audit/event/guild/GuildBoostEventListener.java | 2 ++ .../event/guild/GuildMemberJoinAndLeaveEventListener.java | 2 ++ .../listeners/audit/event/guild/GuildPollEventListener.java | 2 ++ .../listeners/audit/event/guild/GuildVoiceEventListener.java | 2 ++ .../listeners/audit/helper/automod/utils/AutoModUtils.java | 1 + .../helper/channel/ChannelOverrideUpdateEventHelper.java | 4 +++- .../listeners/audit/helper/channel/utils/ChannelUtils.java | 1 + .../bot/listeners/audit/helper/member/utils/MemberUtils.java | 1 + .../audit/helper/onboarding/utils/OnboardingUtils.java | 1 + .../bot/listeners/audit/helper/role/utils/RoleUtils.java | 3 +++ .../helper/scheduledevent/utils/ScheduledEventUtils.java | 2 ++ .../listeners/audit/helper/sticker/utils/StickerUtils.java | 1 + .../bot/listeners/audit/helper/thread/utils/ThreadUtils.java | 2 ++ .../listeners/audit/helper/webhook/utils/WebhookUtils.java | 2 ++ .../listeners/audit/setup/AuditLogSetupCommandListener.java | 2 +- .../bot/listeners/message/event/MessageLogListener.java | 2 +- .../papertrail/bot/listeners/misc/ActivityUpdateListener.java | 2 ++ .../papertrail/bot/listeners/misc/SelfKickListener.java | 1 + 21 files changed, 36 insertions(+), 3 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/BooleanUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/BooleanUtils.java index 0e370c83..cea106f4 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/BooleanUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/BooleanUtils.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.commons.utils; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.NotNull; @@ -9,6 +10,7 @@ @Slf4j public class BooleanUtils { + @NonNull private static final String FALLBACK_STRING = "N/A"; @NotNull diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/DurationUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/DurationUtils.java index 402f1568..b635d058 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/DurationUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/utils/DurationUtils.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.commons.utils; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.Nullable; @@ -13,6 +14,7 @@ @Slf4j public class DurationUtils { + @NonNull private static final String FALLBACK_STRING = "N/A"; public static String formatSeconds(@Nullable Object seconds) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/AuditLogEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/AuditLogEventListener.java index 5c37aa4d..f545293c 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/AuditLogEventListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/AuditLogEventListener.java @@ -79,6 +79,8 @@ public class AuditLogEventListener extends ListenerAdapter { @NonNull private static final AuditLogRegistrationClient client = new AuditLogRegistrationClient(EnvConfig.get("API_URL")); + + @NonNull private final Executor vThreadPool; @Override diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildBoostEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildBoostEventListener.java index a27758b0..78426175 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildBoostEventListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildBoostEventListener.java @@ -27,6 +27,8 @@ public class GuildBoostEventListener extends ListenerAdapter { @NonNull private static final AuditLogRegistrationClient client = new AuditLogRegistrationClient(EnvConfig.get("API_URL")); + + @NonNull private final Executor vThreadPool; @Override diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildMemberJoinAndLeaveEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildMemberJoinAndLeaveEventListener.java index 82ec91a1..4f337bd8 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildMemberJoinAndLeaveEventListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildMemberJoinAndLeaveEventListener.java @@ -30,6 +30,8 @@ public class GuildMemberJoinAndLeaveEventListener extends ListenerAdapter { @NonNull private static final AuditLogRegistrationClient client = new AuditLogRegistrationClient(EnvConfig.get("API_URL")); + + @NonNull private final Executor vThreadPool; @Override diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildPollEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildPollEventListener.java index 9afbc73b..f837ac77 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildPollEventListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildPollEventListener.java @@ -23,6 +23,8 @@ public class GuildPollEventListener extends ListenerAdapter { @NonNull private static final AuditLogRegistrationClient client = new AuditLogRegistrationClient(EnvConfig.get("API_URL")); + + @NonNull private final Executor vThreadPool; @Override diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildVoiceEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildVoiceEventListener.java index a221527f..96b01b35 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildVoiceEventListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildVoiceEventListener.java @@ -26,6 +26,8 @@ public class GuildVoiceEventListener extends ListenerAdapter { @NonNull private static final AuditLogRegistrationClient client = new AuditLogRegistrationClient(EnvConfig.get("API_URL")); + + @NonNull private final Executor vThreadPool; @Override diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutoModUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutoModUtils.java index 93d6ff61..277ff098 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutoModUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutoModUtils.java @@ -30,6 +30,7 @@ public static String autoModEventTypeResolver(@Nullable Object autoModEventTypeI return AutoModEventType.fromKey(eventTypeInt).name(); } + @NotNull public static String autoModTriggerTypeResolver(@Nullable Object autoModTriggerTypeInteger) { Integer triggerTypeInt = NumberParseUtils.parseInt(autoModTriggerTypeInteger); if (triggerTypeInt == null) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java index dce6c0e1..fcbf1853 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java @@ -13,6 +13,7 @@ import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; +import org.jetbrains.annotations.NotNull; import java.awt.Color; @@ -83,7 +84,8 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull // ALE changes do not expose the id and type keys in case of override updates // therefore, this hacky method is required // IDK why channel override updates don't show this info - private static String getTargetRoleOrMember(AuditLogEntry ale, GuildAuditLogEntryCreateEvent event) { + @NotNull + private static String getTargetRoleOrMember(@NonNull AuditLogEntry ale, @NonNull GuildAuditLogEntryCreateEvent event) { String overriddenId = ale.getOptionByName("id"); // id of the member or role String overriddenType = ale.getOptionByName("type"); // type that determines if the ID is that of a role or a member diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java index 62de1cf3..47cb00c2 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java @@ -23,6 +23,7 @@ @Slf4j public class ChannelUtils { + @NonNull public static final String FALLBACK_STRING = "N/A"; /** diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/utils/MemberUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/utils/MemberUtils.java index cc3dc3f6..dc38f594 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/utils/MemberUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/utils/MemberUtils.java @@ -20,6 +20,7 @@ @Slf4j public class MemberUtils { + @NonNull public static final String FALLBACK_STRING = "N/A"; // Parses an array list of map of role objects supplied by JDA diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/utils/OnboardingUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/utils/OnboardingUtils.java index f7404dc6..91105299 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/utils/OnboardingUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/utils/OnboardingUtils.java @@ -14,6 +14,7 @@ @Slf4j public class OnboardingUtils { + @NonNull public static final String FALLBACK_STRING = "N/A"; @NotNull diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/utils/RoleUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/utils/RoleUtils.java index 416550bc..ac7cdba6 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/utils/RoleUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/utils/RoleUtils.java @@ -21,6 +21,7 @@ @Slf4j public class RoleUtils { + @NonNull private static final String FALLBACK_STRING = "N/A"; @NotNull @@ -45,6 +46,7 @@ public static String resolveRolePermissions(@Nullable Object permissionsValue, @ return permissions.toString().trim(); } + @NotNull public static String formatToHex(@Nullable Object colorValueInteger) { if (colorValueInteger == null) { @@ -68,6 +70,7 @@ public static String formatToHex(@Nullable Object colorValueInteger) { // gradient is returned as a hash map in the following structure // {"primary_color" = 123456789, "secondary_color" = 123456789, "tertiary_color" = 123456789} + @NotNull public static String formatGradientToHex(@Nullable Object gradientMap) { if (gradientMap == null) { diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/utils/ScheduledEventUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/utils/ScheduledEventUtils.java index c9a905dd..f56cf236 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/utils/ScheduledEventUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/utils/ScheduledEventUtils.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.scheduledevent.utils; import io.github.eggy03.papertrail.bot.commons.utils.NumberParseUtils; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.entities.ScheduledEvent; @@ -18,6 +19,7 @@ @Slf4j public class ScheduledEventUtils { + @NonNull public static final String FALLBACK_STRING = "N/A"; @NotNull diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/utils/StickerUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/utils/StickerUtils.java index fd999419..fa958be2 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/utils/StickerUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/utils/StickerUtils.java @@ -13,6 +13,7 @@ @Slf4j public class StickerUtils { + @NonNull public static final String FALLBACK_STRING = "N/A"; @NotNull diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/utils/ThreadUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/utils/ThreadUtils.java index 6018107c..b0b0a092 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/utils/ThreadUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/utils/ThreadUtils.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.thread.utils; import io.github.eggy03.papertrail.bot.commons.utils.NumberParseUtils; +import lombok.NonNull; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.entities.channel.concrete.ThreadChannel; import org.jetbrains.annotations.NotNull; @@ -14,6 +15,7 @@ @UtilityClass public class ThreadUtils { + @NonNull public static final String FALLBACK_STRING = "N/A"; @NotNull diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/utils/WebhookUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/utils/WebhookUtils.java index 213cb87c..14b08ba1 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/utils/WebhookUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/utils/WebhookUtils.java @@ -1,6 +1,7 @@ package io.github.eggy03.papertrail.bot.listeners.audit.helper.webhook.utils; import io.github.eggy03.papertrail.bot.commons.utils.NumberParseUtils; +import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.NotNull; @@ -10,6 +11,7 @@ @Slf4j public class WebhookUtils { + @NonNull public static final String FALLBACK_STRING = "N/A"; @NotNull diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/setup/AuditLogSetupCommandListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/setup/AuditLogSetupCommandListener.java index 16a044d2..72773032 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/setup/AuditLogSetupCommandListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/setup/AuditLogSetupCommandListener.java @@ -136,7 +136,7 @@ private void retrieveAuditLoggingChannel(@NonNull SlashCommandInteractionEvent e }); } - private void unsetAuditLogging(SlashCommandInteractionEvent event) { + private void unsetAuditLogging(@NonNull SlashCommandInteractionEvent event) { // Only members in a guild with MANAGE_SERVER permissions should be able to use this command Member callerMember = event.getMember(); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/event/MessageLogListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/event/MessageLogListener.java index b3c66c02..7b844dd7 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/event/MessageLogListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/event/MessageLogListener.java @@ -32,7 +32,7 @@ public class MessageLogListener extends ListenerAdapter { private static final MessageLogRegistrationClient registrationClient = new MessageLogRegistrationClient(EnvConfig.get("API_URL")); @NonNull private static final MessageLogContentClient contentClient = new MessageLogContentClient(EnvConfig.get("API_URL")); - + @NonNull private final Executor vThreadPool; @Override diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/ActivityUpdateListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/ActivityUpdateListener.java index eac3037b..cdcc3648 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/ActivityUpdateListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/ActivityUpdateListener.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.misc; +import lombok.NonNull; import lombok.RequiredArgsConstructor; import net.dv8tion.jda.api.entities.Activity; import net.dv8tion.jda.api.events.guild.GuildJoinEvent; @@ -15,6 +16,7 @@ @RequiredArgsConstructor public class ActivityUpdateListener extends ListenerAdapter { + @NonNull private final ShardManager manager; @Override diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/SelfKickListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/SelfKickListener.java index b7f7e1c4..67a753e4 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/SelfKickListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/SelfKickListener.java @@ -23,6 +23,7 @@ public class SelfKickListener extends ListenerAdapter { @NonNull private static final MessageLogRegistrationClient mlClient = new MessageLogRegistrationClient(EnvConfig.get("API_URL")); + @NonNull private final Executor vThreadPool; @Override From ece6925eb75888f8018816999a79e188054da6c2 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Thu, 12 Feb 2026 15:34:53 +0530 Subject: [PATCH 070/104] refactor(commands): improve slash command setup and listeners - Centralize permission handling for `/auditlog` and `/messagelog` commands. - Update setup instructions and ensure command registration is active. - Streamline listener code with `Slf4j` and simplified embeds. Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../setup/AuditLogSetupCommandListener.java | 121 +++++------------- .../setup/MessageLogSetupCommandListener.java | 117 +++++------------ .../BotSetupInstructionCommandListener.java | 39 +++--- .../SlashCommandRegistrationListener.java | 23 +++- .../eggy03/papertrail/bot/main/Start.java | 1 + 5 files changed, 112 insertions(+), 189 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/setup/AuditLogSetupCommandListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/setup/AuditLogSetupCommandListener.java index 72773032..f2808857 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/setup/AuditLogSetupCommandListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/setup/AuditLogSetupCommandListener.java @@ -4,12 +4,10 @@ import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; import io.github.eggy03.papertrail.sdk.entity.AuditLogRegistrationEntity; import lombok.NonNull; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.Guild; -import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.MessageEmbed; -import net.dv8tion.jda.api.entities.channel.Channel; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; @@ -17,6 +15,7 @@ import java.awt.Color; import java.util.Optional; +@Slf4j public class AuditLogSetupCommandListener extends ListenerAdapter { @NonNull @@ -25,48 +24,26 @@ public class AuditLogSetupCommandListener extends ListenerAdapter { @Override public void onSlashCommandInteraction(@NonNull SlashCommandInteractionEvent event) { - if (!event.getName().equals("auditlog")) { - return; - } - - if (event.getSubcommandName() == null) { + if (!event.getName().equals("auditlog") || event.getSubcommandName() == null) { return; } switch (event.getSubcommandName()) { - - case "set": - setAuditLogging(event); - break; - - case "view": - retrieveAuditLoggingChannel(event); - break; - - case "remove": - unsetAuditLogging(event); - break; - - default: - break; + case "set" -> setAuditLogging(event); + case "view" -> retrieveAuditLoggingChannel(event); + case "remove" -> unsetAuditLogging(event); + default -> { + // do nothing + } } } - private void setAuditLogging(@NonNull SlashCommandInteractionEvent event) { - // Only members in a guild with MANAGE_SERVER permissions should be able to use this command - Member callerMember = event.getMember(); Guild callerGuild = event.getGuild(); - Channel callerChannel = event.getChannel().asTextChannel(); - - if (callerMember == null || callerGuild == null) { - event.reply("❌ You can only use this command in a guild.").setEphemeral(true).queue(); - return; - } - - if (!callerMember.hasPermission(Permission.MANAGE_SERVER)) { - event.reply("❌ You don't have the permission required to use this command.").setEphemeral(true).queue(); + GuildChannel callerChannel = event.getChannel().asTextChannel(); + if (callerGuild == null) { + log.warn("An audit log set command may have been called outside of a guild. This should not happen."); return; } @@ -74,81 +51,57 @@ private void setAuditLogging(@NonNull SlashCommandInteractionEvent event) { boolean success = client.registerGuild(callerGuild.getId(), callerChannel.getId()); EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("📝 Audit Log Configuration"); + eb.setTitle("Audit Log Registration Process"); if (success) { - eb.addField("✅ Channel Registration Success", "╰┈➤" + "All audit log info will be logged here", false); eb.setColor(Color.GREEN); - - MessageEmbed mb = eb.build(); - event.replyEmbeds(mb).setEphemeral(false).queue(); + eb.addField("✅ Channel Registration Success", "╰┈➤" + "All audit log info will be logged here", false); } else { - eb.addField("❌ Channel Registration Failure", "╰┈➤" + "Channel could not be registered.\nCheck if a channel in this guild is already registered for logging.", false); eb.setColor(Color.YELLOW); - - MessageEmbed mb = eb.build(); - event.replyEmbeds(mb).setEphemeral(false).queue(); + eb.addField("❌ Channel Registration Failure", "╰┈➤" + "Channel could not be registered.\nCheck if a channel in this guild is already registered for logging.", false); } + MessageEmbed mb = eb.build(); + event.replyEmbeds(mb).setEphemeral(false).queue(); } private void retrieveAuditLoggingChannel(@NonNull SlashCommandInteractionEvent event) { - // Only members in a guild with MANAGE_SERVER permissions should be able to use this command - Member callerMember = event.getMember(); Guild callerGuild = event.getGuild(); - - if (callerMember == null || callerGuild == null) { - event.reply("❌ You can only use this command in a guild.").setEphemeral(true).queue(); - return; - } - - if (!callerMember.hasPermission(Permission.MANAGE_SERVER)) { - event.reply("❌ You don't have the permission required to use this command.").setEphemeral(true).queue(); + if (callerGuild == null) { + log.warn("An audit log view command may have been called outside of a guild. This should not happen."); return; } - // Call the API to retrieve the registered channel Optional response = client.getRegisteredGuild(callerGuild.getId()); + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("View Existing Audit Log Configuration"); + // if there is no channel_id for the given guild_id returned by the API, then inform // the user of the same, else link the channel that has been registered response.ifPresentOrElse(success -> { - String registeredChannelId = success.getChannelId(); GuildChannel registeredChannel = event.getJDA().getGuildChannelById(registeredChannelId); + String mentionableRegisteredChannel = registeredChannel != null ? registeredChannel.getAsMention() : registeredChannelId; - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("📝 Audit Log Configuration"); eb.setColor(Color.CYAN); - eb.addField("✅ Channel Registration Check", "╰┈➤" + (registeredChannel != null ? registeredChannel.getAsMention() : registeredChannelId) + " is found to be registered as the audit log channel", false); - MessageEmbed mb = eb.build(); - event.replyEmbeds(mb).setEphemeral(false).queue(); - + eb.addField("✅ Channel Registration Check", "╰┈➤" + mentionableRegisteredChannel + " is found to be registered as the audit log channel", false); }, () -> { - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("📝 Audit Log Configuration"); - eb.addField("⚠️ Channel Registration Check", "╰┈➤" + "No channel has been registered for audit logs", false); eb.setColor(Color.YELLOW); - MessageEmbed mb = eb.build(); - event.replyEmbeds(mb).setEphemeral(false).queue(); + eb.addField("⚠️ Channel Registration Check", "╰┈➤" + "No channel has been registered for audit logs", false); }); + + MessageEmbed mb = eb.build(); + event.replyEmbeds(mb).setEphemeral(false).queue(); } private void unsetAuditLogging(@NonNull SlashCommandInteractionEvent event) { - // Only members in a guild with MANAGE_SERVER permissions should be able to use this command - Member callerMember = event.getMember(); Guild callerGuild = event.getGuild(); - - if (callerMember == null || callerGuild == null) { - event.reply("❌ You can only use this command in a guild.").setEphemeral(true).queue(); - return; - } - - if (!callerMember.hasPermission(Permission.MANAGE_SERVER)) { - event.reply("❌ You don't have the permission required to use this command.").setEphemeral(true).queue(); + if (callerGuild == null) { + log.warn("An audit log unset command may have been called outside of a guild. This should not happen."); return; } @@ -156,21 +109,17 @@ private void unsetAuditLogging(@NonNull SlashCommandInteractionEvent event) { boolean success = client.deleteRegisteredGuild(callerGuild.getId()); EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("📝 Audit Log Configuration"); + eb.setTitle("Audit Log Un-Registration Process"); if (success) { - eb.addField("✅ Channel Removal", "╰┈➤" + "Channel successfully unset", false); eb.setColor(Color.GREEN); - - MessageEmbed mb = eb.build(); - event.replyEmbeds(mb).setEphemeral(false).queue(); + eb.addField("✅ Channel Removal", "╰┈➤" + "Channel successfully unset", false); } else { - eb.addField("❌ Channel Removal Failure", "╰┈➤" + "Channel could not be unset.\nThis may be because no channel has been registered in this guild yet.", false); eb.setColor(Color.YELLOW); - - MessageEmbed mb = eb.build(); - event.replyEmbeds(mb).setEphemeral(false).queue(); + eb.addField("❌ Channel Removal Failure", "╰┈➤" + "Channel could not be unset.\nThis may be because no channel has been registered in this guild yet.", false); } + MessageEmbed mb = eb.build(); + event.replyEmbeds(mb).setEphemeral(false).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/setup/MessageLogSetupCommandListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/setup/MessageLogSetupCommandListener.java index d90aaf3d..d9f114dd 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/setup/MessageLogSetupCommandListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/setup/MessageLogSetupCommandListener.java @@ -4,12 +4,10 @@ import io.github.eggy03.papertrail.sdk.client.MessageLogRegistrationClient; import io.github.eggy03.papertrail.sdk.entity.MessageLogRegistrationEntity; import lombok.NonNull; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.Guild; -import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.MessageEmbed; -import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; @@ -17,6 +15,7 @@ import java.awt.Color; import java.util.Optional; +@Slf4j public class MessageLogSetupCommandListener extends ListenerAdapter { @NonNull @@ -25,47 +24,26 @@ public class MessageLogSetupCommandListener extends ListenerAdapter { @Override public void onSlashCommandInteraction(@NonNull SlashCommandInteractionEvent event) { - if (!event.getName().equals("messagelog")) { - return; - } - - if (event.getSubcommandName() == null) { + if (!event.getName().equals("messagelog") || event.getSubcommandName() == null) { return; } switch (event.getSubcommandName()) { - - case "set": - setMessageLogging(event); - break; - - case "view": - retrieveMessageLoggingChannel(event); - break; - - case "remove": - unsetMessageLogging(event); - break; - - default: - break; + case "set" -> setMessageLogging(event); + case "view" -> retrieveMessageLoggingChannel(event); + case "remove" -> unsetMessageLogging(event); + default -> { + // skip + } } } private void setMessageLogging(@NonNull SlashCommandInteractionEvent event) { - // Only members in a guild with ADMINISTRATOR permissions should be able to use this command - Member callerMember = event.getMember(); Guild callerGuild = event.getGuild(); - TextChannel callerChannel = event.getChannel().asTextChannel(); - - if (callerMember == null || callerGuild == null) { - event.reply("❌ You can only use this command in a guild.").setEphemeral(true).queue(); - return; - } - - if (!callerMember.hasPermission(Permission.ADMINISTRATOR)) { - event.reply("❌ You don't have the permission required to use this command.").setEphemeral(true).queue(); + GuildChannel callerChannel = event.getChannel().asTextChannel(); + if (callerGuild == null) { + log.warn("A message log set command may have been called outside of a guild. This should not happen."); return; } @@ -73,39 +51,31 @@ private void setMessageLogging(@NonNull SlashCommandInteractionEvent event) { boolean success = client.registerGuild(callerGuild.getId(), callerChannel.getId()); EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Message Log Registration"); + eb.setTitle("Message Log Registration Process"); if (success) { - eb.addField("✅ Channel Registration Success", "╰┈➤" + "All edited and deleted messages will be logged here", false); eb.setColor(Color.GREEN); - - MessageEmbed mb = eb.build(); - event.replyEmbeds(mb).setEphemeral(false).queue(); + eb.addField("✅ Channel Registration Success", "╰┈➤" + "All edited and deleted messages will be logged here", false); } else { - eb.addField("❌ Channel Registration Failure", "╰┈➤" + "Channel could not be registered.\nCheck if a channel in this guild is already registered for logging.", false); eb.setColor(Color.YELLOW); + eb.addField("❌ Channel Registration Failure", "╰┈➤" + "Channel could not be registered.\nCheck if a channel in this guild is already registered for logging.", false); - MessageEmbed mb = eb.build(); - event.replyEmbeds(mb).setEphemeral(false).queue(); } + MessageEmbed mb = eb.build(); + event.replyEmbeds(mb).setEphemeral(false).queue(); } private void retrieveMessageLoggingChannel(@NonNull SlashCommandInteractionEvent event) { - // Only members in a guild with ADMINISTRATOR permissions should be able to use this command - Member callerMember = event.getMember(); Guild callerGuild = event.getGuild(); - - if (callerMember == null || callerGuild == null) { - event.reply("❌ You can only use this command in a guild.").setEphemeral(true).queue(); + if (callerGuild == null) { + log.warn("A message log view command may have been called outside of a guild. This should not happen."); return; } - if (!callerMember.hasPermission(Permission.ADMINISTRATOR)) { - event.reply("❌ You don't have the permission required to use this command.").setEphemeral(true).queue(); - return; - } + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("View Existing Message Log Configuration"); // Call the API to check for registered guild Optional response = client.getRegisteredGuild(callerGuild.getId()); @@ -113,58 +83,41 @@ private void retrieveMessageLoggingChannel(@NonNull SlashCommandInteractionEvent String registeredChannelId = success.getChannelId(); GuildChannel registeredChannel = event.getJDA().getGuildChannelById(registeredChannelId); + String mentionableRegisteredChannel = registeredChannel != null ? registeredChannel.getAsMention() : registeredChannelId; - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("📝 Message Log Configuration"); eb.setColor(Color.CYAN); - eb.addField("✅ Channel Registration Check", "╰┈➤" + (registeredChannel != null ? registeredChannel.getAsMention() : registeredChannelId) + " is found to be registered as the message log channel", false); - MessageEmbed mb = eb.build(); - event.replyEmbeds(mb).setEphemeral(false).queue(); - + eb.addField("✅ Channel Registration Check", "╰┈➤" + mentionableRegisteredChannel + " is found to be registered as the message log channel", false); }, () -> { - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("📝 Message Log Configuration"); - eb.addField("⚠️ Channel Registration Check", "╰┈➤" + "No channel has been registered for message logs", false); eb.setColor(Color.YELLOW); - MessageEmbed mb = eb.build(); - event.replyEmbeds(mb).setEphemeral(false).queue(); + eb.addField("⚠️ Channel Registration Check", "╰┈➤" + "No channel has been registered for message logs", false); }); + + MessageEmbed mb = eb.build(); + event.replyEmbeds(mb).setEphemeral(false).queue(); } private void unsetMessageLogging(@NonNull SlashCommandInteractionEvent event) { - // Only members in a guild with ADMINISTRATOR permissions should be able to use this command - Member callerMember = event.getMember(); Guild callerGuild = event.getGuild(); - - if (callerMember == null || callerGuild == null) { - event.reply("❌ You can only use this command in a guild.").setEphemeral(true).queue(); - return; - } - - if (!callerMember.hasPermission(Permission.ADMINISTRATOR)) { - event.reply("❌ You don't have the permission required to use this command.").setEphemeral(true).queue(); + if (callerGuild == null) { + log.warn("A message log unset command may have been called outside of a guild. This should not happen."); return; } EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("📝 Message Log Configuration"); - + eb.setTitle("Message Log Un-Registration Process"); // Call the API to unregister guild boolean success = client.deleteRegisteredGuild(callerGuild.getId()); if (success) { - eb.addField("✅ Channel Removal", "╰┈➤" + "Channel successfully unset", false); eb.setColor(Color.GREEN); - - MessageEmbed mb = eb.build(); - event.replyEmbeds(mb).setEphemeral(false).queue(); + eb.addField("✅ Channel Removal", "╰┈➤" + "Channel successfully unset", false); } else { - eb.addField("❌ Channel Removal Failure", "╰┈➤" + "Channel could not be unset.\nThis may be because no channel has been registered in this guild yet.", false); eb.setColor(Color.YELLOW); - MessageEmbed mb = eb.build(); - - event.replyEmbeds(mb).setEphemeral(false).queue(); + eb.addField("❌ Channel Removal Failure", "╰┈➤" + "Channel could not be unset.\nThis may be because no channel has been registered in this guild yet.", false); } + + MessageEmbed mb = eb.build(); + event.replyEmbeds(mb).setEphemeral(false).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/BotSetupInstructionCommandListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/BotSetupInstructionCommandListener.java index 36e60fde..9e355f33 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/BotSetupInstructionCommandListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/BotSetupInstructionCommandListener.java @@ -19,39 +19,47 @@ public void onSlashCommandInteraction(@NonNull SlashCommandInteractionEvent even EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("🛠️ Setup Guide for " + ProjectInfo.APPNAME); - eb.setDescription("Welcome to **" + ProjectInfo.APPNAME + "**!\nHere's how to get started using the bot in your server."); + eb.setDescription("Follow the instructions below to set up the bot in your server."); eb.setColor(Color.decode("#38e8bc")); - eb.addField("1️⃣ Register Audit Log Channel", - "- Use `/auditlog set` to **register the current channel** for receiving audit log updates.\n╰┈➤ User must have `Manage Server` permission.", + eb.addField("1️⃣ Set Audit Log Channel", + "Use `/auditlog set` to **register this channel** for receiving audit log events.", false); - eb.addField("2️⃣ View Registered Audit Log Channel", - "- Use `/auditlog view` to **check which channel** is currently registered for audit logs.\nThis is helpful if you're unsure where the audit logs are going.\n╰┈➤ User must have `Manage Server` permission.", + eb.addField("2️⃣ View Audit Log Channel", + "Use `/auditlog view` to **see which channel** is currently receiving audit logs.", false); - eb.addField("3️⃣ Unregister Audit Log Channel", - "- Use `/auditlog remove` to **unset the audit log channel** if you wish to stop logging or switch to another one.\n╰┈➤ User must have `Manage Server` permission.", + eb.addField("3️⃣ Remove Audit Log Channel", + "Use `/auditlog remove` to **stop logging** events and remove the registered channel.", + false); + + eb.addField("🔒 Permissions", + "These three commands require the **Administrator** permission.", false); eb.addBlankField(false); - eb.addField("4️⃣ Register Message Log Channel", - "- Use `/messagelog set` to **register the current channel** for receiving message logs.\n╰┈➤ User must have the `Administrator` permission.", + eb.addField("4️⃣ Set Message Log Channel", + "Use `/messagelog set` to **register this channel** for receiving message logs.", false); - eb.addField("5️⃣ View Registered Message Log Channel", - "- Use `/messagelog view` to **check which channel** is currently registered for message logs.\nThis is helpful if you're unsure where the message logs are going.\n╰┈➤ User must have `Administrator` permission.", + eb.addField("5️⃣ View Message Log Channel", + "Use `/messagelog view` to **see which channel** is currently receiving message logs.", false); - eb.addField("6️⃣ Unregister Message Log Channel", - "- Use `/messagelog remove` to **unset the message log channel** if you wish to stop logging or switch to another one.\n╰┈➤ User must have `Administrator` permission.", + eb.addField("6️⃣ Remove Message Log Channel", + "Use `/messagelog remove` to **stop logging** messages and remove the registered channel.", + false); + + eb.addField("🔒 Permissions", + "These three commands require the **Administrator** permission.", false); eb.addBlankField(false); eb.addField("7️⃣ View Server Stats", - "- Use `/stats` to **get useful server information** like member count, channel count, and more.", + "Use `/stats` to **view useful server information**, including member count, channel count, and more.", false); eb.addField("📬 Need help?", "Create an issue on [GitHub](" + ProjectInfo.PROJECT_ISSUE_LINK + ")", false); @@ -62,5 +70,4 @@ public void onSlashCommandInteraction(@NonNull SlashCommandInteractionEvent even event.replyEmbeds(mb).setEphemeral(false).queue(); } } -} - +} \ No newline at end of file diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/SlashCommandRegistrationListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/SlashCommandRegistrationListener.java index e91d10d8..2e542a3f 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/SlashCommandRegistrationListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/SlashCommandRegistrationListener.java @@ -4,6 +4,8 @@ import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.events.session.ReadyEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; +import net.dv8tion.jda.api.interactions.InteractionContextType; +import net.dv8tion.jda.api.interactions.commands.DefaultMemberPermissions; import net.dv8tion.jda.api.interactions.commands.build.CommandData; import net.dv8tion.jda.api.interactions.commands.build.Commands; import net.dv8tion.jda.api.interactions.commands.build.SubcommandData; @@ -20,20 +22,31 @@ public void onReady(@NonNull ReadyEvent event) { private void setAuditLogCommands(@NonNull JDA jda) { - CommandData auditLog = Commands.slash("auditlog", "manage audit log options") + CommandData auditLog = Commands + .slash("auditlog", "manage audit log options") + .setContexts(InteractionContextType.GUILD) + .setDefaultPermissions(DefaultMemberPermissions.DISABLED) .addSubcommands(new SubcommandData("set", "set audit log channel here")) .addSubcommands(new SubcommandData("view", "view audit log channel")) .addSubcommands(new SubcommandData("remove", "unset audit log channel")); - CommandData messageLog = Commands.slash("messagelog", "manage message log options") + CommandData messageLog = Commands + .slash("messagelog", "manage message log options") + .setContexts(InteractionContextType.GUILD) + .setDefaultPermissions(DefaultMemberPermissions.DISABLED) .addSubcommands(new SubcommandData("set", "set message log channel here")) .addSubcommands(new SubcommandData("view", "view message log channel")) .addSubcommands(new SubcommandData("remove", "unset message log channel")); - CommandData serverStats = Commands.slash("stats", - "Provides Server Statistics"); + CommandData serverStats = Commands + .slash("stats", "Provides Server Statistics") + .setContexts(InteractionContextType.GUILD) + .setDefaultPermissions(DefaultMemberPermissions.ENABLED); - CommandData setup = Commands.slash("setup", "Provides a guide on setting up the bot"); + CommandData setup = Commands + .slash("setup", "Provides a guide on setting up the bot") + .setContexts(InteractionContextType.GUILD) + .setDefaultPermissions(DefaultMemberPermissions.ENABLED); jda.updateCommands() .addCommands(auditLog, diff --git a/src/main/java/io/github/eggy03/papertrail/bot/main/Start.java b/src/main/java/io/github/eggy03/papertrail/bot/main/Start.java index 2c2a0969..1676d04a 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/main/Start.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/main/Start.java @@ -49,6 +49,7 @@ public static void main(String[] args) throws IOException { manager.addEventListener(new ServerStatCommandListener()); manager.addEventListener(new BotSetupInstructionCommandListener()); + //manager.addEventListener(new SlashCommandRegistrationListener()); // Custom health check endpoint HttpServer server = HttpServer.create(new InetSocketAddress(8080), 0); From c273927ef03fdeb37f53e29a48401742f1309e75 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Thu, 12 Feb 2026 21:21:56 +0530 Subject: [PATCH 071/104] feat(audit): add supplementary audit event logging for guild events - Create `supplementaryaudit` package for audit-relevant events not covered by Discord's native audit log - Introduce helper classes for formatting embeds for guild voice, boost, poll, and member join/leave events - Refactor and move existing guild-related audit listeners to the new `supplementaryaudit.event.guild` package - Update project version from `v2.5.0` to `v3.0.0-alpha` Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../bot/commons/constant/ProjectInfo.java | 2 +- .../event/guild/GuildBoostEventListener.java | 159 ------------------ .../GuildMemberJoinAndLeaveEventListener.java | 124 -------------- .../event/guild/GuildPollEventListener.java | 88 ---------- .../event/guild/GuildVoiceEventListener.java | 86 ---------- .../event/guild/GuildBoostEventListener.java | 61 +++++++ .../GuildMemberJoinAndLeaveEventListener.java | 53 ++++++ .../event/guild/GuildPollEventListener.java | 45 +++++ .../event/guild/GuildVoiceEventListener.java | 38 +++++ .../guild/GuildMemberJoinEventHelper.java | 47 ++++++ .../guild/GuildMemberRemoveEventHelper.java | 55 ++++++ ...GuildMemberUpdateBoostTimeEventHelper.java | 52 ++++++ .../helper/guild/GuildPollEventHelper.java | 65 +++++++ .../GuildUpdateBoostCountEventHelper.java | 42 +++++ .../GuildUpdateBoostTierEventHelper.java | 55 ++++++ .../helper/guild/GuildVoiceEventHelper.java | 58 +++++++ .../supplementaryaudit/package-info.java | 12 ++ .../eggy03/papertrail/bot/main/Start.java | 8 +- 18 files changed, 588 insertions(+), 462 deletions(-) delete mode 100644 src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildBoostEventListener.java delete mode 100644 src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildMemberJoinAndLeaveEventListener.java delete mode 100644 src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildPollEventListener.java delete mode 100644 src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildVoiceEventListener.java create mode 100644 src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/event/guild/GuildBoostEventListener.java create mode 100644 src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/event/guild/GuildMemberJoinAndLeaveEventListener.java create mode 100644 src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/event/guild/GuildPollEventListener.java create mode 100644 src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/event/guild/GuildVoiceEventListener.java create mode 100644 src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildMemberJoinEventHelper.java create mode 100644 src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildMemberRemoveEventHelper.java create mode 100644 src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildMemberUpdateBoostTimeEventHelper.java create mode 100644 src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildPollEventHelper.java create mode 100644 src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildUpdateBoostCountEventHelper.java create mode 100644 src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildUpdateBoostTierEventHelper.java create mode 100644 src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildVoiceEventHelper.java create mode 100644 src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/package-info.java diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/constant/ProjectInfo.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/constant/ProjectInfo.java index 2eab638d..b617935e 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/constant/ProjectInfo.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/constant/ProjectInfo.java @@ -10,7 +10,7 @@ public class ProjectInfo { public static final String APPNAME = "PaperTrail"; @NonNull - public static final String VERSION = "v2.5.0"; + public static final String VERSION = "v3.0.0-alpha"; @NonNull public static final String PROJECT_ISSUE_LINK = "https://github.com/eggy03/PaperTrailBot/issues"; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildBoostEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildBoostEventListener.java deleted file mode 100644 index 78426175..00000000 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildBoostEventListener.java +++ /dev/null @@ -1,159 +0,0 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.event.guild; - -import io.github.eggy03.papertrail.bot.commons.utils.EnvConfig; -import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; -import io.github.eggy03.papertrail.sdk.entity.AuditLogRegistrationEntity; -import lombok.NonNull; -import lombok.RequiredArgsConstructor; -import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.entities.Guild; -import net.dv8tion.jda.api.entities.Member; -import net.dv8tion.jda.api.entities.MessageEmbed; -import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; -import net.dv8tion.jda.api.events.guild.member.update.GuildMemberUpdateBoostTimeEvent; -import net.dv8tion.jda.api.events.guild.update.GuildUpdateBoostCountEvent; -import net.dv8tion.jda.api.events.guild.update.GuildUpdateBoostTierEvent; -import net.dv8tion.jda.api.hooks.ListenerAdapter; - -import java.awt.Color; -import java.time.Instant; -import java.time.OffsetDateTime; -import java.util.Optional; -import java.util.concurrent.Executor; - -// Experimental -@RequiredArgsConstructor -public class GuildBoostEventListener extends ListenerAdapter { - - @NonNull - private static final AuditLogRegistrationClient client = new AuditLogRegistrationClient(EnvConfig.get("API_URL")); - - @NonNull - private final Executor vThreadPool; - - @Override - public void onGuildUpdateBoostTier(@NonNull GuildUpdateBoostTierEvent event) { - - vThreadPool.execute(() -> { - Optional response = client.getRegisteredGuild(event.getGuild().getId()); - response.ifPresent(auditLogObject -> { - - String registeredChannelId = auditLogObject.getChannelId(); - - Guild guild = event.getGuild(); - - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Server Boost Tier Update"); - eb.setDescription(guild.getName() + " has had it's boost tier updated"); - - eb.setThumbnail(guild.getIconUrl()); - eb.setImage(guild.getBannerUrl()); - eb.setColor(Color.YELLOW); - - Guild.BoostTier oldBoostTier = event.getOldBoostTier(); - Guild.BoostTier newBoostTier = event.getNewBoostTier(); - - String oldTier = "**Tier:** " + oldBoostTier.name() + "\n" + - "**Max Emojis:** " + oldBoostTier.getMaxEmojis() + "\n" + - "**Max File Size:** " + oldBoostTier.getMaxFileSize() + "\n" + - "**Max Bitrate:** " + oldBoostTier.getMaxBitrate(); - - String newTier = "**Tier:** " + newBoostTier.name() + "\n" + - "**Max Emojis:** " + newBoostTier.getMaxEmojis() + "\n" + - "**Max File Size:** " + newBoostTier.getMaxFileSize() + "\n" + - "**Max Bitrate:** " + newBoostTier.getMaxBitrate(); - - eb.addField("Old Boost Tier Information", oldTier, false); - eb.addField("New Boost Tier Information", newTier, false); - - eb.setFooter(guild.getName()); - eb.setTimestamp(Instant.now()); - - MessageEmbed mb = eb.build(); - - TextChannel sendingChannel = event.getGuild().getTextChannelById(registeredChannelId); - if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); - } - }); - }); - } - - @Override - public void onGuildUpdateBoostCount(@NonNull GuildUpdateBoostCountEvent event) { - - vThreadPool.execute(() -> { - Optional response = client.getRegisteredGuild(event.getGuild().getId()); - response.ifPresent(success -> { - String registeredChannelId = success.getChannelId(); - - Guild guild = event.getGuild(); - - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Server Boost Event"); - eb.setDescription("**" + guild.getName() + "** has had it's boost count updated!"); - - eb.setThumbnail(guild.getIconUrl()); - eb.setImage(guild.getBannerUrl()); - - eb.setColor(Color.YELLOW); - - eb.addField("Old Boost Count", "╰┈➤" + event.getOldBoostCount(), false); - eb.addField("New Boost Count", "╰┈➤" + event.getNewBoostCount(), false); - - eb.setFooter(guild.getName()); - eb.setTimestamp(Instant.now()); - - MessageEmbed mb = eb.build(); - - TextChannel sendingChannel = event.getGuild().getTextChannelById(registeredChannelId); - if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); - } - }); - }); - } - - @Override - public void onGuildMemberUpdateBoostTime(@NonNull GuildMemberUpdateBoostTimeEvent event) { - - vThreadPool.execute(() -> { - Optional response = client.getRegisteredGuild(event.getGuild().getId()); - response.ifPresent(success -> { - String registeredChannelId = success.getChannelId(); - - Member member = event.getMember(); - Guild guild = event.getGuild(); - - String mentionableMember = member.getAsMention(); - - OffsetDateTime newBoostTime = event.getNewTimeBoosted(); // Will be null if the member stopped boosting - - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Server Boost Event"); - eb.setThumbnail(guild.getIconUrl()); - eb.setImage(guild.getBannerUrl()); - - if (newBoostTime != null) { - eb.setDescription("**" + guild.getName() + "** has been boosted!"); - eb.setColor(Color.PINK); - eb.addField("Booster Gained", "╰┈➤" + mentionableMember + " has applied their first boost to your server", false); - } else { - eb.setDescription("**" + guild.getName() + "** has lost a boost."); - eb.setColor(Color.GRAY); - eb.addField("Booster Lost", "╰┈➤" + mentionableMember + " has removed their boost from your server", false); - } - - eb.setFooter(guild.getName()); - eb.setTimestamp(Instant.now()); - - MessageEmbed mb = eb.build(); - - TextChannel sendingChannel = event.getGuild().getTextChannelById(registeredChannelId); - if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); - } - }); - }); - } -} diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildMemberJoinAndLeaveEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildMemberJoinAndLeaveEventListener.java deleted file mode 100644 index 4f337bd8..00000000 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildMemberJoinAndLeaveEventListener.java +++ /dev/null @@ -1,124 +0,0 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.event.guild; - -import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; -import io.github.eggy03.papertrail.bot.commons.utils.DurationUtils; -import io.github.eggy03.papertrail.bot.commons.utils.EnvConfig; -import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; -import io.github.eggy03.papertrail.sdk.entity.AuditLogRegistrationEntity; -import lombok.NonNull; -import lombok.RequiredArgsConstructor; -import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.entities.Guild; -import net.dv8tion.jda.api.entities.Member; -import net.dv8tion.jda.api.entities.MessageEmbed; -import net.dv8tion.jda.api.entities.User; -import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; -import net.dv8tion.jda.api.events.guild.member.GuildMemberJoinEvent; -import net.dv8tion.jda.api.events.guild.member.GuildMemberRemoveEvent; -import net.dv8tion.jda.api.hooks.ListenerAdapter; -import org.jetbrains.annotations.NotNull; - -import java.awt.Color; -import java.time.Instant; -import java.util.Optional; -import java.util.concurrent.Executor; - -// this event is not properly logged in the audit logs, hence the usage of JDA's listener is preferred -// this event is logged in the same channel where the audit log events are logged -@RequiredArgsConstructor -public class GuildMemberJoinAndLeaveEventListener extends ListenerAdapter { - - @NonNull - private static final AuditLogRegistrationClient client = new AuditLogRegistrationClient(EnvConfig.get("API_URL")); - - @NonNull - private final Executor vThreadPool; - - @Override - public void onGuildMemberJoin(@NotNull GuildMemberJoinEvent event) { - - vThreadPool.execute(() -> { - // guild member join and leave events are mapped to audit log table - // Call the API and see if the event came from a registered Guild - Optional response = client.getRegisteredGuild(event.getGuild().getId()); - response.ifPresent(success -> { - - String registeredChannelId = success.getChannelId(); - - Guild guild = event.getGuild(); - User user = event.getUser(); - - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("🛬 Member Join Event"); - eb.setDescription("A Member has joined " + guild.getName()); - eb.setColor(Color.GREEN); - - eb.addField("🏷️ Member Name", "╰┈➤" + user.getName(), false); - eb.setThumbnail(user.getEffectiveAvatarUrl()); - eb.addField("ℹ️ Member Mention", "╰┈➤" + user.getAsMention(), false); - eb.addField("🆔 Member ID", "╰┈➤" + user.getId(), false); - eb.addField("📅 Account Created", "╰┈➤" + DurationUtils.isoToLocalTimeCounter(user.getTimeCreated()), false); - eb.addField("🤖 Bot Account", "╰┈➤" + BooleanUtils.formatToYesOrNo(user.isBot()), false); - - eb.setFooter("Member Join Detection"); - eb.setTimestamp(Instant.now()); - - MessageEmbed mb = eb.build(); - - TextChannel sendingChannel = event.getGuild().getTextChannelById(registeredChannelId); - if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); - } - }); - }); - } - - @Override - public void onGuildMemberRemove(@NotNull GuildMemberRemoveEvent event) { - - vThreadPool.execute(() -> { - // Call the API and see if the event came from a registered Guild - Optional response = client.getRegisteredGuild(event.getGuild().getId()); - response.ifPresent(success -> { - - String registeredChannelId = success.getChannelId(); - - Guild guild = event.getGuild(); - User user = event.getUser(); - Member member = event.getMember(); - - String memberJoinDate = "Member Not Cached"; - boolean memberJoinDateTrustable = false; - if (member != null) { - memberJoinDate = ""; - memberJoinDateTrustable = member.hasTimeJoined(); - } - String memberLeaveDate = ""; - - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("🛫 Member Leave Event"); - eb.setDescription("A Member has left " + guild.getName()); - eb.setColor(Color.RED); - - eb.addField("🏷️ Member Name", "╰┈➤" + user.getName(), false); - eb.setThumbnail(user.getEffectiveAvatarUrl()); - eb.addField("🆔 Member ID", "╰┈➤" + user.getId(), false); - eb.addField("⌛ Member Joined The Server On", "╰┈➤" + memberJoinDate, false); - eb.addField("⌛ Member Left The Server On", "╰┈➤" + memberLeaveDate, false); - eb.addField("⌛ Member Join Date Validity", memberJoinDateTrustable ? "╰┈➤Valid" : "╰┈➤Invalid", false); - - eb.setFooter("If the member was loaded via lazy loading, join date will be identical to the guild creation date."); - eb.setTimestamp(Instant.now()); - - MessageEmbed mb = eb.build(); - - TextChannel sendingChannel = event.getGuild().getTextChannelById(registeredChannelId); - if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); - } - }); - - }); - } - -} diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildPollEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildPollEventListener.java deleted file mode 100644 index f837ac77..00000000 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildPollEventListener.java +++ /dev/null @@ -1,88 +0,0 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.event.guild; - -import io.github.eggy03.papertrail.bot.commons.utils.EnvConfig; -import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; -import io.github.eggy03.papertrail.sdk.entity.AuditLogRegistrationEntity; -import lombok.NonNull; -import lombok.RequiredArgsConstructor; -import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.entities.MessageEmbed; -import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; -import net.dv8tion.jda.api.entities.messages.MessagePoll; -import net.dv8tion.jda.api.events.message.MessageReceivedEvent; -import net.dv8tion.jda.api.hooks.ListenerAdapter; - -import java.awt.Color; -import java.time.Instant; -import java.util.List; -import java.util.Optional; -import java.util.concurrent.Executor; - -@RequiredArgsConstructor -public class GuildPollEventListener extends ListenerAdapter { - - @NonNull - private static final AuditLogRegistrationClient client = new AuditLogRegistrationClient(EnvConfig.get("API_URL")); - - @NonNull - private final Executor vThreadPool; - - @Override - public void onMessageReceived(@NonNull MessageReceivedEvent event) { - - if (!event.isFromGuild()) - return; - - MessagePoll messagePoll = event.getMessage().getPoll(); - if (messagePoll == null) - return; - - vThreadPool.execute(() -> { - - // guild poll events are mapped to audit log table - // Call the API and see if the event came from a registered Guild - Optional response = client.getRegisteredGuild(event.getGuild().getId()); - response.ifPresent(success -> { - - String registeredChannelId = success.getChannelId(); - - StringBuilder answers = new StringBuilder(); - List answerList = messagePoll.getAnswers(); - answerList.forEach(answer -> answers - .append("*Answer: * ") - .append(answer.getText()) - .append(" *Emoji: * ") - .append(answer.getEmoji() == null ? "N/A" : answer.getEmoji().getFormatted()) - .append(System.lineSeparator()) - ); - - String expiryTime = messagePoll.getTimeExpiresAt() != null ? - "" : - "N/A"; - - - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("\uD83D\uDCCA Poll Creation Log"); - eb.setColor(Color.PINK); - eb.setDescription("A Poll has been created"); - eb.addField("Poll Creator", event.getAuthor().getAsMention(), false); - eb.addField("Question", messagePoll.getQuestion().getText(), false); - eb.addField("Answers", answers.toString(), false); - eb.addField("Poll Expiry Time", expiryTime, false); - eb.addField("Accepts Multiple Answers", messagePoll.isMultiAnswer() ? "Yes" : "No", false); - eb.addField("Channel", event.getChannel().getAsMention(), false); - - eb.setFooter("Poll Activity Detection"); - eb.setTimestamp(Instant.now()); - - MessageEmbed mb = eb.build(); - - TextChannel sendingChannel = event.getGuild().getTextChannelById(registeredChannelId); - if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); - } - - }); - }); - } -} diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildVoiceEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildVoiceEventListener.java deleted file mode 100644 index 96b01b35..00000000 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/guild/GuildVoiceEventListener.java +++ /dev/null @@ -1,86 +0,0 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.event.guild; - -import io.github.eggy03.papertrail.bot.commons.utils.EnvConfig; -import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; -import io.github.eggy03.papertrail.sdk.entity.AuditLogRegistrationEntity; -import lombok.NonNull; -import lombok.RequiredArgsConstructor; -import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.entities.Member; -import net.dv8tion.jda.api.entities.MessageEmbed; -import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; -import net.dv8tion.jda.api.entities.channel.middleman.AudioChannel; -import net.dv8tion.jda.api.events.guild.voice.GuildVoiceUpdateEvent; -import net.dv8tion.jda.api.hooks.ListenerAdapter; -import org.jetbrains.annotations.NotNull; - -import java.awt.Color; -import java.time.Instant; -import java.util.Optional; -import java.util.concurrent.Executor; - -// this event is not properly logged in the audit logs, hence the usage of JDA's listener is preferred -// this event is logged in the same channel where the audit log events are logged -@RequiredArgsConstructor -public class GuildVoiceEventListener extends ListenerAdapter { - - @NonNull - private static final AuditLogRegistrationClient client = new AuditLogRegistrationClient(EnvConfig.get("API_URL")); - - @NonNull - private final Executor vThreadPool; - - @Override - public void onGuildVoiceUpdate(@NotNull GuildVoiceUpdateEvent event) { - - vThreadPool.execute(() -> { - - // guild voice events are mapped to audit log table - // Call the API and see if the event came from a registered Guild - Optional response = client.getRegisteredGuild(event.getGuild().getId()); - response.ifPresent(success -> { - - String registeredChannelId = success.getChannelId(); - - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("🔊 Voice Activity Log"); - - Member member = event.getMember(); - AudioChannel left = event.getOldValue(); // can be null if user joined for first time - AudioChannel joined = event.getNewValue(); // can be null if user left - - if (left == null && joined != null) { - // User has joined a vc - eb.setDescription("A Member has joined a voice channel"); - eb.setColor(Color.GREEN); - eb.addField("✅ Member Joined", "╰┈➤" + member.getAsMention() + " joined the voice channel " + joined.getAsMention(), false); - } - - if (left != null && joined != null) { - // Moved from one channel to another - eb.setDescription("A Member has switched voice channels"); - eb.setColor(Color.YELLOW); - eb.addField("🔄 Member Switched Channels", "╰┈➤" + member.getAsMention() + " joined the switched from channel " + left.getAsMention() + " to " + joined.getAsMention(), false); - } - - if (left != null && joined == null) { - // User disconnected voluntarily (or was disconnected by a moderator) - eb.setDescription("A Member has left a voice channel"); - eb.setColor(Color.RED); - eb.addField("❌ Member Left A Voice Channel", "╰┈➤" + member.getAsMention() + " left the voice channel " + left.getAsMention(), false); - } - - eb.setFooter("Voice Activity Detection"); - eb.setTimestamp(Instant.now()); - - MessageEmbed mb = eb.build(); - - TextChannel sendingChannel = event.getGuild().getTextChannelById(registeredChannelId); - if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); - } - }); - - }); - } -} diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/event/guild/GuildBoostEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/event/guild/GuildBoostEventListener.java new file mode 100644 index 00000000..405516a2 --- /dev/null +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/event/guild/GuildBoostEventListener.java @@ -0,0 +1,61 @@ +package io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.event.guild; + +import io.github.eggy03.papertrail.bot.commons.utils.EnvConfig; +import io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.helper.guild.GuildMemberUpdateBoostTimeEventHelper; +import io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.helper.guild.GuildUpdateBoostCountEventHelper; +import io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.helper.guild.GuildUpdateBoostTierEventHelper; +import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; +import io.github.eggy03.papertrail.sdk.entity.AuditLogRegistrationEntity; +import lombok.NonNull; +import lombok.RequiredArgsConstructor; +import net.dv8tion.jda.api.events.guild.member.update.GuildMemberUpdateBoostTimeEvent; +import net.dv8tion.jda.api.events.guild.update.GuildUpdateBoostCountEvent; +import net.dv8tion.jda.api.events.guild.update.GuildUpdateBoostTierEvent; +import net.dv8tion.jda.api.hooks.ListenerAdapter; + +import java.util.Optional; +import java.util.concurrent.Executor; + +// Experimental +@RequiredArgsConstructor +public class GuildBoostEventListener extends ListenerAdapter { + + @NonNull + private static final AuditLogRegistrationClient client = new AuditLogRegistrationClient(EnvConfig.get("API_URL")); + + @NonNull + private final Executor vThreadPool; + + @Override + public void onGuildUpdateBoostTier(@NonNull GuildUpdateBoostTierEvent event) { + + vThreadPool.execute(() -> { + Optional response = client.getRegisteredGuild(event.getGuild().getId()); + response.ifPresent(success -> + GuildUpdateBoostTierEventHelper.format(event, success.getChannelId()) + ); + }); + } + + @Override + public void onGuildUpdateBoostCount(@NonNull GuildUpdateBoostCountEvent event) { + + vThreadPool.execute(() -> { + Optional response = client.getRegisteredGuild(event.getGuild().getId()); + response.ifPresent(success -> + GuildUpdateBoostCountEventHelper.format(event, success.getChannelId()) + ); + }); + } + + @Override + public void onGuildMemberUpdateBoostTime(@NonNull GuildMemberUpdateBoostTimeEvent event) { + + vThreadPool.execute(() -> { + Optional response = client.getRegisteredGuild(event.getGuild().getId()); + response.ifPresent(success -> + GuildMemberUpdateBoostTimeEventHelper.format(event, success.getChannelId()) + ); + }); + } +} diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/event/guild/GuildMemberJoinAndLeaveEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/event/guild/GuildMemberJoinAndLeaveEventListener.java new file mode 100644 index 00000000..dfa9b27a --- /dev/null +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/event/guild/GuildMemberJoinAndLeaveEventListener.java @@ -0,0 +1,53 @@ +package io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.event.guild; + +import io.github.eggy03.papertrail.bot.commons.utils.EnvConfig; +import io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.helper.guild.GuildMemberJoinEventHelper; +import io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.helper.guild.GuildMemberRemoveEventHelper; +import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; +import io.github.eggy03.papertrail.sdk.entity.AuditLogRegistrationEntity; +import lombok.NonNull; +import lombok.RequiredArgsConstructor; +import net.dv8tion.jda.api.events.guild.member.GuildMemberJoinEvent; +import net.dv8tion.jda.api.events.guild.member.GuildMemberRemoveEvent; +import net.dv8tion.jda.api.hooks.ListenerAdapter; +import org.jetbrains.annotations.NotNull; + +import java.util.Optional; +import java.util.concurrent.Executor; + +// this event is not properly logged in the audit logs, hence the usage of JDA's listener is preferred +// this event is logged in the same channel where the audit log events are logged +@RequiredArgsConstructor +public class GuildMemberJoinAndLeaveEventListener extends ListenerAdapter { + + @NonNull + private static final AuditLogRegistrationClient client = new AuditLogRegistrationClient(EnvConfig.get("API_URL")); + + @NonNull + private final Executor vThreadPool; + + @Override + public void onGuildMemberJoin(@NotNull GuildMemberJoinEvent event) { + + vThreadPool.execute(() -> { + // Call the API and see if the event came from a registered Guild + Optional response = client.getRegisteredGuild(event.getGuild().getId()); + response.ifPresent(success -> + GuildMemberJoinEventHelper.format(event, success.getChannelId()) + ); + }); + } + + @Override + public void onGuildMemberRemove(@NotNull GuildMemberRemoveEvent event) { + + vThreadPool.execute(() -> { + // Call the API and see if the event came from a registered Guild + Optional response = client.getRegisteredGuild(event.getGuild().getId()); + response.ifPresent(success -> + GuildMemberRemoveEventHelper.format(event, success.getChannelId()) + ); + }); + } + +} diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/event/guild/GuildPollEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/event/guild/GuildPollEventListener.java new file mode 100644 index 00000000..1fe6fcdd --- /dev/null +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/event/guild/GuildPollEventListener.java @@ -0,0 +1,45 @@ +package io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.event.guild; + +import io.github.eggy03.papertrail.bot.commons.utils.EnvConfig; +import io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.helper.guild.GuildPollEventHelper; +import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; +import io.github.eggy03.papertrail.sdk.entity.AuditLogRegistrationEntity; +import lombok.NonNull; +import lombok.RequiredArgsConstructor; +import net.dv8tion.jda.api.entities.messages.MessagePoll; +import net.dv8tion.jda.api.events.message.MessageReceivedEvent; +import net.dv8tion.jda.api.hooks.ListenerAdapter; + +import java.util.Optional; +import java.util.concurrent.Executor; + +// guild poll events are mapped to audit log table +@RequiredArgsConstructor +public class GuildPollEventListener extends ListenerAdapter { + + @NonNull + private static final AuditLogRegistrationClient client = new AuditLogRegistrationClient(EnvConfig.get("API_URL")); + + @NonNull + private final Executor vThreadPool; + + @Override + public void onMessageReceived(@NonNull MessageReceivedEvent event) { + + if (!event.isFromGuild()) + return; + + // check if message has a poll + MessagePoll messagePoll = event.getMessage().getPoll(); + if (messagePoll == null) + return; + + vThreadPool.execute(() -> { + // Call the API and see if the event came from a registered Guild + Optional response = client.getRegisteredGuild(event.getGuild().getId()); + response.ifPresent(success -> + GuildPollEventHelper.format(event, messagePoll, success.getChannelId()) + ); + }); + } +} diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/event/guild/GuildVoiceEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/event/guild/GuildVoiceEventListener.java new file mode 100644 index 00000000..30dada72 --- /dev/null +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/event/guild/GuildVoiceEventListener.java @@ -0,0 +1,38 @@ +package io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.event.guild; + +import io.github.eggy03.papertrail.bot.commons.utils.EnvConfig; +import io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.helper.guild.GuildVoiceEventHelper; +import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; +import io.github.eggy03.papertrail.sdk.entity.AuditLogRegistrationEntity; +import lombok.NonNull; +import lombok.RequiredArgsConstructor; +import net.dv8tion.jda.api.events.guild.voice.GuildVoiceUpdateEvent; +import net.dv8tion.jda.api.hooks.ListenerAdapter; +import org.jetbrains.annotations.NotNull; + +import java.util.Optional; +import java.util.concurrent.Executor; + +// this event is not properly logged in the audit logs, hence the usage of JDA's listener is preferred +// this event is logged in the same channel where the audit log events are logged +@RequiredArgsConstructor +public class GuildVoiceEventListener extends ListenerAdapter { + + @NonNull + private static final AuditLogRegistrationClient client = new AuditLogRegistrationClient(EnvConfig.get("API_URL")); + + @NonNull + private final Executor vThreadPool; + + @Override + public void onGuildVoiceUpdate(@NotNull GuildVoiceUpdateEvent event) { + + vThreadPool.execute(() -> { + // Call the API and see if the event came from a registered Guild + Optional response = client.getRegisteredGuild(event.getGuild().getId()); + response.ifPresent(success -> + GuildVoiceEventHelper.format(event, success.getChannelId()) + ); + }); + } +} \ No newline at end of file diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildMemberJoinEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildMemberJoinEventHelper.java new file mode 100644 index 00000000..8a32af4e --- /dev/null +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildMemberJoinEventHelper.java @@ -0,0 +1,47 @@ +package io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.helper.guild; + +import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; +import io.github.eggy03.papertrail.bot.commons.utils.DurationUtils; +import lombok.NonNull; +import lombok.experimental.UtilityClass; +import net.dv8tion.jda.api.EmbedBuilder; +import net.dv8tion.jda.api.entities.Guild; +import net.dv8tion.jda.api.entities.MessageEmbed; +import net.dv8tion.jda.api.entities.User; +import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; +import net.dv8tion.jda.api.events.guild.member.GuildMemberJoinEvent; + +import java.awt.Color; +import java.time.Instant; + +@UtilityClass +public class GuildMemberJoinEventHelper { + + public static void format(@NonNull GuildMemberJoinEvent event, @NonNull String channelIdToSendTo) { + + Guild guild = event.getGuild(); + User user = event.getUser(); + + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("🛬 Member Join Event"); + eb.setDescription("A Member has joined " + guild.getName()); + eb.setThumbnail(user.getEffectiveAvatarUrl()); + eb.setColor(Color.GREEN); + + eb.addField("Member Name", "╰┈➤" + user.getName(), false); + eb.addField("Member Mention", "╰┈➤" + user.getAsMention(), false); + eb.addField("Member ID", "╰┈➤" + user.getId(), false); + eb.addField("Account Created", "╰┈➤" + DurationUtils.isoToLocalTimeCounter(user.getTimeCreated()), false); + eb.addField("Bot Account", "╰┈➤" + BooleanUtils.formatToYesOrNo(user.isBot()), false); + + eb.setFooter(event.getGuild().getName()); + eb.setTimestamp(Instant.now()); + + MessageEmbed mb = eb.build(); + + TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); + if (sendingChannel != null && sendingChannel.canTalk()) { + sendingChannel.sendMessageEmbeds(mb).queue(); + } + } +} diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildMemberRemoveEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildMemberRemoveEventHelper.java new file mode 100644 index 00000000..ff88fd7d --- /dev/null +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildMemberRemoveEventHelper.java @@ -0,0 +1,55 @@ +package io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.helper.guild; + +import lombok.NonNull; +import lombok.experimental.UtilityClass; +import net.dv8tion.jda.api.EmbedBuilder; +import net.dv8tion.jda.api.entities.Guild; +import net.dv8tion.jda.api.entities.Member; +import net.dv8tion.jda.api.entities.MessageEmbed; +import net.dv8tion.jda.api.entities.User; +import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; +import net.dv8tion.jda.api.events.guild.member.GuildMemberRemoveEvent; + +import java.awt.Color; +import java.time.Instant; + +@UtilityClass +public class GuildMemberRemoveEventHelper { + + public static void format(@NonNull GuildMemberRemoveEvent event, @NonNull String channelIdToSendTo) { + + Guild guild = event.getGuild(); + User user = event.getUser(); + Member member = event.getMember(); + + String memberJoinDate = "Member Not Cached"; + boolean memberJoinDateTrustable = false; + if (member != null) { + memberJoinDate = ""; + memberJoinDateTrustable = member.hasTimeJoined(); + } + String memberLeaveDate = ""; + + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("🛫 Member Leave Event"); + eb.setDescription("A Member has left " + guild.getName()); + eb.setThumbnail(user.getEffectiveAvatarUrl()); + eb.setColor(Color.RED); + + eb.addField("🏷️ Member Name", "╰┈➤" + user.getName(), false); + eb.addField("🆔 Member ID", "╰┈➤" + user.getId(), false); + eb.addField("⌛ Member Joined The Server On", "╰┈➤" + memberJoinDate, false); + eb.addField("⌛ Member Left The Server On", "╰┈➤" + memberLeaveDate, false); + eb.addField("⌛ Member Join Date Validity", memberJoinDateTrustable ? "╰┈➤Valid" : "╰┈➤Invalid", false); + + eb.setFooter("If the member was loaded via lazy loading, join date will be identical to the guild creation date."); + eb.setTimestamp(Instant.now()); + + MessageEmbed mb = eb.build(); + + TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); + if (sendingChannel != null && sendingChannel.canTalk()) { + sendingChannel.sendMessageEmbeds(mb).queue(); + } + } +} diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildMemberUpdateBoostTimeEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildMemberUpdateBoostTimeEventHelper.java new file mode 100644 index 00000000..8bd02727 --- /dev/null +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildMemberUpdateBoostTimeEventHelper.java @@ -0,0 +1,52 @@ +package io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.helper.guild; + +import lombok.NonNull; +import lombok.experimental.UtilityClass; +import net.dv8tion.jda.api.EmbedBuilder; +import net.dv8tion.jda.api.entities.Guild; +import net.dv8tion.jda.api.entities.Member; +import net.dv8tion.jda.api.entities.MessageEmbed; +import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; +import net.dv8tion.jda.api.events.guild.member.update.GuildMemberUpdateBoostTimeEvent; + +import java.awt.Color; +import java.time.Instant; +import java.time.OffsetDateTime; + +@UtilityClass +public class GuildMemberUpdateBoostTimeEventHelper { + + public static void format(@NonNull GuildMemberUpdateBoostTimeEvent event, @NonNull String channelIdToSendTo) { + Member member = event.getMember(); + Guild guild = event.getGuild(); + + String mentionableMember = member.getAsMention(); + + OffsetDateTime newBoostTime = event.getNewTimeBoosted(); // Will be null if the member stopped boosting + + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Server Boost Event"); + eb.setThumbnail(guild.getIconUrl()); + eb.setImage(guild.getBannerUrl()); + + if (newBoostTime != null) { + eb.setDescription("**" + guild.getName() + "** has been boosted!"); + eb.setColor(Color.PINK); + eb.addField("Booster Gained", "╰┈➤" + mentionableMember + " has applied their first boost to your server", false); + } else { + eb.setDescription("**" + guild.getName() + "** has lost a boost."); + eb.setColor(Color.GRAY); + eb.addField("Booster Lost", "╰┈➤" + mentionableMember + " has removed their boost from your server", false); + } + + eb.setFooter(guild.getName()); + eb.setTimestamp(Instant.now()); + + MessageEmbed mb = eb.build(); + + TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); + if (sendingChannel != null && sendingChannel.canTalk()) { + sendingChannel.sendMessageEmbeds(mb).queue(); + } + } +} diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildPollEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildPollEventHelper.java new file mode 100644 index 00000000..419ea378 --- /dev/null +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildPollEventHelper.java @@ -0,0 +1,65 @@ +package io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.helper.guild; + +import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; +import lombok.NonNull; +import lombok.experimental.UtilityClass; +import net.dv8tion.jda.api.EmbedBuilder; +import net.dv8tion.jda.api.entities.MessageEmbed; +import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; +import net.dv8tion.jda.api.entities.messages.MessagePoll; +import net.dv8tion.jda.api.events.message.MessageReceivedEvent; +import org.jetbrains.annotations.NotNull; + +import java.awt.Color; +import java.time.Instant; + +@UtilityClass +public class GuildPollEventHelper { + + public static void format(@NonNull MessageReceivedEvent event, @NonNull MessagePoll messagePoll, @NonNull String channelIdToSendTo) { + + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("\uD83D\uDCCA Poll Creation Log"); + eb.setColor(Color.PINK); + eb.setDescription("A Poll has been created"); + + eb.addField("Poll Creator", event.getAuthor().getAsMention(), false); + eb.addField("Question", messagePoll.getQuestion().getText(), false); + eb.addField("Answers", getMessagePollAnswers(messagePoll), false); + eb.addField("Poll Expiry Time", getPollExpiryTime(messagePoll), false); + eb.addField("Accepts Multiple Answers", BooleanUtils.formatToYesOrNo(messagePoll.isMultiAnswer()), false); + eb.addField("Channel", event.getChannel().getAsMention(), false); + + eb.setFooter("Poll Activity Detection"); + eb.setTimestamp(Instant.now()); + + MessageEmbed mb = eb.build(); + + TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); + if (sendingChannel != null && sendingChannel.canTalk()) { + sendingChannel.sendMessageEmbeds(mb).queue(); + } + } + + @NotNull + private static String getMessagePollAnswers(@NonNull MessagePoll messagePoll) { + + StringBuilder answers = new StringBuilder(); + messagePoll.getAnswers().forEach(answer -> answers + .append("*Answer: * ") + .append(answer.getText()) + .append(" *Emoji: * ") + .append(answer.getEmoji() == null ? "N/A" : answer.getEmoji().getFormatted()) + .append(System.lineSeparator()) + ); + + return answers.toString().trim(); + } + + @NotNull + private static String getPollExpiryTime(@NonNull MessagePoll messagePoll) { + return messagePoll.getTimeExpiresAt() != null ? + "" : + "Never Expires"; + } +} diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildUpdateBoostCountEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildUpdateBoostCountEventHelper.java new file mode 100644 index 00000000..17ac35f3 --- /dev/null +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildUpdateBoostCountEventHelper.java @@ -0,0 +1,42 @@ +package io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.helper.guild; + +import lombok.NonNull; +import lombok.experimental.UtilityClass; +import net.dv8tion.jda.api.EmbedBuilder; +import net.dv8tion.jda.api.entities.Guild; +import net.dv8tion.jda.api.entities.MessageEmbed; +import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; +import net.dv8tion.jda.api.events.guild.update.GuildUpdateBoostCountEvent; + +import java.awt.Color; +import java.time.Instant; + +@UtilityClass +public class GuildUpdateBoostCountEventHelper { + + public static void format(@NonNull GuildUpdateBoostCountEvent event, @NonNull String channelIdToSendTo) { + Guild guild = event.getGuild(); + + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Server Boost Event"); + eb.setDescription("**" + guild.getName() + "** has had it's boost count updated!"); + + eb.setThumbnail(guild.getIconUrl()); + eb.setImage(guild.getBannerUrl()); + + eb.setColor(Color.YELLOW); + + eb.addField("Old Boost Count", "╰┈➤" + event.getOldBoostCount(), false); + eb.addField("New Boost Count", "╰┈➤" + event.getNewBoostCount(), false); + + eb.setFooter(guild.getName()); + eb.setTimestamp(Instant.now()); + + MessageEmbed mb = eb.build(); + + TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); + if (sendingChannel != null && sendingChannel.canTalk()) { + sendingChannel.sendMessageEmbeds(mb).queue(); + } + } +} diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildUpdateBoostTierEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildUpdateBoostTierEventHelper.java new file mode 100644 index 00000000..2b24e1ce --- /dev/null +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildUpdateBoostTierEventHelper.java @@ -0,0 +1,55 @@ +package io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.helper.guild; + +import lombok.NonNull; +import lombok.experimental.UtilityClass; +import net.dv8tion.jda.api.EmbedBuilder; +import net.dv8tion.jda.api.entities.Guild; +import net.dv8tion.jda.api.entities.MessageEmbed; +import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; +import net.dv8tion.jda.api.events.guild.update.GuildUpdateBoostTierEvent; + +import java.awt.Color; +import java.time.Instant; + +@UtilityClass +public class GuildUpdateBoostTierEventHelper { + + public static void format(@NonNull GuildUpdateBoostTierEvent event, @NonNull String channelIdToSendTo) { + + Guild guild = event.getGuild(); + + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Server Boost Tier Update"); + eb.setDescription(guild.getName() + " has had it's boost tier updated"); + + eb.setThumbnail(guild.getIconUrl()); + eb.setImage(guild.getBannerUrl()); + eb.setColor(Color.YELLOW); + + Guild.BoostTier oldBoostTier = event.getOldBoostTier(); + Guild.BoostTier newBoostTier = event.getNewBoostTier(); + + String oldTier = "**Tier:** " + oldBoostTier.name() + "\n" + + "**Max Emojis:** " + oldBoostTier.getMaxEmojis() + "\n" + + "**Max File Size:** " + oldBoostTier.getMaxFileSize() + "\n" + + "**Max Bitrate:** " + oldBoostTier.getMaxBitrate(); + + String newTier = "**Tier:** " + newBoostTier.name() + "\n" + + "**Max Emojis:** " + newBoostTier.getMaxEmojis() + "\n" + + "**Max File Size:** " + newBoostTier.getMaxFileSize() + "\n" + + "**Max Bitrate:** " + newBoostTier.getMaxBitrate(); + + eb.addField("Old Boost Tier Information", oldTier, false); + eb.addField("New Boost Tier Information", newTier, false); + + eb.setFooter(guild.getName()); + eb.setTimestamp(Instant.now()); + + MessageEmbed mb = eb.build(); + + TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); + if (sendingChannel != null && sendingChannel.canTalk()) { + sendingChannel.sendMessageEmbeds(mb).queue(); + } + } +} diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildVoiceEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildVoiceEventHelper.java new file mode 100644 index 00000000..b47e44b3 --- /dev/null +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildVoiceEventHelper.java @@ -0,0 +1,58 @@ +package io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.helper.guild; + +import lombok.NonNull; +import lombok.experimental.UtilityClass; +import net.dv8tion.jda.api.EmbedBuilder; +import net.dv8tion.jda.api.entities.Member; +import net.dv8tion.jda.api.entities.MessageEmbed; +import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; +import net.dv8tion.jda.api.entities.channel.middleman.AudioChannel; +import net.dv8tion.jda.api.events.guild.voice.GuildVoiceUpdateEvent; + +import java.awt.Color; +import java.time.Instant; + +@UtilityClass +public class GuildVoiceEventHelper { + + public static void format(@NonNull GuildVoiceUpdateEvent event, @NonNull String channelIdToSendTo) { + + Member member = event.getMember(); + AudioChannel left = event.getOldValue(); // can be null if user joined for first time + AudioChannel joined = event.getNewValue(); // can be null if user left + + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("🔊 Voice Activity Log"); + + if (left == null && joined != null) { + // User has joined a vc + eb.setDescription("A Member has joined a voice channel"); + eb.setColor(Color.GREEN); + eb.addField("✅ Member Joined", "╰┈➤" + member.getAsMention() + " joined the voice channel " + joined.getAsMention(), false); + } + + if (left != null && joined != null) { + // Moved from one channel to another + eb.setDescription("A Member has switched voice channels"); + eb.setColor(Color.YELLOW); + eb.addField("🔄 Member Switched Channels", "╰┈➤" + member.getAsMention() + " joined the switched from channel " + left.getAsMention() + " to " + joined.getAsMention(), false); + } + + if (left != null && joined == null) { + // User disconnected voluntarily (or was disconnected by a moderator) + eb.setDescription("A Member has left a voice channel"); + eb.setColor(Color.RED); + eb.addField("❌ Member Left A Voice Channel", "╰┈➤" + member.getAsMention() + " left the voice channel " + left.getAsMention(), false); + } + + eb.setFooter("Voice Activity Detection"); + eb.setTimestamp(Instant.now()); + + MessageEmbed mb = eb.build(); + + TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); + if (sendingChannel != null && sendingChannel.canTalk()) { + sendingChannel.sendMessageEmbeds(mb).queue(); + } + } +} diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/package-info.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/package-info.java new file mode 100644 index 00000000..18905df8 --- /dev/null +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/package-info.java @@ -0,0 +1,12 @@ +/** + * Contains supplementary audit-style event listeners for actions not covered + * by Discord's native audit log system. + * + *

These listeners observe events that are audit-relevant (such as guild, + * thread, or other structural changes) but cannot be derived from + * {@link net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent} entries.

+ * + *

All events in this package log to the same destination and follow the same + * formatting and conventions as standard audit log listeners and hence, no additional setup is required.

+ */ +package io.github.eggy03.papertrail.bot.listeners.supplementaryaudit; \ No newline at end of file diff --git a/src/main/java/io/github/eggy03/papertrail/bot/main/Start.java b/src/main/java/io/github/eggy03/papertrail/bot/main/Start.java index 1676d04a..4ee6ecd8 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/main/Start.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/main/Start.java @@ -4,16 +4,16 @@ import com.sun.net.httpserver.HttpHandler; import com.sun.net.httpserver.HttpServer; import io.github.eggy03.papertrail.bot.listeners.audit.event.AuditLogEventListener; -import io.github.eggy03.papertrail.bot.listeners.audit.event.guild.GuildBoostEventListener; -import io.github.eggy03.papertrail.bot.listeners.audit.event.guild.GuildMemberJoinAndLeaveEventListener; -import io.github.eggy03.papertrail.bot.listeners.audit.event.guild.GuildPollEventListener; -import io.github.eggy03.papertrail.bot.listeners.audit.event.guild.GuildVoiceEventListener; import io.github.eggy03.papertrail.bot.listeners.audit.setup.AuditLogSetupCommandListener; import io.github.eggy03.papertrail.bot.listeners.message.event.MessageLogListener; import io.github.eggy03.papertrail.bot.listeners.message.setup.MessageLogSetupCommandListener; import io.github.eggy03.papertrail.bot.listeners.misc.BotSetupInstructionCommandListener; import io.github.eggy03.papertrail.bot.listeners.misc.SelfKickListener; import io.github.eggy03.papertrail.bot.listeners.misc.ServerStatCommandListener; +import io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.event.guild.GuildBoostEventListener; +import io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.event.guild.GuildMemberJoinAndLeaveEventListener; +import io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.event.guild.GuildPollEventListener; +import io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.event.guild.GuildVoiceEventListener; import lombok.NonNull; import net.dv8tion.jda.api.sharding.ShardManager; From 85f12f6324128cd39f1ab6b65b9431cca5ec8c29 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Fri, 13 Feb 2026 09:34:47 +0530 Subject: [PATCH 072/104] refactor(listeners): rename audit and supplementary audit packages - Rename `audit` package to `auditlog` - Rename `supplementaryaudit` package to `auditlogsupl` - Update all affected package declarations and import statements Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../event/AuditLogEventListener.java | 118 +++++++++--------- ...utoModerationFlagToChannelEventHelper.java | 2 +- ...utoModerationMemberTimeoutEventHelper.java | 2 +- ...ModerationRuleBlockMessageEventHelper.java | 2 +- .../AutoModerationRuleCreateEventHelper.java | 4 +- .../AutoModerationRuleDeleteEventHelper.java | 2 +- .../AutoModerationRuleUpdateEventHelper.java | 2 +- .../helper/automod/utils/AutoModUtils.java | 2 +- .../helper/bot/BotAddEventHelper.java | 2 +- .../channel/ChannelCreateEventHelper.java | 4 +- .../channel/ChannelDeleteEventHelper.java | 4 +- .../ChannelOverrideCreateEventHelper.java | 4 +- .../ChannelOverrideDeleteEventHelper.java | 4 +- .../ChannelOverrideUpdateEventHelper.java | 4 +- .../channel/ChannelUpdateEventHelper.java | 4 +- .../VoiceChannelStatusDeleteEventHelper.java | 2 +- .../VoiceChannelStatusUpdateEventHelper.java | 2 +- .../helper/channel/utils/ChannelUtils.java | 2 +- .../helper/emoji/EmojiCreateEventHelper.java | 2 +- .../helper/emoji/EmojiDeleteEventHelper.java | 2 +- .../helper/emoji/EmojiUpdateEventHelper.java | 2 +- .../generic/GenericAuditLogEventHelper.java | 2 +- .../helper/guild/GuildUpdateEventHelper.java | 4 +- .../helper/guild/utils/GuildUtils.java | 2 +- .../IntegrationCreateEventHelper.java | 2 +- .../IntegrationDeleteEventHelper.java | 2 +- .../invite/InviteCreateEventHelper.java | 2 +- .../invite/InviteDeleteEventHelper.java | 2 +- .../member/MemberRoleUpdateEventHelper.java | 4 +- .../member/MemberUpdateEventHelper.java | 2 +- .../member/MemberVoiceKickEventHelper.java | 2 +- .../member/MemberVoiceMoveEventHelper.java | 2 +- .../helper/member/utils/MemberUtils.java | 2 +- .../helper/message/MessagePinEventHelper.java | 2 +- .../message/MessageUnpinEventHelper.java | 2 +- .../helper/modactions/BanEventHelper.java | 2 +- .../helper/modactions/KickEventHelper.java | 2 +- .../helper/modactions/UnbanEventHelper.java | 2 +- .../OnboardingPromptCreateEventHelper.java | 2 +- .../OnboardingPromptDeleteEventHelper.java | 2 +- .../OnboardingPromptUpdateEventHelper.java | 2 +- .../OnboardingUpdateEventHelper.java | 4 +- .../onboarding/utils/OnboardingUtils.java | 2 +- .../helper/role/RoleCreateEventHelper.java | 2 +- .../helper/role/RoleDeleteEventHelper.java | 4 +- .../helper/role/RoleUpdateEventHelper.java | 4 +- .../helper/role/utils/RoleUtils.java | 2 +- .../ScheduledEventCreateEventHelper.java | 4 +- .../ScheduledEventDeleteEventHelper.java | 4 +- .../ScheduledEventUpdateEventHelper.java | 4 +- .../utils/ScheduledEventUtils.java | 2 +- .../SoundboardSoundCreateEventHelper.java | 4 +- .../SoundboardSoundDeleteEventHelper.java | 4 +- .../SoundboardSoundUpdateEventHelper.java | 4 +- .../soundboard/utils/SoundboardUtils.java | 2 +- .../stage/StageInstanceCreateEventHelper.java | 4 +- .../stage/StageInstanceDeleteEventHelper.java | 4 +- .../stage/StageInstanceUpdateEventHelper.java | 4 +- .../helper/stage/utils/StageUtils.java | 2 +- .../sticker/StickerCreateEventHelper.java | 4 +- .../sticker/StickerDeleteEventHelper.java | 4 +- .../sticker/StickerUpdateEventHelper.java | 4 +- .../helper/sticker/utils/StickerUtils.java | 2 +- .../thread/ThreadCreateEventHelper.java | 6 +- .../thread/ThreadDeleteEventHelper.java | 6 +- .../thread/ThreadUpdateEventHelper.java | 6 +- .../helper/thread/utils/ThreadUtils.java | 2 +- .../webhook/WebhookCreateEventHelper.java | 6 +- .../webhook/WebhookRemoveEventHelper.java | 6 +- .../webhook/WebhookUpdateEventHelper.java | 6 +- .../helper/webhook/utils/WebhookUtils.java | 2 +- .../setup/AuditLogSetupCommandListener.java | 2 +- .../event/guild/GuildBoostEventListener.java | 8 +- .../GuildMemberJoinAndLeaveEventListener.java | 6 +- .../event/guild/GuildPollEventListener.java | 4 +- .../event/guild/GuildVoiceEventListener.java | 4 +- .../guild/GuildMemberJoinEventHelper.java | 2 +- .../guild/GuildMemberRemoveEventHelper.java | 2 +- ...GuildMemberUpdateBoostTimeEventHelper.java | 2 +- .../helper/guild/GuildPollEventHelper.java | 2 +- .../GuildUpdateBoostCountEventHelper.java | 2 +- .../GuildUpdateBoostTierEventHelper.java | 2 +- .../helper/guild/GuildVoiceEventHelper.java | 2 +- .../package-info.java | 2 +- .../event/MessageLogListener.java | 2 +- .../setup/MessageLogSetupCommandListener.java | 2 +- .../eggy03/papertrail/bot/main/Start.java | 16 +-- 87 files changed, 195 insertions(+), 195 deletions(-) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/event/AuditLogEventListener.java (58%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/automod/AutoModerationFlagToChannelEventHelper.java (96%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/automod/AutoModerationMemberTimeoutEventHelper.java (96%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/automod/AutoModerationRuleBlockMessageEventHelper.java (96%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/automod/AutoModerationRuleCreateEventHelper.java (94%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/automod/AutoModerationRuleDeleteEventHelper.java (96%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/automod/AutoModerationRuleUpdateEventHelper.java (96%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/automod/utils/AutoModUtils.java (94%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/bot/BotAddEventHelper.java (96%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/channel/ChannelCreateEventHelper.java (95%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/channel/ChannelDeleteEventHelper.java (94%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/channel/ChannelOverrideCreateEventHelper.java (95%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/channel/ChannelOverrideDeleteEventHelper.java (95%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/channel/ChannelOverrideUpdateEventHelper.java (96%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/channel/ChannelUpdateEventHelper.java (97%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/channel/VoiceChannelStatusDeleteEventHelper.java (96%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/channel/VoiceChannelStatusUpdateEventHelper.java (96%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/channel/utils/ChannelUtils.java (98%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/emoji/EmojiCreateEventHelper.java (97%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/emoji/EmojiDeleteEventHelper.java (97%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/emoji/EmojiUpdateEventHelper.java (97%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/generic/GenericAuditLogEventHelper.java (96%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/guild/GuildUpdateEventHelper.java (97%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/guild/utils/GuildUtils.java (97%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/integration/IntegrationCreateEventHelper.java (96%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/integration/IntegrationDeleteEventHelper.java (96%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/invite/InviteCreateEventHelper.java (97%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/invite/InviteDeleteEventHelper.java (97%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/member/MemberRoleUpdateEventHelper.java (94%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/member/MemberUpdateEventHelper.java (98%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/member/MemberVoiceKickEventHelper.java (96%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/member/MemberVoiceMoveEventHelper.java (96%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/member/utils/MemberUtils.java (95%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/message/MessagePinEventHelper.java (96%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/message/MessageUnpinEventHelper.java (96%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/modactions/BanEventHelper.java (96%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/modactions/KickEventHelper.java (96%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/modactions/UnbanEventHelper.java (96%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/onboarding/OnboardingPromptCreateEventHelper.java (97%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/onboarding/OnboardingPromptDeleteEventHelper.java (97%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/onboarding/OnboardingPromptUpdateEventHelper.java (97%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/onboarding/OnboardingUpdateEventHelper.java (95%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/onboarding/utils/OnboardingUtils.java (95%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/role/RoleCreateEventHelper.java (97%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/role/RoleDeleteEventHelper.java (95%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/role/RoleUpdateEventHelper.java (96%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/role/utils/RoleUtils.java (97%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/scheduledevent/ScheduledEventCreateEventHelper.java (94%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/scheduledevent/ScheduledEventDeleteEventHelper.java (94%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/scheduledevent/ScheduledEventUpdateEventHelper.java (95%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/scheduledevent/utils/ScheduledEventUtils.java (98%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/soundboard/SoundboardSoundCreateEventHelper.java (94%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/soundboard/SoundboardSoundDeleteEventHelper.java (94%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/soundboard/SoundboardSoundUpdateEventHelper.java (95%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/soundboard/utils/SoundboardUtils.java (90%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/stage/StageInstanceCreateEventHelper.java (93%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/stage/StageInstanceDeleteEventHelper.java (93%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/stage/StageInstanceUpdateEventHelper.java (94%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/stage/utils/StageUtils.java (92%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/sticker/StickerCreateEventHelper.java (94%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/sticker/StickerDeleteEventHelper.java (94%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/sticker/StickerUpdateEventHelper.java (95%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/sticker/utils/StickerUtils.java (96%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/thread/ThreadCreateEventHelper.java (93%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/thread/ThreadDeleteEventHelper.java (92%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/thread/ThreadUpdateEventHelper.java (95%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/thread/utils/ThreadUtils.java (91%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/webhook/WebhookCreateEventHelper.java (91%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/webhook/WebhookRemoveEventHelper.java (91%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/webhook/WebhookUpdateEventHelper.java (92%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/helper/webhook/utils/WebhookUtils.java (90%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{audit => auditlog}/setup/AuditLogSetupCommandListener.java (98%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{supplementaryaudit => auditlogsupl}/event/guild/GuildBoostEventListener.java (83%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{supplementaryaudit => auditlogsupl}/event/guild/GuildMemberJoinAndLeaveEventListener.java (86%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{supplementaryaudit => auditlogsupl}/event/guild/GuildPollEventListener.java (89%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{supplementaryaudit => auditlogsupl}/event/guild/GuildVoiceEventListener.java (88%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{supplementaryaudit => auditlogsupl}/helper/guild/GuildMemberJoinEventHelper.java (95%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{supplementaryaudit => auditlogsupl}/helper/guild/GuildMemberRemoveEventHelper.java (96%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{supplementaryaudit => auditlogsupl}/helper/guild/GuildMemberUpdateBoostTimeEventHelper.java (96%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{supplementaryaudit => auditlogsupl}/helper/guild/GuildPollEventHelper.java (96%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{supplementaryaudit => auditlogsupl}/helper/guild/GuildUpdateBoostCountEventHelper.java (94%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{supplementaryaudit => auditlogsupl}/helper/guild/GuildUpdateBoostTierEventHelper.java (96%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{supplementaryaudit => auditlogsupl}/helper/guild/GuildVoiceEventHelper.java (96%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{supplementaryaudit => auditlogsupl}/package-info.java (88%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{message => messagelog}/event/MessageLogListener.java (99%) rename src/main/java/io/github/eggy03/papertrail/bot/listeners/{message => messagelog}/setup/MessageLogSetupCommandListener.java (98%) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/AuditLogEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/event/AuditLogEventListener.java similarity index 58% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/AuditLogEventListener.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/event/AuditLogEventListener.java index f545293c..9e32c832 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/event/AuditLogEventListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/event/AuditLogEventListener.java @@ -1,64 +1,64 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.event; +package io.github.eggy03.papertrail.bot.listeners.auditlog.event; import io.github.eggy03.papertrail.bot.commons.utils.EnvConfig; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.automod.AutoModerationFlagToChannelEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.automod.AutoModerationMemberTimeoutEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.automod.AutoModerationRuleBlockMessageEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.automod.AutoModerationRuleCreateEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.automod.AutoModerationRuleDeleteEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.automod.AutoModerationRuleUpdateEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.bot.BotAddEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.ChannelCreateEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.ChannelDeleteEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.ChannelOverrideCreateEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.ChannelOverrideDeleteEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.ChannelOverrideUpdateEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.ChannelUpdateEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.VoiceChannelStatusDeleteEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.VoiceChannelStatusUpdateEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.emoji.EmojiCreateEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.emoji.EmojiDeleteEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.emoji.EmojiUpdateEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.generic.GenericAuditLogEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.guild.GuildUpdateEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.integration.IntegrationCreateEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.integration.IntegrationDeleteEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.invite.InviteCreateEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.invite.InviteDeleteEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.member.MemberRoleUpdateEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.member.MemberUpdateEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.member.MemberVoiceKickEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.member.MemberVoiceMoveEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.message.MessagePinEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.message.MessageUnpinEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.modactions.BanEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.modactions.KickEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.modactions.UnbanEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.onboarding.OnboardingPromptCreateEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.onboarding.OnboardingPromptDeleteEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.onboarding.OnboardingPromptUpdateEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.onboarding.OnboardingUpdateEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.role.RoleCreateEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.role.RoleDeleteEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.role.RoleUpdateEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.scheduledevent.ScheduledEventCreateEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.scheduledevent.ScheduledEventDeleteEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.scheduledevent.ScheduledEventUpdateEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.soundboard.SoundboardSoundCreateEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.soundboard.SoundboardSoundDeleteEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.soundboard.SoundboardSoundUpdateEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.stage.StageInstanceCreateEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.stage.StageInstanceDeleteEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.stage.StageInstanceUpdateEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.sticker.StickerCreateEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.sticker.StickerDeleteEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.sticker.StickerUpdateEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.thread.ThreadCreateEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.thread.ThreadDeleteEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.thread.ThreadUpdateEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.webhook.WebhookCreateEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.webhook.WebhookRemoveEventHelper; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.webhook.WebhookUpdateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.automod.AutoModerationFlagToChannelEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.automod.AutoModerationMemberTimeoutEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.automod.AutoModerationRuleBlockMessageEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.automod.AutoModerationRuleCreateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.automod.AutoModerationRuleDeleteEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.automod.AutoModerationRuleUpdateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.bot.BotAddEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.channel.ChannelCreateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.channel.ChannelDeleteEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.channel.ChannelOverrideCreateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.channel.ChannelOverrideDeleteEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.channel.ChannelOverrideUpdateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.channel.ChannelUpdateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.channel.VoiceChannelStatusDeleteEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.channel.VoiceChannelStatusUpdateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.emoji.EmojiCreateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.emoji.EmojiDeleteEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.emoji.EmojiUpdateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.generic.GenericAuditLogEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.guild.GuildUpdateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.integration.IntegrationCreateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.integration.IntegrationDeleteEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.invite.InviteCreateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.invite.InviteDeleteEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.member.MemberRoleUpdateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.member.MemberUpdateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.member.MemberVoiceKickEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.member.MemberVoiceMoveEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.message.MessagePinEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.message.MessageUnpinEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.modactions.BanEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.modactions.KickEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.modactions.UnbanEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.onboarding.OnboardingPromptCreateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.onboarding.OnboardingPromptDeleteEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.onboarding.OnboardingPromptUpdateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.onboarding.OnboardingUpdateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.role.RoleCreateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.role.RoleDeleteEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.role.RoleUpdateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.scheduledevent.ScheduledEventCreateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.scheduledevent.ScheduledEventDeleteEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.scheduledevent.ScheduledEventUpdateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.soundboard.SoundboardSoundCreateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.soundboard.SoundboardSoundDeleteEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.soundboard.SoundboardSoundUpdateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.stage.StageInstanceCreateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.stage.StageInstanceDeleteEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.stage.StageInstanceUpdateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.sticker.StickerCreateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.sticker.StickerDeleteEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.sticker.StickerUpdateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.thread.ThreadCreateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.thread.ThreadDeleteEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.thread.ThreadUpdateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.webhook.WebhookCreateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.webhook.WebhookRemoveEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.webhook.WebhookUpdateEventHelper; import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; import io.github.eggy03.papertrail.sdk.entity.AuditLogRegistrationEntity; import lombok.NonNull; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationFlagToChannelEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationFlagToChannelEventHelper.java similarity index 96% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationFlagToChannelEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationFlagToChannelEventHelper.java index bcb89a56..bcd8ec00 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationFlagToChannelEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationFlagToChannelEventHelper.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.automod; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.automod; import lombok.NonNull; import lombok.experimental.UtilityClass; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationMemberTimeoutEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationMemberTimeoutEventHelper.java similarity index 96% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationMemberTimeoutEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationMemberTimeoutEventHelper.java index aafa4732..24033674 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationMemberTimeoutEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationMemberTimeoutEventHelper.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.automod; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.automod; import lombok.NonNull; import lombok.experimental.UtilityClass; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleBlockMessageEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationRuleBlockMessageEventHelper.java similarity index 96% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleBlockMessageEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationRuleBlockMessageEventHelper.java index d18cd947..e222d817 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleBlockMessageEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationRuleBlockMessageEventHelper.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.automod; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.automod; import lombok.NonNull; import lombok.experimental.UtilityClass; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationRuleCreateEventHelper.java similarity index 94% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleCreateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationRuleCreateEventHelper.java index ae716087..b3d8fa86 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationRuleCreateEventHelper.java @@ -1,7 +1,7 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.automod; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.automod; import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.automod.utils.AutoModUtils; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.automod.utils.AutoModUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationRuleDeleteEventHelper.java similarity index 96% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleDeleteEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationRuleDeleteEventHelper.java index 30a4f11b..254f6b57 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationRuleDeleteEventHelper.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.automod; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.automod; import lombok.NonNull; import lombok.experimental.UtilityClass; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationRuleUpdateEventHelper.java similarity index 96% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleUpdateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationRuleUpdateEventHelper.java index e5d876cb..34652e6d 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/AutoModerationRuleUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationRuleUpdateEventHelper.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.automod; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.automod; import lombok.NonNull; import lombok.experimental.UtilityClass; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutoModUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/utils/AutoModUtils.java similarity index 94% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutoModUtils.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/utils/AutoModUtils.java index 277ff098..4717a051 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/automod/utils/AutoModUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/utils/AutoModUtils.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.automod.utils; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.automod.utils; import io.github.eggy03.papertrail.bot.commons.utils.NumberParseUtils; import lombok.NonNull; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/bot/BotAddEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/bot/BotAddEventHelper.java similarity index 96% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/bot/BotAddEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/bot/BotAddEventHelper.java index 594c2fab..b7a2a4e9 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/bot/BotAddEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/bot/BotAddEventHelper.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.bot; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.bot; import lombok.NonNull; import lombok.experimental.UtilityClass; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelCreateEventHelper.java similarity index 95% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelCreateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelCreateEventHelper.java index da3d03c0..92b81317 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelCreateEventHelper.java @@ -1,8 +1,8 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.channel; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.channel; import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; import io.github.eggy03.papertrail.bot.commons.utils.DurationUtils; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.channel.utils.ChannelUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelDeleteEventHelper.java similarity index 94% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelDeleteEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelDeleteEventHelper.java index b8c5982a..a6fffee4 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelDeleteEventHelper.java @@ -1,6 +1,6 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.channel; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.channel; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.channel.utils.ChannelUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelOverrideCreateEventHelper.java similarity index 95% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideCreateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelOverrideCreateEventHelper.java index b3aded2d..4aefd232 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelOverrideCreateEventHelper.java @@ -1,6 +1,6 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.channel; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.channel; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.channel.utils.ChannelUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelOverrideDeleteEventHelper.java similarity index 95% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideDeleteEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelOverrideDeleteEventHelper.java index 21d2168b..d5edd7cd 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelOverrideDeleteEventHelper.java @@ -1,6 +1,6 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.channel; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.channel; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.channel.utils.ChannelUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelOverrideUpdateEventHelper.java similarity index 96% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelOverrideUpdateEventHelper.java index fcbf1853..2894fed0 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelOverrideUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelOverrideUpdateEventHelper.java @@ -1,6 +1,6 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.channel; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.channel; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.channel.utils.ChannelUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelUpdateEventHelper.java similarity index 97% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelUpdateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelUpdateEventHelper.java index 293c47ed..fa706a07 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/ChannelUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelUpdateEventHelper.java @@ -1,8 +1,8 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.channel; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.channel; import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; import io.github.eggy03.papertrail.bot.commons.utils.DurationUtils; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.channel.utils.ChannelUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/VoiceChannelStatusDeleteEventHelper.java similarity index 96% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusDeleteEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/VoiceChannelStatusDeleteEventHelper.java index 8c7726fb..4719f919 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/VoiceChannelStatusDeleteEventHelper.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.channel; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.channel; import lombok.NonNull; import lombok.experimental.UtilityClass; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/VoiceChannelStatusUpdateEventHelper.java similarity index 96% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusUpdateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/VoiceChannelStatusUpdateEventHelper.java index 812b7564..18ec3a84 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/VoiceChannelStatusUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/VoiceChannelStatusUpdateEventHelper.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.channel; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.channel; import lombok.NonNull; import lombok.experimental.UtilityClass; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/utils/ChannelUtils.java similarity index 98% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/utils/ChannelUtils.java index 47cb00c2..26b03ef9 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/channel/utils/ChannelUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/utils/ChannelUtils.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.channel.utils; import io.github.eggy03.papertrail.bot.commons.utils.NumberParseUtils; import lombok.NonNull; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/emoji/EmojiCreateEventHelper.java similarity index 97% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiCreateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/emoji/EmojiCreateEventHelper.java index ebbc6bc0..9521326c 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/emoji/EmojiCreateEventHelper.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.emoji; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.emoji; import lombok.NonNull; import lombok.experimental.UtilityClass; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/emoji/EmojiDeleteEventHelper.java similarity index 97% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiDeleteEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/emoji/EmojiDeleteEventHelper.java index 2dcf766f..cea36773 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/emoji/EmojiDeleteEventHelper.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.emoji; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.emoji; import lombok.NonNull; import lombok.experimental.UtilityClass; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/emoji/EmojiUpdateEventHelper.java similarity index 97% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiUpdateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/emoji/EmojiUpdateEventHelper.java index 595589e4..0e10e8b9 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/emoji/EmojiUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/emoji/EmojiUpdateEventHelper.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.emoji; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.emoji; import lombok.NonNull; import lombok.experimental.UtilityClass; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/generic/GenericAuditLogEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/generic/GenericAuditLogEventHelper.java similarity index 96% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/generic/GenericAuditLogEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/generic/GenericAuditLogEventHelper.java index 15b1c40f..aeff5619 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/generic/GenericAuditLogEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/generic/GenericAuditLogEventHelper.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.generic; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.generic; import lombok.NonNull; import lombok.experimental.UtilityClass; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/GuildUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/guild/GuildUpdateEventHelper.java similarity index 97% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/GuildUpdateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/guild/GuildUpdateEventHelper.java index 844d5d7c..615715ed 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/GuildUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/guild/GuildUpdateEventHelper.java @@ -1,8 +1,8 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.guild; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.guild; import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; import io.github.eggy03.papertrail.bot.commons.utils.DurationUtils; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.guild.utils.GuildUtils; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.guild.utils.GuildUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/utils/GuildUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/guild/utils/GuildUtils.java similarity index 97% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/utils/GuildUtils.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/guild/utils/GuildUtils.java index 9709de81..33db0cce 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/guild/utils/GuildUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/guild/utils/GuildUtils.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.guild.utils; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.guild.utils; import io.github.eggy03.papertrail.bot.commons.utils.NumberParseUtils; import lombok.NonNull; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/integration/IntegrationCreateEventHelper.java similarity index 96% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationCreateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/integration/IntegrationCreateEventHelper.java index 8be4fbf1..ea01a56b 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/integration/IntegrationCreateEventHelper.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.integration; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.integration; import lombok.NonNull; import lombok.experimental.UtilityClass; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/integration/IntegrationDeleteEventHelper.java similarity index 96% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationDeleteEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/integration/IntegrationDeleteEventHelper.java index b39ccb81..32696ba0 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/integration/IntegrationDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/integration/IntegrationDeleteEventHelper.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.integration; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.integration; import lombok.NonNull; import lombok.experimental.UtilityClass; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/invite/InviteCreateEventHelper.java similarity index 97% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteCreateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/invite/InviteCreateEventHelper.java index 36bb5f3c..b1f2537e 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/invite/InviteCreateEventHelper.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.invite; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.invite; import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; import io.github.eggy03.papertrail.bot.commons.utils.DurationUtils; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/invite/InviteDeleteEventHelper.java similarity index 97% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteDeleteEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/invite/InviteDeleteEventHelper.java index 3e1ac4a6..6ef1558b 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/invite/InviteDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/invite/InviteDeleteEventHelper.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.invite; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.invite; import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; import lombok.NonNull; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberRoleUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/member/MemberRoleUpdateEventHelper.java similarity index 94% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberRoleUpdateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/member/MemberRoleUpdateEventHelper.java index dce4bb48..547dd084 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberRoleUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/member/MemberRoleUpdateEventHelper.java @@ -1,6 +1,6 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.member; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.member; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.member.utils.MemberUtils; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.member.utils.MemberUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/member/MemberUpdateEventHelper.java similarity index 98% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberUpdateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/member/MemberUpdateEventHelper.java index 53d65465..f94f20e9 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/member/MemberUpdateEventHelper.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.member; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.member; import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; import io.github.eggy03.papertrail.bot.commons.utils.DurationUtils; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceKickEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/member/MemberVoiceKickEventHelper.java similarity index 96% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceKickEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/member/MemberVoiceKickEventHelper.java index f4ed145b..da2baad1 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceKickEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/member/MemberVoiceKickEventHelper.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.member; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.member; import lombok.NonNull; import lombok.experimental.UtilityClass; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceMoveEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/member/MemberVoiceMoveEventHelper.java similarity index 96% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceMoveEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/member/MemberVoiceMoveEventHelper.java index 2790d694..0264b67d 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/MemberVoiceMoveEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/member/MemberVoiceMoveEventHelper.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.member; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.member; import lombok.NonNull; import lombok.experimental.UtilityClass; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/utils/MemberUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/member/utils/MemberUtils.java similarity index 95% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/utils/MemberUtils.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/member/utils/MemberUtils.java index dc38f594..364984ed 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/member/utils/MemberUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/member/utils/MemberUtils.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.member.utils; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.member.utils; import lombok.NonNull; import lombok.experimental.UtilityClass; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessagePinEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/message/MessagePinEventHelper.java similarity index 96% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessagePinEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/message/MessagePinEventHelper.java index e786d197..74a46908 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessagePinEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/message/MessagePinEventHelper.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.message; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.message; import lombok.NonNull; import lombok.experimental.UtilityClass; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessageUnpinEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/message/MessageUnpinEventHelper.java similarity index 96% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessageUnpinEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/message/MessageUnpinEventHelper.java index a7c1291e..a79d4d0a 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/message/MessageUnpinEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/message/MessageUnpinEventHelper.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.message; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.message; import lombok.NonNull; import lombok.experimental.UtilityClass; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/BanEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/modactions/BanEventHelper.java similarity index 96% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/BanEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/modactions/BanEventHelper.java index f97e835a..b2e1d6dd 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/BanEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/modactions/BanEventHelper.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.modactions; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.modactions; import lombok.NonNull; import lombok.experimental.UtilityClass; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/KickEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/modactions/KickEventHelper.java similarity index 96% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/KickEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/modactions/KickEventHelper.java index cddf3f26..72fb7a92 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/KickEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/modactions/KickEventHelper.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.modactions; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.modactions; import lombok.NonNull; import lombok.experimental.UtilityClass; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/UnbanEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/modactions/UnbanEventHelper.java similarity index 96% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/UnbanEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/modactions/UnbanEventHelper.java index 3b5d4bd7..1e91e43a 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/modactions/UnbanEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/modactions/UnbanEventHelper.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.modactions; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.modactions; import lombok.NonNull; import lombok.experimental.UtilityClass; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/onboarding/OnboardingPromptCreateEventHelper.java similarity index 97% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptCreateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/onboarding/OnboardingPromptCreateEventHelper.java index 518494dc..cdbf339e 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/onboarding/OnboardingPromptCreateEventHelper.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.onboarding; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.onboarding; import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; import lombok.NonNull; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/onboarding/OnboardingPromptDeleteEventHelper.java similarity index 97% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptDeleteEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/onboarding/OnboardingPromptDeleteEventHelper.java index f5503461..0ab2b6f0 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/onboarding/OnboardingPromptDeleteEventHelper.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.onboarding; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.onboarding; import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; import lombok.NonNull; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/onboarding/OnboardingPromptUpdateEventHelper.java similarity index 97% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptUpdateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/onboarding/OnboardingPromptUpdateEventHelper.java index e47824ef..ba978d6f 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingPromptUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/onboarding/OnboardingPromptUpdateEventHelper.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.onboarding; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.onboarding; import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; import lombok.NonNull; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/onboarding/OnboardingUpdateEventHelper.java similarity index 95% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingUpdateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/onboarding/OnboardingUpdateEventHelper.java index 7c7968c7..e4c693db 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/OnboardingUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/onboarding/OnboardingUpdateEventHelper.java @@ -1,7 +1,7 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.onboarding; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.onboarding; import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.onboarding.utils.OnboardingUtils; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.onboarding.utils.OnboardingUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/utils/OnboardingUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/onboarding/utils/OnboardingUtils.java similarity index 95% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/utils/OnboardingUtils.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/onboarding/utils/OnboardingUtils.java index 91105299..cbc99067 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/onboarding/utils/OnboardingUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/onboarding/utils/OnboardingUtils.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.onboarding.utils; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.onboarding.utils; import lombok.NonNull; import lombok.experimental.UtilityClass; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/role/RoleCreateEventHelper.java similarity index 97% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleCreateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/role/RoleCreateEventHelper.java index 32de46d7..90f0a3b1 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/role/RoleCreateEventHelper.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.role; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.role; import lombok.NonNull; import lombok.experimental.UtilityClass; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/role/RoleDeleteEventHelper.java similarity index 95% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleDeleteEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/role/RoleDeleteEventHelper.java index 62222fcc..b576890f 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/role/RoleDeleteEventHelper.java @@ -1,7 +1,7 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.role; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.role; import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.role.utils.RoleUtils; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.role.utils.RoleUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/role/RoleUpdateEventHelper.java similarity index 96% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleUpdateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/role/RoleUpdateEventHelper.java index 199e7e6c..d66fa8cf 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/RoleUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/role/RoleUpdateEventHelper.java @@ -1,7 +1,7 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.role; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.role; import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.role.utils.RoleUtils; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.role.utils.RoleUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/utils/RoleUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/role/utils/RoleUtils.java similarity index 97% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/utils/RoleUtils.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/role/utils/RoleUtils.java index ac7cdba6..d1c322e1 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/role/utils/RoleUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/role/utils/RoleUtils.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.role.utils; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.role.utils; import io.github.eggy03.papertrail.bot.commons.utils.NumberParseUtils; import lombok.NonNull; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/scheduledevent/ScheduledEventCreateEventHelper.java similarity index 94% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventCreateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/scheduledevent/ScheduledEventCreateEventHelper.java index 649e9b61..e2d4c26a 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/scheduledevent/ScheduledEventCreateEventHelper.java @@ -1,6 +1,6 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.scheduledevent; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.scheduledevent; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.scheduledevent.utils.ScheduledEventUtils; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.scheduledevent.utils.ScheduledEventUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/scheduledevent/ScheduledEventDeleteEventHelper.java similarity index 94% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventDeleteEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/scheduledevent/ScheduledEventDeleteEventHelper.java index b6511b1e..58a9ddda 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/scheduledevent/ScheduledEventDeleteEventHelper.java @@ -1,6 +1,6 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.scheduledevent; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.scheduledevent; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.scheduledevent.utils.ScheduledEventUtils; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.scheduledevent.utils.ScheduledEventUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/scheduledevent/ScheduledEventUpdateEventHelper.java similarity index 95% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/scheduledevent/ScheduledEventUpdateEventHelper.java index baccc0f0..7a1e9912 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/ScheduledEventUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/scheduledevent/ScheduledEventUpdateEventHelper.java @@ -1,6 +1,6 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.scheduledevent; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.scheduledevent; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.scheduledevent.utils.ScheduledEventUtils; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.scheduledevent.utils.ScheduledEventUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/utils/ScheduledEventUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/scheduledevent/utils/ScheduledEventUtils.java similarity index 98% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/utils/ScheduledEventUtils.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/scheduledevent/utils/ScheduledEventUtils.java index f56cf236..57d5a7a8 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/scheduledevent/utils/ScheduledEventUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/scheduledevent/utils/ScheduledEventUtils.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.scheduledevent.utils; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.scheduledevent.utils; import io.github.eggy03.papertrail.bot.commons.utils.NumberParseUtils; import lombok.NonNull; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/soundboard/SoundboardSoundCreateEventHelper.java similarity index 94% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundCreateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/soundboard/SoundboardSoundCreateEventHelper.java index 8f8f3725..7d709b3d 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/soundboard/SoundboardSoundCreateEventHelper.java @@ -1,6 +1,6 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.soundboard; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.soundboard; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.soundboard.utils.SoundboardUtils; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.soundboard.utils.SoundboardUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/soundboard/SoundboardSoundDeleteEventHelper.java similarity index 94% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundDeleteEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/soundboard/SoundboardSoundDeleteEventHelper.java index 0d9e3632..bae2c651 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/soundboard/SoundboardSoundDeleteEventHelper.java @@ -1,6 +1,6 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.soundboard; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.soundboard; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.soundboard.utils.SoundboardUtils; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.soundboard.utils.SoundboardUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/soundboard/SoundboardSoundUpdateEventHelper.java similarity index 95% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundUpdateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/soundboard/SoundboardSoundUpdateEventHelper.java index 45a73e0f..e7255cfc 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/SoundboardSoundUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/soundboard/SoundboardSoundUpdateEventHelper.java @@ -1,6 +1,6 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.soundboard; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.soundboard; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.soundboard.utils.SoundboardUtils; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.soundboard.utils.SoundboardUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/utils/SoundboardUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/soundboard/utils/SoundboardUtils.java similarity index 90% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/utils/SoundboardUtils.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/soundboard/utils/SoundboardUtils.java index 1065823f..8f195d37 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/soundboard/utils/SoundboardUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/soundboard/utils/SoundboardUtils.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.soundboard.utils; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.soundboard.utils; import io.github.eggy03.papertrail.bot.commons.utils.NumberParseUtils; import lombok.experimental.UtilityClass; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/stage/StageInstanceCreateEventHelper.java similarity index 93% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceCreateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/stage/StageInstanceCreateEventHelper.java index 4bbd3d05..3638fa1f 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/stage/StageInstanceCreateEventHelper.java @@ -1,6 +1,6 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.stage; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.stage; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.stage.utils.StageUtils; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.stage.utils.StageUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/stage/StageInstanceDeleteEventHelper.java similarity index 93% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceDeleteEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/stage/StageInstanceDeleteEventHelper.java index b71b1c26..311bda31 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/stage/StageInstanceDeleteEventHelper.java @@ -1,6 +1,6 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.stage; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.stage; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.stage.utils.StageUtils; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.stage.utils.StageUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/stage/StageInstanceUpdateEventHelper.java similarity index 94% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceUpdateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/stage/StageInstanceUpdateEventHelper.java index ac05ffdf..59206e97 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/StageInstanceUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/stage/StageInstanceUpdateEventHelper.java @@ -1,6 +1,6 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.stage; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.stage; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.stage.utils.StageUtils; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.stage.utils.StageUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/utils/StageUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/stage/utils/StageUtils.java similarity index 92% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/utils/StageUtils.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/stage/utils/StageUtils.java index b6bed96a..994acbc5 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/stage/utils/StageUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/stage/utils/StageUtils.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.stage.utils; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.stage.utils; import io.github.eggy03.papertrail.bot.commons.utils.NumberParseUtils; import lombok.experimental.UtilityClass; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/sticker/StickerCreateEventHelper.java similarity index 94% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerCreateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/sticker/StickerCreateEventHelper.java index 3c9bfe95..36f0b29b 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/sticker/StickerCreateEventHelper.java @@ -1,6 +1,6 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.sticker; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.sticker; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.sticker.utils.StickerUtils; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.sticker.utils.StickerUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/sticker/StickerDeleteEventHelper.java similarity index 94% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerDeleteEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/sticker/StickerDeleteEventHelper.java index ab7e7760..16be546f 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/sticker/StickerDeleteEventHelper.java @@ -1,6 +1,6 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.sticker; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.sticker; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.sticker.utils.StickerUtils; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.sticker.utils.StickerUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/sticker/StickerUpdateEventHelper.java similarity index 95% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerUpdateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/sticker/StickerUpdateEventHelper.java index 7f6321fc..ce881322 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/StickerUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/sticker/StickerUpdateEventHelper.java @@ -1,6 +1,6 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.sticker; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.sticker; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.sticker.utils.StickerUtils; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.sticker.utils.StickerUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/utils/StickerUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/sticker/utils/StickerUtils.java similarity index 96% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/utils/StickerUtils.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/sticker/utils/StickerUtils.java index fa958be2..ad629030 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/sticker/utils/StickerUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/sticker/utils/StickerUtils.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.sticker.utils; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.sticker.utils; import lombok.NonNull; import lombok.experimental.UtilityClass; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/thread/ThreadCreateEventHelper.java similarity index 93% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadCreateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/thread/ThreadCreateEventHelper.java index bd1f3d1f..acfd461d 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/thread/ThreadCreateEventHelper.java @@ -1,9 +1,9 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.thread; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.thread; import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; import io.github.eggy03.papertrail.bot.commons.utils.DurationUtils; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.thread.utils.ThreadUtils; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.channel.utils.ChannelUtils; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.thread.utils.ThreadUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/thread/ThreadDeleteEventHelper.java similarity index 92% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadDeleteEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/thread/ThreadDeleteEventHelper.java index 30c46c48..4dbaeb3c 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/thread/ThreadDeleteEventHelper.java @@ -1,9 +1,9 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.thread; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.thread; import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; import io.github.eggy03.papertrail.bot.commons.utils.DurationUtils; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.thread.utils.ThreadUtils; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.channel.utils.ChannelUtils; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.thread.utils.ThreadUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/thread/ThreadUpdateEventHelper.java similarity index 95% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadUpdateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/thread/ThreadUpdateEventHelper.java index 437e5102..3e6a1418 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/ThreadUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/thread/ThreadUpdateEventHelper.java @@ -1,9 +1,9 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.thread; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.thread; import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; import io.github.eggy03.papertrail.bot.commons.utils.DurationUtils; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.channel.utils.ChannelUtils; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.thread.utils.ThreadUtils; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.channel.utils.ChannelUtils; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.thread.utils.ThreadUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/utils/ThreadUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/thread/utils/ThreadUtils.java similarity index 91% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/utils/ThreadUtils.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/thread/utils/ThreadUtils.java index b0b0a092..506fe5f9 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/thread/utils/ThreadUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/thread/utils/ThreadUtils.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.thread.utils; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.thread.utils; import io.github.eggy03.papertrail.bot.commons.utils.NumberParseUtils; import lombok.NonNull; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/webhook/WebhookCreateEventHelper.java similarity index 91% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookCreateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/webhook/WebhookCreateEventHelper.java index 1bd8f569..19cc6787 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/webhook/WebhookCreateEventHelper.java @@ -1,7 +1,7 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.webhook; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.webhook; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.guild.utils.GuildUtils; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.webhook.utils.WebhookUtils; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.guild.utils.GuildUtils; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.webhook.utils.WebhookUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookRemoveEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/webhook/WebhookRemoveEventHelper.java similarity index 91% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookRemoveEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/webhook/WebhookRemoveEventHelper.java index 8d8e192a..4167a604 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookRemoveEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/webhook/WebhookRemoveEventHelper.java @@ -1,7 +1,7 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.webhook; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.webhook; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.guild.utils.GuildUtils; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.webhook.utils.WebhookUtils; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.guild.utils.GuildUtils; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.webhook.utils.WebhookUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/webhook/WebhookUpdateEventHelper.java similarity index 92% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookUpdateEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/webhook/WebhookUpdateEventHelper.java index ccd43c0a..d859c816 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/WebhookUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/webhook/WebhookUpdateEventHelper.java @@ -1,7 +1,7 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.webhook; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.webhook; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.guild.utils.GuildUtils; -import io.github.eggy03.papertrail.bot.listeners.audit.helper.webhook.utils.WebhookUtils; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.guild.utils.GuildUtils; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.webhook.utils.WebhookUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/utils/WebhookUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/webhook/utils/WebhookUtils.java similarity index 90% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/utils/WebhookUtils.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/webhook/utils/WebhookUtils.java index 14b08ba1..916a8791 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/helper/webhook/utils/WebhookUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/webhook/utils/WebhookUtils.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.helper.webhook.utils; +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.webhook.utils; import io.github.eggy03.papertrail.bot.commons.utils.NumberParseUtils; import lombok.NonNull; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/setup/AuditLogSetupCommandListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/setup/AuditLogSetupCommandListener.java similarity index 98% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/setup/AuditLogSetupCommandListener.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/setup/AuditLogSetupCommandListener.java index f2808857..92feffd4 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/audit/setup/AuditLogSetupCommandListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/setup/AuditLogSetupCommandListener.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.audit.setup; +package io.github.eggy03.papertrail.bot.listeners.auditlog.setup; import io.github.eggy03.papertrail.bot.commons.utils.EnvConfig; import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/event/guild/GuildBoostEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/event/guild/GuildBoostEventListener.java similarity index 83% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/event/guild/GuildBoostEventListener.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/event/guild/GuildBoostEventListener.java index 405516a2..bfcd7218 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/event/guild/GuildBoostEventListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/event/guild/GuildBoostEventListener.java @@ -1,9 +1,9 @@ -package io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.event.guild; +package io.github.eggy03.papertrail.bot.listeners.auditlogsupl.event.guild; import io.github.eggy03.papertrail.bot.commons.utils.EnvConfig; -import io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.helper.guild.GuildMemberUpdateBoostTimeEventHelper; -import io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.helper.guild.GuildUpdateBoostCountEventHelper; -import io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.helper.guild.GuildUpdateBoostTierEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlogsupl.helper.guild.GuildMemberUpdateBoostTimeEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlogsupl.helper.guild.GuildUpdateBoostCountEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlogsupl.helper.guild.GuildUpdateBoostTierEventHelper; import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; import io.github.eggy03.papertrail.sdk.entity.AuditLogRegistrationEntity; import lombok.NonNull; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/event/guild/GuildMemberJoinAndLeaveEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/event/guild/GuildMemberJoinAndLeaveEventListener.java similarity index 86% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/event/guild/GuildMemberJoinAndLeaveEventListener.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/event/guild/GuildMemberJoinAndLeaveEventListener.java index dfa9b27a..bc522e3d 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/event/guild/GuildMemberJoinAndLeaveEventListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/event/guild/GuildMemberJoinAndLeaveEventListener.java @@ -1,8 +1,8 @@ -package io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.event.guild; +package io.github.eggy03.papertrail.bot.listeners.auditlogsupl.event.guild; import io.github.eggy03.papertrail.bot.commons.utils.EnvConfig; -import io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.helper.guild.GuildMemberJoinEventHelper; -import io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.helper.guild.GuildMemberRemoveEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlogsupl.helper.guild.GuildMemberJoinEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlogsupl.helper.guild.GuildMemberRemoveEventHelper; import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; import io.github.eggy03.papertrail.sdk.entity.AuditLogRegistrationEntity; import lombok.NonNull; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/event/guild/GuildPollEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/event/guild/GuildPollEventListener.java similarity index 89% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/event/guild/GuildPollEventListener.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/event/guild/GuildPollEventListener.java index 1fe6fcdd..56bb3c7f 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/event/guild/GuildPollEventListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/event/guild/GuildPollEventListener.java @@ -1,7 +1,7 @@ -package io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.event.guild; +package io.github.eggy03.papertrail.bot.listeners.auditlogsupl.event.guild; import io.github.eggy03.papertrail.bot.commons.utils.EnvConfig; -import io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.helper.guild.GuildPollEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlogsupl.helper.guild.GuildPollEventHelper; import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; import io.github.eggy03.papertrail.sdk.entity.AuditLogRegistrationEntity; import lombok.NonNull; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/event/guild/GuildVoiceEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/event/guild/GuildVoiceEventListener.java similarity index 88% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/event/guild/GuildVoiceEventListener.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/event/guild/GuildVoiceEventListener.java index 30dada72..8ec99ddd 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/event/guild/GuildVoiceEventListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/event/guild/GuildVoiceEventListener.java @@ -1,7 +1,7 @@ -package io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.event.guild; +package io.github.eggy03.papertrail.bot.listeners.auditlogsupl.event.guild; import io.github.eggy03.papertrail.bot.commons.utils.EnvConfig; -import io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.helper.guild.GuildVoiceEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlogsupl.helper.guild.GuildVoiceEventHelper; import io.github.eggy03.papertrail.sdk.client.AuditLogRegistrationClient; import io.github.eggy03.papertrail.sdk.entity.AuditLogRegistrationEntity; import lombok.NonNull; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildMemberJoinEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildMemberJoinEventHelper.java similarity index 95% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildMemberJoinEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildMemberJoinEventHelper.java index 8a32af4e..0c292680 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildMemberJoinEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildMemberJoinEventHelper.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.helper.guild; +package io.github.eggy03.papertrail.bot.listeners.auditlogsupl.helper.guild; import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; import io.github.eggy03.papertrail.bot.commons.utils.DurationUtils; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildMemberRemoveEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildMemberRemoveEventHelper.java similarity index 96% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildMemberRemoveEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildMemberRemoveEventHelper.java index ff88fd7d..f6460887 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildMemberRemoveEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildMemberRemoveEventHelper.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.helper.guild; +package io.github.eggy03.papertrail.bot.listeners.auditlogsupl.helper.guild; import lombok.NonNull; import lombok.experimental.UtilityClass; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildMemberUpdateBoostTimeEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildMemberUpdateBoostTimeEventHelper.java similarity index 96% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildMemberUpdateBoostTimeEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildMemberUpdateBoostTimeEventHelper.java index 8bd02727..82e0e4a5 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildMemberUpdateBoostTimeEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildMemberUpdateBoostTimeEventHelper.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.helper.guild; +package io.github.eggy03.papertrail.bot.listeners.auditlogsupl.helper.guild; import lombok.NonNull; import lombok.experimental.UtilityClass; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildPollEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildPollEventHelper.java similarity index 96% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildPollEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildPollEventHelper.java index 419ea378..0f2f20c2 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildPollEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildPollEventHelper.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.helper.guild; +package io.github.eggy03.papertrail.bot.listeners.auditlogsupl.helper.guild; import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; import lombok.NonNull; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildUpdateBoostCountEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildUpdateBoostCountEventHelper.java similarity index 94% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildUpdateBoostCountEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildUpdateBoostCountEventHelper.java index 17ac35f3..3e6d298b 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildUpdateBoostCountEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildUpdateBoostCountEventHelper.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.helper.guild; +package io.github.eggy03.papertrail.bot.listeners.auditlogsupl.helper.guild; import lombok.NonNull; import lombok.experimental.UtilityClass; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildUpdateBoostTierEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildUpdateBoostTierEventHelper.java similarity index 96% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildUpdateBoostTierEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildUpdateBoostTierEventHelper.java index 2b24e1ce..f49a028e 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildUpdateBoostTierEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildUpdateBoostTierEventHelper.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.helper.guild; +package io.github.eggy03.papertrail.bot.listeners.auditlogsupl.helper.guild; import lombok.NonNull; import lombok.experimental.UtilityClass; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildVoiceEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildVoiceEventHelper.java similarity index 96% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildVoiceEventHelper.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildVoiceEventHelper.java index b47e44b3..738478a8 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/helper/guild/GuildVoiceEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildVoiceEventHelper.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.helper.guild; +package io.github.eggy03.papertrail.bot.listeners.auditlogsupl.helper.guild; import lombok.NonNull; import lombok.experimental.UtilityClass; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/package-info.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/package-info.java similarity index 88% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/package-info.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/package-info.java index 18905df8..32c3b435 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/supplementaryaudit/package-info.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/package-info.java @@ -9,4 +9,4 @@ *

All events in this package log to the same destination and follow the same * formatting and conventions as standard audit log listeners and hence, no additional setup is required.

*/ -package io.github.eggy03.papertrail.bot.listeners.supplementaryaudit; \ No newline at end of file +package io.github.eggy03.papertrail.bot.listeners.auditlogsupl; \ No newline at end of file diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/event/MessageLogListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/messagelog/event/MessageLogListener.java similarity index 99% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/message/event/MessageLogListener.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/messagelog/event/MessageLogListener.java index 7b844dd7..5037831f 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/event/MessageLogListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/messagelog/event/MessageLogListener.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.message.event; +package io.github.eggy03.papertrail.bot.listeners.messagelog.event; import com.google.common.base.Splitter; import io.github.eggy03.papertrail.bot.commons.utils.EnvConfig; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/setup/MessageLogSetupCommandListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/messagelog/setup/MessageLogSetupCommandListener.java similarity index 98% rename from src/main/java/io/github/eggy03/papertrail/bot/listeners/message/setup/MessageLogSetupCommandListener.java rename to src/main/java/io/github/eggy03/papertrail/bot/listeners/messagelog/setup/MessageLogSetupCommandListener.java index d9f114dd..91a5c510 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/message/setup/MessageLogSetupCommandListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/messagelog/setup/MessageLogSetupCommandListener.java @@ -1,4 +1,4 @@ -package io.github.eggy03.papertrail.bot.listeners.message.setup; +package io.github.eggy03.papertrail.bot.listeners.messagelog.setup; import io.github.eggy03.papertrail.bot.commons.utils.EnvConfig; import io.github.eggy03.papertrail.sdk.client.MessageLogRegistrationClient; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/main/Start.java b/src/main/java/io/github/eggy03/papertrail/bot/main/Start.java index 4ee6ecd8..fd149f74 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/main/Start.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/main/Start.java @@ -3,17 +3,17 @@ import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpHandler; import com.sun.net.httpserver.HttpServer; -import io.github.eggy03.papertrail.bot.listeners.audit.event.AuditLogEventListener; -import io.github.eggy03.papertrail.bot.listeners.audit.setup.AuditLogSetupCommandListener; -import io.github.eggy03.papertrail.bot.listeners.message.event.MessageLogListener; -import io.github.eggy03.papertrail.bot.listeners.message.setup.MessageLogSetupCommandListener; +import io.github.eggy03.papertrail.bot.listeners.auditlog.event.AuditLogEventListener; +import io.github.eggy03.papertrail.bot.listeners.auditlog.setup.AuditLogSetupCommandListener; +import io.github.eggy03.papertrail.bot.listeners.auditlogsupl.event.guild.GuildBoostEventListener; +import io.github.eggy03.papertrail.bot.listeners.auditlogsupl.event.guild.GuildMemberJoinAndLeaveEventListener; +import io.github.eggy03.papertrail.bot.listeners.auditlogsupl.event.guild.GuildPollEventListener; +import io.github.eggy03.papertrail.bot.listeners.auditlogsupl.event.guild.GuildVoiceEventListener; +import io.github.eggy03.papertrail.bot.listeners.messagelog.event.MessageLogListener; +import io.github.eggy03.papertrail.bot.listeners.messagelog.setup.MessageLogSetupCommandListener; import io.github.eggy03.papertrail.bot.listeners.misc.BotSetupInstructionCommandListener; import io.github.eggy03.papertrail.bot.listeners.misc.SelfKickListener; import io.github.eggy03.papertrail.bot.listeners.misc.ServerStatCommandListener; -import io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.event.guild.GuildBoostEventListener; -import io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.event.guild.GuildMemberJoinAndLeaveEventListener; -import io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.event.guild.GuildPollEventListener; -import io.github.eggy03.papertrail.bot.listeners.supplementaryaudit.event.guild.GuildVoiceEventListener; import lombok.NonNull; import net.dv8tion.jda.api.sharding.ShardManager; From 30762a909b4441510a27c1af3516d946b9949472 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Fri, 13 Feb 2026 10:45:10 +0530 Subject: [PATCH 073/104] refactor(messagelog): extract event handling to helper classes - Extract message received, update, and delete event logic into dedicated helper classes - Improve code organization and readability of `MessageLogListener` Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../messagelog/event/MessageLogListener.java | 113 +++--------------- .../MessageLogMessageDeleteEventHelper.java | 65 ++++++++++ .../MessageLogMessageReceivedEventHelper.java | 19 +++ .../MessageLogMessageUpdateEventHelper.java | 71 +++++++++++ 4 files changed, 169 insertions(+), 99 deletions(-) create mode 100644 src/main/java/io/github/eggy03/papertrail/bot/listeners/messagelog/helper/MessageLogMessageDeleteEventHelper.java create mode 100644 src/main/java/io/github/eggy03/papertrail/bot/listeners/messagelog/helper/MessageLogMessageReceivedEventHelper.java create mode 100644 src/main/java/io/github/eggy03/papertrail/bot/listeners/messagelog/helper/MessageLogMessageUpdateEventHelper.java diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/messagelog/event/MessageLogListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/messagelog/event/MessageLogListener.java index 5037831f..5a503a1d 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/messagelog/event/MessageLogListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/messagelog/event/MessageLogListener.java @@ -1,26 +1,20 @@ package io.github.eggy03.papertrail.bot.listeners.messagelog.event; -import com.google.common.base.Splitter; import io.github.eggy03.papertrail.bot.commons.utils.EnvConfig; +import io.github.eggy03.papertrail.bot.listeners.messagelog.helper.MessageLogMessageDeleteEventHelper; +import io.github.eggy03.papertrail.bot.listeners.messagelog.helper.MessageLogMessageReceivedEventHelper; +import io.github.eggy03.papertrail.bot.listeners.messagelog.helper.MessageLogMessageUpdateEventHelper; import io.github.eggy03.papertrail.sdk.client.MessageLogContentClient; import io.github.eggy03.papertrail.sdk.client.MessageLogRegistrationClient; -import io.github.eggy03.papertrail.sdk.entity.MessageLogContentEntity; import io.github.eggy03.papertrail.sdk.entity.MessageLogRegistrationEntity; import lombok.NonNull; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.entities.MessageEmbed; -import net.dv8tion.jda.api.entities.User; -import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.message.MessageDeleteEvent; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.events.message.MessageUpdateEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; -import java.awt.Color; -import java.time.Instant; -import java.util.List; import java.util.Optional; import java.util.concurrent.Executor; @@ -48,18 +42,13 @@ public void onMessageReceived(@NonNull MessageReceivedEvent event) { } vThreadPool.execute(() -> { - // get the guild id for which the event was fired String guildId = event.getGuild().getId(); // Call the API to see if the guild is registered for Message Logging Optional response = registrationClient.getRegisteredGuild(guildId); - response.ifPresent(success -> { - String messageId = event.getMessageId(); - String messageContent = event.getMessage().getContentDisplay(); - String authorId = event.getAuthor().getId(); - - contentClient.logMessage(messageId, messageContent, authorId); - }); + response.ifPresent(success -> + MessageLogMessageReceivedEventHelper.saveMessage(event, contentClient) + ); }); } @@ -71,59 +60,18 @@ public void onMessageUpdate(@NonNull MessageUpdateEvent event) { } vThreadPool.execute(() -> { - // Get the guild id for which the event was fired String guildId = event.getGuild().getId(); - // get the message id of the message which was updated - String messageId = event.getMessageId(); // Call the API to see if the guild is registered for Message Logging Optional response = registrationClient.getRegisteredGuild(guildId); response.ifPresent(success -> { + // get the message id of the message which was updated + String messageId = event.getMessageId(); // retrieve the channel id where the logs must be sent String channelIdToSendTo = success.getChannelId(); - - // fetch the old message object from the API - Optional oldMessageContent = contentClient.retrieveMessage(messageId); - oldMessageContent.ifPresent(contentEntity -> { - // Fetch the old message - String oldMessage = contentEntity.getMessageContent(); - // fetch the updated message and its author from the event - String updatedMessage = event.getMessage().getContentDisplay(); - - // Ignore events where the message content wasn't edited (e.g., pin, embed resolve, thread creates and updates) - // This is required since MessageUpdateEvent is triggered in case of pins and embed resolves with no change to content - if (updatedMessage.equals(oldMessage)) { - return; - } - - // Splitting is required because each field in an embed can display only up-to 1024 characters - // A full embed can display up-to 6000 characters - List oldMessageSplits = Splitter.fixedLength(1024).splitToList(oldMessage); - List updatedMessageSplits = Splitter.fixedLength(1024).splitToList(updatedMessage); - - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("📝 Message Edit Event"); - eb.setDescription("A message sent by " + event.getAuthor().getAsMention() + " has been edited in: " + event.getJumpUrl()); - eb.setColor(Color.YELLOW); - - oldMessageSplits.forEach(split -> eb.addField("Old Message", split, false)); - updatedMessageSplits.forEach(split -> eb.addField("New Message", split, false)); - - eb.setFooter(event.getGuild().getName()); - eb.setTimestamp(Instant.now()); - - MessageEmbed mb = eb.build(); - - // send the old and updated message to the registered channel - TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); - } - - // update the database with the new message - contentClient.updateMessage(messageId, updatedMessage, event.getAuthor().getId()); - }); + // update message + MessageLogMessageUpdateEventHelper.updateMessage(event, contentClient, messageId, channelIdToSendTo); }); }); } @@ -135,51 +83,18 @@ public void onMessageDelete(@NonNull MessageDeleteEvent event) { // Get the guild id for which the event was fired String guildId = event.getGuild().getId(); - // get the message id of the message which was deleted - String messageId = event.getMessageId(); // Call the API to see if the guild is registered for Message Logging Optional response = registrationClient.getRegisteredGuild(guildId); response.ifPresent(success -> { + // get the message id of the message which was deleted + String messageId = event.getMessageId(); // retrieve the channel id where the logs must be sent String channelIdToSendTo = success.getChannelId(); + // delete message + MessageLogMessageDeleteEventHelper.deleteMessage(event, contentClient, messageId, channelIdToSendTo); - // fetch the old message object from the API - Optional oldMessageContent = contentClient.retrieveMessage(messageId); - oldMessageContent.ifPresent(contentEntity -> { - - // retrieve the stored message and author in the database which was deleted - String deletedMessage = contentEntity.getMessageContent(); - String deletedMessageAuthorId = contentEntity.getAuthorId(); - - User author = event.getJDA().getUserById(deletedMessageAuthorId); - String mentionableAuthor = (author != null ? author.getAsMention() : deletedMessageAuthorId); - - // Splitting is required because each field in an embed can display only up-to 1024 characters - List deletedMessageSplits = Splitter.fixedLength(1024).splitToList(deletedMessage); - - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("🗑️ Message Delete Event"); - eb.setDescription("A message sent by " + mentionableAuthor + " has been deleted from " + event.getChannel().getAsMention()); - eb.setColor(Color.RED); - - deletedMessageSplits.forEach(split -> eb.addField("Deleted Message", split, false)); - - eb.setFooter(event.getGuild().getName()); - eb.setTimestamp(Instant.now()); - - // send the fetched deleted message to the logging channel - MessageEmbed mb = eb.build(); - - TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); - if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); - } - - // delete the message from the database - contentClient.deleteMessage(messageId); - }); }); }); } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/messagelog/helper/MessageLogMessageDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/messagelog/helper/MessageLogMessageDeleteEventHelper.java new file mode 100644 index 00000000..1c1ec377 --- /dev/null +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/messagelog/helper/MessageLogMessageDeleteEventHelper.java @@ -0,0 +1,65 @@ +package io.github.eggy03.papertrail.bot.listeners.messagelog.helper; + +import com.google.common.base.Splitter; +import io.github.eggy03.papertrail.sdk.client.MessageLogContentClient; +import io.github.eggy03.papertrail.sdk.entity.MessageLogContentEntity; +import lombok.NonNull; +import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; +import net.dv8tion.jda.api.EmbedBuilder; +import net.dv8tion.jda.api.entities.MessageEmbed; +import net.dv8tion.jda.api.entities.User; +import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; +import net.dv8tion.jda.api.events.message.MessageDeleteEvent; + +import java.awt.Color; +import java.time.Instant; +import java.util.List; +import java.util.Optional; + +@UtilityClass +@Slf4j +public class MessageLogMessageDeleteEventHelper { + + public static void deleteMessage(@NonNull MessageDeleteEvent event, @NonNull MessageLogContentClient client, @NonNull String deletedMessageId, @NonNull String channelIdToSendTo) { + // fetch the old message object from the API + Optional oldMessageContent = client.retrieveMessage(deletedMessageId); + oldMessageContent.ifPresent(contentEntity -> { + + // retrieve the stored message and author in the database which was deleted + String deletedMessage = contentEntity.getMessageContent(); + String deletedMessageAuthorId = contentEntity.getAuthorId(); + + User author = event.getJDA().getUserById(deletedMessageAuthorId); + String mentionableAuthor = (author != null ? author.getAsMention() : deletedMessageAuthorId); + + // Splitting is required because each field in an embed can display only up-to 1024 characters + List deletedMessageSplits = Splitter.fixedLength(1024).splitToList(deletedMessage); + + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("🗑️ Message Delete Event"); + eb.setDescription("A message sent by " + mentionableAuthor + " has been deleted from " + event.getChannel().getAsMention()); + eb.setColor(Color.RED); + + deletedMessageSplits.forEach(split -> eb.addField("Deleted Message", split, false)); + + eb.setFooter(event.getGuild().getName()); + eb.setTimestamp(Instant.now()); + + // send the fetched deleted message to the logging channel + MessageEmbed mb = eb.build(); + if (!mb.isSendable()) { + log.warn("Embed is empty or too long (current length: {}).", eb.length()); + return; + } + + TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); + if (sendingChannel != null && sendingChannel.canTalk()) { + sendingChannel.sendMessageEmbeds(mb).queue(); + } + + // delete the message from the database + client.deleteMessage(deletedMessageId); + }); + } +} diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/messagelog/helper/MessageLogMessageReceivedEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/messagelog/helper/MessageLogMessageReceivedEventHelper.java new file mode 100644 index 00000000..417a6bb8 --- /dev/null +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/messagelog/helper/MessageLogMessageReceivedEventHelper.java @@ -0,0 +1,19 @@ +package io.github.eggy03.papertrail.bot.listeners.messagelog.helper; + +import io.github.eggy03.papertrail.sdk.client.MessageLogContentClient; +import lombok.NonNull; +import lombok.experimental.UtilityClass; +import net.dv8tion.jda.api.events.message.MessageReceivedEvent; + +@UtilityClass +public class MessageLogMessageReceivedEventHelper { + + public static void saveMessage(@NonNull MessageReceivedEvent event, @NonNull MessageLogContentClient client) { + + String messageId = event.getMessageId(); + String messageContent = event.getMessage().getContentDisplay(); + String authorId = event.getAuthor().getId(); + + client.logMessage(messageId, messageContent, authorId); + } +} diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/messagelog/helper/MessageLogMessageUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/messagelog/helper/MessageLogMessageUpdateEventHelper.java new file mode 100644 index 00000000..8f7a8559 --- /dev/null +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/messagelog/helper/MessageLogMessageUpdateEventHelper.java @@ -0,0 +1,71 @@ +package io.github.eggy03.papertrail.bot.listeners.messagelog.helper; + +import com.google.common.base.Splitter; +import io.github.eggy03.papertrail.sdk.client.MessageLogContentClient; +import io.github.eggy03.papertrail.sdk.entity.MessageLogContentEntity; +import lombok.NonNull; +import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; +import net.dv8tion.jda.api.EmbedBuilder; +import net.dv8tion.jda.api.entities.MessageEmbed; +import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; +import net.dv8tion.jda.api.events.message.MessageUpdateEvent; + +import java.awt.Color; +import java.time.Instant; +import java.util.List; +import java.util.Optional; + +@UtilityClass +@Slf4j +public class MessageLogMessageUpdateEventHelper { + + public static void updateMessage(@NonNull MessageUpdateEvent event, @NonNull MessageLogContentClient client, @NonNull String updatedMessageId, @NonNull String channelIdToSendTo) { + + // fetch the old message object from the API + Optional oldMessageContent = client.retrieveMessage(updatedMessageId); + oldMessageContent.ifPresent(contentEntity -> { + // Fetch the old message + String oldMessage = contentEntity.getMessageContent(); + // fetch the updated message and its author from the event + String updatedMessage = event.getMessage().getContentDisplay(); + + // Ignore events where the message content wasn't edited (e.g., pin, embed resolve, thread creates and updates) + // This is required since MessageUpdateEvent is triggered in case of pins and embed resolves with no change to content + if (updatedMessage.equals(oldMessage)) { + return; + } + + // Splitting is required because each field in an embed can display only up-to 1024 characters + // A full embed can display up-to 6000 characters + List oldMessageSplits = Splitter.fixedLength(1024).splitToList(oldMessage); + List updatedMessageSplits = Splitter.fixedLength(1024).splitToList(updatedMessage); + + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("📝 Message Edit Event"); + eb.setDescription("A message sent by " + event.getAuthor().getAsMention() + " has been edited in: " + event.getJumpUrl()); + eb.setColor(Color.YELLOW); + + oldMessageSplits.forEach(split -> eb.addField("Old Message", split, false)); + updatedMessageSplits.forEach(split -> eb.addField("New Message", split, false)); + + eb.setFooter(event.getGuild().getName()); + eb.setTimestamp(Instant.now()); + + MessageEmbed mb = eb.build(); + if (!mb.isSendable()) { + log.warn("Embed is empty or too long (current length: {}).", eb.length()); + return; + } + + // send the old and updated message to the registered channel + TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); + if (sendingChannel != null && sendingChannel.canTalk()) { + sendingChannel.sendMessageEmbeds(mb).queue(); + } + + // update the database with the new message + client.updateMessage(updatedMessageId, updatedMessage, event.getAuthor().getId()); + }); + } +} From 50bfc3a60ef685ce5c5bdcb591ec258d62f9250d Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Fri, 13 Feb 2026 20:26:13 +0530 Subject: [PATCH 074/104] refactor(guild-member-remove): encapsulate member date retrieval logic - extract member join date and leave date calculation into `getMemberJoinDate` and `getMemberLeaveDate` methods - improve readability and maintainability of the event helper - remove the "member join date validity" field as its logic is now implicitly handled - simplify the embed footer to display the guild name --- .../guild/GuildMemberRemoveEventHelper.java | 35 ++++++++++++------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildMemberRemoveEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildMemberRemoveEventHelper.java index f6460887..c785bc4e 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildMemberRemoveEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildMemberRemoveEventHelper.java @@ -9,6 +9,7 @@ import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.member.GuildMemberRemoveEvent; +import org.jetbrains.annotations.NotNull; import java.awt.Color; import java.time.Instant; @@ -20,15 +21,6 @@ public static void format(@NonNull GuildMemberRemoveEvent event, @NonNull String Guild guild = event.getGuild(); User user = event.getUser(); - Member member = event.getMember(); - - String memberJoinDate = "Member Not Cached"; - boolean memberJoinDateTrustable = false; - if (member != null) { - memberJoinDate = ""; - memberJoinDateTrustable = member.hasTimeJoined(); - } - String memberLeaveDate = ""; EmbedBuilder eb = new EmbedBuilder(); eb.setTitle("🛫 Member Leave Event"); @@ -38,11 +30,10 @@ public static void format(@NonNull GuildMemberRemoveEvent event, @NonNull String eb.addField("🏷️ Member Name", "╰┈➤" + user.getName(), false); eb.addField("🆔 Member ID", "╰┈➤" + user.getId(), false); - eb.addField("⌛ Member Joined The Server On", "╰┈➤" + memberJoinDate, false); - eb.addField("⌛ Member Left The Server On", "╰┈➤" + memberLeaveDate, false); - eb.addField("⌛ Member Join Date Validity", memberJoinDateTrustable ? "╰┈➤Valid" : "╰┈➤Invalid", false); + eb.addField("⌛ Member Joined The Server On", "╰┈➤" + getMemberJoinDate(event), false); + eb.addField("⌛ Member Left The Server On", "╰┈➤" + getMemberLeaveDate(), false); - eb.setFooter("If the member was loaded via lazy loading, join date will be identical to the guild creation date."); + eb.setFooter(event.getGuild().getName()); eb.setTimestamp(Instant.now()); MessageEmbed mb = eb.build(); @@ -52,4 +43,22 @@ public static void format(@NonNull GuildMemberRemoveEvent event, @NonNull String sendingChannel.sendMessageEmbeds(mb).queue(); } } + + @NotNull + private static String getMemberJoinDate (@NonNull GuildMemberRemoveEvent event) { + + Member member = event.getMember(); + if(member==null) + return "Member not cached"; + + if (member.hasTimeJoined()) + return ""; + + return "Unavailable"; + } + + @NotNull + private static String getMemberLeaveDate () { + return ""; + } } From bf98cf65627783260a7a8494680aa71523ebf9d8 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Fri, 13 Feb 2026 20:37:36 +0530 Subject: [PATCH 075/104] refactor(thread-utils): replace hardcoded fallback string with constant - Replace hardcoded string `"N/A"` with `FALLBACK_STRING` in `ThreadUtils.java`. - Use a named constant for the fallback value to improve maintainability and consistency. --- .../bot/listeners/auditlog/helper/thread/utils/ThreadUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/thread/utils/ThreadUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/thread/utils/ThreadUtils.java index 506fe5f9..86a5954e 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/thread/utils/ThreadUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/thread/utils/ThreadUtils.java @@ -24,7 +24,7 @@ public static String resolveAutoArchiveDuration(@Nullable Object minutes) { Integer minuteInt = NumberParseUtils.parseInt(minutes); if (minuteInt == null) - return "N/A"; + return FALLBACK_STRING; return ThreadChannel.AutoArchiveDuration.fromKey(minuteInt).name(); } From 6e81c6d05f788fcbd1a63b535ccb18fcd9962598 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Fri, 13 Feb 2026 23:46:27 +0530 Subject: [PATCH 076/104] refactor(commands): improve server stats command - Extract `ServerStatCommandListener` display logic into helper methods. - Enhance readability and maintainability of `/stats` command. - Move `ActivityUpdateListener` registration to `Start.java`. Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../misc/ServerStatCommandListener.java | 151 ++++++++++-------- .../bot/main/ConnectionInitializer.java | 4 - .../eggy03/papertrail/bot/main/Start.java | 3 + 3 files changed, 89 insertions(+), 69 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/ServerStatCommandListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/ServerStatCommandListener.java index 3c8d97bf..6d67a747 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/ServerStatCommandListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/ServerStatCommandListener.java @@ -1,88 +1,109 @@ package io.github.eggy03.papertrail.bot.listeners.misc; -import io.github.eggy03.papertrail.bot.commons.utils.DurationUtils; import lombok.NonNull; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.OnlineStatus; import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; +import org.jetbrains.annotations.NotNull; import java.awt.Color; import java.time.Instant; import java.util.List; -import java.util.Objects; +@Slf4j public class ServerStatCommandListener extends ListenerAdapter { + @NotNull + public static String getMemberAndBotCount(@NonNull Guild guild) { + + List memberCache = guild.getMemberCache().asList(); + int allUserCount = memberCache.size(); + int botCount = memberCache.stream().filter(member -> member.getUser().isBot()).toList().size(); + + return "Users: " + (allUserCount - botCount) + " Bots: " + botCount + " Total: " + allUserCount; + } + + @NotNull + public static String getGuildOwner(@NonNull Guild guild) { + Member owner = guild.getOwner(); + + return owner == null ? "N/A" : owner.getAsMention(); + } + + @NotNull + public static String getGuildCreationDate(@NonNull Guild guild) { + return ""; + } + + @NotNull + public static String getGuildVanityUrl(@NonNull Guild guild) { + return guild.getVanityUrl() == null ? "N/A" : guild.getVanityUrl(); + } + + @NotNull + public static String getBoosters(@NonNull Guild guild) { + StringBuilder boosterString = new StringBuilder(); + guild.getBoosters().forEach(booster -> boosterString.append(booster.getAsMention()).append(" ")); + return boosterString.toString().trim().isEmpty() ? "No Boosters" : boosterString.toString().trim(); + } + + @NotNull + public static String getBoosterRole(@NonNull Guild guild) { + return guild.getBoostRole() != null ? guild.getBoostRole().getAsMention() : "No Boost Role Found"; + } + + @NotNull + public static String getDataRequestingMember(@NonNull SlashCommandInteractionEvent event) { + Member requester = event.getMember(); + return requester != null ? requester.getEffectiveName() : "N/A"; + } + @Override public void onSlashCommandInteraction(@NonNull SlashCommandInteractionEvent event) { - if (event.getName().equals("stats")) { - - Guild guild = event.getGuild(); - if (guild == null) { - event.reply("You can only use this command in Guilds").setEphemeral(true).queue(); - return; - } - - List members = guild.getMemberCache().asList(); - int botCount = 0; - int userCount = 0; - int onlineUserCount = 0; - for (Member member : members) { - if (member.getUser().isBot()) { - botCount++; - } else { - OnlineStatus status = member.getOnlineStatus(); - if (status.equals(OnlineStatus.DO_NOT_DISTURB) || status.equals(OnlineStatus.IDLE) || status.equals(OnlineStatus.ONLINE)) { - onlineUserCount++; - } - userCount++; - } - } - - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("📊 Server Statistics 📊"); - eb.setDescription("📁 Server Statistics For: **" + guild.getName() + "**"); - eb.setThumbnail(guild.getIconUrl()); - eb.setColor(Color.PINK); - - eb.addField("🏠 Guild Name", "╰┈➤" + guild.getName(), false); - eb.addField("👑 Guild Owner", "╰┈➤" + Objects.requireNonNull(guild.getMemberById(guild.getOwnerId())).getAsMention(), false); - eb.addField("📅 Guild Created On", "╰┈➤" + DurationUtils.isoToLocalTimeCounter(guild.getTimeCreated()), false); - eb.addField("🔗 Guild Vanity URL", "╰┈➤" + (guild.getVanityUrl() != null ? guild.getVanityUrl() : "Not Set"), false); - - eb.addField("👥 Member Count", "╰┈➤" + userCount, true); - eb.addField("🤖 Bot Count", "╰┈➤" + botCount, true); - eb.addField("🟢 Members Online", "╰┈➤" + onlineUserCount + "/" + userCount, true); - - List boosters = guild.getBoosters(); - StringBuilder mentionableBoosters = new StringBuilder(); - for (Member booster : boosters) { - mentionableBoosters.append(booster.getAsMention()).append(" "); - } - eb.addField("🚀 Guild Boosters ", "╰┈➤" + mentionableBoosters, false); - eb.addField("💖 Guild Boost Count", "╰┈➤" + guild.getBoostCount(), false); - eb.addField("📎 Booster Role", "╰┈➤" + (guild.getBoostRole() != null ? guild.getBoostRole().getAsMention() : "No Boost Role Found"), false); - eb.addField("🗼 Boost Tier", "╰┈➤" + guild.getBoostTier(), false); - - eb.addField("🌐 Locale", "╰┈➤" + guild.getLocale().getNativeName(), true); - eb.addField("🔒 Verification", "╰┈➤" + guild.getVerificationLevel().name(), true); - eb.addField("🧱 Roles", "╰┈➤" + guild.getRoles().size(), true); - eb.addField("🗂️ Categories", "╰┈➤" + guild.getCategories().size(), true); - eb.addField("💬 Text Channels", "╰┈➤" + guild.getTextChannels().size(), true); - eb.addField("🔊 Voice Channels", "╰┈➤" + guild.getVoiceChannels().size(), true); - - eb.addField("📋 Data Requested By", "╰┈➤" + Objects.requireNonNull(event.getMember()).getAsMention(), false); - eb.setFooter("📋 Stats By: PaperTrail 📋"); - eb.setTimestamp(Instant.now()); - - MessageEmbed mb = eb.build(); - event.replyEmbeds(mb).setEphemeral(false).queue(); + if (!event.getName().equals("stats")) { + return; } + Guild guild = event.getGuild(); + if (guild == null) { + log.warn("Command may have been called outside of a guild"); + return; + } + + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("📊 Server Statistics 📊"); + eb.setDescription(guild.getName()); + eb.setThumbnail(guild.getIconUrl()); + eb.setColor(Color.PINK); + + eb.addField("Guild Owner", "╰┈➤" + getGuildOwner(guild), false); + eb.addField("Guild Created On", "╰┈➤" + getGuildCreationDate(guild), false); + eb.addField("Guild Vanity URL", "╰┈➤" + getGuildVanityUrl(guild), false); + + eb.addField("Member Stats", "╰┈➤" + getMemberAndBotCount(guild), false); + + eb.addField("Guild Boosters ", "╰┈➤" + getBoosters(guild), false); + eb.addField("Guild Boost Count", "╰┈➤" + guild.getBoostCount(), true); + eb.addField("Booster Role", "╰┈➤" + getBoosterRole(guild), true); + eb.addField("Boost Tier", "╰┈➤" + guild.getBoostTier().name(), true); + + eb.addField("Locale", "╰┈➤" + guild.getLocale().getNativeName(), true); + eb.addField("Verification", "╰┈➤" + guild.getVerificationLevel().name(), true); + eb.addField("Roles", "╰┈➤" + guild.getRoles().size(), true); + eb.addField("Categories", "╰┈➤" + guild.getCategories().size(), true); + eb.addField("Text Channels", "╰┈➤" + guild.getTextChannels().size(), true); + eb.addField("Voice Channels", "╰┈➤" + guild.getVoiceChannels().size(), true); + + eb.setFooter("Requested By: " + getDataRequestingMember(event)); + eb.setTimestamp(Instant.now()); + + MessageEmbed mb = eb.build(); + event.replyEmbeds(mb).setEphemeral(false).queue(); + } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/main/ConnectionInitializer.java b/src/main/java/io/github/eggy03/papertrail/bot/main/ConnectionInitializer.java index 63498c49..b1e83c83 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/main/ConnectionInitializer.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/main/ConnectionInitializer.java @@ -1,7 +1,6 @@ package io.github.eggy03.papertrail.bot.main; import io.github.eggy03.papertrail.bot.commons.utils.EnvConfig; -import io.github.eggy03.papertrail.bot.listeners.misc.ActivityUpdateListener; import lombok.Getter; import lombok.NonNull; import net.dv8tion.jda.api.OnlineStatus; @@ -52,9 +51,6 @@ public ConnectionInitializer() { CacheFlag.SCHEDULED_EVENTS); manager = builder.build(); - manager.addEventListener(new ActivityUpdateListener(manager)); - //manager.addEventListener(new SlashCommandRegistrationListener()); - // re-enable it only when adding/updating/deleting commands } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/main/Start.java b/src/main/java/io/github/eggy03/papertrail/bot/main/Start.java index fd149f74..469221af 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/main/Start.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/main/Start.java @@ -11,6 +11,7 @@ import io.github.eggy03.papertrail.bot.listeners.auditlogsupl.event.guild.GuildVoiceEventListener; import io.github.eggy03.papertrail.bot.listeners.messagelog.event.MessageLogListener; import io.github.eggy03.papertrail.bot.listeners.messagelog.setup.MessageLogSetupCommandListener; +import io.github.eggy03.papertrail.bot.listeners.misc.ActivityUpdateListener; import io.github.eggy03.papertrail.bot.listeners.misc.BotSetupInstructionCommandListener; import io.github.eggy03.papertrail.bot.listeners.misc.SelfKickListener; import io.github.eggy03.papertrail.bot.listeners.misc.ServerStatCommandListener; @@ -49,6 +50,8 @@ public static void main(String[] args) throws IOException { manager.addEventListener(new ServerStatCommandListener()); manager.addEventListener(new BotSetupInstructionCommandListener()); + manager.addEventListener(new ActivityUpdateListener(manager)); + // re-enable it only when adding/updating/deleting commands //manager.addEventListener(new SlashCommandRegistrationListener()); // Custom health check endpoint From 979ce9c60127d5ca7a272db846286bceb0f3e1e4 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Sun, 15 Feb 2026 00:01:13 +0530 Subject: [PATCH 077/104] feat(debug): add debug slash command - Add `/debug` slash command and `DebugListener.java`. - Command provides diagnostic info: bot permissions, server, user, and shard details. - Configure shard settings in `ConnectionInitializer.java` via environment variables. Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../bot/listeners/misc/DebugListener.java | 128 ++++++++++++++++++ .../SlashCommandRegistrationListener.java | 10 +- .../bot/main/ConnectionInitializer.java | 9 +- .../eggy03/papertrail/bot/main/Start.java | 2 + 4 files changed, 144 insertions(+), 5 deletions(-) create mode 100644 src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/DebugListener.java diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/DebugListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/DebugListener.java new file mode 100644 index 00000000..d7db01ff --- /dev/null +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/DebugListener.java @@ -0,0 +1,128 @@ +package io.github.eggy03.papertrail.bot.listeners.misc; + +import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; +import lombok.NonNull; +import lombok.extern.slf4j.Slf4j; +import net.dv8tion.jda.api.EmbedBuilder; +import net.dv8tion.jda.api.JDA; +import net.dv8tion.jda.api.Permission; +import net.dv8tion.jda.api.entities.Guild; +import net.dv8tion.jda.api.entities.Member; +import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; +import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent; +import net.dv8tion.jda.api.hooks.ListenerAdapter; +import org.jetbrains.annotations.NotNull; + +import java.awt.Color; +import java.util.EnumSet; +import java.util.Set; + + +@Slf4j +public class DebugListener extends ListenerAdapter { + + // recommended permissions for the bot to function + private static final Set recommendedPermissions = EnumSet.of( + Permission.VIEW_CHANNEL, + Permission.VIEW_AUDIT_LOGS, + Permission.MANAGE_SERVER, + Permission.MESSAGE_SEND, + Permission.MESSAGE_SEND_IN_THREADS, + Permission.MESSAGE_EMBED_LINKS, + Permission.MESSAGE_HISTORY + ); + + @NotNull + public static String getBotPermissions(@NonNull Guild guild) { + return formatPermissions(guild.getSelfMember().getPermissions()); + } + + @NotNull + public static String getBotPermissionsInCurrentChannel(@NonNull Guild guild, @NonNull GuildChannel channel) { + return formatPermissions(guild.getSelfMember().getPermissions(channel)); + } + + @NotNull + private static String formatPermissions(@NonNull EnumSet guildOrChannelPermissions) { + // gets all the permissions granted to the bot in the server as a whole or a particular channel + EnumSet grantedPermissions = EnumSet.copyOf(guildOrChannelPermissions); + // this will + // 1) REMOVE the UNNECESSARY GRANTED PERMISSIONS + // 2) RETAIN those GRANTED PERMISSIONS that match with the RECOMMENDED ONES + // there may be cases where granted permissions is NOT a perfect superset of recommended permissions + // this indicates that some recommended permissions have been DENIED + grantedPermissions.retainAll(recommendedPermissions); + + // create a copy of recommended permissions + EnumSet deniedPermissions = EnumSet.copyOf(recommendedPermissions); + // now if you calculate recommended - granted, you will get the set of recommended permissions which are DENIED + deniedPermissions.removeAll(grantedPermissions); + + StringBuilder permString = new StringBuilder(); + grantedPermissions.forEach(permission -> + permString.append("✅ - ") + .append(permission.getName()) + .append(System.lineSeparator()) + ); + + deniedPermissions.forEach(permission -> + permString.append("❌ - ") + .append(permission.getName()) + .append(System.lineSeparator()) + ); + + return permString.toString().trim(); + } + + @NotNull + public static String getServerInfo(@NonNull Guild guild, @NonNull GuildChannel channel) { + return "Server Name: " + guild.getName() + System.lineSeparator() + + "Server ID: " + guild.getId() + System.lineSeparator() + + "Channel Name: " + channel.getName() + System.lineSeparator() + + "Channel ID: " + channel.getId(); + } + + @NotNull + public static String getCallerInfo(@NonNull Member member) { + return "User Name: " + member.getUser().getGlobalName() + System.lineSeparator() + + "User ID: " + member.getId() + System.lineSeparator() + + "Is Administrator: " + BooleanUtils.formatToYesOrNo(member.hasPermission(Permission.ADMINISTRATOR)); + } + + @NotNull + public static String getBotInfo(@NonNull SlashCommandInteractionEvent event) { + JDA.ShardInfo shardInfo = event.getJDA().getShardInfo(); + return "Shard Info: " + shardInfo.getShardString(); + } + + @Override + public void onSlashCommandInteraction(@NonNull SlashCommandInteractionEvent event) { + + if (!event.getName().equals("debug")) + return; + + Guild guild = event.getGuild(); + Member member = event.getMember(); + if (guild == null || member == null) { + log.warn("command may have been called outside of a guild"); + return; + } + + GuildChannel channel = event.getGuildChannel(); + + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Debug Info"); + eb.setDescription("Server: " + guild.getName()); + eb.setColor(Color.GRAY); + + eb.addField("Bot Permissions", getBotPermissions(guild), true); + eb.addField("Channel Permissions", getBotPermissionsInCurrentChannel(guild, channel), true); + eb.addField("Server Info", getServerInfo(guild, channel), true); + + eb.addField("User Info", getCallerInfo(member), true); + eb.addBlankField(true); + eb.addField("Bot Info", getBotInfo(event), true); + + event.replyEmbeds(eb.build()).queue(); + } +} diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/SlashCommandRegistrationListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/SlashCommandRegistrationListener.java index 2e542a3f..918185de 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/SlashCommandRegistrationListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/SlashCommandRegistrationListener.java @@ -48,11 +48,13 @@ private void setAuditLogCommands(@NonNull JDA jda) { .setContexts(InteractionContextType.GUILD) .setDefaultPermissions(DefaultMemberPermissions.ENABLED); + CommandData debug = Commands + .slash("debug", "Provides debug info") + .setContexts(InteractionContextType.GUILD) + .setDefaultPermissions(DefaultMemberPermissions.ENABLED); + jda.updateCommands() - .addCommands(auditLog, - messageLog, - serverStats, - setup) + .addCommands(auditLog, messageLog, serverStats, setup, debug) .queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/main/ConnectionInitializer.java b/src/main/java/io/github/eggy03/papertrail/bot/main/ConnectionInitializer.java index b1e83c83..e9d7307d 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/main/ConnectionInitializer.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/main/ConnectionInitializer.java @@ -50,7 +50,14 @@ public ConnectionInitializer() { CacheFlag.ROLE_TAGS, CacheFlag.SCHEDULED_EVENTS); - manager = builder.build(); + int minShardId = Integer.parseInt(EnvConfig.get("MIN_SHARD_ID")); // min for this instance + int maxShardId = Integer.parseInt(EnvConfig.get("MAX_SHARD_ID")); // max for this instance + int totalShards = Integer.parseInt(EnvConfig.get("TOTAL_SHARDS")); + + manager = builder + .setShardsTotal(totalShards) + .setShards(minShardId, maxShardId) + .build(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/main/Start.java b/src/main/java/io/github/eggy03/papertrail/bot/main/Start.java index 469221af..e0273851 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/main/Start.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/main/Start.java @@ -13,6 +13,7 @@ import io.github.eggy03.papertrail.bot.listeners.messagelog.setup.MessageLogSetupCommandListener; import io.github.eggy03.papertrail.bot.listeners.misc.ActivityUpdateListener; import io.github.eggy03.papertrail.bot.listeners.misc.BotSetupInstructionCommandListener; +import io.github.eggy03.papertrail.bot.listeners.misc.DebugListener; import io.github.eggy03.papertrail.bot.listeners.misc.SelfKickListener; import io.github.eggy03.papertrail.bot.listeners.misc.ServerStatCommandListener; import lombok.NonNull; @@ -51,6 +52,7 @@ public static void main(String[] args) throws IOException { manager.addEventListener(new ServerStatCommandListener()); manager.addEventListener(new BotSetupInstructionCommandListener()); manager.addEventListener(new ActivityUpdateListener(manager)); + manager.addEventListener(new DebugListener()); // re-enable it only when adding/updating/deleting commands //manager.addEventListener(new SlashCommandRegistrationListener()); From 8f3c95937a0aaeba414af67b3cfb4a77960669c6 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Sun, 15 Feb 2026 12:46:48 +0530 Subject: [PATCH 078/104] feat(listeners): display api health in debug command - Add `getApiInfo()` method to fetch and display API health status - Integrate API health status into the `/debug` command embed - Update `papertrail.sdk.version` from `1.0.0` to `1.0.1` - Refine `getBotInfo()` output for shard details Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- pom.xml | 2 +- .../bot/listeners/misc/DebugListener.java | 21 +++++++++++++++++-- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 8fa10aa0..b033d4a1 100644 --- a/pom.xml +++ b/pom.xml @@ -18,7 +18,7 @@ 6.3.0 - 1.0.0 + 1.0.1 2.7.0 3.2.0 3.19.0 diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/DebugListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/DebugListener.java index d7db01ff..7d284211 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/DebugListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/DebugListener.java @@ -1,6 +1,9 @@ package io.github.eggy03.papertrail.bot.listeners.misc; import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; +import io.github.eggy03.papertrail.bot.commons.utils.EnvConfig; +import io.github.eggy03.papertrail.sdk.client.HealthClient; +import io.github.eggy03.papertrail.sdk.entity.HealthEntity; import lombok.NonNull; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; @@ -15,6 +18,7 @@ import java.awt.Color; import java.util.EnumSet; +import java.util.Optional; import java.util.Set; @@ -92,7 +96,20 @@ public static String getCallerInfo(@NonNull Member member) { @NotNull public static String getBotInfo(@NonNull SlashCommandInteractionEvent event) { JDA.ShardInfo shardInfo = event.getJDA().getShardInfo(); - return "Shard Info: " + shardInfo.getShardString(); + return "Current Shard ID: " + shardInfo.getShardId() + System.lineSeparator() + + "Total Shards: " + shardInfo.getShardTotal(); + } + + @NotNull + public static String getApiInfo() { + StringBuilder info = new StringBuilder(); + + Optional apiHealthEntity = new HealthClient(EnvConfig.get("API_URL")).getHealth(); + apiHealthEntity.ifPresentOrElse(healthEntity -> + info.append("Overall API Status: ").append(healthEntity.getStatus()), + () -> info.append("ERROR: API Server did not return any health information") + ); + return info.toString().trim(); } @Override @@ -120,8 +137,8 @@ public void onSlashCommandInteraction(@NonNull SlashCommandInteractionEvent even eb.addField("Server Info", getServerInfo(guild, channel), true); eb.addField("User Info", getCallerInfo(member), true); - eb.addBlankField(true); eb.addField("Bot Info", getBotInfo(event), true); + eb.addField("API Info", getApiInfo(), true); event.replyEmbeds(eb.build()).queue(); } From a2a6ee166f311c86904f1b80a358a09a473513d3 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Sun, 15 Feb 2026 20:42:52 +0530 Subject: [PATCH 079/104] feat(debug): enhance debug command output - display detailed API health, including component info - add app name, version, and timestamp to embed footer - improve readability of various info fields using backticks - rename `guildOrChannelPermissions` parameter for clarity Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../bot/listeners/misc/DebugListener.java | 62 ++++++++++++++----- 1 file changed, 46 insertions(+), 16 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/DebugListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/DebugListener.java index 7d284211..602c1463 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/DebugListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/DebugListener.java @@ -1,5 +1,6 @@ package io.github.eggy03.papertrail.bot.listeners.misc; +import io.github.eggy03.papertrail.bot.commons.constant.ProjectInfo; import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; import io.github.eggy03.papertrail.bot.commons.utils.EnvConfig; import io.github.eggy03.papertrail.sdk.client.HealthClient; @@ -17,6 +18,7 @@ import org.jetbrains.annotations.NotNull; import java.awt.Color; +import java.time.Instant; import java.util.EnumSet; import java.util.Optional; import java.util.Set; @@ -47,9 +49,9 @@ public static String getBotPermissionsInCurrentChannel(@NonNull Guild guild, @No } @NotNull - private static String formatPermissions(@NonNull EnumSet guildOrChannelPermissions) { + private static String formatPermissions(@NonNull EnumSet grantedGuildOrChannelPermissions) { // gets all the permissions granted to the bot in the server as a whole or a particular channel - EnumSet grantedPermissions = EnumSet.copyOf(guildOrChannelPermissions); + EnumSet grantedPermissions = EnumSet.copyOf(grantedGuildOrChannelPermissions); // this will // 1) REMOVE the UNNECESSARY GRANTED PERMISSIONS // 2) RETAIN those GRANTED PERMISSIONS that match with the RECOMMENDED ONES @@ -80,35 +82,60 @@ private static String formatPermissions(@NonNull EnumSet guildOrChan @NotNull public static String getServerInfo(@NonNull Guild guild, @NonNull GuildChannel channel) { - return "Server Name: " + guild.getName() + System.lineSeparator() + - "Server ID: " + guild.getId() + System.lineSeparator() + - "Channel Name: " + channel.getName() + System.lineSeparator() + - "Channel ID: " + channel.getId(); + return "Server Name: `" + guild.getName() + "`" + System.lineSeparator() + + "Server ID: `" + guild.getId() + "`" + System.lineSeparator() + + "Channel Name: `" + channel.getName() + "`" + System.lineSeparator() + + "Channel ID: `" + channel.getId() + "`"; } @NotNull public static String getCallerInfo(@NonNull Member member) { - return "User Name: " + member.getUser().getGlobalName() + System.lineSeparator() + - "User ID: " + member.getId() + System.lineSeparator() + - "Is Administrator: " + BooleanUtils.formatToYesOrNo(member.hasPermission(Permission.ADMINISTRATOR)); + return "User Name: `" + member.getUser().getGlobalName() + "`" + System.lineSeparator() + + "User ID: `" + member.getId() + System.lineSeparator() + "`" + + "Is Administrator: `" + BooleanUtils.formatToYesOrNo(member.hasPermission(Permission.ADMINISTRATOR)) + "`"; } @NotNull public static String getBotInfo(@NonNull SlashCommandInteractionEvent event) { JDA.ShardInfo shardInfo = event.getJDA().getShardInfo(); - return "Current Shard ID: " + shardInfo.getShardId() + System.lineSeparator() + - "Total Shards: " + shardInfo.getShardTotal(); + return "Current Shard ID: `" + shardInfo.getShardId() + System.lineSeparator() + "`" + + "Total Shards: `" + shardInfo.getShardTotal() + "`"; } @NotNull public static String getApiInfo() { + Optional apiHealthEntity = new HealthClient(EnvConfig.get("API_URL")).getHealth(); + if (apiHealthEntity.isEmpty()) + return "⚠️ API Unreachable"; + StringBuilder info = new StringBuilder(); - Optional apiHealthEntity = new HealthClient(EnvConfig.get("API_URL")).getHealth(); - apiHealthEntity.ifPresentOrElse(healthEntity -> - info.append("Overall API Status: ").append(healthEntity.getStatus()), - () -> info.append("ERROR: API Server did not return any health information") - ); + HealthEntity health = apiHealthEntity.get(); + info.append("Overall API Status: ") + .append("`").append(health.getStatus()).append("`") + .append("\n"); + + HealthEntity.Components components = health.getComponents(); + if (components == null) { + info.append("⚠️ Individual Component Data Unavailable"); + return info.toString().trim(); + } + + HealthEntity.Components.Database database = components.getDb(); + HealthEntity.Components.Redis redis = components.getRedis(); + HealthEntity.Components.Ping ping = components.getPing(); + HealthEntity.Components.Ssl ssl = components.getSsl(); + + String databaseStatus = database != null ? database.getStatus() : "⚠️`DB Component Not Found`"; + String redisStatus = redis != null ? redis.getStatus() : "⚠️`Redis Component Not Found`"; + String pingStatus = ping != null ? ping.getStatus() : "⚠️`Ping Component Not Found`"; + String sslStatus = ssl != null ? ssl.getStatus() : "⚠️`SSL Component Not Found`"; + + info.append("Database: `").append(databaseStatus).append("`").append("\n") + .append("Redis: `").append(redisStatus).append("`").append("\n") + .append("Ping: `").append(pingStatus).append("`").append("\n") + .append("SSL: `").append(sslStatus).append("`"); + return info.toString().trim(); } @@ -140,6 +167,9 @@ public void onSlashCommandInteraction(@NonNull SlashCommandInteractionEvent even eb.addField("Bot Info", getBotInfo(event), true); eb.addField("API Info", getApiInfo(), true); + eb.setFooter(ProjectInfo.APPNAME + " " + ProjectInfo.VERSION); + eb.setTimestamp(Instant.now()); + event.replyEmbeds(eb.build()).queue(); } } From d68ae64a6df37759d51001894ee6d507b80c2c35 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Mon, 16 Feb 2026 10:45:39 +0530 Subject: [PATCH 080/104] docs: add contributing guidelines Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- CONTRIBUTING.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..ebe3a024 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,5 @@ +This project does not accept pull requests. + +If you would like to modify or extend the bot, please feel free to fork the repository and maintain your own version. + +Bug reports and suggestions are welcome through the Issues tab. I may review and address them as time permits. \ No newline at end of file From d82a3d8203e9a6a14186e42b8e018700a17ddf0a Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Mon, 16 Feb 2026 10:46:14 +0530 Subject: [PATCH 081/104] chore: switch license to mit - Replace the Apache License 2.0 with the MIT License. - Update copyright holder to `Egg-03` and year to `2026`. Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- LICENSE | 202 ++------------------------------------------------------ 1 file changed, 4 insertions(+), 198 deletions(-) diff --git a/LICENSE b/LICENSE index b09cd785..e345d194 100644 --- a/LICENSE +++ b/LICENSE @@ -1,201 +1,7 @@ -Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ +Copyright © 2026 Egg-03 - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - 1. Definitions. +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file From 6dd86955e3f0f015dfbac75b565681c74115effa Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Mon, 16 Feb 2026 10:57:15 +0530 Subject: [PATCH 082/104] docs: update terms regarding data storage and project license Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- TERMS.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TERMS.md b/TERMS.md index 5c66e6d7..adfcc711 100644 --- a/TERMS.md +++ b/TERMS.md @@ -24,7 +24,7 @@ You agree to use the bot responsibly, and not for any of the following: ## 2. Privacy This bot logs message and event data **only if you enable those features**. -Message content is stored in plain text and logs are automatically deleted after 30 days. +All content is stored in a readable format . See our [Privacy Policy](./PRIVACY.md) for full details on data handling, retention, and user rights. @@ -43,7 +43,7 @@ The project maintainers are not responsible for how self-hosted instances handle ## 4. Modifications -You are free to fork, modify, or self-host this project under the terms of the [Apache 2.0 License](./LICENSE). +You are free to fork, modify, or self-host this project under the terms of the [MIT License](./LICENSE). If you publicly redistribute a modified version, you must preserve the original license and attribution. --- From 2025e99bd20971fbf161ba11907484f0c7ba946d Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Mon, 16 Feb 2026 10:57:33 +0530 Subject: [PATCH 083/104] docs: expand and clarify data handling details - add `last updated` date to `PRIVACY.md` - clarify data stored for message logging and audit logging, and add a note on DMs - expand data retention policy details, including system backup retention - introduce new data security section covering infrastructure, encryption, and access control - refine user rights descriptions and verification process for improved clarity Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- PRIVACY.md | 80 +++++++++++++++++++++++++++++++++--------------------- 1 file changed, 49 insertions(+), 31 deletions(-) diff --git a/PRIVACY.md b/PRIVACY.md index f0e076ee..da36fe10 100644 --- a/PRIVACY.md +++ b/PRIVACY.md @@ -1,6 +1,8 @@ # Privacy Policy -**Data Controller:** This project is maintained by [@Egg-03](https://github.com/eggy03). +**Data Controller:** This project is maintained by [@Egg-03](https://github.com/eggy03). + +**Last Updated:** February 16, 2026 This Discord bot was built as an open source project with a privacy-first mindset. The Service is provided at no cost and is intended for use as-is. @@ -33,52 +35,69 @@ The bot only stores data when specific features are explicitly enabled by server ### If **Message Logging** is enabled: - Message Content - Message ID -- Author ID (Discord user ID) +- Author ID (Discord user ID of the message owner) - Channel ID - Guild ID - Timestamp -Message content is stored in plain text and is not used for analytics or shared outside your server. - ### If **only Audit Logging** is enabled: - Guild ID - Channel ID where audit logs should be sent (one per guild) -No message content or user data is stored in this case. +No message content, message ID or Author ID is stored in this case. -The stored data is used solely for server moderation purposes. +**Note on Direct Messages (DMs)**: The bot does not monitor, read, or store data from Direct Messages between users. +It only processes data within Discord Guilds (servers) where it has been explicitly invited. --- ## Data Retention -- All stored message contents and their metadata are automatically deleted after **30 days**. -- No data is permanently retained or used for any analytics. -- Configuration data (e.g., log channel IDs) is kept until the server administrator unregisters the bot or removes it from the server. -- Server administrators can also request immediate deletion of all stored data for their guild by contacting us. +We adhere to a strict data minimization policy. +Information is only retained for the duration necessary to provide the bot's logging features. + +- **Temporary Message Logs**: All captured message content (text-only) and metadata logs are stored for a maximum period + of 30 days. + Following this period, data is programmatically purged from our production databases. +- **System Backups**: Data contained within database backups may persist for up to an additional 7 days beyond the + standard retention period before being overwritten. +- **Administrative Data**: Configuration settings (e.g., designated log channels) are retained as long as the bot + remains authorized within the Discord Guild. --- -## Diagnostic Logs +## Data Security -In case of runtime errors, the bot may log basic diagnostic information such as error messages, timestamps, and internal event states to assist with debugging. -Logs may include additional metadata such as guild IDs, channel IDs, message IDs, or user IDs when necessary to diagnose issues. +We implement reasonable technical and organizational measures to protect stored data from unauthorized access, loss, +or misuse. This includes strict access controls, limited operator access, and infrastructure security best practices. -Log retention is governed by our infrastructure providers and operational requirements, and may vary over time. -Logs are not used for analytics. +**Infrastructure & Storage** ---- +- Cloud Providers: We utilize `Northflank` for application hosting and `Aiven` for managed database services. +- Encryption: While all collected data is stored in a readable format, our infrastructure providers employ encryption + to protect data on the physical disk level. To know more, read their security + policies [Northflank](https://northflank.com/security), [Aiven](https://aiven.io/security-compliance) + +**Access Control** -## Security +Access to the production environment and database is strictly limited to the Data Controller (@Egg-03). +No other contributors or third parties have access to the raw data stored by the bot. -We take reasonable technical and organizational measures to protect stored data from unauthorized access, loss, or misuse. -This includes access controls, limited operator access, and infrastructure security best practices. +**Disclaimer** -Message content is stored in plain text on cloud infrastructure. -This is the same general model used by Discord (i.e., messages are not end-to-end encrypted). -We do not perform analytics on message content. +While we strive to use commercially acceptable means to protect your information, no method of transmission over the +internet or method of electronic storage is 100% secure. +We cannot guarantee absolute security and the service is provided on an "as-is" basis. -However, no method of transmission over the internet or method of electronic storage is 100% secure, and we cannot guarantee absolute security. +--- + +## Diagnostic Logs + +In case of runtime errors, the bot may log basic diagnostic information such as error messages, timestamps, and internal event states to assist with debugging. +Logs may include additional metadata such as guild IDs, channel IDs, message IDs, or user IDs when necessary to diagnose issues. + +Log retention is governed by our infrastructure providers and operational requirements, and may vary over time. +Logs are not used for analytics. --- @@ -91,16 +110,15 @@ If it is discovered that such data has been inadvertently stored, it will be del ## User Rights -All users, regardless of location, have the following rights: - -- **Right of Access**: You may request what data (if any) is associated with your Discord user ID. -- **Right to Erasure**: You may request deletion of your data from the database. +We respect the privacy rights of all Discord users. Regardless of your jurisdiction, you may exercise the following: -To protect user privacy, we will verify the identity of the requestor before fulfilling access or deletion requests (for example: confirmation from the guild owner or proof of control of the Discord user account). -We will respond to verified requests within 30 days. -If additional information is needed, we will notify you and may extend the response period where permitted by law. +- **Right to Access**: Users may request a transcript of all stored data associated with their Discord Snowflake ID. +- **Right to Erasure**: Users may request the immediate removal of their data from our active logs. -To request access or deletion, please contact us using the method below. +To submit a request: Please contact us using one of the methods below. +For security purposes, we may require you to verify your identity via a signed message or a direct interaction through +the official Discord client. +NOTE: We will never ask for any kinds of passwords or secret tokens from you. --- From 0572ff72227efec2f85a034001695f3b99c52dc7 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Mon, 16 Feb 2026 10:58:59 +0530 Subject: [PATCH 084/104] docs: update last updated date - Update the "last updated" date in `TERMS.md` from `February 02, 2026` to `February 16, 2026` Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- TERMS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TERMS.md b/TERMS.md index adfcc711..0ab153ae 100644 --- a/TERMS.md +++ b/TERMS.md @@ -1,6 +1,6 @@ # Terms of Service -_Last updated: February 02, 2026_ +_Last updated: February 16, 2026_ Thank you for using **PaperTrail**, an open-source Discord audit and message logging bot. From cf8bbd2dfdc89b0dc5037f6f0e7ee132fefdd4a5 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Mon, 16 Feb 2026 12:15:58 +0530 Subject: [PATCH 085/104] docs: document sharding configuration and update license - Add `TOTAL_SHARDS`, `MIN_SHARD_ID`, and `MAX_SHARD_ID` environment variables. - Include configuration examples for various sharding setups (single/multiple JVM instances). - Update project license from `Apache License 2.0` to `MIT`. Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- README.md | 74 ++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 59 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index a9545f67..0191e607 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ Key Features: - Voice activity logging (join/leave, move) - Auto-deletion of logged messages after 30 days -> 📎 Get it from here: https://discord.com/discovery/applications/1381658412550590475 +> Get it from here: https://discord.com/discovery/applications/1381658412550590475 > [!IMPORTANT] @@ -19,8 +19,6 @@ Key Features: # Self-Hosting Guide > [!IMPORTANT] > Please note that this is only for advanced users who want to self-host this bot -> -> A pre-hosted instance is already available: https://discord.com/discovery/applications/1381658412550590475 > > It is recommended that you deploy the [Persistence API](https://github.com/Egg-03/PaperTrail-PersistenceAPI?tab=readme-ov-file#papertrail-persistenceapi) service before deploying the bot itself since the bot relies on the URL of the service to communicate @@ -36,11 +34,64 @@ To read the guide on deploying the Persistence API Service, click [here](https:/ You will need the following environment variables to run the bot: -| Variable | Description | -|-----------|-----------------------------------------------------------------------------------------------------------| -| `TOKEN` | Discord application bot token (from the [Developer Portal](https://discord.com/developers/applications)) | -| `API_URL` | Internal URL of the Persistence API (e.g., `http://persistence:8080`) | +| Variable | Description | +|----------------|----------------------------------------------------------------------------------------------------------| +| `TOKEN` | Discord application bot token (from the [Developer Portal](https://discord.com/developers/applications)) | +| `API_URL` | Internal URL of the Persistence API (e.g., `http://persistence:8080`) | +| `TOTAL_SHARDS` | The total number of shards (connections) your bot is using overall. | +| `MIN_SHARD_ID` | The first shard number this bot instance should handle. | +| `MAX_SHARD_ID` | The last shard number this bot instance should handle. | +Each shard allows handling up-to 2500 guilds. + +Take a look at the following configuration examples to have a clearer picture of what values to put +for your use-case + +**1 JVM Instance / 1-2500 Guilds / 1 Shard** + +If your bot is small or self-hosted for a limited number of servers, you only need one shard. +This should be sufficient for the majority of self-host users + +```dotenv +TOTAL_SHARDS=1 +MIN_SHARD_ID=0 +MAX_SHARD_ID=0 +``` + +**1 JVM Instance /2500-5000 Guilds / 2 Shards** + +If your bot is in more than 2,500 servers, but you are still running a single JVM instance, you can increase the total +shard count: + +```dotenv +TOTAL_SHARDS=2 +MIN_SHARD_ID=0 +MAX_SHARD_ID=1 +``` + +Remember that each shard can only handle up to 2500 guilds so plan the total number shards accordingly + +**2 JVM Instances / 25000 Guilds / 10 Shards** + +If you scale your bot horizontally, you need to split the shards between them. + +Instance 1: + +```dotenv +TOTAL_SHARDS=10 +MIN_SHARD_ID=0 +MAX_SHARD_ID=4 +``` + +Instance 2: + +```dotenv +TOTAL_SHARDS=10 +MIN_SHARD_ID=5 +MAX_SHARD_ID=9 +``` + +Shard ID ranges must never overlap between running instances. ### Step 2: Deployment Options Fork this repository to your GitHub account, connect it to your preferred cloud platform, and configure your environment variables in the platform. @@ -95,14 +146,7 @@ By using the official hosted instance or self-hosting it, you agree to the basic # License -PaperTrail is licensed under the [Apache License 2.0](./LICENSE). - -You are free to: -- Use, modify, and redistribute the code -- Self-host or publicly host your own instance -- Build on top of this bot for your own projects - -Just make sure to include proper attribution and comply with the [terms](https://www.apache.org/licenses/LICENSE-2.0). +PaperTrail is licensed under the [MIT](./LICENSE). --- Feel free to contribute to this guide or raise issues on GitHub if you get stuck! \ No newline at end of file From 0535babed7930a1653f7898fda2bac3d47c026fe Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Mon, 16 Feb 2026 12:19:13 +0530 Subject: [PATCH 086/104] docs: update supported event type count - Update the number of supported audit log event types from `50+` to `72` Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0191e607..013a195d 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,11 @@ # Overview -PaperTrail is a free and open-source, self-hostable, and privacy-friendly Discord bot designed to provide audit log data directly in a channel—without requiring users to navigate server settings each time. + +PaperTrail is a free and open-source, self-hostable, and privacy-friendly Discord bot +designed to provide audit log data directly in a channel without requiring users to navigate server settings each time. Key Features: -- Full audit log integration (supports over 50+ event types) and generic support for unknown types +- Full audit log integration (supports over 72 event types) and generic support for unknown types - Message logging (edit, delete) - Member activity tracking (joins, leaves, kicks, bans, updates) - Voice activity logging (join/leave, move) From eaa1b0d2e507ff86bfc5a0c578988235768fb444 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Mon, 16 Feb 2026 13:15:40 +0530 Subject: [PATCH 087/104] chore: add license header --- LICENSE | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/LICENSE b/LICENSE index e345d194..efbf5d4f 100644 --- a/LICENSE +++ b/LICENSE @@ -1,7 +1,21 @@ -Copyright © 2026 Egg-03 +MIT License -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +Copyright (c) 2026 Egg-03 -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: -THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. From c433de191378766045f965e1cf3aea5c8faf715e Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Mon, 16 Feb 2026 13:17:40 +0530 Subject: [PATCH 088/104] fix: numeric ordering of examples Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 013a195d..b437a169 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ Each shard allows handling up-to 2500 guilds. Take a look at the following configuration examples to have a clearer picture of what values to put for your use-case -**1 JVM Instance / 1-2500 Guilds / 1 Shard** +**1: JVM Instance / 1-2500 Guilds / 1 Shard** If your bot is small or self-hosted for a limited number of servers, you only need one shard. This should be sufficient for the majority of self-host users @@ -60,7 +60,7 @@ MIN_SHARD_ID=0 MAX_SHARD_ID=0 ``` -**1 JVM Instance /2500-5000 Guilds / 2 Shards** +**2: JVM Instance /2500-5000 Guilds / 2 Shards** If your bot is in more than 2,500 servers, but you are still running a single JVM instance, you can increase the total shard count: @@ -73,7 +73,7 @@ MAX_SHARD_ID=1 Remember that each shard can only handle up to 2500 guilds so plan the total number shards accordingly -**2 JVM Instances / 25000 Guilds / 10 Shards** +**3: JVM Instances / 25000 Guilds / 10 Shards** If you scale your bot horizontally, you need to split the shards between them. From 9ffcacf0f8492c06613230a88d5c0da280fb09d5 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Mon, 16 Feb 2026 15:37:03 +0530 Subject: [PATCH 089/104] chore: bump jda version to `6.3.1` Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b033d4a1..5f63c930 100644 --- a/pom.xml +++ b/pom.xml @@ -17,7 +17,7 @@ 21 - 6.3.0 + 6.3.1 1.0.1 2.7.0 3.2.0 From e615afe4caec3ca2737c463a3f197a8ea84e767b Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Mon, 16 Feb 2026 20:22:30 +0530 Subject: [PATCH 090/104] docs: refine wording and formatting in privacy policy - Remove unnecessary comma from "Administrative Data" section for improved readability Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- PRIVACY.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/PRIVACY.md b/PRIVACY.md index da36fe10..f2a76e93 100644 --- a/PRIVACY.md +++ b/PRIVACY.md @@ -61,7 +61,7 @@ Information is only retained for the duration necessary to provide the bot's log Following this period, data is programmatically purged from our production databases. - **System Backups**: Data contained within database backups may persist for up to an additional 7 days beyond the standard retention period before being overwritten. -- **Administrative Data**: Configuration settings (e.g., designated log channels) are retained as long as the bot +- **Administrative Data**: Configuration settings (e.g. designated log channels) are retained as long as the bot remains authorized within the Discord Guild. --- @@ -76,7 +76,8 @@ or misuse. This includes strict access controls, limited operator access, and in - Cloud Providers: We utilize `Northflank` for application hosting and `Aiven` for managed database services. - Encryption: While all collected data is stored in a readable format, our infrastructure providers employ encryption to protect data on the physical disk level. To know more, read their security - policies [Northflank](https://northflank.com/security), [Aiven](https://aiven.io/security-compliance) + policies of our providers [Northflank](https://northflank.com/security) + and [Aiven](https://aiven.io/security-compliance). **Access Control** From 87f7b4464148f8056eb49eff3e8245e4d1346481 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Mon, 16 Feb 2026 20:22:58 +0530 Subject: [PATCH 091/104] feat(activity): include /setup command in bot status - Update bot custom status to include "`/setup | `" prefix - Guide users to the `/setup` command for initial configuration Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../papertrail/bot/listeners/misc/ActivityUpdateListener.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/ActivityUpdateListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/ActivityUpdateListener.java index cdcc3648..d171f563 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/ActivityUpdateListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/misc/ActivityUpdateListener.java @@ -35,7 +35,7 @@ public void onGuildLeave(@NotNull GuildLeaveEvent event) { // update on guild le } private void updateActivity() { - manager.setActivity(Activity.customStatus("Monitoring In: " + manager.getGuildCache().size() + " Servers")); + manager.setActivity(Activity.customStatus("/setup | " + manager.getGuildCache().size() + " Servers")); } -} +} \ No newline at end of file From 7079e17e457407f17a99a81d7bc61ecc91b6a909 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Mon, 16 Feb 2026 22:43:47 +0530 Subject: [PATCH 092/104] style: add arrow prefix to synced permissions message MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add `╰┈➤` prefix to the "Permissions synced with category" message - Improve visual clarity and distinction for synced permissions Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../listeners/auditlog/helper/channel/utils/ChannelUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/utils/ChannelUtils.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/utils/ChannelUtils.java index 26b03ef9..47b95c36 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/utils/ChannelUtils.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/utils/ChannelUtils.java @@ -92,7 +92,7 @@ public static String resolveChannelOverridePermissions(@Nullable Object permissi return FALLBACK_STRING; if (permissionValue == 0) - return "Permissions synced with category"; + return "╰┈➤Permissions synced with category"; StringBuilder permissions = new StringBuilder(); EnumSet permissionEnumSet = Permission.getPermissions(permissionValue); From c414c88b983b93d48642d834e07ca6abaee00bde Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Tue, 17 Feb 2026 00:39:40 +0530 Subject: [PATCH 093/104] feat(channel-update): add format for type and flags - Add handling for `type` changes in channel update events - Display old and new channel types in the audit log - Add handling for `flags` changes in channel update events Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../auditlog/helper/channel/ChannelUpdateEventHelper.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelUpdateEventHelper.java index fa706a07..a41b5152 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelUpdateEventHelper.java @@ -107,9 +107,16 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.addBlankField(true); } + case "type" -> { + eb.addField("Old Type", ChannelUtils.resolveChannelType(oldValue), true); + eb.addField("New Type", ChannelUtils.resolveChannelType(newValue), true); + eb.addBlankField(true); + } + case "available_tags" -> eb.addField("Tags", "╰┈➤The channel's tags were updated", false); case "default_reaction_emoji" -> eb.addField("Reaction Emoji", "╰┈➤Default reaction emoji was updated", false); + case "flags" -> eb.addField("Flags", "╰┈➤The channel's flags were updated", false); default -> { eb.addField("Unimplemented Change Key", changeKey, false); From 74b7b2b45e4c6ef0151909261cac189028d3e738 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Tue, 17 Feb 2026 11:27:53 +0530 Subject: [PATCH 094/104] feat(thread): log thread flag updates - Add a field to the embed when thread `flags` are updated - Previously, thread flag updates were explicitly skipped from the audit log - Enhance the audit trail for `ThreadUpdateEvent`s Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../auditlog/helper/thread/ThreadUpdateEventHelper.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/thread/ThreadUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/thread/ThreadUpdateEventHelper.java index 3e6a1418..c0241071 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/thread/ThreadUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/thread/ThreadUpdateEventHelper.java @@ -72,9 +72,8 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.addField("New Archive Status", "╰┈➤" + BooleanUtils.formatToEnabledOrDisabled(newValue), true); eb.addBlankField(true); } - case "flags" -> { - // skip - } + case "flags" -> eb.addField("Flags", "╰┈➤Thread flags were updated", false); + case "invitable" -> { eb.addField("Was Invitable", "╰┈➤" + BooleanUtils.formatToYesOrNo(oldValue), true); eb.addField("Is Invitable", "╰┈➤" + BooleanUtils.formatToYesOrNo(newValue), true); From eca61b0000d5bcb33c5409d34ff69103ed48728b Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Tue, 17 Feb 2026 19:22:03 +0530 Subject: [PATCH 095/104] feat(auditlog): log home settings create and update events - Implement handlers for `HOME_SETTINGS_CREATE` and `HOME_SETTINGS_UPDATE` audit log events. Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../auditlog/event/AuditLogEventListener.java | 8 +-- .../HomeSettingsCreateEventHelper.java | 49 +++++++++++++++ .../HomeSettingsUpdateEventHelper.java | 59 +++++++++++++++++++ 3 files changed, 112 insertions(+), 4 deletions(-) create mode 100644 src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/homesettings/HomeSettingsCreateEventHelper.java create mode 100644 src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/homesettings/HomeSettingsUpdateEventHelper.java diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/event/AuditLogEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/event/AuditLogEventListener.java index 9e32c832..d828dd84 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/event/AuditLogEventListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/event/AuditLogEventListener.java @@ -21,6 +21,8 @@ import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.emoji.EmojiUpdateEventHelper; import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.generic.GenericAuditLogEventHelper; import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.guild.GuildUpdateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.homesettings.HomeSettingsCreateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.homesettings.HomeSettingsUpdateEventHelper; import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.integration.IntegrationCreateEventHelper; import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.integration.IntegrationDeleteEventHelper; import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.invite.InviteCreateEventHelper; @@ -179,10 +181,8 @@ private void auditLogParser(@NonNull GuildAuditLogEntryCreateEvent event, @NonNu case ONBOARDING_PROMPT_UPDATE -> OnboardingPromptUpdateEventHelper.format(event, channelIdToSendTo); case ONBOARDING_PROMPT_DELETE -> OnboardingPromptDeleteEventHelper.format(event, channelIdToSendTo); - case HOME_SETTINGS_CREATE, HOME_SETTINGS_UPDATE -> { - // might come back later and implement it - // but for now, don't send these events - } + case HOME_SETTINGS_CREATE -> HomeSettingsCreateEventHelper.format(event, channelIdToSendTo); + case HOME_SETTINGS_UPDATE -> HomeSettingsUpdateEventHelper.format(event, channelIdToSendTo); // these seemingly don't trigger properly, or are unreliable case MESSAGE_BULK_DELETE, diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/homesettings/HomeSettingsCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/homesettings/HomeSettingsCreateEventHelper.java new file mode 100644 index 00000000..659a90bb --- /dev/null +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/homesettings/HomeSettingsCreateEventHelper.java @@ -0,0 +1,49 @@ +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.homesettings; + +import lombok.NonNull; +import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; +import net.dv8tion.jda.api.EmbedBuilder; +import net.dv8tion.jda.api.audit.AuditLogEntry; +import net.dv8tion.jda.api.entities.MessageEmbed; +import net.dv8tion.jda.api.entities.User; +import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; +import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; + +import java.awt.Color; + +@UtilityClass +@Slf4j +public class HomeSettingsCreateEventHelper { + + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); + + User executor = ale.getJDA().getUserById(ale.getUserIdLong()); + String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); + + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Server Guide Create Event"); + eb.setDescription("ℹ️ A server guide has been created by: " + mentionableExecutor); + eb.setColor(Color.GREEN); + + eb.addField("Action Type", String.valueOf(ale.getType()), true); + eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); + + eb.setFooter("Audit Log Entry ID: " + ale.getId()); + eb.setTimestamp(ale.getTimeCreated()); + + MessageEmbed mb = eb.build(); + if (!mb.isSendable()) { + log.warn("Embed is empty or too long (current length: {}).", eb.length()); + return; + } + + TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); + if (sendingChannel != null && sendingChannel.canTalk()) { + sendingChannel.sendMessageEmbeds(mb).queue(); + } + + } +} diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/homesettings/HomeSettingsUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/homesettings/HomeSettingsUpdateEventHelper.java new file mode 100644 index 00000000..f41a23db --- /dev/null +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/homesettings/HomeSettingsUpdateEventHelper.java @@ -0,0 +1,59 @@ +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.homesettings; + +import lombok.NonNull; +import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; +import net.dv8tion.jda.api.EmbedBuilder; +import net.dv8tion.jda.api.audit.AuditLogEntry; +import net.dv8tion.jda.api.entities.MessageEmbed; +import net.dv8tion.jda.api.entities.User; +import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; +import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; + +import java.awt.Color; + +@UtilityClass +@Slf4j +public class HomeSettingsUpdateEventHelper { + + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); + + User executor = ale.getJDA().getUserById(ale.getUserIdLong()); + String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); + + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Server Guide Update Event"); + eb.setDescription("ℹ️ The server guide has been updated by: " + mentionableExecutor); + eb.setColor(Color.YELLOW); + + eb.addField("Action Type", String.valueOf(ale.getType()), true); + eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); + + ale.getChanges().keySet().forEach(key -> { + switch (key) { + case "welcome_message" -> eb.addField("Welcome Message", "╰┈➤Welcome Message has been updated", false); + case "resource_channels" -> eb.addField("Resources", "╰┈➤Resources have been updated", false); + case "new_member_actions" -> + eb.addField("New Member Join To-Do", "╰┈➤Interactive Actions have been updated", false); + default -> eb.addField(key, "╰┈➤" + key + " has/have been updated", false); + } + }); + + eb.setFooter("Audit Log Entry ID: " + ale.getId()); + eb.setTimestamp(ale.getTimeCreated()); + + MessageEmbed mb = eb.build(); + if (!mb.isSendable()) { + log.warn("Embed is empty or too long (current length: {}).", eb.length()); + return; + } + + TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); + if (sendingChannel != null && sendingChannel.canTalk()) { + sendingChannel.sendMessageEmbeds(mb).queue(); + } + + } +} From 7a108be286499164b949a0ccb37f2ea027ffc3ff Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Tue, 17 Feb 2026 19:52:00 +0530 Subject: [PATCH 096/104] feat(auditlog): handle application command privileges update event - Add `ApplicationCommandPrivilegesUpdateEventHelper` to format `APPLICATION_COMMAND_PRIVILEGES_UPDATE` events. - Integrate the new helper into `AuditLogEventListener` for dedicated processing. Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../auditlog/event/AuditLogEventListener.java | 10 ++-- ...ionCommandPrivilegesUpdateEventHelper.java | 50 +++++++++++++++++++ 2 files changed, 57 insertions(+), 3 deletions(-) create mode 100644 src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/integration/ApplicationCommandPrivilegesUpdateEventHelper.java diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/event/AuditLogEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/event/AuditLogEventListener.java index d828dd84..c5c4a8e8 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/event/AuditLogEventListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/event/AuditLogEventListener.java @@ -23,6 +23,7 @@ import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.guild.GuildUpdateEventHelper; import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.homesettings.HomeSettingsCreateEventHelper; import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.homesettings.HomeSettingsUpdateEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.integration.ApplicationCommandPrivilegesUpdateEventHelper; import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.integration.IntegrationCreateEventHelper; import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.integration.IntegrationDeleteEventHelper; import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.invite.InviteCreateEventHelper; @@ -138,6 +139,8 @@ private void auditLogParser(@NonNull GuildAuditLogEntryCreateEvent event, @NonNu case INTEGRATION_CREATE -> IntegrationCreateEventHelper.format(event, channelIdToSendTo); case INTEGRATION_DELETE -> IntegrationDeleteEventHelper.format(event, channelIdToSendTo); + case APPLICATION_COMMAND_PRIVILEGES_UPDATE -> + ApplicationCommandPrivilegesUpdateEventHelper.format(event, channelIdToSendTo); // INTEGRATION_UPDATE has generic formatting case INVITE_CREATE -> InviteCreateEventHelper.format(event, channelIdToSendTo); @@ -191,13 +194,14 @@ private void auditLogParser(@NonNull GuildAuditLogEntryCreateEvent event, @NonNu MESSAGE_UPDATE -> GenericAuditLogEventHelper.format(event, channelIdToSendTo); // except UNKNOWN, the rest have never been seen to be triggered - case APPLICATION_COMMAND_PRIVILEGES_UPDATE, PRUNE, INTEGRATION_UPDATE, - INVITE_UPDATE, ONBOARDING_CREATE, + case PRUNE, INTEGRATION_UPDATE, + INVITE_UPDATE, ONBOARDING_CREATE, GUILD_PROFILE_UPDATE, UNKNOWN -> GenericAuditLogEventHelper.format(event, channelIdToSendTo); + default -> { GenericAuditLogEventHelper.format(event, channelIdToSendTo); - log.warn("The following event is either not covered by JDA's UNKNOWN type or is not implemented by me yet {}", ale.getType().name()); + log.warn("The following event is either not covered by JDA's UNKNOWN type or is not implemented by PaperTrail yet {}", ale.getType().name()); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/integration/ApplicationCommandPrivilegesUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/integration/ApplicationCommandPrivilegesUpdateEventHelper.java new file mode 100644 index 00000000..09aaa249 --- /dev/null +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/integration/ApplicationCommandPrivilegesUpdateEventHelper.java @@ -0,0 +1,50 @@ +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.integration; + +import lombok.NonNull; +import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; +import net.dv8tion.jda.api.EmbedBuilder; +import net.dv8tion.jda.api.audit.AuditLogEntry; +import net.dv8tion.jda.api.entities.MessageEmbed; +import net.dv8tion.jda.api.entities.User; +import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; +import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; + +import java.awt.Color; + +@UtilityClass +@Slf4j +public class ApplicationCommandPrivilegesUpdateEventHelper { + + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); + + User executor = ale.getJDA().getUserById(ale.getUserIdLong()); + String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); + + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Integration Create Event"); + eb.setDescription("ℹ️ An application command privilege was updated by: " + mentionableExecutor); + eb.setColor(Color.PINK); + + eb.addField("Action Type", String.valueOf(ale.getType()), true); + eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); + + eb.addField("", "To know more about what changes were made, visit the Integrations section", false); + + eb.setFooter("Audit Log Entry ID: " + ale.getId()); + eb.setTimestamp(ale.getTimeCreated()); + + MessageEmbed mb = eb.build(); + if (!mb.isSendable()) { + log.warn("Embed is empty or too long (current length: {}).", eb.length()); + return; + } + + TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); + if (sendingChannel != null && sendingChannel.canTalk()) { + sendingChannel.sendMessageEmbeds(eb.build()).queue(); + } + } +} From 45cee12dff3f5cd6734c0c1782fbb3943f81e4f0 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Tue, 17 Feb 2026 19:52:19 +0530 Subject: [PATCH 097/104] chore: remove unused dependencies Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- pom.xml | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/pom.xml b/pom.xml index 5f63c930..4c2fc4ef 100644 --- a/pom.xml +++ b/pom.xml @@ -21,11 +21,9 @@ 1.0.1 2.7.0 3.2.0 - 3.19.0 - 1.9.3 - 1.83 - 33.4.8-jre - 7.0.3 + 3.20.0 + 33.5.0-jre + 7.0.4 2.13.2 1.18.42 @@ -83,18 +81,6 @@ ${commons-lang3.version} - - org.jasypt - jasypt - ${jasypt.version} - - - - org.bouncycastle - bcprov-jdk18on - ${bouncycastle.version} - - com.google.guava guava From cab72232a18a003934f440a543ecb122656e9591 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Tue, 17 Feb 2026 20:10:28 +0530 Subject: [PATCH 098/104] chore: switch to APGLv3 --- LICENSE | 682 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 661 insertions(+), 21 deletions(-) diff --git a/LICENSE b/LICENSE index efbf5d4f..0ad25db4 100644 --- a/LICENSE +++ b/LICENSE @@ -1,21 +1,661 @@ -MIT License - -Copyright (c) 2026 Egg-03 - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU AGPL, see +. From 597a3e5ada22477c5b9c221df18909f9b64e8d1a Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Tue, 17 Feb 2026 20:57:34 +0530 Subject: [PATCH 099/104] docs: update project overview and self-hosting guide - add `repositories` section with project links - restructure and expand `self-hosting guide` with Discord application setup details - remove `privacy`, `security`, and `terms of use` sections - update `license` details for project components Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- README.md | 108 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 61 insertions(+), 47 deletions(-) diff --git a/README.md b/README.md index b437a169..66f6845a 100644 --- a/README.md +++ b/README.md @@ -13,36 +13,76 @@ Key Features: > Get it from here: https://discord.com/discovery/applications/1381658412550590475 +# Repositories + +| Repository | Description | +|---------------------------------------------------------------------------------------|------------------------------------------| +| [PaperTrailBot](https://github.com/eggy03/PaperTrailBot) | Core bot application | +| [PaperTrail SDK](https://github.com/eggy03/papertrail-sdk) | Client library for the API | +| [PaperTrail Persistence Service](https://github.com/eggy03/PaperTrail-PersistenceAPI) | Backend API for providing CRUD functions | > [!IMPORTANT] > PaperTrail is currently in maintenance mode. Existing bugs will be fixed, dependency updates will be provided > but large new features will likely not be added. # Self-Hosting Guide + > [!IMPORTANT] > Please note that this is only for advanced users who want to self-host this bot > -> It is recommended that you deploy the [Persistence API](https://github.com/Egg-03/PaperTrail-PersistenceAPI?tab=readme-ov-file#papertrail-persistenceapi) service before deploying the bot itself since the bot relies on the URL of the service to communicate +> Set up the API Service before setting up the bot + +## Setting up the API Service + +Follow this [guide](https://github.com/Egg-03/PaperTrail-PersistenceAPI?tab=readme-ov-file#papertrail-persistenceapi) + +## Setting up the Bot Service + +### Step 1: Create an application in the Developer Portal + +Log on to the [Discord Developer Portal](https://discord.com/developers/applications) and create an application. + +The application can have any name, avatar, banner and description but the following scopes, permissions and intents are +needed +for it to work properly: + +**Installation Contexts** + +1) Guild Install + +**Scopes** + +1) applications.commands +2) bot + +**Permissions** -The project is split into two services: -1) The core bot service -2) A [Persistence API](https://github.com/Egg-03/PaperTrail-PersistenceAPI) service +1) Manage Server +2) Read Message History +3) Send Messages +4) Send Messages In Threads +5) View Audit Log +6) View Channels -The following guide shows how to set up the bot service +**Privileged Gateway Intents** -To read the guide on deploying the Persistence API Service, click [here](https://github.com/eggy03/PaperTrail-PersistenceAPI?tab=readme-ov-file#papertrail-persistenceapi) +1) Presence Intent +2) Server Members Intent +3) Message Content Intent -### Step 1: Get Required Secrets +Don't forget to copy the `bot token` as it will be required in the next step + +### Step 2: Get Required Secrets You will need the following environment variables to run the bot: -| Variable | Description | -|----------------|----------------------------------------------------------------------------------------------------------| -| `TOKEN` | Discord application bot token (from the [Developer Portal](https://discord.com/developers/applications)) | -| `API_URL` | Internal URL of the Persistence API (e.g., `http://persistence:8080`) | -| `TOTAL_SHARDS` | The total number of shards (connections) your bot is using overall. | -| `MIN_SHARD_ID` | The first shard number this bot instance should handle. | -| `MAX_SHARD_ID` | The last shard number this bot instance should handle. | +| Variable | Description | +|----------------|-----------------------------------------------------------------------| +| `TOKEN` | Discord application bot token (from the Developer Portal) | +| `API_URL` | Internal URL of the Persistence API (e.g., `http://persistence:8080`) | +| `TOTAL_SHARDS` | The total number of shards (connections) your bot is using overall. | +| `MIN_SHARD_ID` | The first shard number this bot instance should handle. | +| `MAX_SHARD_ID` | The last shard number this bot instance should handle. | Each shard allows handling up-to 2500 guilds. @@ -94,14 +134,14 @@ MAX_SHARD_ID=9 ``` Shard ID ranges must never overlap between running instances. -### Step 2: Deployment Options + +### Step 3: Deployment Options Fork this repository to your GitHub account, connect it to your preferred cloud platform, and configure your environment variables in the platform. Some platform services may also support adding secrets directly from your `.env` file. #### Cloud Platforms with GitHub + Docker Support - These can auto-deploy using the included `Dockerfile` -- Optional: The bot exposes a `/ping` endpoint which can be used by platforms to periodically check for it's health #### Locally - You can also test it locally by building and running using the `Dockerfile` @@ -116,39 +156,13 @@ Some platform services may also support adding secrets directly from your `.env` The bot exposes a `/ping` endpoint on port **8080**. This endpoint simply returns `200 OK` and is intended for platforms or uptime monitors to check if the bot is alive. -> Note: This is **not a public API** and serves no other function beyond internal service health monitoring. - -# Privacy - -PaperTrail is built with privacy-first principles. By default, it **does not log any personal data** unless features are explicitly enabled by server admins. - -- Messages are logged for moderation purposes only, if enabled. -- Logs are automatically deleted after 30 days. -- No personal data is used for analytics, profiling, or sold to third parties. -- If requested, users can have their data deleted by ID. - -*Never post sensitive information in public channels.* - -[Read the full Privacy Policy](./PRIVACY.md) - -# Security - -If you discover a security vulnerability in PaperTrail, please report it **privately**. - -- Do **not** open public GitHub issues for security bugs. -- Instead, email me at 📧 **eggzerothree@proton.me** -- I will respond as soon as possible and work with you to resolve the issue. - -[View the full Security Policy](./SECURITY.md) - -# Terms of Use - -PaperTrail is provided under the Apache 2.0 License and is intended for responsible use. -By using the official hosted instance or self-hosting it, you agree to the basic terms outlined in our [Terms of Service](./TERMS.md). +> Note: This is **not a public endpoint** and serves no other function beyond internal service health monitoring. # License -PaperTrail is licensed under the [MIT](./LICENSE). +- **PaperTrailBot**: AGPLv3 +- **PaperTrail Persistence API**: AGPLv3 +- **PaperTrail SDK**: GNU GPLv3 --- -Feel free to contribute to this guide or raise issues on GitHub if you get stuck! \ No newline at end of file +Feel free to raise issues on GitHub if you get stuck! \ No newline at end of file From 4267f9ddddd60f4d8b96dc3268d0027fc8bbf78b Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Tue, 17 Feb 2026 20:58:07 +0530 Subject: [PATCH 100/104] docs: update project license reference to AGPLv3 - update the referenced license in `TERMS.md` from `MIT License` to `AGPLv3` - remove the clause about preserving original license and attribution, as it is no longer relevant with the `AGPLv3` Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- TERMS.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/TERMS.md b/TERMS.md index 0ab153ae..238c6b5a 100644 --- a/TERMS.md +++ b/TERMS.md @@ -43,8 +43,7 @@ The project maintainers are not responsible for how self-hosted instances handle ## 4. Modifications -You are free to fork, modify, or self-host this project under the terms of the [MIT License](./LICENSE). -If you publicly redistribute a modified version, you must preserve the original license and attribution. +You are free to fork, modify, or self-host this project under the terms of the [AGPLv3](./LICENSE). --- From 9bdaca528721dc06f5d5fe26c53cb3ace3023fb6 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Tue, 17 Feb 2026 21:19:46 +0530 Subject: [PATCH 101/104] feat(auditlog): handle `GUILD_PROFILE_UPDATE` events - Add `GuildProfileUpdateEventHelper` to format `GUILD_PROFILE_UPDATE` audit log entries. - Integrate helper into `AuditLogEventListener` for specific event processing. - Remove `GUILD_PROFILE_UPDATE` from generic handling, enabling detailed logging. Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../auditlog/event/AuditLogEventListener.java | 5 +- .../guild/GuildProfileUpdateEventHelper.java | 57 +++++++++++++++++++ 2 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/guild/GuildProfileUpdateEventHelper.java diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/event/AuditLogEventListener.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/event/AuditLogEventListener.java index c5c4a8e8..55171228 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/event/AuditLogEventListener.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/event/AuditLogEventListener.java @@ -20,6 +20,7 @@ import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.emoji.EmojiDeleteEventHelper; import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.emoji.EmojiUpdateEventHelper; import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.generic.GenericAuditLogEventHelper; +import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.guild.GuildProfileUpdateEventHelper; import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.guild.GuildUpdateEventHelper; import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.homesettings.HomeSettingsCreateEventHelper; import io.github.eggy03.papertrail.bot.listeners.auditlog.helper.homesettings.HomeSettingsUpdateEventHelper; @@ -136,6 +137,7 @@ private void auditLogParser(@NonNull GuildAuditLogEntryCreateEvent event, @NonNu case STICKER_DELETE -> StickerDeleteEventHelper.format(event, channelIdToSendTo); case GUILD_UPDATE -> GuildUpdateEventHelper.format(event, channelIdToSendTo); + case GUILD_PROFILE_UPDATE -> GuildProfileUpdateEventHelper.format(event, channelIdToSendTo); case INTEGRATION_CREATE -> IntegrationCreateEventHelper.format(event, channelIdToSendTo); case INTEGRATION_DELETE -> IntegrationDeleteEventHelper.format(event, channelIdToSendTo); @@ -195,10 +197,9 @@ private void auditLogParser(@NonNull GuildAuditLogEntryCreateEvent event, @NonNu // except UNKNOWN, the rest have never been seen to be triggered case PRUNE, INTEGRATION_UPDATE, - INVITE_UPDATE, ONBOARDING_CREATE, GUILD_PROFILE_UPDATE, + INVITE_UPDATE, ONBOARDING_CREATE, UNKNOWN -> GenericAuditLogEventHelper.format(event, channelIdToSendTo); - default -> { GenericAuditLogEventHelper.format(event, channelIdToSendTo); log.warn("The following event is either not covered by JDA's UNKNOWN type or is not implemented by PaperTrail yet {}", ale.getType().name()); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/guild/GuildProfileUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/guild/GuildProfileUpdateEventHelper.java new file mode 100644 index 00000000..be775ef3 --- /dev/null +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/guild/GuildProfileUpdateEventHelper.java @@ -0,0 +1,57 @@ +package io.github.eggy03.papertrail.bot.listeners.auditlog.helper.guild; + +import lombok.NonNull; +import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; +import net.dv8tion.jda.api.EmbedBuilder; +import net.dv8tion.jda.api.audit.AuditLogEntry; +import net.dv8tion.jda.api.entities.MessageEmbed; +import net.dv8tion.jda.api.entities.User; +import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; +import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; + +import java.awt.Color; + +@UtilityClass +@Slf4j +public class GuildProfileUpdateEventHelper { + + public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull String channelIdToSendTo) { + + AuditLogEntry ale = event.getEntry(); + + User executor = ale.getJDA().getUserById(ale.getUserIdLong()); + String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); + + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Guild Profile Update Event"); + eb.setDescription("ℹ️ The following guild profile updates were made by: " + mentionableExecutor); + eb.setColor(Color.PINK); + + eb.addField("Action Type", String.valueOf(ale.getType()), true); + eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); + + ale.getChanges().keySet().forEach(key -> { + switch (key) { + case "traits" -> eb.addField("Server Traits", "╰┈➤Server Traits have been updated", false); + case "visibility" -> eb.addField("Visibility", "╰┈➤Profile Visibility has been changed", false); + case "brand_color_primary" -> eb.addField("Banner Color", "╰┈➤Banner Color has been updated", false); + case "game_application_ids" -> eb.addField("Games", "╰┈➤Games have been updated", false); + default -> eb.addField(key, "╰┈➤" + key + " has/have been updated", false); + } + }); + eb.setFooter("Audit Log Entry ID: " + ale.getId()); + eb.setTimestamp(ale.getTimeCreated()); + + MessageEmbed mb = eb.build(); + if (!mb.isSendable()) { + log.warn("Embed is empty or too long (current length: {}).", eb.length()); + return; + } + + TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); + if (sendingChannel != null && sendingChannel.canTalk()) { + sendingChannel.sendMessageEmbeds(mb).queue(); + } + } +} From aaf5f3e27e9ec8cba774ff2780671e3f8c62127e Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Tue, 17 Feb 2026 21:36:46 +0530 Subject: [PATCH 102/104] style(embeds): add arrow prefix to embed field values MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Prefix embed field values with "╰┈➤" for better visual separation - Apply to audit log event details in `GuildUpdateEventHelper.java` and `MemberUpdateEventHelper.java` Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../helper/guild/GuildUpdateEventHelper.java | 41 ++++++++++--------- .../member/MemberUpdateEventHelper.java | 6 +-- 2 files changed, 24 insertions(+), 23 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/guild/GuildUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/guild/GuildUpdateEventHelper.java index 615715ed..636471aa 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/guild/GuildUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/guild/GuildUpdateEventHelper.java @@ -41,65 +41,66 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull switch (changeKey) { case "description" -> { - eb.addField("Old Description", String.valueOf(oldValue), false); - eb.addField("New Description", String.valueOf(newValue), false); + eb.addField("Old Description", "╰┈➤" + oldValue, false); + eb.addField("New Description", "╰┈➤" + newValue, false); } case "icon_hash" -> eb.addField("Icon Hash Change", "Guild Icon has been updated", false); case "name" -> { - eb.addField("Old Guild Name", String.valueOf(oldValue), false); - eb.addField("New Guild Name", String.valueOf(newValue), false); + eb.addField("Old Guild Name", "╰┈➤" + oldValue, false); + eb.addField("New Guild Name", "╰┈➤" + newValue, false); } - case "preferred_locale" -> eb.addField("Preferred Locale Set To", String.valueOf(newValue), false); + case "preferred_locale" -> eb.addField("Preferred Locale Set To", "╰┈➤" + newValue, false); case "afk_channel_id" -> - eb.addField("AFK Channel Changed To", GuildUtils.resolveMentionableChannel(newValue, event), false); + eb.addField("AFK Channel Changed To", "╰┈➤" + GuildUtils.resolveMentionableChannel(newValue, event), false); case "default_message_notifications" -> - eb.addField("Default Message Notifications Update", GuildUtils.resolveGuildDefaultMessageNotificationLevel(newValue), false); + eb.addField("Default Message Notifications Update", "╰┈➤" + GuildUtils.resolveGuildDefaultMessageNotificationLevel(newValue), false); case "afk_timeout" -> - eb.addField("AFK Channel Timeout Change", DurationUtils.formatSeconds(newValue), false); + eb.addField("AFK Channel Timeout Change", "╰┈➤" + DurationUtils.formatSeconds(newValue), false); case "system_channel_id" -> - eb.addField("Community Updates Channel Changed To", GuildUtils.resolveMentionableChannel(newValue, event), false); + eb.addField("Community Updates Channel Changed To", "╰┈➤" + GuildUtils.resolveMentionableChannel(newValue, event), false); - case "widget_enabled" -> eb.addField("Widget Enabled", BooleanUtils.formatToYesOrNo(newValue), false); + case "widget_enabled" -> + eb.addField("Widget Enabled", "╰┈➤" + BooleanUtils.formatToYesOrNo(newValue), false); case "widget_channel_id" -> - eb.addField("Widget Channel Changed To", GuildUtils.resolveMentionableChannel(newValue, event), false); + eb.addField("Widget Channel Changed To", "╰┈➤" + GuildUtils.resolveMentionableChannel(newValue, event), false); case "premium_progress_bar_enabled" -> - eb.addField("Server Boost Progress Bar Enabled", BooleanUtils.formatToYesOrNo(newValue), false); + eb.addField("Server Boost Progress Bar Enabled", "╰┈➤" + BooleanUtils.formatToYesOrNo(newValue), false); case "mfa_level" -> - eb.addField("MFA Requirement Set To", GuildUtils.resolveGuildModActionMFALevel(newValue), false); + eb.addField("MFA Requirement Set To", "╰┈➤" + GuildUtils.resolveGuildModActionMFALevel(newValue), false); case "verification_level" -> - eb.addField("Verification Level Set To", GuildUtils.resolveGuildVerificationLevel(newValue), false); + eb.addField("Verification Level Set To", "╰┈➤" + GuildUtils.resolveGuildVerificationLevel(newValue), false); case "owner_id" -> { User oldOwner = ale.getJDA().getUserById(String.valueOf(oldValue)); User newOwner = ale.getJDA().getUserById(String.valueOf(newValue)); String mentionableOldOwner = (oldOwner != null ? oldOwner.getAsMention() : String.valueOf(oldValue)); String mentionableNewOwner = (newOwner != null ? newOwner.getAsMention() : String.valueOf(newValue)); - eb.addField("Old Owner", mentionableOldOwner, false); - eb.addField("New Owner", mentionableNewOwner, false); + eb.addField("Old Owner", "╰┈➤" + mentionableOldOwner, false); + eb.addField("New Owner", "╰┈➤" + mentionableNewOwner, false); } case "public_updates_channel_id" -> - eb.addField("Announcements Channel Changed To", GuildUtils.resolveMentionableChannel(newValue, event), false); + eb.addField("Announcements Channel Changed To", "╰┈➤" + GuildUtils.resolveMentionableChannel(newValue, event), false); case "rules_channel_id" -> - eb.addField("Rules Channel Changed To", GuildUtils.resolveMentionableChannel(newValue, event), false); + eb.addField("Rules Channel Changed To", "╰┈➤" + GuildUtils.resolveMentionableChannel(newValue, event), false); case "system_channel_flags" -> - eb.addField("System Channel Flags", GuildUtils.resolveSystemChannelFlags(newValue), false); + eb.addField("System Channel Flags", "╰┈➤" + GuildUtils.resolveSystemChannelFlags(newValue), false); case "explicit_content_filter" -> - eb.addField("Explicit Content Filter", GuildUtils.resolveExplicitContentFilterLevel(newValue), false); + eb.addField("Explicit Content Filter", "╰┈➤" + GuildUtils.resolveExplicitContentFilterLevel(newValue), false); default -> { eb.addField("Unimplemented Change Key", changeKey, false); diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/member/MemberUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/member/MemberUpdateEventHelper.java index f94f20e9..f3864e0d 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/member/MemberUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/member/MemberUpdateEventHelper.java @@ -63,12 +63,12 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull case "nick" -> eb.addField("Nickname Update", "╰┈➤" + resolveNickNameChanges(oldValue, newValue), false); - case "mute" -> eb.addField("Is Muted in VC", BooleanUtils.formatToYesOrNo(newValue), false); + case "mute" -> eb.addField("Is Muted in VC", "╰┈➤" + BooleanUtils.formatToYesOrNo(newValue), false); - case "deaf" -> eb.addField("Is Deafened in VC", BooleanUtils.formatToYesOrNo(newValue), false); + case "deaf" -> eb.addField("Is Deafened in VC", "╰┈➤" + BooleanUtils.formatToYesOrNo(newValue), false); case "bypasses_verification" -> - eb.addField("Bypass Verification", BooleanUtils.formatToEnabledOrDisabled(newValue), false); + eb.addField("Bypass Verification", "╰┈➤" + BooleanUtils.formatToEnabledOrDisabled(newValue), false); default -> { eb.addField("Unimplemented Change Key", changeKey, false); From 01deee6d5146ff01ae18f1ed0506eef135bb1ca3 Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Tue, 17 Feb 2026 22:17:42 +0530 Subject: [PATCH 103/104] refactor(webhook): reorder embed builder initialization and description - Move `EmbedBuilder` initialization after retrieving executor details Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../auditlog/helper/webhook/WebhookUpdateEventHelper.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/webhook/WebhookUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/webhook/WebhookUpdateEventHelper.java index d859c816..cf8c7206 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/webhook/WebhookUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/webhook/WebhookUpdateEventHelper.java @@ -22,14 +22,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull AuditLogEntry ale = event.getEntry(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setTitle("Audit Log Entry | Webhook Update Event"); - User executor = ale.getJDA().getUserById(ale.getUserIdLong()); String mentionableExecutor = (executor != null ? executor.getAsMention() : ale.getUserId()); - eb.setDescription("👤 **By**: " + mentionableExecutor + "\nℹ️ A webhook has been updated"); + EmbedBuilder eb = new EmbedBuilder(); + eb.setTitle("Audit Log Entry | Webhook Update Event"); + eb.setDescription("ℹ️ A webhook has been updated by: " + mentionableExecutor); eb.setColor(Color.YELLOW); + eb.addField("Action Type", String.valueOf(ale.getType()), true); eb.addField("Target Type", String.valueOf(ale.getTargetType()), true); eb.addBlankField(true); From 42bff007805315a6423ac96d33ab4117218056dc Mon Sep 17 00:00:00 2001 From: Egg-03 <111327101+eggy03@users.noreply.github.com> Date: Tue, 17 Feb 2026 22:50:43 +0530 Subject: [PATCH 104/104] fix(embed): improve validation checks before building - Perform validation checks before building an embed so that no state exceptions are thrown. Using MessageEmbed.isSendable() will still throw exceptions during the build phase so EmbedBuilder methods are used instead. - Enable `SlashCommandRegistrationListener` for application command management. - Update logging configuration in `tinylog.properties` and add `@Slf4j` annotations. - Reorder database operations in message log helpers to make them happen before embed validation checks. - Bump version to 3.0.0 in ProjectInfo Signed-off-by: Egg-03 <111327101+eggy03@users.noreply.github.com> --- .../papertrail/bot/commons/constant/ProjectInfo.java | 2 +- .../AutoModerationFlagToChannelEventHelper.java | 6 ++---- .../AutoModerationMemberTimeoutEventHelper.java | 6 ++---- .../AutoModerationRuleBlockMessageEventHelper.java | 6 ++---- .../automod/AutoModerationRuleCreateEventHelper.java | 6 ++---- .../automod/AutoModerationRuleDeleteEventHelper.java | 6 ++---- .../automod/AutoModerationRuleUpdateEventHelper.java | 6 ++---- .../auditlog/helper/bot/BotAddEventHelper.java | 6 ++---- .../helper/channel/ChannelCreateEventHelper.java | 6 ++---- .../helper/channel/ChannelDeleteEventHelper.java | 6 ++---- .../channel/ChannelOverrideCreateEventHelper.java | 6 ++---- .../channel/ChannelOverrideDeleteEventHelper.java | 6 ++---- .../channel/ChannelOverrideUpdateEventHelper.java | 6 ++---- .../helper/channel/ChannelUpdateEventHelper.java | 6 ++---- .../channel/VoiceChannelStatusDeleteEventHelper.java | 6 ++---- .../channel/VoiceChannelStatusUpdateEventHelper.java | 6 ++---- .../helper/emoji/EmojiCreateEventHelper.java | 6 ++---- .../helper/emoji/EmojiDeleteEventHelper.java | 6 ++---- .../helper/emoji/EmojiUpdateEventHelper.java | 6 ++---- .../helper/generic/GenericAuditLogEventHelper.java | 6 ++---- .../helper/guild/GuildProfileUpdateEventHelper.java | 6 ++---- .../helper/guild/GuildUpdateEventHelper.java | 6 ++---- .../homesettings/HomeSettingsCreateEventHelper.java | 6 ++---- .../homesettings/HomeSettingsUpdateEventHelper.java | 6 ++---- ...pplicationCommandPrivilegesUpdateEventHelper.java | 4 +--- .../integration/IntegrationCreateEventHelper.java | 4 +--- .../integration/IntegrationDeleteEventHelper.java | 4 +--- .../helper/invite/InviteCreateEventHelper.java | 6 ++---- .../helper/invite/InviteDeleteEventHelper.java | 6 ++---- .../helper/member/MemberRoleUpdateEventHelper.java | 6 ++---- .../helper/member/MemberUpdateEventHelper.java | 6 ++---- .../helper/member/MemberVoiceKickEventHelper.java | 6 ++---- .../helper/member/MemberVoiceMoveEventHelper.java | 6 ++---- .../helper/message/MessagePinEventHelper.java | 6 ++---- .../helper/message/MessageUnpinEventHelper.java | 6 ++---- .../auditlog/helper/modactions/BanEventHelper.java | 6 ++---- .../auditlog/helper/modactions/KickEventHelper.java | 6 ++---- .../auditlog/helper/modactions/UnbanEventHelper.java | 6 ++---- .../OnboardingPromptCreateEventHelper.java | 6 ++---- .../OnboardingPromptDeleteEventHelper.java | 6 ++---- .../OnboardingPromptUpdateEventHelper.java | 6 ++---- .../onboarding/OnboardingUpdateEventHelper.java | 6 ++---- .../auditlog/helper/role/RoleCreateEventHelper.java | 6 ++---- .../auditlog/helper/role/RoleDeleteEventHelper.java | 6 ++---- .../auditlog/helper/role/RoleUpdateEventHelper.java | 6 ++---- .../ScheduledEventCreateEventHelper.java | 6 ++---- .../ScheduledEventDeleteEventHelper.java | 6 ++---- .../ScheduledEventUpdateEventHelper.java | 6 ++---- .../soundboard/SoundboardSoundCreateEventHelper.java | 6 ++---- .../soundboard/SoundboardSoundDeleteEventHelper.java | 6 ++---- .../soundboard/SoundboardSoundUpdateEventHelper.java | 6 ++---- .../helper/stage/StageInstanceCreateEventHelper.java | 6 ++---- .../helper/stage/StageInstanceDeleteEventHelper.java | 6 ++---- .../helper/stage/StageInstanceUpdateEventHelper.java | 6 ++---- .../helper/sticker/StickerCreateEventHelper.java | 6 ++---- .../helper/sticker/StickerDeleteEventHelper.java | 6 ++---- .../helper/sticker/StickerUpdateEventHelper.java | 6 ++---- .../helper/thread/ThreadCreateEventHelper.java | 6 ++---- .../helper/thread/ThreadDeleteEventHelper.java | 6 ++---- .../helper/thread/ThreadUpdateEventHelper.java | 6 ++---- .../helper/webhook/WebhookCreateEventHelper.java | 6 ++---- .../helper/webhook/WebhookRemoveEventHelper.java | 6 ++---- .../helper/webhook/WebhookUpdateEventHelper.java | 6 ++---- .../helper/guild/GuildMemberJoinEventHelper.java | 10 +++++++--- .../helper/guild/GuildMemberRemoveEventHelper.java | 10 +++++++--- .../guild/GuildMemberUpdateBoostTimeEventHelper.java | 10 +++++++--- .../helper/guild/GuildPollEventHelper.java | 10 +++++++--- .../guild/GuildUpdateBoostCountEventHelper.java | 10 +++++++--- .../guild/GuildUpdateBoostTierEventHelper.java | 10 +++++++--- .../helper/guild/GuildVoiceEventHelper.java | 10 +++++++--- .../helper/MessageLogMessageDeleteEventHelper.java | 12 +++++------- .../helper/MessageLogMessageUpdateEventHelper.java | 12 +++++------- .../io/github/eggy03/papertrail/bot/main/Start.java | 3 ++- src/main/resources/tinylog.properties | 2 +- 74 files changed, 184 insertions(+), 283 deletions(-) diff --git a/src/main/java/io/github/eggy03/papertrail/bot/commons/constant/ProjectInfo.java b/src/main/java/io/github/eggy03/papertrail/bot/commons/constant/ProjectInfo.java index b617935e..c4e24b65 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/commons/constant/ProjectInfo.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/commons/constant/ProjectInfo.java @@ -10,7 +10,7 @@ public class ProjectInfo { public static final String APPNAME = "PaperTrail"; @NonNull - public static final String VERSION = "v3.0.0-alpha"; + public static final String VERSION = "v3.0.0"; @NonNull public static final String PROJECT_ISSUE_LINK = "https://github.com/eggy03/PaperTrailBot/issues"; diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationFlagToChannelEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationFlagToChannelEventHelper.java index bcd8ec00..40613b88 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationFlagToChannelEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationFlagToChannelEventHelper.java @@ -5,7 +5,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -37,15 +36,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationMemberTimeoutEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationMemberTimeoutEventHelper.java index 24033674..61c18e39 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationMemberTimeoutEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationMemberTimeoutEventHelper.java @@ -5,7 +5,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -37,15 +36,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationRuleBlockMessageEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationRuleBlockMessageEventHelper.java index e222d817..80265ffd 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationRuleBlockMessageEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationRuleBlockMessageEventHelper.java @@ -5,7 +5,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -37,15 +36,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationRuleCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationRuleCreateEventHelper.java index b3d8fa86..5f05ad5d 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationRuleCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationRuleCreateEventHelper.java @@ -7,7 +7,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -60,15 +59,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationRuleDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationRuleDeleteEventHelper.java index 254f6b57..8084852a 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationRuleDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationRuleDeleteEventHelper.java @@ -5,7 +5,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -44,15 +43,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationRuleUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationRuleUpdateEventHelper.java index 34652e6d..d8b30a57 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationRuleUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/automod/AutoModerationRuleUpdateEventHelper.java @@ -5,7 +5,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.automod.AutoModRule; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; @@ -42,15 +41,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/bot/BotAddEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/bot/BotAddEventHelper.java index b7a2a4e9..ff6685ce 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/bot/BotAddEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/bot/BotAddEventHelper.java @@ -5,7 +5,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -39,15 +38,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelCreateEventHelper.java index 92b81317..3e5215e4 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelCreateEventHelper.java @@ -8,7 +8,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; @@ -79,15 +78,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelDeleteEventHelper.java index a6fffee4..5b57177c 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelDeleteEventHelper.java @@ -6,7 +6,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; @@ -58,15 +57,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelOverrideCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelOverrideCreateEventHelper.java index 4aefd232..9919cbda 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelOverrideCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelOverrideCreateEventHelper.java @@ -6,7 +6,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; @@ -69,15 +68,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelOverrideDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelOverrideDeleteEventHelper.java index d5edd7cd..17b58769 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelOverrideDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelOverrideDeleteEventHelper.java @@ -6,7 +6,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; @@ -69,15 +68,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelOverrideUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelOverrideUpdateEventHelper.java index 2894fed0..0f5694b7 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelOverrideUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelOverrideUpdateEventHelper.java @@ -7,7 +7,6 @@ import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.Member; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.Role; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; @@ -69,15 +68,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelUpdateEventHelper.java index a41b5152..a2004e2b 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/ChannelUpdateEventHelper.java @@ -8,7 +8,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; @@ -132,15 +131,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/VoiceChannelStatusDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/VoiceChannelStatusDeleteEventHelper.java index 4719f919..ba43dc80 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/VoiceChannelStatusDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/VoiceChannelStatusDeleteEventHelper.java @@ -5,7 +5,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; @@ -42,15 +41,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/VoiceChannelStatusUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/VoiceChannelStatusUpdateEventHelper.java index 18ec3a84..46d63384 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/VoiceChannelStatusUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/channel/VoiceChannelStatusUpdateEventHelper.java @@ -5,7 +5,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; @@ -42,15 +41,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/emoji/EmojiCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/emoji/EmojiCreateEventHelper.java index 9521326c..b7602b3d 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/emoji/EmojiCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/emoji/EmojiCreateEventHelper.java @@ -5,7 +5,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -48,15 +47,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/emoji/EmojiDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/emoji/EmojiDeleteEventHelper.java index cea36773..5cb91520 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/emoji/EmojiDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/emoji/EmojiDeleteEventHelper.java @@ -5,7 +5,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -48,15 +47,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/emoji/EmojiUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/emoji/EmojiUpdateEventHelper.java index 0e10e8b9..e9050f8d 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/emoji/EmojiUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/emoji/EmojiUpdateEventHelper.java @@ -5,7 +5,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -49,15 +48,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/generic/GenericAuditLogEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/generic/GenericAuditLogEventHelper.java index aeff5619..da529486 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/generic/GenericAuditLogEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/generic/GenericAuditLogEventHelper.java @@ -5,7 +5,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -37,15 +36,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.addField(changeKey, "NEW_VALUE: " + changeValue.getNewValue(), false); }); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/guild/GuildProfileUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/guild/GuildProfileUpdateEventHelper.java index be775ef3..09df7992 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/guild/GuildProfileUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/guild/GuildProfileUpdateEventHelper.java @@ -5,7 +5,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -43,15 +42,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/guild/GuildUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/guild/GuildUpdateEventHelper.java index 636471aa..339d3692 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/guild/GuildUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/guild/GuildUpdateEventHelper.java @@ -8,7 +8,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -112,15 +111,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/homesettings/HomeSettingsCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/homesettings/HomeSettingsCreateEventHelper.java index 659a90bb..3d0fac09 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/homesettings/HomeSettingsCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/homesettings/HomeSettingsCreateEventHelper.java @@ -5,7 +5,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -34,15 +33,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/homesettings/HomeSettingsUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/homesettings/HomeSettingsUpdateEventHelper.java index f41a23db..dc4beba5 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/homesettings/HomeSettingsUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/homesettings/HomeSettingsUpdateEventHelper.java @@ -5,7 +5,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -44,15 +43,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/integration/ApplicationCommandPrivilegesUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/integration/ApplicationCommandPrivilegesUpdateEventHelper.java index 09aaa249..932b6d32 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/integration/ApplicationCommandPrivilegesUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/integration/ApplicationCommandPrivilegesUpdateEventHelper.java @@ -5,7 +5,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -36,8 +35,7 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/integration/IntegrationCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/integration/IntegrationCreateEventHelper.java index ea01a56b..8d75bf76 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/integration/IntegrationCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/integration/IntegrationCreateEventHelper.java @@ -5,7 +5,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -50,8 +49,7 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/integration/IntegrationDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/integration/IntegrationDeleteEventHelper.java index 32696ba0..fcf63b18 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/integration/IntegrationDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/integration/IntegrationDeleteEventHelper.java @@ -5,7 +5,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -49,8 +48,7 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/invite/InviteCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/invite/InviteCreateEventHelper.java index b1f2537e..7329fecb 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/invite/InviteCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/invite/InviteCreateEventHelper.java @@ -7,7 +7,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.middleman.GuildChannel; @@ -76,15 +75,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/invite/InviteDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/invite/InviteDeleteEventHelper.java index 6ef1558b..664a59ef 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/invite/InviteDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/invite/InviteDeleteEventHelper.java @@ -6,7 +6,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.Channel; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; @@ -71,15 +70,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/member/MemberRoleUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/member/MemberRoleUpdateEventHelper.java index 547dd084..f710964e 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/member/MemberRoleUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/member/MemberRoleUpdateEventHelper.java @@ -6,7 +6,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -60,15 +59,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/member/MemberUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/member/MemberUpdateEventHelper.java index f3864e0d..5bae7e8e 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/member/MemberUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/member/MemberUpdateEventHelper.java @@ -7,7 +7,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -80,15 +79,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/member/MemberVoiceKickEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/member/MemberVoiceKickEventHelper.java index da2baad1..688b7cea 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/member/MemberVoiceKickEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/member/MemberVoiceKickEventHelper.java @@ -5,7 +5,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -36,15 +35,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/member/MemberVoiceMoveEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/member/MemberVoiceMoveEventHelper.java index 0264b67d..bf8658b8 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/member/MemberVoiceMoveEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/member/MemberVoiceMoveEventHelper.java @@ -5,7 +5,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -36,15 +35,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/message/MessagePinEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/message/MessagePinEventHelper.java index 74a46908..b3a30499 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/message/MessagePinEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/message/MessagePinEventHelper.java @@ -5,7 +5,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -37,15 +36,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/message/MessageUnpinEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/message/MessageUnpinEventHelper.java index a79d4d0a..720c3621 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/message/MessageUnpinEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/message/MessageUnpinEventHelper.java @@ -5,7 +5,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -37,15 +36,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/modactions/BanEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/modactions/BanEventHelper.java index b2e1d6dd..9d3674a9 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/modactions/BanEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/modactions/BanEventHelper.java @@ -5,7 +5,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -43,15 +42,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } }); } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/modactions/KickEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/modactions/KickEventHelper.java index 72fb7a92..9d8d317a 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/modactions/KickEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/modactions/KickEventHelper.java @@ -5,7 +5,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -43,15 +42,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } }); } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/modactions/UnbanEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/modactions/UnbanEventHelper.java index 1e91e43a..6180aaa9 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/modactions/UnbanEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/modactions/UnbanEventHelper.java @@ -5,7 +5,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -40,15 +39,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } }); } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/onboarding/OnboardingPromptCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/onboarding/OnboardingPromptCreateEventHelper.java index cdbf339e..c5455ba5 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/onboarding/OnboardingPromptCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/onboarding/OnboardingPromptCreateEventHelper.java @@ -6,7 +6,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -66,15 +65,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/onboarding/OnboardingPromptDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/onboarding/OnboardingPromptDeleteEventHelper.java index 0ab2b6f0..1b34159b 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/onboarding/OnboardingPromptDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/onboarding/OnboardingPromptDeleteEventHelper.java @@ -6,7 +6,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -63,15 +62,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/onboarding/OnboardingPromptUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/onboarding/OnboardingPromptUpdateEventHelper.java index ba978d6f..4a6d1a44 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/onboarding/OnboardingPromptUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/onboarding/OnboardingPromptUpdateEventHelper.java @@ -6,7 +6,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -76,15 +75,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/onboarding/OnboardingUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/onboarding/OnboardingUpdateEventHelper.java index e4c693db..fc0afcbf 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/onboarding/OnboardingUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/onboarding/OnboardingUpdateEventHelper.java @@ -8,7 +8,6 @@ import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; import net.dv8tion.jda.api.entities.Guild; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -76,15 +75,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/role/RoleCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/role/RoleCreateEventHelper.java index 90f0a3b1..9a82664a 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/role/RoleCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/role/RoleCreateEventHelper.java @@ -5,7 +5,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.Role; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; @@ -62,15 +61,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/role/RoleDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/role/RoleDeleteEventHelper.java index b576890f..0eae95e2 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/role/RoleDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/role/RoleDeleteEventHelper.java @@ -7,7 +7,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -66,15 +65,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/role/RoleUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/role/RoleUpdateEventHelper.java index d66fa8cf..750e2068 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/role/RoleUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/role/RoleUpdateEventHelper.java @@ -7,7 +7,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.Role; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; @@ -93,15 +92,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/scheduledevent/ScheduledEventCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/scheduledevent/ScheduledEventCreateEventHelper.java index e2d4c26a..af0248c6 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/scheduledevent/ScheduledEventCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/scheduledevent/ScheduledEventCreateEventHelper.java @@ -6,7 +6,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -57,15 +56,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/scheduledevent/ScheduledEventDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/scheduledevent/ScheduledEventDeleteEventHelper.java index 58a9ddda..3ed8c03d 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/scheduledevent/ScheduledEventDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/scheduledevent/ScheduledEventDeleteEventHelper.java @@ -6,7 +6,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -57,15 +56,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/scheduledevent/ScheduledEventUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/scheduledevent/ScheduledEventUpdateEventHelper.java index 7a1e9912..3c4a2eba 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/scheduledevent/ScheduledEventUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/scheduledevent/ScheduledEventUpdateEventHelper.java @@ -6,7 +6,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -78,15 +77,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/soundboard/SoundboardSoundCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/soundboard/SoundboardSoundCreateEventHelper.java index 7d709b3d..4a35af93 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/soundboard/SoundboardSoundCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/soundboard/SoundboardSoundCreateEventHelper.java @@ -6,7 +6,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -61,15 +60,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/soundboard/SoundboardSoundDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/soundboard/SoundboardSoundDeleteEventHelper.java index bae2c651..3517796b 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/soundboard/SoundboardSoundDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/soundboard/SoundboardSoundDeleteEventHelper.java @@ -6,7 +6,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -61,15 +60,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/soundboard/SoundboardSoundUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/soundboard/SoundboardSoundUpdateEventHelper.java index e7255cfc..c75ba973 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/soundboard/SoundboardSoundUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/soundboard/SoundboardSoundUpdateEventHelper.java @@ -6,7 +6,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -71,15 +70,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/stage/StageInstanceCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/stage/StageInstanceCreateEventHelper.java index 3638fa1f..055875d0 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/stage/StageInstanceCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/stage/StageInstanceCreateEventHelper.java @@ -6,7 +6,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -52,15 +51,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/stage/StageInstanceDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/stage/StageInstanceDeleteEventHelper.java index 311bda31..d097dc70 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/stage/StageInstanceDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/stage/StageInstanceDeleteEventHelper.java @@ -6,7 +6,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -51,15 +50,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/stage/StageInstanceUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/stage/StageInstanceUpdateEventHelper.java index 59206e97..ba4afec1 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/stage/StageInstanceUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/stage/StageInstanceUpdateEventHelper.java @@ -6,7 +6,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -59,15 +58,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/sticker/StickerCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/sticker/StickerCreateEventHelper.java index 36f0b29b..1f1e7013 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/sticker/StickerCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/sticker/StickerCreateEventHelper.java @@ -6,7 +6,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -59,15 +58,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/sticker/StickerDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/sticker/StickerDeleteEventHelper.java index 16be546f..573b0533 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/sticker/StickerDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/sticker/StickerDeleteEventHelper.java @@ -6,7 +6,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -59,15 +58,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/sticker/StickerUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/sticker/StickerUpdateEventHelper.java index ce881322..05bc5ffa 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/sticker/StickerUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/sticker/StickerUpdateEventHelper.java @@ -6,7 +6,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.sticker.GuildSticker; @@ -70,15 +69,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/thread/ThreadCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/thread/ThreadCreateEventHelper.java index acfd461d..ce382f44 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/thread/ThreadCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/thread/ThreadCreateEventHelper.java @@ -9,7 +9,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.concrete.ThreadChannel; @@ -76,15 +75,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/thread/ThreadDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/thread/ThreadDeleteEventHelper.java index 4dbaeb3c..2f9bae55 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/thread/ThreadDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/thread/ThreadDeleteEventHelper.java @@ -9,7 +9,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -71,15 +70,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/thread/ThreadUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/thread/ThreadUpdateEventHelper.java index c0241071..2851d6be 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/thread/ThreadUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/thread/ThreadUpdateEventHelper.java @@ -9,7 +9,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.concrete.ThreadChannel; @@ -95,15 +94,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/webhook/WebhookCreateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/webhook/WebhookCreateEventHelper.java index 19cc6787..162f44f9 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/webhook/WebhookCreateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/webhook/WebhookCreateEventHelper.java @@ -7,7 +7,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -57,15 +56,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/webhook/WebhookRemoveEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/webhook/WebhookRemoveEventHelper.java index 4167a604..10d308a6 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/webhook/WebhookRemoveEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/webhook/WebhookRemoveEventHelper.java @@ -7,7 +7,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -57,15 +56,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/webhook/WebhookUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/webhook/WebhookUpdateEventHelper.java index cf8c7206..e3bd5837 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/webhook/WebhookUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlog/helper/webhook/WebhookUpdateEventHelper.java @@ -7,7 +7,6 @@ import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.audit.AuditLogEntry; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; @@ -67,15 +66,14 @@ public static void format(@NonNull GuildAuditLogEntryCreateEvent event, @NonNull eb.setFooter("Audit Log Entry ID: " + ale.getId()); eb.setTimestamp(ale.getTimeCreated()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildMemberJoinEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildMemberJoinEventHelper.java index 0c292680..26693783 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildMemberJoinEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildMemberJoinEventHelper.java @@ -4,9 +4,9 @@ import io.github.eggy03.papertrail.bot.commons.utils.DurationUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Guild; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.member.GuildMemberJoinEvent; @@ -15,6 +15,7 @@ import java.time.Instant; @UtilityClass +@Slf4j public class GuildMemberJoinEventHelper { public static void format(@NonNull GuildMemberJoinEvent event, @NonNull String channelIdToSendTo) { @@ -37,11 +38,14 @@ public static void format(@NonNull GuildMemberJoinEvent event, @NonNull String c eb.setFooter(event.getGuild().getName()); eb.setTimestamp(Instant.now()); - MessageEmbed mb = eb.build(); + if (!eb.isValidLength() || eb.isEmpty()) { + log.warn("Embed is empty or too long (current length: {}).", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildMemberRemoveEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildMemberRemoveEventHelper.java index c785bc4e..211b6d60 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildMemberRemoveEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildMemberRemoveEventHelper.java @@ -2,10 +2,10 @@ import lombok.NonNull; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Member; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.member.GuildMemberRemoveEvent; @@ -15,6 +15,7 @@ import java.time.Instant; @UtilityClass +@Slf4j public class GuildMemberRemoveEventHelper { public static void format(@NonNull GuildMemberRemoveEvent event, @NonNull String channelIdToSendTo) { @@ -36,11 +37,14 @@ public static void format(@NonNull GuildMemberRemoveEvent event, @NonNull String eb.setFooter(event.getGuild().getName()); eb.setTimestamp(Instant.now()); - MessageEmbed mb = eb.build(); + if (!eb.isValidLength() || eb.isEmpty()) { + log.warn("Embed is empty or too long (current length: {}).", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildMemberUpdateBoostTimeEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildMemberUpdateBoostTimeEventHelper.java index 82e0e4a5..ceb69c14 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildMemberUpdateBoostTimeEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildMemberUpdateBoostTimeEventHelper.java @@ -2,10 +2,10 @@ import lombok.NonNull; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Member; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.member.update.GuildMemberUpdateBoostTimeEvent; @@ -14,6 +14,7 @@ import java.time.OffsetDateTime; @UtilityClass +@Slf4j public class GuildMemberUpdateBoostTimeEventHelper { public static void format(@NonNull GuildMemberUpdateBoostTimeEvent event, @NonNull String channelIdToSendTo) { @@ -42,11 +43,14 @@ public static void format(@NonNull GuildMemberUpdateBoostTimeEvent event, @NonNu eb.setFooter(guild.getName()); eb.setTimestamp(Instant.now()); - MessageEmbed mb = eb.build(); + if (!eb.isValidLength() || eb.isEmpty()) { + log.warn("Embed is empty or too long (current length: {}).", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildPollEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildPollEventHelper.java index 0f2f20c2..073bb163 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildPollEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildPollEventHelper.java @@ -3,8 +3,8 @@ import io.github.eggy03.papertrail.bot.commons.utils.BooleanUtils; import lombok.NonNull; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.messages.MessagePoll; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; @@ -14,6 +14,7 @@ import java.time.Instant; @UtilityClass +@Slf4j public class GuildPollEventHelper { public static void format(@NonNull MessageReceivedEvent event, @NonNull MessagePoll messagePoll, @NonNull String channelIdToSendTo) { @@ -33,11 +34,14 @@ public static void format(@NonNull MessageReceivedEvent event, @NonNull MessageP eb.setFooter("Poll Activity Detection"); eb.setTimestamp(Instant.now()); - MessageEmbed mb = eb.build(); + if (!eb.isValidLength() || eb.isEmpty()) { + log.warn("Embed is empty or too long (current length: {}).", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildUpdateBoostCountEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildUpdateBoostCountEventHelper.java index 3e6d298b..bf48b48f 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildUpdateBoostCountEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildUpdateBoostCountEventHelper.java @@ -2,9 +2,9 @@ import lombok.NonNull; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Guild; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.update.GuildUpdateBoostCountEvent; @@ -12,6 +12,7 @@ import java.time.Instant; @UtilityClass +@Slf4j public class GuildUpdateBoostCountEventHelper { public static void format(@NonNull GuildUpdateBoostCountEvent event, @NonNull String channelIdToSendTo) { @@ -32,11 +33,14 @@ public static void format(@NonNull GuildUpdateBoostCountEvent event, @NonNull St eb.setFooter(guild.getName()); eb.setTimestamp(Instant.now()); - MessageEmbed mb = eb.build(); + if (!eb.isValidLength() || eb.isEmpty()) { + log.warn("Embed is empty or too long (current length: {}).", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildUpdateBoostTierEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildUpdateBoostTierEventHelper.java index f49a028e..14ca5510 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildUpdateBoostTierEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildUpdateBoostTierEventHelper.java @@ -2,9 +2,9 @@ import lombok.NonNull; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Guild; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.guild.update.GuildUpdateBoostTierEvent; @@ -12,6 +12,7 @@ import java.time.Instant; @UtilityClass +@Slf4j public class GuildUpdateBoostTierEventHelper { public static void format(@NonNull GuildUpdateBoostTierEvent event, @NonNull String channelIdToSendTo) { @@ -45,11 +46,14 @@ public static void format(@NonNull GuildUpdateBoostTierEvent event, @NonNull Str eb.setFooter(guild.getName()); eb.setTimestamp(Instant.now()); - MessageEmbed mb = eb.build(); + if (!eb.isValidLength() || eb.isEmpty()) { + log.warn("Embed is empty or too long (current length: {}).", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildVoiceEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildVoiceEventHelper.java index 738478a8..87fb7c7b 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildVoiceEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/auditlogsupl/helper/guild/GuildVoiceEventHelper.java @@ -2,9 +2,9 @@ import lombok.NonNull; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Member; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.middleman.AudioChannel; import net.dv8tion.jda.api.events.guild.voice.GuildVoiceUpdateEvent; @@ -13,6 +13,7 @@ import java.time.Instant; @UtilityClass +@Slf4j public class GuildVoiceEventHelper { public static void format(@NonNull GuildVoiceUpdateEvent event, @NonNull String channelIdToSendTo) { @@ -48,11 +49,14 @@ public static void format(@NonNull GuildVoiceUpdateEvent event, @NonNull String eb.setFooter("Voice Activity Detection"); eb.setTimestamp(Instant.now()); - MessageEmbed mb = eb.build(); + if (!eb.isValidLength() || eb.isEmpty()) { + log.warn("Embed is empty or too long (current length: {}).", eb.length()); + return; + } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/messagelog/helper/MessageLogMessageDeleteEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/messagelog/helper/MessageLogMessageDeleteEventHelper.java index 1c1ec377..f914dc2d 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/messagelog/helper/MessageLogMessageDeleteEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/messagelog/helper/MessageLogMessageDeleteEventHelper.java @@ -7,7 +7,6 @@ import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.message.MessageDeleteEvent; @@ -46,20 +45,19 @@ public static void deleteMessage(@NonNull MessageDeleteEvent event, @NonNull Mes eb.setFooter(event.getGuild().getName()); eb.setTimestamp(Instant.now()); + // delete the message from the database + client.deleteMessage(deletedMessageId); + // send the fetched deleted message to the logging channel - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } - - // delete the message from the database - client.deleteMessage(deletedMessageId); }); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/listeners/messagelog/helper/MessageLogMessageUpdateEventHelper.java b/src/main/java/io/github/eggy03/papertrail/bot/listeners/messagelog/helper/MessageLogMessageUpdateEventHelper.java index 8f7a8559..a4c02b15 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/listeners/messagelog/helper/MessageLogMessageUpdateEventHelper.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/listeners/messagelog/helper/MessageLogMessageUpdateEventHelper.java @@ -7,7 +7,6 @@ import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.events.message.MessageUpdateEvent; @@ -52,8 +51,10 @@ public static void updateMessage(@NonNull MessageUpdateEvent event, @NonNull Mes eb.setFooter(event.getGuild().getName()); eb.setTimestamp(Instant.now()); - MessageEmbed mb = eb.build(); - if (!mb.isSendable()) { + // update the database with the new message + client.updateMessage(updatedMessageId, updatedMessage, event.getAuthor().getId()); + + if (!eb.isValidLength() || eb.isEmpty()) { log.warn("Embed is empty or too long (current length: {}).", eb.length()); return; } @@ -61,11 +62,8 @@ public static void updateMessage(@NonNull MessageUpdateEvent event, @NonNull Mes // send the old and updated message to the registered channel TextChannel sendingChannel = event.getGuild().getTextChannelById(channelIdToSendTo); if (sendingChannel != null && sendingChannel.canTalk()) { - sendingChannel.sendMessageEmbeds(mb).queue(); + sendingChannel.sendMessageEmbeds(eb.build()).queue(); } - - // update the database with the new message - client.updateMessage(updatedMessageId, updatedMessage, event.getAuthor().getId()); }); } } diff --git a/src/main/java/io/github/eggy03/papertrail/bot/main/Start.java b/src/main/java/io/github/eggy03/papertrail/bot/main/Start.java index e0273851..660fab2d 100644 --- a/src/main/java/io/github/eggy03/papertrail/bot/main/Start.java +++ b/src/main/java/io/github/eggy03/papertrail/bot/main/Start.java @@ -16,6 +16,7 @@ import io.github.eggy03.papertrail.bot.listeners.misc.DebugListener; import io.github.eggy03.papertrail.bot.listeners.misc.SelfKickListener; import io.github.eggy03.papertrail.bot.listeners.misc.ServerStatCommandListener; +import io.github.eggy03.papertrail.bot.listeners.misc.SlashCommandRegistrationListener; import lombok.NonNull; import net.dv8tion.jda.api.sharding.ShardManager; @@ -54,7 +55,7 @@ public static void main(String[] args) throws IOException { manager.addEventListener(new ActivityUpdateListener(manager)); manager.addEventListener(new DebugListener()); // re-enable it only when adding/updating/deleting commands - //manager.addEventListener(new SlashCommandRegistrationListener()); + manager.addEventListener(new SlashCommandRegistrationListener()); // Custom health check endpoint HttpServer server = HttpServer.create(new InetSocketAddress(8080), 0); diff --git a/src/main/resources/tinylog.properties b/src/main/resources/tinylog.properties index 629bfd0a..a9bf9fa4 100644 --- a/src/main/resources/tinylog.properties +++ b/src/main/resources/tinylog.properties @@ -1,4 +1,4 @@ writer=console writer.format={level}: {class}.{method}()\n{message} -writer.level=debug +writer.level=info writingthread=true \ No newline at end of file