mdkjs
Version:
mdk is a framework for developing Datapacks for Minecraft. It uses the typescript language.
98 lines (97 loc) • 2.75 kB
TypeScript
import { Location } from "../lib/index";
import { ScoreRange, GameMode, EntityId, Entity } from 'mdk-nbt';
import { Objective } from "../../../mdk-command/src";
import { SingleArrayResult, LiteralUnion } from "../tools/typings";
export declare function selector(): Selector;
export declare function selector(name: string): Selector;
export declare function selector(selector: SelectorProps): Selector;
/**
* 选择器
*/
export declare class Selector {
#private;
constructor(selector?: SelectorProps | string);
get objective(): Objective;
get props(): SelectorProps;
private arrayHandle;
private scopeHandle;
private rangeHandle;
private mapRangeHandle;
private normalHandle;
private mapHandle;
private handle;
/**
* 选择一个objective
*/
select(objective: string): Objective;
exacted(): void;
unexacted(): void;
/**
* 格式化选择器
* @param objectived 是否启用objective
*/
toString(objectived?: boolean): string;
}
export interface SelectorProps {
/** 目标选择器 */
target?: TargetSelector;
/** 坐标 */
location?: Location;
/** 体积尺寸 */
range?: Range;
/** 顺序 */
sort?: SingleArrayResult<SortType>;
/** 数量 */
limit?: number;
/** 距离 */
distance?: ScoreRange;
/** 经验等级 */
level?: ScoreRange;
/** 垂直旋转角度 */
x_rotation?: ScoreRange;
/** 水平旋转角度 */
y_rotation?: ScoreRange;
/** 记分板标签 */
tag?: SingleArrayResult<string>;
/** 队伍名称 */
team?: SingleArrayResult<string>;
/** 游戏模式 */
gamemode?: SingleArrayResult<GameMode>;
/** 实体名称 */
name?: SingleArrayResult<string>;
/** 实体类型 */
type?: SingleArrayResult<LiteralUnion<EntityId, string>>;
/** 谓词 */
predicate?: string;
/** nbt数据标签 */
nbt?: Entity;
/** 分数 */
scores?: {
[name: string]: ScoreRange;
};
/** 进度 */
advancements?: string;
}
interface Range {
dx: number;
dy: number;
dz: number;
}
/**
* @param random 随机排序
* @param nearest 将目标由近到远排序
* @param furthest 将目标由远到近排序
* @param arbitrary 不进行排序
*
*/
declare type SortType = 'nearest' | 'furthest' | 'random' | 'arbitrary' | '!nearest' | '!furthest' | '!random' | '!arbitrary';
/**
* 目标选择器
* '@p' 最近的玩家,
* '@r' 随机玩家,
* '@a' 所有的玩家,
* '@e' 所有实体,
* '@s' 执行者自身,
*/
declare type TargetSelector = '@p' | '@r' | '@a' | '@e' | '@s';
export {};