1
1
package me.ddivad.keeper.listeners
2
2
3
3
import dev.kord.core.event.message.ReactionAddEvent
4
+ import dev.kord.rest.request.KtorRequestException
4
5
import dev.kord.x.emoji.Emojis
5
6
import dev.kord.x.emoji.addReaction
6
7
import me.ddivad.keeper.dataclasses.Configuration
@@ -9,24 +10,35 @@ import me.ddivad.keeper.embeds.buildSavedMessageEmbed
9
10
import me.jakejmattson.discordkt.dsl.listeners
10
11
import me.jakejmattson.discordkt.extensions.isSelf
11
12
import me.jakejmattson.discordkt.extensions.sendPrivateMessage
13
+ import mu.KotlinLogging
14
+
15
+ private val logger = KotlinLogging .logger { }
12
16
13
17
@Suppress(" unused" )
14
18
fun onGuildMessageReactionAddEvent (configuration : Configuration , statsService : StatisticsService ) = listeners {
15
19
on<ReactionAddEvent > {
16
20
if (guild != = null ) {
17
21
val guild = guild?.asGuildOrNull() ? : return @on
18
22
val guildConfiguration = configuration[guild.id] ? : return @on
23
+ val msg = message.asMessageOrNull() ? : return @on
24
+
19
25
if (! guildConfiguration.enabled) return @on
20
26
21
27
if (this .emoji.name == configuration[guild.id]?.bookmarkReaction) {
22
28
statsService.bookmarkAdded(guild)
23
- this .user.sendPrivateMessage {
24
- buildSavedMessageEmbed(message.asMessage(), guild)
25
- }.addReaction(Emojis .x)
29
+ try {
30
+ this .user.sendPrivateMessage {
31
+ buildSavedMessageEmbed(msg, guild)
32
+ }.addReaction(Emojis .x)
33
+ logger.info { " Message Bookmarked by ${msg.author?.username} " }
34
+ } catch (e: KtorRequestException ) {
35
+ logger.error { " Bookmark DM could not be sent" }
36
+ }
26
37
}
27
38
} else {
28
39
if (this .emoji.name == " ❌" && ! this .user.isSelf()) {
29
40
this .message.delete()
41
+ logger.info { " Bookmark Deleted" }
30
42
}
31
43
}
32
44
}
0 commit comments