Commit 1ada8d5 1 parent 73d7e21 commit 1ada8d5 Copy full SHA for 1ada8d5
File tree 2 files changed +12
-1
lines changed
mirai-console/backend/mirai-console/src
2 files changed +12
-1
lines changed Original file line number Diff line number Diff line change @@ -86,6 +86,10 @@ internal class MiraiConsoleImplementationBridge(
86
86
// used internally
87
87
val globalComponentStorage: GlobalComponentStorageImpl by lazy { GlobalComponentStorageImpl () }
88
88
89
+ // tentative workaround for https://github.com/mamoe/mirai/pull/1889#pullrequestreview-887903183
90
+ @Volatile
91
+ var permissionSeviceLoaded: Boolean = false
92
+
89
93
override val mainLogger: MiraiLogger by lazy { createLogger(" main" ) }
90
94
91
95
init {
@@ -187,6 +191,7 @@ internal class MiraiConsoleImplementationBridge(
187
191
phase(" load PermissionService" ) {
188
192
mainLogger.verbose { " Loading PermissionService..." }
189
193
194
+ permissionSeviceLoaded = true
190
195
PermissionService .INSTANCE .let { ps ->
191
196
if (ps is BuiltInPermissionService ) {
192
197
consoleDataScope.addAndReloadConfig(ps.config)
Original file line number Diff line number Diff line change 11
11
12
12
package net.mamoe.mirai.console.permission
13
13
14
+ import net.mamoe.mirai.console.MiraiConsoleImplementation
14
15
import net.mamoe.mirai.console.compiler.common.ResolveContext
15
16
import net.mamoe.mirai.console.compiler.common.ResolveContext.Kind.COMMAND_NAME
16
17
import net.mamoe.mirai.console.extension.instance
@@ -147,7 +148,12 @@ public interface PermissionService<P : Permission> {
147
148
@get:JvmName(" getInstance" )
148
149
@JvmStatic
149
150
public val INSTANCE : PermissionService <out Permission >
150
- get() = GlobalComponentStorage .getPreferredExtension(PermissionServiceProvider ).instance
151
+ get() {
152
+ if (! MiraiConsoleImplementation .getBridge().permissionSeviceLoaded) {
153
+ error(" PermissionService is not yet ready." )
154
+ }
155
+ return GlobalComponentStorage .getPreferredExtension(PermissionServiceProvider ).instance
156
+ }
151
157
152
158
/* *
153
159
* 获取一个权限, 失败时抛出 [NoSuchElementException]
You can’t perform that action at this time.
0 commit comments