diff --git a/core/api/core.api b/core/api/core.api index 25f22f6f006f..188134634024 100644 --- a/core/api/core.api +++ b/core/api/core.api @@ -11269,6 +11269,16 @@ public final class dev/kord/core/event/guild/EmojisUpdateEvent : dev/kord/core/e public fun withStrategy (Ldev/kord/core/supplier/EntitySupplyStrategy;)Ldev/kord/core/event/guild/EmojisUpdateEvent; } +public final class dev/kord/core/event/guild/GuildAuditLogEntryCreateEvent : dev/kord/core/event/Event { + public fun (Ldev/kord/core/entity/AuditLogEntry;Ldev/kord/core/Kord;ILjava/lang/Object;)V + public final fun getAuditLogEntry ()Ldev/kord/core/entity/AuditLogEntry; + public fun getCustomContext ()Ljava/lang/Object; + public fun getGateway ()Ldev/kord/gateway/Gateway; + public fun getKord ()Ldev/kord/core/Kord; + public fun getShard ()I + public fun toString ()Ljava/lang/String; +} + public final class dev/kord/core/event/guild/GuildCreateEvent : dev/kord/core/event/Event { public fun (Ldev/kord/core/entity/Guild;ILjava/lang/Object;)V public fun getCustomContext ()Ljava/lang/Object; diff --git a/core/src/main/kotlin/event/guild/GuildAuditLogEntryCreateEvent.kt b/core/src/main/kotlin/event/guild/GuildAuditLogEntryCreateEvent.kt new file mode 100644 index 000000000000..b15cf326728a --- /dev/null +++ b/core/src/main/kotlin/event/guild/GuildAuditLogEntryCreateEvent.kt @@ -0,0 +1,16 @@ +package dev.kord.core.event.guild + +import dev.kord.core.Kord +import dev.kord.core.entity.AuditLogEntry +import dev.kord.core.event.Event + +public class GuildAuditLogEntryCreateEvent( + public val auditLogEntry: AuditLogEntry, + override val kord: Kord, + override val shard: Int, + override val customContext: Any? +): Event { + override fun toString(): String { + return "GuildAuditLogEntryCreate(auditLogEntry=$auditLogEntry, shard=$shard)" + } +} \ No newline at end of file diff --git a/core/src/main/kotlin/gateway/handler/GuildEventHandler.kt b/core/src/main/kotlin/gateway/handler/GuildEventHandler.kt index 2b88b99ddfce..db70789958fd 100644 --- a/core/src/main/kotlin/gateway/handler/GuildEventHandler.kt +++ b/core/src/main/kotlin/gateway/handler/GuildEventHandler.kt @@ -26,6 +26,7 @@ internal class GuildEventHandler : BaseGatewayEventHandler() { override suspend fun handle(event: Event, shard: Int, kord: Kord, context: LazyContext?): CoreEvent? = when (event) { + is GuildAuditLogEntryCreate -> handle(event, shard, kord, context) is GuildCreate -> handle(event, shard, kord, context) is GuildUpdate -> handle(event, shard, kord, context) is GuildDelete -> handle(event, shard, kord, context) @@ -82,6 +83,19 @@ internal class GuildEventHandler : BaseGatewayEventHandler() { } } + private suspend fun handle( + event: GuildAuditLogEntryCreate, + shard: Int, + kord: Kord, + context: LazyContext? + ): GuildAuditLogEntryCreateEvent { + val entry = AuditLogEntry(event.entry, kord) + + kord.cache.put(entry) + + return GuildAuditLogEntryCreateEvent(entry, kord, shard, context?.get()) + } + private suspend fun handle( event: GuildCreate, shard: Int, diff --git a/gateway/api/gateway.api b/gateway/api/gateway.api index f4d875a8bd04..6d4db61d241b 100644 --- a/gateway/api/gateway.api +++ b/gateway/api/gateway.api @@ -698,6 +698,19 @@ public final class dev/kord/gateway/GatewayKt { public static synthetic fun start$default (Ldev/kord/gateway/Gateway;Ljava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; } +public final class dev/kord/gateway/GuildAuditLogEntryCreate : dev/kord/gateway/DispatchEvent { + public fun (Ldev/kord/common/entity/DiscordAuditLogEntry;Ljava/lang/Integer;)V + public final fun component1 ()Ldev/kord/common/entity/DiscordAuditLogEntry; + public final fun component2 ()Ljava/lang/Integer; + public final fun copy (Ldev/kord/common/entity/DiscordAuditLogEntry;Ljava/lang/Integer;)Ldev/kord/gateway/GuildAuditLogEntryCreate; + public static synthetic fun copy$default (Ldev/kord/gateway/GuildAuditLogEntryCreate;Ldev/kord/common/entity/DiscordAuditLogEntry;Ljava/lang/Integer;ILjava/lang/Object;)Ldev/kord/gateway/GuildAuditLogEntryCreate; + public fun equals (Ljava/lang/Object;)Z + public final fun getEntry ()Ldev/kord/common/entity/DiscordAuditLogEntry; + public fun getSequence ()Ljava/lang/Integer; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + public final class dev/kord/gateway/GuildBanAdd : dev/kord/gateway/DispatchEvent { public fun (Ldev/kord/common/entity/DiscordGuildBan;Ljava/lang/Integer;)V public final fun component1 ()Ldev/kord/common/entity/DiscordGuildBan; diff --git a/gateway/src/main/kotlin/Event.kt b/gateway/src/main/kotlin/Event.kt index 44e821c88a82..2feb4d0e65a3 100644 --- a/gateway/src/main/kotlin/Event.kt +++ b/gateway/src/main/kotlin/Event.kt @@ -649,6 +649,7 @@ public data class ChannelDelete(val channel: DiscordChannel, override val sequen public data class ChannelPinsUpdate(val pins: DiscordPinsUpdateData, override val sequence: Int?) : DispatchEvent() public data class TypingStart(val data: DiscordTyping, override val sequence: Int?) : DispatchEvent() +public data class GuildAuditLogEntryCreate(val entry: DiscordAuditLogEntry, override val sequence: Int?): DispatchEvent() public data class GuildCreate(val guild: DiscordGuild, override val sequence: Int?) : DispatchEvent() public data class GuildUpdate(val guild: DiscordGuild, override val sequence: Int?) : DispatchEvent() public data class GuildDelete(val guild: DiscordUnavailableGuild, override val sequence: Int?) : DispatchEvent() diff --git a/gateway/src/main/kotlin/Intent.kt b/gateway/src/main/kotlin/Intent.kt index 9ff48005f723..a51971d382df 100644 --- a/gateway/src/main/kotlin/Intent.kt +++ b/gateway/src/main/kotlin/Intent.kt @@ -85,6 +85,7 @@ public sealed class Intent(public val code: DiscordBitSet) { * Enables the following events: * - [GuildBanAdd] * - [GuildBanRemove] + * - [AuditLogEntryCreateEvent] */ public object GuildBans : Intent(1 shl 2)