1
1
package de.darkatra.vrising.discord
2
2
3
- import io.ktor.network.selector.InterestSuspensionsMap
4
- import io.ktor.utils.io.pool.DefaultPool
3
+ import dev.kord.core.cache.data.ApplicationCommandData
4
+ import dev.kord.core.cache.data.AutoModerationRuleData
5
+ import dev.kord.core.cache.data.ChannelData
6
+ import dev.kord.core.cache.data.EmojiData
7
+ import dev.kord.core.cache.data.GuildApplicationCommandPermissionsData
8
+ import dev.kord.core.cache.data.GuildData
9
+ import dev.kord.core.cache.data.MemberData
10
+ import dev.kord.core.cache.data.MessageData
11
+ import dev.kord.core.cache.data.PresenceData
12
+ import dev.kord.core.cache.data.RoleData
13
+ import dev.kord.core.cache.data.StickerData
14
+ import dev.kord.core.cache.data.StickerPackData
15
+ import dev.kord.core.cache.data.ThreadMemberData
16
+ import dev.kord.core.cache.data.UserData
17
+ import dev.kord.core.cache.data.VoiceStateData
18
+ import dev.kord.core.cache.data.WebhookData
19
+ import io.ktor.network.selector.*
20
+ import io.ktor.utils.io.pool.*
5
21
import org.dizitart.no2.Document
6
22
import org.dizitart.no2.Index
7
23
import org.dizitart.no2.NitriteId
8
24
import org.dizitart.no2.meta.Attributes
9
25
import org.h2.store.fs.FilePathDisk
10
26
import org.h2.store.fs.FilePathNio
27
+ import org.springframework.aot.hint.BindingReflectionHintsRegistrar
11
28
import org.springframework.aot.hint.MemberCategory
12
29
import org.springframework.aot.hint.RuntimeHints
13
30
import org.springframework.aot.hint.RuntimeHintsRegistrar
@@ -21,6 +38,8 @@ import java.util.concurrent.atomic.AtomicBoolean
21
38
*/
22
39
class BotRuntimeHints : RuntimeHintsRegistrar {
23
40
41
+ private val bindingReflectionHintsRegistrar = BindingReflectionHintsRegistrar ()
42
+
24
43
override fun registerHints (hints : RuntimeHints , classLoader : ClassLoader ? ) {
25
44
26
45
// required by nitrite to create a database with password
@@ -42,10 +61,32 @@ class BotRuntimeHints : RuntimeHintsRegistrar {
42
61
hints.serialization().registerType(NitriteId ::class .java)
43
62
hints.serialization().registerType(TypeReference .of(" java.lang.String" ))
44
63
64
+ // reflection hints for kord (remove once https://github.com/kordlib/kord/issues/786 is merged)
65
+ bindingReflectionHintsRegistrar.registerReflectionHints(
66
+ hints.reflection(),
67
+ ApplicationCommandData ::class .java,
68
+ AutoModerationRuleData ::class .java,
69
+ ChannelData ::class .java,
70
+ EmojiData ::class .java,
71
+ GuildData ::class .java,
72
+ MemberData ::class .java,
73
+ MessageData ::class .java,
74
+ PresenceData ::class .java,
75
+ RoleData ::class .java,
76
+ StickerData ::class .java,
77
+ ThreadMemberData ::class .java,
78
+ UserData ::class .java,
79
+ VoiceStateData ::class .java,
80
+ WebhookData ::class .java
81
+ )
82
+
45
83
hints.reflection()
46
84
// required by nitrite to create and open file based databases
47
85
.registerType(FilePathDisk ::class .java, MemberCategory .INVOKE_PUBLIC_CONSTRUCTORS )
48
86
.registerType(FilePathNio ::class .java, MemberCategory .INVOKE_PUBLIC_CONSTRUCTORS )
87
+ // required by kord (remove once https://github.com/kordlib/kord/issues/786 is merged)
88
+ .registerType(GuildApplicationCommandPermissionsData ::class .java)
89
+ .registerType(StickerPackData ::class .java)
49
90
// required by kotlin coroutines (dependency of kord)
50
91
.registerType(TypeReference .of(" kotlin.internal.jdk8.JDK8PlatformImplementations" ), MemberCategory .INVOKE_PUBLIC_CONSTRUCTORS )
51
92
// required by ktor (dependency of kord)
0 commit comments