Quellcode durchsuchen

rename "display" parameter to "name" in Argument annotation

00ll00 vor 5 Jahren
Ursprung
Commit
6c3f8b23b8

+ 8 - 1
src/main/kotlin/bot_luo_core/cli/ArgHandler.kt

@@ -1,6 +1,7 @@
 package bot_luo_core.cli
 
-import kotlin.jvm.Throws
+import bot_luo_core.cli.exceptions.HandlerFatal
+import bot_luo_core.cli.exceptions.SyntaxError
 import kotlin.reflect.KType
 
 interface ArgHandler<T> {
@@ -12,6 +13,12 @@ interface ArgHandler<T> {
     val multiValued: Boolean get() = false
     val name: String
 
+    /**
+     * @throws HandlerFatal (主要)当读入的内容无法转换到需要的格式时抛出。
+     *  HandlerFatal提供的信息较简略
+     * @throws SyntaxError  (次要)当分析输入时发生语法错误时抛出。
+     *  SyntaxError可以提供详细的语法错误信息
+     */
     fun handle(
         reader: MessageReader,
         pos: Int = -1,

+ 1 - 0
src/main/kotlin/bot_luo_core/cli/CmdCatalog.kt

@@ -18,6 +18,7 @@ object CmdCatalog {
         //注册内建命令
         registerCmd(
             AnnounceCmd::class,
+            DataCmd::class,
             ControlCmd::class,
             DebugCmd::class,
             DumpFileCmd::class,

+ 1 - 1
src/main/kotlin/bot_luo_core/cli/CmdExecutable.kt

@@ -95,7 +95,7 @@ class CmdExecutable(private val cmd: KClass<out Cmd>, private val meth: KFunctio
 }
 
 fun formatParameter(arg: Argument): String {
-    var p = arg.display
+    var p = arg.name
     if (arg.multiValued) p += "..."
     if (!arg.literal) p = "<$p>"
     if (!arg.required) p = "[$p]"

+ 4 - 2
src/main/kotlin/bot_luo_core/cli/CmdHandler.kt

@@ -69,7 +69,7 @@ object CmdHandler {
                 context.sendOutputWithLog(At(context.user.id) + e.output)
             }
         } catch (e: Exception) {
-            context.sendOutputWithLog("发生异常:${e::class.simpleName}\n${e.message}".toPlainText())
+            context.sendOutputWithLog("发生异常:${e::class.simpleName}".toPlainText())
         }
         when (context.uploadOutputFile) {
             0 -> {
@@ -152,9 +152,9 @@ object CmdHandler {
                     context.uploadOutputFile = maxOf(context.uploadOutputFile, res.uploadOutputFile)
                 } catch (e: Exception) {
                     when(e) {
-                        is CliException -> throw e
                         is InvocationTargetException -> {
                             when(e.targetException) {
+                                is CliException -> throw e  //命令内部抛出的CliException,跳过命令匹配
                                 //不重要的异常
                                 is TimeoutCancellationException,
                                     -> throw CmdExecutingWarn(e.targetException)
@@ -169,6 +169,8 @@ object CmdHandler {
                     Logger.log(cmd, context, "命令退出")
                 }
                 return
+            } catch (e: InvocationTargetException) {    //此时目标异常一定是Cli异常
+                throw e.targetException
             } catch (e: CmdParseFatal) {
                 parseFatal.add(e)
             } catch (e: CheckerFatal) {

+ 8 - 6
src/main/kotlin/bot_luo_core/cli/CmdParser.kt

@@ -2,6 +2,7 @@ package bot_luo_core.cli
 
 import bot_luo_core.cli.annotation.Argument
 import bot_luo_core.cli.exceptions.*
+import bot_luo_core.cli.handlers.LiteralArgHandler
 import bot_luo_core.data.Config.CMD_PREFIX
 import net.mamoe.mirai.message.data.content
 import net.mamoe.mirai.message.data.isContentEmpty
@@ -50,14 +51,15 @@ class CmdParser(private val reader: MessageReader) {
     fun parse(param: Argument, targetType: KType, context: CmdContext): Any? {
         reader.skipWhitespace()
         val pos = reader.getCursor()
-
-        val ins = param.handler.createInstance()
         if (reader.canRead()) {
-            if (param.multiValued) {
+            val ins = param.handler.createInstance()
+            if (param.literal) {
+                return LiteralArgHandler().handle(reader, pos, param.name, targetType, context)
+            } else if (param.multiValued) {
                 val res = ArrayList<Any?>()
                 if (reader.isMultipleStringStart(reader.peek())) {
                     for (m in reader.readMultipleMessage()) {
-                        val value = ins.handle(MessageReader(m), pos, param.display, targetType.arguments[0].type, context)
+                        val value = ins.handle(MessageReader(m), pos, param.name, targetType.arguments[0].type, context)
                         if (ins.multiValued) {
                             res.addAll(value as Collection<Any?>)
                         } else {
@@ -65,7 +67,7 @@ class CmdParser(private val reader: MessageReader) {
                         }
                     }
                 } else {
-                    val value = ins.handle(reader, pos, param.display, targetType.arguments[0].type, context)
+                    val value = ins.handle(reader, pos, param.name, targetType.arguments[0].type, context)
                     if (ins.multiValued) {
                         res.addAll(value as Collection<Any?>)
                     } else {
@@ -74,7 +76,7 @@ class CmdParser(private val reader: MessageReader) {
                 }
                 return res
             } else {
-                return ins.handle(reader, pos, param.display, targetType, context)
+                return ins.handle(reader, pos, param.name, targetType, context)
             }
         } else if (!param.required) {
             return null

+ 6 - 1
src/main/kotlin/bot_luo_core/cli/annotation/Argument.kt

@@ -8,7 +8,7 @@ annotation class Argument (
     /**
      * 显示名称,用于命令参数格式化显示
      */
-    val display: String,
+    val name: String,
 
     /**
      * 是否为多值参数
@@ -21,6 +21,11 @@ annotation class Argument (
 
     /**
      * 是否为字面参数
+     *
+     * 若为字面量,则其[handler]可以不用定义,将自动使用[bot_luo_core.cli.handlers.LiteralArgHandler];
+     * [multiValued]无效
+     *
+     * 参数定义时类型可设为[Any]
      */
     val literal: Boolean = false,
 

+ 12 - 14
src/main/kotlin/bot_luo_core/cli/commands/AnnounceCmd.kt

@@ -12,8 +12,6 @@ import bot_luo_core.data.Group
 import bot_luo_core.util.TableBuilder
 import kotlinx.coroutines.delay
 import net.mamoe.mirai.contact.MemberPermission
-import net.mamoe.mirai.contact.PermissionDeniedException
-import net.mamoe.mirai.contact.announcement.Announcement
 import net.mamoe.mirai.contact.announcement.Announcement.Companion.publishAnnouncement
 import net.mamoe.mirai.contact.announcement.AnnouncementParametersBuilder
 import net.mamoe.mirai.message.data.Image
@@ -47,13 +45,13 @@ class AnnounceCmd(context: CmdContext) : Cmd(context) {
 
     @Method(name = "", alias = [], pmsLevel = CmdPermissionLevel.OP, order = 0)
     suspend fun announce (
-        @Argument(display = "群组", multiValued = true, handler = MultiGroupArgHandler::class)
+        @Argument(name = "群组", multiValued = true, handler = MultiGroupArgHandler::class)
         groups: ArrayList<Group>,
-        @Argument(display = "公告选项", handler = AnnouncementParametersArgHandler::class)
+        @Argument(name = "公告选项", handler = AnnouncementParametersArgHandler::class)
         builder: AnnouncementParametersBuilder,
-        @Argument(display = "头图", handler = ImageArgHandler::class)
+        @Argument(name = "头图", handler = ImageArgHandler::class)
         image: Image?,
-        @Argument(display = "文本", handler = GreedyStringArgHandler::class)
+        @Argument(name = "文本", handler = GreedyStringArgHandler::class)
         content: String
     ): CmdReceipt {
 
@@ -108,29 +106,29 @@ class AnnounceCmd(context: CmdContext) : Cmd(context) {
 
     @Method(name = "", alias = [], pmsLevel = CmdPermissionLevel.OP, order = 1)
     suspend fun announce (
-        @Argument(display = "群组", multiValued = true, handler = MultiGroupArgHandler::class)
+        @Argument(name = "群组", multiValued = true, handler = MultiGroupArgHandler::class)
         groups: ArrayList<Group>,
-        @Argument(display = "公告选项", handler = AnnouncementParametersArgHandler::class)
+        @Argument(name = "公告选项", handler = AnnouncementParametersArgHandler::class)
         builder: AnnouncementParametersBuilder,
-        @Argument(display = "文本", handler = GreedyStringArgHandler::class)
+        @Argument(name = "文本", handler = GreedyStringArgHandler::class)
         content: String
     ): CmdReceipt = announce(groups, builder, null, content)
 
     @Method(name = "", alias = [], pmsLevel = CmdPermissionLevel.OP, order = 2)
     suspend fun announce (
-        @Argument(display = "群组", multiValued = true, handler = MultiGroupArgHandler::class)
+        @Argument(name = "群组", multiValued = true, handler = MultiGroupArgHandler::class)
         groups: ArrayList<Group>,
-        @Argument(display = "头图", handler = ImageArgHandler::class)
+        @Argument(name = "头图", handler = ImageArgHandler::class)
         image: Image,
-        @Argument(display = "文本", handler = GreedyStringArgHandler::class)
+        @Argument(name = "文本", handler = GreedyStringArgHandler::class)
         content: String
     ): CmdReceipt = announce(groups, AnnouncementParametersBuilder(), image, content)
 
     @Method(name = "", alias = [], pmsLevel = CmdPermissionLevel.OP, order = 3)
     suspend fun announce (
-        @Argument(display = "群组", multiValued = true, handler = MultiGroupArgHandler::class)
+        @Argument(name = "群组", multiValued = true, handler = MultiGroupArgHandler::class)
         groups: ArrayList<Group>,
-        @Argument(display = "文本", handler = GreedyStringArgHandler::class)
+        @Argument(name = "文本", handler = GreedyStringArgHandler::class)
         content: String
     ): CmdReceipt = announce(groups, AnnouncementParametersBuilder(), null, content)
 }

+ 1 - 1
src/main/kotlin/bot_luo_core/cli/commands/DumpFileCmd.kt

@@ -23,7 +23,7 @@ class DumpFileCmd(context: CmdContext) : Cmd(context) {
     @Throws(CliException::class)
     @Method(name = "", alias = [], pmsLevel = CmdPermissionLevel.OP)
     fun dump (
-        @Argument(display = "命令", handler = GreedyMessageArgHandler::class)
+        @Argument(name = "命令", handler = GreedyMessageArgHandler::class)
         cmd: MessageChain
     ): CmdReceipt { with(context) {
         val sub = context.fork(reader = MessageReader(cmd))

+ 1 - 2
src/main/kotlin/bot_luo_core/cli/commands/HelpCmd.kt

@@ -6,7 +6,6 @@ import bot_luo_core.cli.annotation.Command
 import bot_luo_core.cli.annotation.Method
 import bot_luo_core.cli.checkers.GroupCmdWorkingChecker
 import bot_luo_core.cli.checkers.GroupPermissionChecker
-import bot_luo_core.cli.checkers.PermissionChecker
 import bot_luo_core.cli.checkers.UserCmdWorkingChecker
 import bot_luo_core.cli.exceptions.CheckerFatal
 import bot_luo_core.cli.handlers.CmdExArgHandler
@@ -49,7 +48,7 @@ class HelpCmd(context: CmdContext) : Cmd(context) {
 
     @Method(name = "cmd", alias = ["c"], pmsLevel = CmdPermissionLevel.NORMAL)
     suspend fun helpCmd(
-        @Argument(display = "命令", required = true, handler = CmdExArgHandler::class)
+        @Argument(name = "命令", required = true, handler = CmdExArgHandler::class)
         cmds: List<CmdExecutable>
     ): CmdReceipt {
 

+ 6 - 6
src/main/kotlin/bot_luo_core/cli/commands/PermissionCmd.kt

@@ -26,7 +26,7 @@ class PermissionCmd(context: CmdContext) : Cmd(context) {
 
     @Method(name = "",alias = ["get-group","gg","g"],pmsLevel = CmdPermissionLevel.OP,title = "查看群组")
     fun getG(
-        @Argument(display = "群组", required = false, handler = GroupArgHandler::class)
+        @Argument(name = "群组", required = false, handler = GroupArgHandler::class)
         groupIn: Group?
     ): CmdReceipt {
         val group = groupIn?: context.group
@@ -39,7 +39,7 @@ class PermissionCmd(context: CmdContext) : Cmd(context) {
 
     @Method(name = "get-user",alias = ["gu","u"],pmsLevel = CmdPermissionLevel.OP,title = "查看用户")
     fun getU(
-        @Argument(display = "用户", required = false, handler = UserArgHandler::class)
+        @Argument(name = "用户", required = false, handler = UserArgHandler::class)
         userIn: User?
     ): CmdReceipt {
         val user = userIn?: context.user
@@ -54,9 +54,9 @@ class PermissionCmd(context: CmdContext) : Cmd(context) {
 
     @Method(name = "set-group",alias = ["sg"],pmsLevel = CmdPermissionLevel.OP,title = "设置群组")
     suspend fun setG(
-        @Argument(display = "权限组", handler = PmsGroupArgHandler::class)
+        @Argument(name = "权限组", handler = PmsGroupArgHandler::class)
         pms: PmsGroup,
-        @Argument(display = "群组", required = false, multiValued = true, handler = MultiGroupArgHandler::class)
+        @Argument(name = "群组", required = false, multiValued = true, handler = MultiGroupArgHandler::class)
         groupsIn: ArrayList<Group>?
     ): CmdReceipt {
         val groups = groupsIn?: arrayListOf(context.group)
@@ -72,9 +72,9 @@ class PermissionCmd(context: CmdContext) : Cmd(context) {
 
     @Method(name = "set-user",alias = ["su"],pmsLevel = CmdPermissionLevel.OP,title = "设置用户")
     suspend fun setU(
-        @Argument(display = "权限组", handler = PmsGroupArgHandler::class)
+        @Argument(name = "权限组", handler = PmsGroupArgHandler::class)
         pms: PmsGroup,
-        @Argument(display = "用户", required = false, multiValued = true, handler = MultiUserArgHandler::class)
+        @Argument(name = "用户", required = false, multiValued = true, handler = MultiUserArgHandler::class)
         usersIn: ArrayList<User>?
     ): CmdReceipt {
         val users = usersIn?: arrayListOf(context.user)

+ 1 - 1
src/main/kotlin/bot_luo_core/cli/commands/SayCmd.kt

@@ -25,7 +25,7 @@ class SayCmd(context: CmdContext) : Cmd(context) {
 
     @Method(name = "", alias = [], pmsLevel = CmdPermissionLevel.OP )
     suspend fun say (
-        @Argument(display = "消息", handler = GreedyMessageArgHandler::class)
+        @Argument(name = "消息", handler = GreedyMessageArgHandler::class)
         msg: MessageChain
     ): CmdReceipt { with(context) {
 

+ 12 - 12
src/main/kotlin/bot_luo_core/cli/commands/SwitchCmd.kt

@@ -26,9 +26,9 @@ class SwitchCmd(context: CmdContext) : Cmd(context) {
     @Method(name = "",alias = ["show"],pmsLevel = CmdPermissionLevel.OP,order = 0,ignoreCheckers = [GroupCmdWorkingChecker::class],
     title = "查看", usage = "获取命令是否开启")
     fun show(
-        @Argument(display = "命令", handler = CmdIdArgHandler::class, multiValued = true)
+        @Argument(name = "命令", handler = CmdIdArgHandler::class, multiValued = true)
         ids: ArrayList<String>,
-        @Argument(display = "群组", handler = GroupArgHandler::class, required = false)
+        @Argument(name = "群组", handler = GroupArgHandler::class, required = false)
         groupIn: Group?
     ): CmdReceipt {
         val group = groupIn?: context.group
@@ -44,9 +44,9 @@ class SwitchCmd(context: CmdContext) : Cmd(context) {
 
     @Method(name = "",alias = ["show"],pmsLevel = CmdPermissionLevel.OP,order = 0,ignoreCheckers = [GroupCmdWorkingChecker::class])
     fun show(
-        @Argument(display = "群组", handler = GroupArgHandler::class)
+        @Argument(name = "群组", handler = GroupArgHandler::class)
         groupIn: Group,
-        @Argument(display = "命令", handler = CmdIdArgHandler::class, multiValued = true)
+        @Argument(name = "命令", handler = CmdIdArgHandler::class, multiValued = true)
         ids: ArrayList<String>
     ) = show(ids, groupIn)
 
@@ -54,9 +54,9 @@ class SwitchCmd(context: CmdContext) : Cmd(context) {
 
     @Method(name = "on",pmsLevel = CmdPermissionLevel.OP,order = 0,ignoreCheckers = [GroupCmdWorkingChecker::class])
     fun on(
-        @Argument(display = "命令", handler = CmdIdArgHandler::class, multiValued = true)
+        @Argument(name = "命令", handler = CmdIdArgHandler::class, multiValued = true)
         ids: ArrayList<String>,
-        @Argument(display = "群组", handler = GroupArgHandler::class, required = false)
+        @Argument(name = "群组", handler = GroupArgHandler::class, required = false)
         groupIn: Group?
     ): CmdReceipt {
         val group = groupIn?: context.group
@@ -74,9 +74,9 @@ class SwitchCmd(context: CmdContext) : Cmd(context) {
 
     @Method(name = "on",pmsLevel = CmdPermissionLevel.OP,order = 0,ignoreCheckers = [GroupCmdWorkingChecker::class])
     fun on(
-        @Argument(display = "群组", handler = GroupArgHandler::class)
+        @Argument(name = "群组", handler = GroupArgHandler::class)
         groupIn: Group,
-        @Argument(display = "命令", handler = CmdIdArgHandler::class, multiValued = true)
+        @Argument(name = "命令", handler = CmdIdArgHandler::class, multiValued = true)
         ids: ArrayList<String>
     ) = on (ids, groupIn)
 
@@ -84,9 +84,9 @@ class SwitchCmd(context: CmdContext) : Cmd(context) {
 
     @Method(name = "off",pmsLevel = CmdPermissionLevel.OP,order = 0,ignoreCheckers = [GroupCmdWorkingChecker::class])
     fun off(
-        @Argument(display = "命令", handler = CmdIdArgHandler::class, multiValued = true)
+        @Argument(name = "命令", handler = CmdIdArgHandler::class, multiValued = true)
         ids: ArrayList<String>,
-        @Argument(display = "群组", handler = GroupArgHandler::class, required = false)
+        @Argument(name = "群组", handler = GroupArgHandler::class, required = false)
         groupIn: Group?
     ): CmdReceipt {
         val group = groupIn?: context.group
@@ -104,9 +104,9 @@ class SwitchCmd(context: CmdContext) : Cmd(context) {
 
     @Method(name = "off",pmsLevel = CmdPermissionLevel.OP,order = 0,ignoreCheckers = [GroupCmdWorkingChecker::class])
     fun off(
-        @Argument(display = "群组", handler = GroupArgHandler::class)
+        @Argument(name = "群组", handler = GroupArgHandler::class)
         groupIn: Group,
-        @Argument(display = "命令", handler = CmdIdArgHandler::class, multiValued = true)
+        @Argument(name = "命令", handler = CmdIdArgHandler::class, multiValued = true)
         ids: ArrayList<String>
     ) = off (ids, groupIn)
 }

+ 18 - 18
src/main/kotlin/bot_luo_core/cli/commands/TagCmd.kt

@@ -38,9 +38,9 @@ class TagCmd(context: CmdContext) : Cmd(context) {
 
     @Method(name = "group-add", alias = ["ga"], pmsLevel = CmdPermissionLevel.OP, title = "添加群组标签", order = 0)
     suspend fun groupAdd(
-        @Argument(display = "被操作标签", handler = TagArgHandler::class)
+        @Argument(name = "被操作标签", handler = TagArgHandler::class)
         tag: String,
-        @Argument(display = "待加入标签", handler = TagArgHandler::class, multiValued = true)
+        @Argument(name = "待加入标签", handler = TagArgHandler::class, multiValued = true)
         tagIn: ArrayList<String>
     ): CmdReceipt {
         if (tag in BUILTIN_GROUP_TAGS) {
@@ -68,9 +68,9 @@ class TagCmd(context: CmdContext) : Cmd(context) {
 
     @Method(name = "group-add", alias = ["ga"], pmsLevel = CmdPermissionLevel.OP, title = "添加群组标签", order = 1)
     suspend fun groupAdd1(
-        @Argument(display = "被操作标签", handler = TagArgHandler::class)
+        @Argument(name = "被操作标签", handler = TagArgHandler::class)
         tag: String,
-        @Argument(display = "待加入群组", handler = GroupArgHandler::class, multiValued = true)
+        @Argument(name = "待加入群组", handler = GroupArgHandler::class, multiValued = true)
         groupIn: ArrayList<Group>
     ): CmdReceipt {
         if (tag in BUILTIN_GROUP_TAGS) {
@@ -98,9 +98,9 @@ class TagCmd(context: CmdContext) : Cmd(context) {
 
     @Method(name = "user-add", alias = ["ua"], pmsLevel = CmdPermissionLevel.OP, title = "添加用户标签", order = 0)
     suspend fun userAdd(
-        @Argument(display = "被操作标签", handler = TagArgHandler::class)
+        @Argument(name = "被操作标签", handler = TagArgHandler::class)
         tag: String,
-        @Argument(display = "待加入标签", handler = TagArgHandler::class, multiValued = true)
+        @Argument(name = "待加入标签", handler = TagArgHandler::class, multiValued = true)
         tagIn: ArrayList<String>
     ): CmdReceipt {
         if (tag in BUILTIN_USER_TAGS) {
@@ -128,9 +128,9 @@ class TagCmd(context: CmdContext) : Cmd(context) {
 
     @Method(name = "user-add", alias = ["ua"], pmsLevel = CmdPermissionLevel.OP, title = "添加用户标签", order = 1)
     suspend fun userAdd1(
-        @Argument(display = "被操作标签", handler = TagArgHandler::class)
+        @Argument(name = "被操作标签", handler = TagArgHandler::class)
         tag: String,
-        @Argument(display = "待加入用户", handler = UserArgHandler::class, multiValued = true)
+        @Argument(name = "待加入用户", handler = UserArgHandler::class, multiValued = true)
         userIn: ArrayList<User>
     ): CmdReceipt {
         if (tag in BUILTIN_GROUP_TAGS) {
@@ -160,7 +160,7 @@ class TagCmd(context: CmdContext) : Cmd(context) {
 
     @Method(name = "group-list", alias = ["gl"], pmsLevel = CmdPermissionLevel.OP, title = "列出群组标签")
     fun groupList(
-        @Argument(display = "标签", handler = TagArgHandler::class, required = false)
+        @Argument(name = "标签", handler = TagArgHandler::class, required = false)
         tag: String?
     ): CmdReceipt {
         val table = TableBuilder(4)
@@ -186,7 +186,7 @@ class TagCmd(context: CmdContext) : Cmd(context) {
 
     @Method(name = "user-list", alias = ["ul"], pmsLevel = CmdPermissionLevel.OP, title = "列出用户标签")
     fun userList(
-        @Argument(display = "标签", handler = TagArgHandler::class, required = false)
+        @Argument(name = "标签", handler = TagArgHandler::class, required = false)
         tag: String?
     ): CmdReceipt {
         val table = TableBuilder(4)
@@ -214,7 +214,7 @@ class TagCmd(context: CmdContext) : Cmd(context) {
 
     @Method(name = "group-tree", alias = ["gt"], pmsLevel = CmdPermissionLevel.OP, title = "展开群组标签")
     fun groupTree(
-        @Argument(display = "标签", handler = TagArgHandler::class)
+        @Argument(name = "标签", handler = TagArgHandler::class)
         tag: String
     ): CmdReceipt {
         val table = TableBuilder(1)
@@ -226,7 +226,7 @@ class TagCmd(context: CmdContext) : Cmd(context) {
 
     @Method(name = "user-tree", alias = ["ut"], pmsLevel = CmdPermissionLevel.OP, title = "展开用户标签")
     fun userTree(
-        @Argument(display = "标签", handler = TagArgHandler::class)
+        @Argument(name = "标签", handler = TagArgHandler::class)
         tag: String
     ): CmdReceipt {
         val table = TableBuilder(1)
@@ -240,7 +240,7 @@ class TagCmd(context: CmdContext) : Cmd(context) {
 
     @Method(name = "group-remove", alias = ["gr"], pmsLevel = CmdPermissionLevel.OP, title = "删除群组标签", order = 0)
     suspend fun groupRem(
-        @Argument(display = "待删除标签", handler = TagArgHandler::class)
+        @Argument(name = "待删除标签", handler = TagArgHandler::class)
         tag: String
     ): CmdReceipt {
         if (tag in BUILTIN_GROUP_TAGS) {
@@ -267,7 +267,7 @@ class TagCmd(context: CmdContext) : Cmd(context) {
 
     @Method(name = "user-remove", alias = ["ur"], pmsLevel = CmdPermissionLevel.OP, title = "删除用户标签", order = 0)
     suspend fun userRem(
-        @Argument(display = "待删除标签", handler = TagArgHandler::class)
+        @Argument(name = "待删除标签", handler = TagArgHandler::class)
         tag: String
     ): CmdReceipt {
         if (tag in BUILTIN_USER_TAGS) {
@@ -294,9 +294,9 @@ class TagCmd(context: CmdContext) : Cmd(context) {
 
     @Method(name = "group-remove", alias = ["gr"], pmsLevel = CmdPermissionLevel.OP, title = "移除群组标签", order = 1)
     suspend fun groupRem(
-        @Argument(display = "被操作标签", handler = TagArgHandler::class)
+        @Argument(name = "被操作标签", handler = TagArgHandler::class)
         tag: String,
-        @Argument(display = "待移除群组或标签", multiValued = true)
+        @Argument(name = "待移除群组或标签", multiValued = true)
         itemsIn: ArrayList<String>
     ): CmdReceipt {
         if (tag in BUILTIN_GROUP_TAGS) {
@@ -319,9 +319,9 @@ class TagCmd(context: CmdContext) : Cmd(context) {
 
     @Method(name = "group-remove", alias = ["gr"], pmsLevel = CmdPermissionLevel.OP, title = "移除群组标签", order = 1)
     suspend fun userRem(
-        @Argument(display = "被操作标签", handler = TagArgHandler::class)
+        @Argument(name = "被操作标签", handler = TagArgHandler::class)
         tag: String,
-        @Argument(display = "待移除用户或标签", multiValued = true)
+        @Argument(name = "待移除用户或标签", multiValued = true)
         itemsIn: ArrayList<String>
     ): CmdReceipt {
         if (tag in BUILTIN_GROUP_TAGS) {