///
declare namespace mc {
/**
* ### 执行一条后台命令
*
* @param cmd 待执行的命令
*
* @returns 是否执行成功
*/
function runcmd(cmd: string): boolean;
/**
* ### 执行一条后台命令(强化版)
*
* **提示**:`runcmdEx` 与普通 {@linkcode runcmd} 实现区别非常大,在于 Ex 版本拥有**隐藏执行**的机制,执行结果不会输出至控制台,\
* 因此如果有需要,要手动用 {@linkcode log} 函数将结果输出
*
* @param cmd 待执行的命令
*
* @returns 命令执行结果
*/
function runcmdEx(cmd: string): {
/** 是否执行成功 */
success: boolean;
/** BDS执行命令后的输出结果 */
output: string;
};
/**
* ### 模拟产生一个控制台命令输出
*
* @param output
*
* @returns 是否成功执行
*/
function sendCmdOutput(output: string): boolean;
/**
* ### 注册一条顶层命令
*
* 这里提供了注册自定义命令的接口。
*
* 通过对接 BDS 内置的命令系统,你注册的命令可以由玩家、控制台、命令方块、NPC等各种游戏中可以执行命令的对象所使用,\
* 在 addon 中,也可以使用这里所注册的命令。
*
* @see {@linkcode Command}
* @see [🎯 命令注册API](https://docs.litebds.com/zh-Hans/#/LLSEPluginDevelopment/GameAPI/Command)
*
* @param cmd 待注册的命令
* @param description 命令描述文本
* @param permission 指令执行所需权限,默认为{@linkcode PermType.GameMasters}
* @param flag 默认值 `0x80`,目前直接按此输入即可,后续会进行相关修改
* @param alias 命令的别名
*
* 可以为命令设置多个别名,执行的时候相当于触发同一条命令\
* (这里只能填一个,建议使用{@linkcode Command.setAlias()})
*
* @returns 指令对象
*/
function newCommand(
cmd: string,
description: string,
permission?: PermType,
flag?: number,
alias?: string
): Command;
/**
* @deprecated
*
* ### 注册一个新的玩家命令(假命令)
*
* **警告**:
*
* 这里的假命令API为 **向下兼容** 而留存,请尽量使用 真命令API
*
* 尽管看起来比较简单,但是假命令有一些很重要的缺点,包括只能由玩家或控制台执行,其他对象(如命令方块、NPC等)都无法执行、所有参数数据都需要自行解析等等。
*
* @see {@linkcode mc.newCommand()}
*
* @param cmd 待注册的命令
* @param description 命令描述文本
* @param callback 注册的这个命令被执行时,接口自动调用的回调函数。
* @param level 命令的注册等级,默认为 `0` ,即所有人都可以执行 如果设置命令注册等级为`1`,则只有OP可以执行此命令
*
* @returns 是否注册成功
*/
function regPlayerCmd(
cmd: string,
description: string,
callback: (player: Player, args: Array) => void,
level?: number
): boolean;
/**
* @deprecated
*
* ### 注册一个新的控制台命令(假命令)
*
* **警告**:
*
* 这里的假命令API为 **向下兼容** 而留存,请尽量使用 真命令API
*
* 尽管看起来比较简单,但是假命令有一些很重要的缺点,包括只能由玩家或控制台执行,其他对象(如命令方块、NPC等)都无法执行、所有参数数据都需要自行解析等等。
*
* @see {@linkcode mc.newCommand()}
*
* @param cmd 待注册的命令
* @param description 命令描述文本
* @param callback 注册的这个命令被执行时,接口自动调用的回调函数。
*
* @returns 是否注册成功
*/
function regPlayerCmd(
cmd: string,
description: string,
callback: (args: Array) => void
): boolean;
}