优化指令文档细节

This commit is contained in:
Him188 2022-07-01 00:12:18 +08:00 committed by GitHub
parent 1110a6f3fa
commit 8ef909a306
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -248,9 +248,9 @@ Kotlin 展示。
#### 子指令
`@SubCommand` 标注的函数就是子指令。子指令将隶属于其主指令。注册于主指令 `main` 的名称为 `child`
的指令在执行时需要使用 `/main child`,其中 `/` 表示指令前缀(如果需要)。`/main child arg1 arg2`
中的 `arg1``arg2` 则表示传递给子指令的第一个和第二个参数。
`@SubCommand` 标注的函数就是子指令。子指令将隶属于其主指令。定义于主指令 `main` 的名称为 `child`
指令在执行时需要使用 `/main child`,其中 `/` 表示指令前缀(如果需要)。`/main child arg1 arg2`
中的 `arg1``arg2`分别表示传递给子指令的第一个和第二个参数。
子指令可以拥有多个名称,即 `@SubCommand("child1", "child2")` 可以由 `/main child1`
`/main child2` 执行。
@ -265,14 +265,14 @@ Kotlin 展示。
#### 子指令参数
子指令的第一个参数(在 Kotlin 也可以是接收者(`receiver`))可以是 `CommandContext`
`CommandSender`,用来获取指令执行环境或发送人。与 `RawCommand`
`CommandSender`分别用来获取指令执行环境或发送人。与 `RawCommand`
相同,如果需要使用原消息链,则使用 `CommandContext`,否则使用 `CommandSender` 的可以让实现更简单。
在这个参数以外的就是是子指令的值参数。
值参数将会对应消息链。例如 `@SubCommand fun foo(context: CommandContext, arg: String)`
将会对应 /comp foo
值参数将会对应消息链。例如定义于名称为 `comp``CompositeCommand` 中的子指令 `@SubCommand fun foo(context: CommandContext, arg1: String, arg2: Int)`
在由 `/comp foo str 1` 执行时,`str` 将会传递给 `arg1``1` 将会传递给 `arg2`。将会在下文详细解释此内容。
在 Kotlin子指令既可以是 `suspend` 也可以不是。
在 Kotlin子指令既可以是 `suspend` 也可以不是。子指令在不是挂起函数时可以使用阻塞 IO`File.readText`),因为子指令会在 IO 线程执行。
#### 定义参数