Skip to content

插件ID冲突时,应在插件初始化之前就将冲突插件排除 #2136

@cssxsh

Description

@cssxsh

问题描述

似乎是 2.11.0 开始的问题
目前是插件已经开始初始化,第二个插件初始化 权限id 的时候 才会因为权限id冲突退出

2022-07-06 18:06:49 I/plugin: Successfully loaded plugin mirai-skia-plugin v1.1.3
2022-07-06 18:06:49 I/plugin: Successfully loaded plugin mirai-skia-plugin v1.1.3
2022-07-06 18:06:49 I/main: Prepared built-in commands: autoLogin, help, login, logout, permission, status, stop
2022-07-06 18:06:49 I/mirai-skia-plugin: platform: windows-x64, skia: m99-f85ab491eb-2, skiko: 0.7.20
2022-07-06 18:06:50 I/mirai-skia-plugin: fonts: []
2022-07-06 18:06:50 E/main: Failed to init MiraiConsole.
net.mamoe.mirai.console.plugin.loader.PluginLoadException: Exception while enabling mirai-skia-plugin
	at net.mamoe.mirai.console.internal.plugin.BuiltInJvmPluginLoaderImpl.enable(BuiltInJvmPluginLoaderImpl.kt:284)
	at net.mamoe.mirai.console.internal.plugin.BuiltInJvmPluginLoaderImpl.enable(BuiltInJvmPluginLoaderImpl.kt:35)
	at net.mamoe.mirai.console.plugin.jvm.JvmPluginLoader$BuiltIn.enable(JvmPluginLoader.kt)
	at net.mamoe.mirai.console.plugin.jvm.JvmPluginLoader$BuiltIn.enable(JvmPluginLoader.kt:50)
	at net.mamoe.mirai.console.plugin.PluginManager.enablePlugin(PluginManager.kt:173)
	at net.mamoe.mirai.console.internal.plugin.PluginManagerImpl.enableAllLoadedPlugins$mirai_console(PluginManagerImpl.kt:178)
	at net.mamoe.mirai.console.internal.MiraiConsoleImplementationBridge.doStart$mirai_console(MiraiConsoleImplementationBridge.kt:235)
	at net.mamoe.mirai.console.MiraiConsoleImplementation$Companion.start(MiraiConsoleImplementation.kt:464)
	at net.mamoe.mirai.console.terminal.MiraiConsoleTerminalLoader.startAsDaemon(MiraiConsoleTerminalLoader.kt:168)
	at net.mamoe.mirai.console.terminal.MiraiConsoleTerminalLoader.startAsDaemon$default(MiraiConsoleTerminalLoader.kt:167)
	at net.mamoe.mirai.console.terminal.MiraiConsoleTerminalLoader.main(MiraiConsoleTerminalLoader.kt:52)
Caused by: net.mamoe.mirai.console.permission.PermissionRegistryConflictException: Conflicting Permission registry. new: PermissionImpl(id=xyz.cssxsh.mirai.plugin.mirai-skia-plugin:*, description='The base permission', parent=PermissionImpl(id=*:*, description='The root permission', parent=<self>)), existing: PermissionImpl(id=xyz.cssxsh.mirai.plugin.mirai-skia-plugin:*, description='The base permission', parent=PermissionImpl(id=*:*, description='The root permission', parent=<self>))
	at net.mamoe.mirai.console.internal.permission.AbstractConcurrentPermissionService.register(AbstractConcurrentPermissionService.kt:29)
	at net.mamoe.mirai.console.permission.PermissionService.register$default(PermissionService.kt:101)
	at net.mamoe.mirai.console.internal.plugin.JvmPluginInternal$parentPermission$2.invoke(JvmPluginInternal.kt:52)
	at net.mamoe.mirai.console.internal.plugin.JvmPluginInternal$parentPermission$2.invoke(JvmPluginInternal.kt:51)
	at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
	at net.mamoe.mirai.console.internal.plugin.JvmPluginInternal.getParentPermission(JvmPluginInternal.kt:51)
	at net.mamoe.mirai.console.internal.plugin.JvmPluginInternal.internalOnEnable$mirai_console(JvmPluginInternal.kt:126)
	at net.mamoe.mirai.console.internal.plugin.BuiltInJvmPluginLoaderImpl.enable(BuiltInJvmPluginLoaderImpl.kt:278)
	... 10 more

复现

准备两个id相同的插件 放到 plugins 文件夹,启动 mirai-console

mirai-core 版本

2.12.0

bot-protocol

ANDROID_PHONE

其他组件版本

No response

系统日志

No response

网络日志

No response

补充信息

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    M优先级: 主要s:console子系统: mirai-consolet:bug类型: bug

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions