holy new events that are getting logged
All checks were successful
Deploy to Dokku / docker (ubuntu-latest) (push) Successful in 1m3s

This commit is contained in:
Lee
2024-07-04 17:15:34 +01:00
parent f637faf0b6
commit 35223c376a
8 changed files with 600 additions and 87 deletions

View File

@ -42,7 +42,6 @@ public enum LogType {
CHANNEL_DELETE(LogCategory.CHANNEL),
VOICE_CHANNEL_JOIN(LogCategory.CHANNEL),
VOICE_CHANNEL_LEAVE(LogCategory.CHANNEL),
CHANNEL_PERMISSIONS_UPDATED(LogCategory.CHANNEL),
CHANNEL_CONFIGURATION(LogCategory.CHANNEL),
/**
@ -52,10 +51,14 @@ public enum LogType {
EMOJI_ADD(LogCategory.GUILD),
EMOJI_REMOVE(LogCategory.GUILD),
EMOJI_NAME_UPDATED(LogCategory.GUILD),
ROLE_PERMISSIONS_UPDATED(LogCategory.GUILD),
ROLE_CREATE(LogCategory.GUILD),
ROLE_DELETE(LogCategory.GUILD),
ROLE_CONFIGURATION(LogCategory.GUILD);
ROLE_CONFIGURATION(LogCategory.GUILD),
STICKER_ADD(LogCategory.GUILD),
STICKER_REMOVE(LogCategory.GUILD),
STICKER_NAME_UPDATED(LogCategory.GUILD),
BOOST_TIER_UPDATED(LogCategory.GUILD),
GUILD_CONFIGURATION(LogCategory.GUILD);
/**
* The category of the log type

View File

@ -163,7 +163,7 @@ public class ChannelListener implements EventListener {
: deniedPermissions.substring(0, deniedPermissions.length() - 2)), true);
}
logFeature.sendLog(guild, LogType.CHANNEL_PERMISSIONS_UPDATED, EmbedUtils.successEmbed()
logFeature.sendLog(guild, LogType.CHANNEL_CONFIGURATION, EmbedUtils.successEmbed()
.setDescription(description.build()).build());
}

View File

@ -2,15 +2,23 @@ package cc.fascinated.bat.features.logging.listeners;
import cc.fascinated.bat.common.EmbedDescriptionBuilder;
import cc.fascinated.bat.common.EmbedUtils;
import cc.fascinated.bat.common.EnumUtils;
import cc.fascinated.bat.common.TimeUtils;
import cc.fascinated.bat.event.EventListener;
import cc.fascinated.bat.features.logging.LogFeature;
import cc.fascinated.bat.features.logging.LogType;
import cc.fascinated.bat.model.BatGuild;
import cc.fascinated.bat.model.BatUser;
import lombok.NonNull;
import lombok.extern.log4j.Log4j2;
import net.dv8tion.jda.api.entities.Guild;
import net.dv8tion.jda.api.entities.Invite;
import net.dv8tion.jda.api.entities.channel.ChannelType;
import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
import net.dv8tion.jda.api.entities.channel.concrete.VoiceChannel;
import net.dv8tion.jda.api.events.guild.invite.GuildInviteCreateEvent;
import net.dv8tion.jda.api.events.guild.update.*;
import net.dv8tion.jda.api.interactions.DiscordLocale;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;
@ -42,11 +50,227 @@ public class GuildListener implements EventListener {
), true);
}
description.appendLine("Max Uses: `%s`".formatted(expandedInvite.getMaxUses() == 0 ? "Infinite" : expandedInvite.getMaxUses()), true);
description.appendLine("Creator: %s".formatted(expandedInvite.getInviter() == null ? "Unknown" : expandedInvite.getInviter().getAsMention()), true);;
logFeature.sendLog(guild, LogType.INVITE_CREATE, EmbedUtils.successEmbed()
.setDescription(description
.build())
.build());
description.appendLine("Creator: %s".formatted(expandedInvite.getInviter() == null ? "Unknown" : expandedInvite.getInviter().getAsMention()), true);
;
logFeature.sendLog(guild, LogType.INVITE_CREATE, EmbedUtils.successEmbed().setDescription(description.build()).build());
});
}
@Override
public void onGuildUpdateName(@NonNull BatGuild guild, String oldName, String newName, @NonNull GuildUpdateNameEvent event) {
log.info("Guild name was updated in guild \"{}\" from \"{}\" to \"{}\"", guild.getGuild().getName(), oldName, newName);
EmbedDescriptionBuilder description = new EmbedDescriptionBuilder("Guild Name Updated")
.appendLine("Name: `%s` -> `%s`".formatted(oldName, newName), true);
logFeature.sendLog(guild, LogType.GUILD_CONFIGURATION, EmbedUtils.successEmbed().setDescription(description.build()).build());
}
@Override
public void onGuildUpdateAfkChannel(@NonNull BatGuild guild, VoiceChannel oldChannel, VoiceChannel newChannel, @NonNull GuildUpdateAfkChannelEvent event) {
log.info("Guild AFK channel was updated in guild \"{}\" from \"{}\" to \"{}\"", guild.getGuild().getName(), oldChannel == null ? "None" : oldChannel.getName(), newChannel == null ? "None" : newChannel.getName());
EmbedDescriptionBuilder description = new EmbedDescriptionBuilder("Guild AFK Channel Updated")
.appendLine("Channel: `%s` -> `%s`".formatted(
oldChannel == null ? "None" : oldChannel.getName(),
newChannel == null ? "None" : newChannel.getName()
), true);
logFeature.sendLog(guild, LogType.GUILD_CONFIGURATION, EmbedUtils.successEmbed().setDescription(description.build()).build());
}
@Override
public void onGuildUpdateAfkTimeout(@NonNull BatGuild guild, Guild.Timeout oldTimeout, Guild.Timeout newTimeout, @NonNull GuildUpdateAfkTimeoutEvent event) {
log.info("Guild AFK timeout was updated in guild \"{}\" from \"{}\" to \"{}\"",
guild.getGuild().getName(), oldTimeout.getSeconds(), newTimeout.getSeconds());
EmbedDescriptionBuilder description = new EmbedDescriptionBuilder("Guild AFK Timeout Updated")
.appendLine("Timeout: `%s` -> `%s`".formatted(
TimeUtils.format(oldTimeout.getSeconds() * 1000L),
TimeUtils.format(newTimeout.getSeconds() * 1000L)
), true);
logFeature.sendLog(guild, LogType.GUILD_CONFIGURATION, EmbedUtils.successEmbed().setDescription(description.build()).build());
}
@Override
public void onGuildUpdateBanner(@NonNull BatGuild guild, String oldBannerUrl, String newBannerUrl, @NonNull GuildUpdateBannerEvent event) {
log.info("Guild banner was updated in guild \"{}\" from \"{}\" to \"{}\"", guild.getGuild().getName(), oldBannerUrl, newBannerUrl);
EmbedDescriptionBuilder description = new EmbedDescriptionBuilder("Guild Banner Updated")
.appendLine("Banner: [click here](%s)".formatted(newBannerUrl), true);
logFeature.sendLog(guild, LogType.GUILD_CONFIGURATION, EmbedUtils.successEmbed().setDescription(description.build()).build());
}
@Override
public void onGuildUpdateDescription(@NonNull BatGuild guild, String oldDescription, String newDescription, @NonNull GuildUpdateDescriptionEvent event) {
log.info("Guild description was updated in guild \"{}\" from \"{}\" to \"{}\"", guild.getGuild().getName(), oldDescription, newDescription);
EmbedDescriptionBuilder description = new EmbedDescriptionBuilder("Guild Description Updated")
.appendLine("Description: `%s` -> `%s`".formatted(oldDescription, newDescription), true);
logFeature.sendLog(guild, LogType.GUILD_CONFIGURATION, EmbedUtils.successEmbed().setDescription(description.build()).build());
}
@Override
public void onGuildUpdateIcon(@NonNull BatGuild guild, String oldIconUrl, String newIconUrl, @NonNull GuildUpdateIconEvent event) {
log.info("Guild icon was updated in guild \"{}\" from \"{}\" to \"{}\"", guild.getGuild().getName(), oldIconUrl, newIconUrl);
EmbedDescriptionBuilder description = new EmbedDescriptionBuilder("Guild Icon Updated")
.appendLine("Icon: [click here](%s)".formatted(newIconUrl), true);
logFeature.sendLog(guild, LogType.GUILD_CONFIGURATION, EmbedUtils.successEmbed().setDescription(description.build()).build());
}
@Override
public void onGuildUpdateLocale(@NonNull BatGuild guild, DiscordLocale oldLocale, DiscordLocale newLocale, @NonNull GuildUpdateLocaleEvent event) {
log.info("Guild primary language was updated in guild \"{}\" from \"{}\" to \"{}\"", guild.getGuild().getName(), oldLocale, newLocale);
EmbedDescriptionBuilder description = new EmbedDescriptionBuilder("Guild Primary Language Updated")
.appendLine("Language: `%s` -> `%s`".formatted(
oldLocale.getLanguageName(),
newLocale.getLanguageName()
), true);
logFeature.sendLog(guild, LogType.GUILD_CONFIGURATION, EmbedUtils.successEmbed().setDescription(description.build()).build());
}
@Override
public void onGuildUpdateCommunityUpdatesChannel(@NonNull BatGuild guild, TextChannel oldChannel, TextChannel newChannel, @NonNull GuildUpdateCommunityUpdatesChannelEvent event) {
log.info("Guild community updates channel was updated in guild \"{}\" from \"{}\" to \"{}\"", guild.getGuild().getName(), oldChannel == null ? "None" : oldChannel.getName(), newChannel == null ? "None" : newChannel.getName());
EmbedDescriptionBuilder description = new EmbedDescriptionBuilder("Community Updates Channel Updated")
.appendLine("Channel: `%s` -> `%s`".formatted(
oldChannel == null ? "None" : oldChannel.getName(),
newChannel == null ? "None" : newChannel.getName()
), true);
logFeature.sendLog(guild, LogType.GUILD_CONFIGURATION, EmbedUtils.successEmbed().setDescription(description.build()).build());
}
@Override
public void onGuildUpdateBoostTier(@NonNull BatGuild guild, Guild.BoostTier oldTier, Guild.BoostTier newTier, @NonNull GuildUpdateBoostTierEvent event) {
log.info("Guild boost tier was updated in guild \"{}\" from \"{}\" to \"{}\"", guild.getGuild().getName(), oldTier.getKey(), newTier.getKey());
EmbedDescriptionBuilder description = new EmbedDescriptionBuilder("Guild Boost Tier Updated")
.appendLine("Tier: `%s` -> `%s`".formatted(oldTier.getKey(), newTier.getKey()), true);
logFeature.sendLog(guild, LogType.BOOST_TIER_UPDATED, EmbedUtils.successEmbed().setDescription(description.build()).build());
}
@Override
public void onGuildUpdateMaxMembers(@NonNull BatGuild guild, int oldCount, int newCount, @NonNull GuildUpdateMaxMembersEvent event) {
log.info("Guild max members was updated in guild \"{}\" from \"{}\" to \"{}\"", guild.getGuild().getName(), oldCount, newCount);
EmbedDescriptionBuilder description = new EmbedDescriptionBuilder("Guild Max Members Updated")
.appendLine("Members: `%s` -> `%s`".formatted(oldCount, newCount), true);
logFeature.sendLog(guild, LogType.GUILD_CONFIGURATION, EmbedUtils.successEmbed().setDescription(description.build()).build());
}
@Override
public void onGuildUpdateExplicitContentLevel(@NonNull BatGuild guild, Guild.ExplicitContentLevel oldLevel, Guild.ExplicitContentLevel newLevel, @NonNull GuildUpdateExplicitContentLevelEvent event) {
log.info("Guild explicit content level was updated in guild \"{}\" from \"{}\" to \"{}\"", guild.getGuild().getName(), oldLevel.getKey(), newLevel.getKey());
EmbedDescriptionBuilder description = new EmbedDescriptionBuilder("Guild Explicit Content Level Updated")
.appendLine("Level: `%s` -> `%s`".formatted(
EnumUtils.getEnumName(oldLevel),
EnumUtils.getEnumName(newLevel)
), true);
logFeature.sendLog(guild, LogType.GUILD_CONFIGURATION, EmbedUtils.successEmbed().setDescription(description.build()).build());
}
@Override
public void onGuildUpdateMFALevel(@NonNull BatGuild guild, Guild.MFALevel oldLevel, Guild.MFALevel newLevel, @NonNull GuildUpdateMFALevelEvent event) {
log.info("Guild MFA level was updated in guild \"{}\" from \"{}\" to \"{}\"", guild.getGuild().getName(), oldLevel.getKey(), newLevel.getKey());
EmbedDescriptionBuilder description = new EmbedDescriptionBuilder("Guild MFA Level Updated")
.appendLine("Level: `%s` -> `%s`".formatted(
EnumUtils.getEnumName(oldLevel),
EnumUtils.getEnumName(newLevel)
), true);
logFeature.sendLog(guild, LogType.GUILD_CONFIGURATION, EmbedUtils.successEmbed().setDescription(description.build()).build());
}
@Override
public void onGuildUpdateNotificationLevel(@NonNull BatGuild guild, Guild.NotificationLevel oldLevel, Guild.NotificationLevel newLevel, @NonNull GuildUpdateNotificationLevelEvent event) {
log.info("Guild notification level was updated in guild \"{}\" from \"{}\" to \"{}\"", guild.getGuild().getName(), oldLevel.getKey(), newLevel.getKey());
EmbedDescriptionBuilder description = new EmbedDescriptionBuilder("Guild Notification Level Updated")
.appendLine("Level: `%s` -> `%s`".formatted(
EnumUtils.getEnumName(oldLevel),
EnumUtils.getEnumName(newLevel)
), true);
logFeature.sendLog(guild, LogType.GUILD_CONFIGURATION, EmbedUtils.successEmbed().setDescription(description.build()).build());
}
@Override
public void onGuildUpdateNSFWLevel(@NonNull BatGuild guild, Guild.NSFWLevel oldLevel, Guild.NSFWLevel newLevel, @NonNull GuildUpdateNSFWLevelEvent event) {
log.info("Guild NSFW level was updated in guild \"{}\" from \"{}\" to \"{}\"", guild.getGuild().getName(), oldLevel.getKey(), newLevel.getKey());
EmbedDescriptionBuilder description = new EmbedDescriptionBuilder("Guild NSFW Level Updated")
.appendLine("Level: `%s` -> `%s`".formatted(
EnumUtils.getEnumName(oldLevel),
EnumUtils.getEnumName(newLevel)
), true);
logFeature.sendLog(guild, LogType.GUILD_CONFIGURATION, EmbedUtils.successEmbed().setDescription(description.build()).build());
}
@Override
public void onGuildUpdateOwner(@NonNull BatGuild guild, @NonNull BatUser oldOwner, @NonNull BatUser newOwner, @NonNull GuildUpdateOwnerEvent event) {
log.info("Guild owner was updated in guild \"{}\" from \"{}\" to \"{}\"", guild.getGuild().getName(), oldOwner.getUser().getAsTag(), newOwner.getUser().getAsTag());
EmbedDescriptionBuilder description = new EmbedDescriptionBuilder("Guild Owner Updated")
.appendLine("Owner: %s -> %s".formatted(oldOwner.getUser().getAsMention(), newOwner.getUser().getAsMention()), true);
logFeature.sendLog(guild, LogType.GUILD_CONFIGURATION, EmbedUtils.successEmbed().setDescription(description.build()).build());
}
@Override
public void onGuildUpdateRulesChannel(@NonNull BatGuild guild, TextChannel oldChannel, TextChannel newChannel, @NonNull GuildUpdateRulesChannelEvent event) {
log.info("Guild rules channel was updated in guild \"{}\" from \"{}\" to \"{}\"", guild.getGuild().getName(), oldChannel == null ? "None" : oldChannel.getName(), newChannel == null ? "None" : newChannel.getName());
EmbedDescriptionBuilder description = new EmbedDescriptionBuilder("Rules Channel Updated")
.appendLine("Channel: %s -> %s".formatted(
oldChannel == null ? "`None`" : oldChannel.getAsMention(),
newChannel == null ? "`None`" : newChannel.getAsMention()
), true);
logFeature.sendLog(guild, LogType.GUILD_CONFIGURATION, EmbedUtils.successEmbed().setDescription(description.build()).build());
}
@Override
public void onGuildUpdateSystemChannel(@NonNull BatGuild guild, TextChannel oldChannel, TextChannel newChannel, @NonNull GuildUpdateSystemChannelEvent event) {
log.info("Guild system channel was updated in guild \"{}\" from \"{}\" to \"{}\"", guild.getGuild().getName(), oldChannel == null ? "None" : oldChannel.getName(), newChannel == null ? "None" : newChannel.getName());
EmbedDescriptionBuilder description = new EmbedDescriptionBuilder("System Channel Updated")
.appendLine("Channel: %s -> %s".formatted(
oldChannel == null ? "`None`" : oldChannel.getAsMention(),
newChannel == null ? "`None`" : newChannel.getAsMention()
), true);
logFeature.sendLog(guild, LogType.GUILD_CONFIGURATION, EmbedUtils.successEmbed().setDescription(description.build()).build());
}
@Override
public void onGuildUpdateVanityCode(@NonNull BatGuild guild, String oldCode, String newCode, @NonNull GuildUpdateVanityCodeEvent event) {
log.info("Guild vanity code was updated in guild \"{}\" from \"{}\" to \"{}\"", guild.getGuild().getName(), oldCode, newCode);
EmbedDescriptionBuilder description = new EmbedDescriptionBuilder("Vanity Code Updated")
.appendLine("Code: `%s` -> `%s`".formatted(
oldCode == null ? "None" : oldCode,
newCode == null ? "None" : newCode
), true);
logFeature.sendLog(guild, LogType.GUILD_CONFIGURATION, EmbedUtils.successEmbed().setDescription(description.build()).build());
}
@Override
public void onGuildUpdateVerificationLevel(@NonNull BatGuild guild, Guild.VerificationLevel oldLevel, Guild.VerificationLevel newLevel, @NonNull GuildUpdateVerificationLevelEvent event) {
log.info("Guild verification level was updated in guild \"{}\" from \"{}\" to \"{}\"", guild.getGuild().getName(), oldLevel.getKey(), newLevel.getKey());
EmbedDescriptionBuilder description = new EmbedDescriptionBuilder("Verification Level Updated")
.appendLine("Level: `%s` -> `%s`".formatted(
EnumUtils.getEnumName(oldLevel),
EnumUtils.getEnumName(newLevel)
), true);
logFeature.sendLog(guild, LogType.GUILD_CONFIGURATION, EmbedUtils.successEmbed().setDescription(description.build()).build());
}
@Override
public void onGuildUpdateSplash(@NonNull BatGuild guild, String oldSplashUrl, String newSplashUrl, @NonNull GuildUpdateSplashEvent event) {
log.info("Guild splash was updated in guild \"{}\" from \"{}\" to \"{}\"", guild.getGuild().getName(), oldSplashUrl, newSplashUrl);
EmbedDescriptionBuilder description = new EmbedDescriptionBuilder("Guild Splash Updated")
.appendLine("Splash: [click here](%s)".formatted(newSplashUrl), true);
logFeature.sendLog(guild, LogType.GUILD_CONFIGURATION, EmbedUtils.successEmbed().setDescription(description.build()).build());
}
}

View File

@ -65,7 +65,7 @@ public class RoleListener implements EventListener {
description.appendLine("Denied Permissions: %s".formatted(deniedPermissions.substring(0, deniedPermissions.length() - 2)), true);
}
logFeature.sendLog(guild, LogType.ROLE_PERMISSIONS_UPDATED, EmbedUtils.successEmbed()
logFeature.sendLog(guild, LogType.ROLE_CONFIGURATION, EmbedUtils.successEmbed()
.setDescription(description.build())
.build());
}

View File

@ -0,0 +1,64 @@
package cc.fascinated.bat.features.logging.listeners;
import cc.fascinated.bat.common.EmbedDescriptionBuilder;
import cc.fascinated.bat.common.EmbedUtils;
import cc.fascinated.bat.event.EventListener;
import cc.fascinated.bat.features.logging.LogFeature;
import cc.fascinated.bat.features.logging.LogType;
import cc.fascinated.bat.model.BatGuild;
import lombok.NonNull;
import lombok.extern.log4j.Log4j2;
import net.dv8tion.jda.api.entities.sticker.GuildSticker;
import net.dv8tion.jda.api.events.sticker.GuildStickerAddedEvent;
import net.dv8tion.jda.api.events.sticker.GuildStickerRemovedEvent;
import net.dv8tion.jda.api.events.sticker.update.GuildStickerUpdateNameEvent;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* @author Fascinated (fascinated7)
*/
@Component
@Log4j2(topic = "Logging - Sticker Listener")
public class StickerListener implements EventListener {
private final LogFeature logFeature;
@Autowired
public StickerListener(@NonNull LogFeature logFeature) {
this.logFeature = logFeature;
}
@Override
public void onGuildStickerAdd(@NonNull BatGuild guild, @NonNull GuildSticker sticker, @NonNull GuildStickerAddedEvent event) {
log.info("Sticker \"{}\" was added in guild \"{}\"", sticker.getName(), guild.getName());
logFeature.sendLog(guild, LogType.STICKER_ADD, EmbedUtils.successEmbed()
.setDescription(new EmbedDescriptionBuilder("Sticker Added")
.appendLine("Sticker: %s".formatted(sticker.getName()), true)
.appendLine("URL: %s".formatted(sticker.getIconUrl()), true)
.build())
.build());
}
@Override
public void onGuildStickerRemove(@NonNull BatGuild guild, @NonNull GuildSticker sticker, @NonNull GuildStickerRemovedEvent event) {
log.info("Sticker \"{}\" was removed in guild \"{}\"", sticker.getName(), guild.getName());
logFeature.sendLog(guild, LogType.STICKER_REMOVE, EmbedUtils.successEmbed()
.setDescription(new EmbedDescriptionBuilder("Sticker Removed")
.appendLine("Sticker: %s".formatted(sticker.getName()), true)
.appendLine("URL: %s".formatted(sticker.getIconUrl()), true)
.build())
.build());
}
@Override
public void onGuildStickerRename(@NonNull BatGuild guild, @NonNull GuildSticker sticker, @NonNull String oldName,
@NonNull String newName, @NonNull GuildStickerUpdateNameEvent event) {
log.info("Sticker \"{}\" was renamed in guild \"{}\" from \"{}\" to \"{}\"", sticker.getName(), guild.getName(), oldName, newName);
logFeature.sendLog(guild, LogType.STICKER_NAME_UPDATED, EmbedUtils.successEmbed()
.setDescription(new EmbedDescriptionBuilder("Sticker Renamed")
.appendLine("Sticker: %s".formatted(sticker.getName()), true)
.appendLine("Name: `%s` -> `%s`".formatted(oldName, newName), true)
.build())
.build());
}
}