mirror of
https://github.com/mamoe/mirai.git
synced 2025-04-01 04:10:12 +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.PluginData
|
||||||
import net.mamoe.mirai.console.data.PluginDataHolder
|
import net.mamoe.mirai.console.data.PluginDataHolder
|
||||||
import net.mamoe.mirai.console.data.PluginDataStorage
|
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.console.util.ConsoleExperimentalApi
|
||||||
import net.mamoe.mirai.message.MessageSerializers
|
import net.mamoe.mirai.message.MessageSerializers
|
||||||
import net.mamoe.mirai.utils.MiraiLogger
|
import net.mamoe.mirai.utils.MiraiLogger
|
||||||
@ -26,7 +27,7 @@ import java.nio.file.Path
|
|||||||
@Suppress("RedundantVisibilityModifier") // might be public in the future
|
@Suppress("RedundantVisibilityModifier") // might be public in the future
|
||||||
internal open class MultiFilePluginDataStorageImpl(
|
internal open class MultiFilePluginDataStorageImpl(
|
||||||
public final override val directoryPath: Path,
|
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 {
|
) : PluginDataStorage, MultiFilePluginDataStorage {
|
||||||
init {
|
init {
|
||||||
directoryPath.mkdir()
|
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