start 1.1.2 + add opportunity to load object plugins

This commit is contained in:
2022-06-20 20:52:42 +06:00
parent 5ec1c8c55f
commit e0a19bb5e5
6 changed files with 16 additions and 8 deletions

View File

@@ -13,7 +13,8 @@ class PluginSerializer : KSerializer<Plugin> {
get() = String.serializer().descriptor
override fun deserialize(decoder: Decoder): Plugin {
return Class.forName(decoder.decodeString()).getDeclaredConstructor().newInstance() as Plugin
val kclass = Class.forName(decoder.decodeString()).kotlin
return (kclass.objectInstance ?: kclass.constructors.first { it.parameters.isEmpty() }.call()) as Plugin
}
override fun serialize(encoder: Encoder, value: Plugin) {