Fix RESTRICTED_CONSOLE_COMMAND_OWNER

This commit is contained in:
Him188 2020-11-29 16:21:54 +08:00
parent 8a45312788
commit e63775676a
3 changed files with 12 additions and 4 deletions

View File

@ -34,6 +34,7 @@ val COMPOSITE_COMMAND_SUB_COMMAND_FQ_NAME = FqName("net.mamoe.mirai.console.comm
val SIMPLE_COMMAND_HANDLER_COMMAND_FQ_NAME = FqName("net.mamoe.mirai.console.command.SimpleCommand.Handler")
val COMMAND_SENDER_FQ_NAME = FqName("net.mamoe.mirai.console.command.CommandSender")
val CONSOLE_COMMAND_SENDER_FQ_NAME = FqName("net.mamoe.mirai.console.command.ConsoleCommandSender")
val CONSOLE_COMMAND_OWNER_FQ_NAME = FqName("net.mamoe.mirai.console.command.ConsoleCommandOwner")
///////////////////////////////////////////////////////////////////////////
// Plugin

View File

@ -7,9 +7,14 @@ import net.mamoe.mirai.console.command.SimpleCommand
import net.mamoe.mirai.console.data.AutoSavePluginConfig
import net.mamoe.mirai.console.data.value
object MySimpleCommand000 : SimpleCommand(
object MySimpleCommand0001 : SimpleCommand(
ConsoleCommandOwner, "foo",
description = "示例指令"
) {}
object MySimpleCommand000 : SimpleCommand(
MyPluginMain, "foo",
description = "示例指令"
) {
@Handler
suspend fun CommandSender.handle(int: Int, str: String) {

View File

@ -16,7 +16,7 @@ import net.mamoe.mirai.console.compiler.common.diagnostics.MiraiConsoleErrors.IL
import net.mamoe.mirai.console.compiler.common.diagnostics.MiraiConsoleErrors.ILLEGAL_PLUGIN_DESCRIPTION
import net.mamoe.mirai.console.compiler.common.diagnostics.MiraiConsoleErrors.ILLEGAL_VERSION_REQUIREMENT
import net.mamoe.mirai.console.compiler.common.diagnostics.MiraiConsoleErrors.RESTRICTED_CONSOLE_COMMAND_OWNER
import net.mamoe.mirai.console.compiler.common.resolve.COMMAND_SENDER_FQ_NAME
import net.mamoe.mirai.console.compiler.common.resolve.CONSOLE_COMMAND_OWNER_FQ_NAME
import net.mamoe.mirai.console.compiler.common.resolve.ResolveContextKind
import net.mamoe.mirai.console.compiler.common.resolve.resolveContextKinds
import net.mamoe.mirai.console.intellij.resolve.resolveAllCalls
@ -135,10 +135,12 @@ class ContextualParametersChecker : DeclarationChecker {
val expr = argument.getArgumentExpression() ?: return null
if (expr is KtReferenceExpression) {
expr.getResolvedCall(context)?.isCalling(COMMAND_SENDER_FQ_NAME) ?: return null
if (expr.getResolvedCall(context)?.isCalling(CONSOLE_COMMAND_OWNER_FQ_NAME) == true) {
return RESTRICTED_CONSOLE_COMMAND_OWNER.on(inspectionTarget)
}
}
return RESTRICTED_CONSOLE_COMMAND_OWNER.on(inspectionTarget)
return null
}
}