
com.github.insanusmokrassar.AutoPostTelegramBot.base.plugins.DefaultPluginManager.kt Maven / Gradle / Ivy
package com.github.insanusmokrassar.AutoPostTelegramBot.base.plugins
import com.github.insanusmokrassar.AutoPostTelegramBot.base.models.FinalConfig
import com.pengrad.telegrambot.TelegramBot
import kotlinx.coroutines.experimental.launch
import kotlinx.coroutines.experimental.runBlocking
class DefaultPluginManager(
pluginsCollection: Collection
) : PluginManager {
override val plugins: List = pluginsCollection.toList()
constructor(pluginsConfigs: List) : this(
pluginsConfigs.mapNotNull {
it.newInstance() ?.also {
commonLogger.info("Plugin ${it.name} instantiated")
}
}
)
override fun onInit(bot: TelegramBot, baseConfig: FinalConfig) {
val logsChatId = baseConfig.logsChatId
runBlocking {
plugins.map {
launch {
it.onInit(
bot,
baseConfig,
this@DefaultPluginManager
)
commonLogger.info("Plugin ${it.name} was init")
}
}.forEach {
it.join()
}
commonLogger.info("Plugins was initiated")
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy