Skip to content

Commit f2c5880

Browse files
committed
fix: add runtime hints for kord until kordlib/kord/issues/786 is merged
1 parent 2521f2e commit f2c5880

File tree

2 files changed

+43
-8
lines changed

2 files changed

+43
-8
lines changed

.github/renovate.json

-6
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,6 @@
1414
{
1515
"matchPackagePatterns": "*",
1616
"allowedVersions": "!/-.+\\.[0-9]+$/"
17-
},
18-
{
19-
"matchPackagePatterns": [
20-
"dev.kord:kord-core"
21-
],
22-
"enabled": false
2317
}
2418
]
2519
}

src/main/kotlin/de/darkatra/vrising/discord/BotRuntimeHints.kt

+43-2
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,30 @@
11
package de.darkatra.vrising.discord
22

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.*
521
import org.dizitart.no2.Document
622
import org.dizitart.no2.Index
723
import org.dizitart.no2.NitriteId
824
import org.dizitart.no2.meta.Attributes
925
import org.h2.store.fs.FilePathDisk
1026
import org.h2.store.fs.FilePathNio
27+
import org.springframework.aot.hint.BindingReflectionHintsRegistrar
1128
import org.springframework.aot.hint.MemberCategory
1229
import org.springframework.aot.hint.RuntimeHints
1330
import org.springframework.aot.hint.RuntimeHintsRegistrar
@@ -21,6 +38,8 @@ import java.util.concurrent.atomic.AtomicBoolean
2138
*/
2239
class BotRuntimeHints : RuntimeHintsRegistrar {
2340

41+
private val bindingReflectionHintsRegistrar = BindingReflectionHintsRegistrar()
42+
2443
override fun registerHints(hints: RuntimeHints, classLoader: ClassLoader?) {
2544

2645
// required by nitrite to create a database with password
@@ -42,10 +61,32 @@ class BotRuntimeHints : RuntimeHintsRegistrar {
4261
hints.serialization().registerType(NitriteId::class.java)
4362
hints.serialization().registerType(TypeReference.of("java.lang.String"))
4463

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+
4583
hints.reflection()
4684
// required by nitrite to create and open file based databases
4785
.registerType(FilePathDisk::class.java, MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS)
4886
.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)
4990
// required by kotlin coroutines (dependency of kord)
5091
.registerType(TypeReference.of("kotlin.internal.jdk8.JDK8PlatformImplementations"), MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS)
5192
// required by ktor (dependency of kord)

0 commit comments

Comments
 (0)