mirror of
https://github.com/mamoe/mirai.git
synced 2025-02-25 11:40:16 +08:00
33 lines
1.2 KiB
Kotlin
33 lines
1.2 KiB
Kotlin
/*
|
|
* 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.console.integrationtest.testpoints.plugin
|
|
|
|
import kotlinx.atomicfu.atomic
|
|
import net.mamoe.console.integrationtest.AbstractTestPointAsPlugin
|
|
import net.mamoe.mirai.console.plugin.jvm.JvmPluginDescription
|
|
import net.mamoe.mirai.console.plugin.jvm.KotlinPlugin
|
|
|
|
internal object PluginOnDisableCalledOnlyOnceTest : AbstractTestPointAsPlugin() {
|
|
override fun newPluginDescription(): JvmPluginDescription {
|
|
return JvmPluginDescription(
|
|
id = "net.mamoe.testpoint.plugin-on-disable-called-only-once",
|
|
version = "1.0.0",
|
|
name = "PluginOnDisableCalledOnlyOnce",
|
|
) {}
|
|
}
|
|
|
|
private val onDisableCalled = atomic(false)
|
|
|
|
override fun KotlinPlugin.onDisable0() {
|
|
if (!onDisableCalled.compareAndSet(expect = false, update = true)) {
|
|
error("onDisable called multiple times!!")
|
|
}
|
|
}
|
|
} |