mirror of
https://github.com/mamoe/mirai.git
synced 2025-01-03 02:53:52 +08:00
Make MultiFilePluginDataStorageImpl.logger
lazy init
This commit is contained in:
parent
a94c98d990
commit
af2b38d476
@ -15,6 +15,7 @@ import net.mamoe.mirai.console.data.MultiFilePluginDataStorage
|
||||
import net.mamoe.mirai.console.data.PluginData
|
||||
import net.mamoe.mirai.console.data.PluginDataHolder
|
||||
import net.mamoe.mirai.console.data.PluginDataStorage
|
||||
import net.mamoe.mirai.console.internal.logging.lazyInitMiraiLogger
|
||||
import net.mamoe.mirai.console.util.ConsoleExperimentalApi
|
||||
import net.mamoe.mirai.message.MessageSerializers
|
||||
import net.mamoe.mirai.utils.MiraiLogger
|
||||
@ -26,7 +27,7 @@ import java.nio.file.Path
|
||||
@Suppress("RedundantVisibilityModifier") // might be public in the future
|
||||
internal open class MultiFilePluginDataStorageImpl(
|
||||
public final override val directoryPath: Path,
|
||||
private val logger: MiraiLogger = MiraiLogger.Factory.create(MultiFilePluginDataStorageImpl::class),
|
||||
private val logger: MiraiLogger = lazyInitMiraiLogger { MiraiLogger.Factory.create(MultiFilePluginDataStorageImpl::class) },
|
||||
) : PluginDataStorage, MultiFilePluginDataStorage {
|
||||
init {
|
||||
directoryPath.mkdir()
|
||||
|
@ -0,0 +1,28 @@
|
||||
/*
|
||||
* Copyright 2019-2022 Mamoe Technologies and contributors.
|
||||
*
|
||||
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
|
||||
* Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
|
||||
*
|
||||
* https://github.com/mamoe/mirai/blob/dev/LICENSE
|
||||
*/
|
||||
|
||||
package net.mamoe.mirai.console.internal.logging
|
||||
|
||||
import me.him188.kotlin.dynamic.delegation.dynamicDelegation
|
||||
import net.mamoe.mirai.utils.MiraiLogger
|
||||
|
||||
|
||||
internal fun lazyInitMiraiLogger(block: () -> MiraiLogger): MiraiLogger {
|
||||
return LazyInitMiraiLogger(lazy(block))
|
||||
}
|
||||
|
||||
internal fun lazyInitMiraiLogger(block: Lazy<MiraiLogger>): MiraiLogger {
|
||||
return LazyInitMiraiLogger(block)
|
||||
}
|
||||
|
||||
internal class LazyInitMiraiLogger(
|
||||
private val theLazy: Lazy<MiraiLogger>,
|
||||
) : MiraiLogger by (dynamicDelegation(LazyInitMiraiLogger::logger)) {
|
||||
private inline val logger: MiraiLogger get() = theLazy.value
|
||||
}
|
Loading…
Reference in New Issue
Block a user