/// /** * ### 🎯 指令对象 * * 通过对接 BDS 内置的命令系统,你注册的命令可以由玩家、控制台、命令方块、NPC等各种游戏中可以执行命令的对象所使用,\ * 在 addon 中,也可以使用这里所注册的命令。 * * 通过指令对象,你可以为这个命令注册各式各样的形式、功能。 * * 该类**没有构造函数**,请使用{@linkcode mc.newCommand()}创建 * * @see [🎯 命令注册API](https://docs.litebds.com/zh-Hans/#/LLSEPluginDevelopment/GameAPI/Command) */ declare class Command { readonly name: string; readonly registered: boolean; /** * ### 设置指令别名 * * @param alias 指令别名 * * @returns 是否成功设置 */ setAlias(alias: string): boolean; /** * ### 新增一个指令枚举选项 * * @param name 枚举名,用于设置参数时区分枚举 * @param values 枚举的有效值 * * @returns 是否成功设置 */ setEnum(name: string, values: Array): boolean; /** * ### 新增一个必选参数 * * @param name 参数名,用于执行指令时识别参数 * @param type 命令参数类型 * @param enumName 枚举名(仅 `ParamType` 为 `Enum` 时有效,用于区分枚举选项) * @param identifier 参数标识,特殊情况下用于唯一识别参数,一般可用 `enumName` 或 `name` 代替 * @param enumOptions 参数选项,设置为 `1` 可在指令提示中展开枚举选项,如 `` 会变成 `` * * @returns 是否成功设置 */ mandatory( name: string, type: ParamType, enumName?: string, enumOptions?: number ): boolean; mandatory( name: string, type: ParamType, enumName?: string, identifier?: string, enumOptions?: number ): boolean; /** * ### 新增一个可选参数 * * @param name 参数名,用于执行指令时识别参数 * @param type 命令参数类型 * @param enumName 枚举名(仅 `ParamType` 为 `Enum` 时有效,用于区分枚举选项) * @param identifier 参数标识,特殊情况下用于唯一识别参数,一般可用 `enumName` 或 `name` 代替 * @param enumOptions 参数选项,设置为 `1` 可在指令提示中展开枚举选项,如 `` 会变成 `` * * @returns 是否成功设置 */ optional( name: string, type: ParamType, enumName?: string, identifier?: string, enumOptions?: number ): boolean; setSoftEnum(arg1: string, arg2: Array): string; addSoftEnumValues(arg1: string, arg2: Array): boolean; removeSoftEnumValues(arg1: string, arg2: Array): boolean; getSoftEnumValues(arg1: string): Array; getSoftEnumNames(): Array; /** * ### 新增一条指令重载 * * **编者注**:必须在调用{@linkcode Command.setup()}前调用此函数,否则会报错 * * 指令重载是 BDS 区分不同指令形式的方法,每一种不同的指令形式对应着一种指令重载。 * * 如你所见,指令重载中提供的各项参数名组成了一种新的指令形式 * * @param params 参数标识符,重载所用到的参数列表,可用 参数标识符、枚举名、参数名。 * * 注意不能使用无法区分具体参数的标识符,如两个参数都叫 `action` 但枚举选项不同,此时应该使用枚举名而不是参数名 * * @returns 是否成功设置 */ overload(params?: Array): boolean; /** * ### 设置指令回调 * * @param callback 注册的这个命令被执行时,接口自动调用的回调函数。 * * @returns 是否成功设置 */ setCallback( callback: ( cmd: Command, origin: CommandOrigin, output: CommandOutput, result: any ) => void ): boolean; /** * ### 安装指令 * * **编者注**:请在调用此函数前调用{@linkcode Command.overload()},否则会报错 * * @returns 是否成功安装 */ setup(): boolean; }