mirror of
https://github.com/mamoe/mirai.git
synced 2025-04-24 20:43:33 +08:00
修复反射用法
This commit is contained in:
parent
db5d0b327c
commit
1851e267a3
mirai-console/backend/mirai-console
@ -106,9 +106,7 @@ public abstract class CompositeCommand(
|
||||
|
||||
@ExperimentalCommandDescriptors
|
||||
public final override val overloads: List<@JvmWildcard CommandSignatureFromKFunction> by lazy {
|
||||
reflector.findSubCommands().also {
|
||||
reflector.validate(it)
|
||||
}
|
||||
overloadImpls
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -354,8 +354,10 @@ internal class CommandReflector(
|
||||
val fromMemberProperties = command::class.declaredMemberProperties
|
||||
.asSequence()
|
||||
.filter { it.isSubCommandProperty() }
|
||||
.filterIsInstance(CompositeCommand::class.java)
|
||||
.map { it.getter.call(command) }
|
||||
.filter { it is CompositeCommand }
|
||||
.flatMap { property ->
|
||||
property as CompositeCommand
|
||||
property.overloadImpls
|
||||
}.toList()
|
||||
|
||||
|
@ -39,20 +39,14 @@ class TestParentCompositeCommand : CompositeCommand(
|
||||
"testParentComposite", "tsPC"
|
||||
) {
|
||||
|
||||
class ChildCompositeCommand1 : CompositeCommand(
|
||||
owner,
|
||||
"testChildComposite1", "tsCC1"
|
||||
) {
|
||||
class ChildCompositeCommand1 : CompositeCommand(owner, "useless") {
|
||||
@SubCommand
|
||||
fun foo(seconds: Int) {
|
||||
Testing.ok(seconds)
|
||||
}
|
||||
}
|
||||
|
||||
class ChildCompositeCommand2 : CompositeCommand(
|
||||
owner,
|
||||
"testChildComposite2", "tsCC2"
|
||||
) {
|
||||
class ChildCompositeCommand2 : CompositeCommand(owner, "useless") {
|
||||
@SubCommand
|
||||
fun bar(seconds: Int) {
|
||||
Testing.ok(seconds)
|
||||
@ -546,24 +540,13 @@ internal class InstanceTestCommand : AbstractConsoleInstanceTest() {
|
||||
fun `parent composite command executing`() = runBlocking {
|
||||
parentCompositeCommand.withRegistration {
|
||||
assertEquals(1, withTesting {
|
||||
assertSuccess(
|
||||
parentCompositeCommand.execute(sender, "parentFoo 1")
|
||||
)
|
||||
assertSuccess(parentCompositeCommand.execute(sender, "parentFoo 1"))
|
||||
})
|
||||
assertEquals(1, withTesting {
|
||||
assertSuccess(
|
||||
parentCompositeCommand.execute(sender, "parentBar 1")
|
||||
)
|
||||
assertSuccess(parentCompositeCommand.execute(sender, "parentBar 1"))
|
||||
})
|
||||
assertEquals(1, withTesting {
|
||||
assertSuccess(
|
||||
parentCompositeCommand.execute(sender, "foo 1")
|
||||
)
|
||||
})
|
||||
assertEquals(1, withTesting {
|
||||
assertSuccess(
|
||||
parentCompositeCommand.execute(sender, "foo 1")
|
||||
)
|
||||
assertEquals(2, withTesting {
|
||||
assertSuccess(parentCompositeCommand.execute(sender, "foo 2"))
|
||||
})
|
||||
assertEquals(2, withTesting {
|
||||
assertSuccess(parentCompositeCommand.execute(sender, "bar 2"))
|
||||
|
Loading…
Reference in New Issue
Block a user