模块 linlang.api

类 CommandOptions

java.lang.Object
api.linlang.command.CommandOptions

public final class CommandOptions extends Object
单条命令的注册选项。

未设置执行目标时默认允许玩家和控制台执行。权限、描述和参数标签均为可选项。 该对象用于收拢命令注册中的附加参数,不改变命令规范与执行器的职责。


 commands.register(
         "rs reload",
         context -> reload(),
         CommandOptions.options()
                 .permission("rainbowedit.reload")
                 .desc(lang.command.reload.description)
 );
 
  • 方法详细资料

    • options

      public static CommandOptions options()
      创建使用默认值的命令选项。
      返回:
      新的命令选项
    • permission

      public CommandOptions permission(String node)
      设置绝对权限节点。
      参数:
      node - 权限节点
      返回:
      当前选项
    • permission

      public CommandOptions permission(LinCommand.Permission permission)
      设置权限要求。

      传入 null 可以清除已经设置的权限。

      参数:
      permission - 权限要求,可为 null
      返回:
      当前选项
    • relativePermission

      public CommandOptions relativePermission(String segment)
      设置相对于命令组权限前缀的权限片段。

      逐条注册没有命令组上下文,此时该片段会作为完整权限节点使用。

      参数:
      segment - 权限片段
      返回:
      当前选项
    • target

      public CommandOptions target(LinCommand.ExecTarget target)
      设置允许执行命令的发送者类型。
      参数:
      target - 执行目标
      返回:
      当前选项
    • player

      public CommandOptions player()
      限制命令只能由玩家执行。
      返回:
      当前选项
    • console

      public CommandOptions console()
      限制命令只能由控制台执行。
      返回:
      当前选项
    • all

      public CommandOptions all()
      允许玩家和控制台执行命令。
      返回:
      当前选项
    • desc

      public CommandOptions desc(LangText text)
      设置语言字段引用形式的命令描述。
      参数:
      text - 命令描述
      返回:
      当前选项
    • desc

      public CommandOptions desc(TextSource text)
      设置可解析为高级文本的动态命令描述。
      参数:
      text - 命令描述来源
      返回:
      当前选项
    • descProvider

      public CommandOptions descProvider(LinCommand.I18nSupplier provider)
      设置自定义的延迟命令描述提供者。
      参数:
      provider - 描述提供者,可为 null
      返回:
      当前选项
    • label

      public CommandOptions label(String name, LangText text)
      设置语言字段引用形式的参数标签。
      参数:
      name - 命令规范中的参数名
      text - 参数标签
      返回:
      当前选项
    • label

      public CommandOptions label(String name, TextSource text)
      设置动态参数标签;帮助与补全会使用其纯文本结果。
      参数:
      name - 命令规范中的参数名
      text - 参数标签来源
      返回:
      当前选项
    • labelProvider

      public CommandOptions labelProvider(String name, LinCommand.I18nSupplier provider)
      设置自定义的延迟参数标签提供者。
      参数:
      name - 命令规范中的参数名
      provider - 参数标签提供者
      返回:
      当前选项
    • i18n

      public CommandOptions i18n(LangText description)
      只设置命令描述。
      参数:
      description - 命令描述
      返回:
      当前选项
    • i18n

      public CommandOptions i18n(LangText description, String name, LangText text)
      设置命令描述和一个参数标签。
      参数:
      description - 命令描述
      name - 命令规范中的参数名
      text - 参数标签
      返回:
      当前选项
    • i18n

      public CommandOptions i18n(LangText description, String name, LangText text, Object... additionalLabels)
      设置命令描述和多个参数标签。

      additionalLabels 在第一组标签之后,继续按“参数名、语言字段”成对排列。

      
       options.i18n(text.set, "idx", text.line, "text", text.text);
       
      参数:
      description - 命令描述
      name - 第一个参数名
      text - 第一个参数标签
      additionalLabels - 其余参数名和语言字段
      返回:
      当前选项
      抛出:
      IllegalArgumentException - 其余标签不是完整键值对或类型不正确时
    • permission

      public LinCommand.Permission permission()
      返回:
      权限要求,可为 null
    • target

      public LinCommand.ExecTarget target()
      返回:
      执行目标
    • description

      public LinCommand.I18nSupplier description()
      返回:
      命令描述提供者,可为 null
    • richDescription

      public TextSource richDescription()
      返回高级文本形式的命令描述来源。
      返回:
      描述来源;使用普通提供者或未设置描述时为 null
    • labels

      返回:
      不可修改的参数标签映射
    • richLabels

      public Map<String,TextSource> richLabels()
      返回高级文本形式的参数标签快照。
      返回:
      不可修改的参数标签映射