@orisland 如果在注解值里面用成员变量, 会提示Error: An annotation argument must be a compile-time constant
, 我以前没怎么用过注解的值, 不知道这个只能用常量(. 不过也没其他方法给子命令设置别名了.
如果用SimpleCommand
, 然后用一个参数表示子命令倒也能达到效果. 不过我另一个帖子有提到那个命令默认给了所有人权限, 不知道怎么取消这个, 默认给所有人权限的话就没法用权限系统了.
P
popjdh 发布的最佳帖子
-
RE: 请教一个自定义子命令别名的问题
popjdh 发布的最新帖子
-
RE: 请教一个自定义子命令别名的问题
@orisland 如果在注解值里面用成员变量, 会提示
Error: An annotation argument must be a compile-time constant
, 我以前没怎么用过注解的值, 不知道这个只能用常量(. 不过也没其他方法给子命令设置别名了.
如果用SimpleCommand
, 然后用一个参数表示子命令倒也能达到效果. 不过我另一个帖子有提到那个命令默认给了所有人权限, 不知道怎么取消这个, 默认给所有人权限的话就没法用权限系统了. -
RE: 请教一个自定义子命令别名的问题
@karlatemp 这个我已经了解了,那有没有别的方法给子命令设置别名,类似
secondaryNames = CommandConfig.config
这样的 -
RE: 请教一个自定义子命令别名的问题
@orisland 如果注解的值是字面量肯定没问题,就是想把一个成员变量放进去,这样就能在配置文件里面修改子命令的名称,不用重新编译一遍_(:з」∠)_
-
请教一个自定义子命令别名的问题
在
CompositeCommand
中, 主指令可以在使用object
类型的成员变量作为别名, 而子命令的别名是使用注解的参数的形式传入的, 那怎么自定义子命令的名称呢?object ConfigCommand: CompositeCommand( SetuPlugin, primaryName = "/Setu-Config", secondaryNames = CommandConfig.config ) { @SubCommand(value = CommandConfig.configGet) //error suspend fun CommandSender.get() { } }
如上是我的代码片段,
CommandConfig
为object
类型并继承了AutoSavePluginConfig
.CommandConfig.config
和CommandConfig.configGet
均为有默认值的字符串数组