yoni-mcscripts-lib
Version:
为 Minecraft Script API 中的部分接口创建了 wrapper,并提供简单的事件管理器和任务管理器,另附有一些便于代码编写的一些小工具。
103 lines (102 loc) • 3.76 kB
TypeScript
import { Minecraft } from "../../basis.js";
import { ScoreboardEntry } from "../../scoreboard/ScoreboardEntry.js";
import { Dimension } from "../dimension.js";
import { DimensionLikeValue } from "../../types";
import { Location, Vector3 } from "../Location.js";
/**
* 代表一个实体
*/
declare class Entity {
#private;
/**
* 这个属性映射了一个原版中的实体对象。
* @type {Minecraft.Entity}
*/
readonly vanillaEntity: Minecraft.Entity;
/**
* @hideconstructor
* @param {Minecraft.Entity} entity
*/
constructor(entity: Minecraft.Entity);
get [Symbol.toStringTag](): string;
get velocity(): Minecraft.Vector3;
get rotation(): Minecraft.Vector2;
get entityType(): Minecraft.EntityType;
get dimension(): Dimension;
get location(): Location;
get scoreboard(): ScoreboardEntry;
/**
* 此方法可以在任何时候调用
*
* 返回实体是否可用(即此对象对应的实体是否处于活动状态(即实体处于世界的已加载区域(即已经读取到内存的地图)
*/
isAliveEntity(): boolean;
/**
* 返回实体是否为活体。
*/
isLivingEntity(): boolean;
/**
* 获取实体的当前血量。
*/
getCurrentHealth(): number;
/**
* 获取实体的血量组件。
*/
getHealthComponent(): Minecraft.EntityHealthComponent;
/**
* 获取实体的物品栏容器。
*/
getInventory(): Minecraft.Container;
/**
* 获取实体的最大血量。
*/
getMaxHealth(): number;
/**
* 检测实体是否为某一族。
* @abc
* @param {string} family
*/
hasFamily(family: string): boolean;
/**
* 检测实体是否有指定的多个族中的一个。
* @param {...string} families
* @returns {boolean}
*/
hasAnyFamily(...families: string[]): boolean;
/**
* 请求以此实体的上下文执行命令。
* @param {string} cmd
* @returns {Promise<Minecraft.CommandResult>}
*/
fetchCommand(cmd: string): Promise<import("../../command.js").CommandResult>;
/**
* @param {string} message
*/
say(message: string): Promise<import("../../command.js").CommandResult>;
/**
* @param {number} v
*/
setCurrentHealth(health: number): void;
/**
* @beta
* Retrieves or sets an entity that is used as the target of
* AI-related behaviors, like attacking.
* @returns 目标不存在时返回 `undefined`。
* @throws This property can throw when used.
*/
get target(): Entity;
addEffect(effectType: string | Minecraft.EffectType, duration: number, amplifier: number, showParticle: boolean): void;
addEffect(effectType: string | Minecraft.EffectType, duration: number, options?: Minecraft.EntityEffectOptions): void;
teleport(location: Vector3, options?: Minecraft.TeleportOptions): void;
teleport(coords: Vector3, dimension: DimensionLikeValue, rotationX: number, rotationY: number, keepVelocity?: boolean): void;
teleport(location: Location, keepVelocity?: boolean): void;
tryTeleport(location: Vector3, options?: Minecraft.TeleportOptions): boolean;
tryTeleport(coords: Vector3, dimension: DimensionLikeValue, rotationX: number, rotationY: number, keepVelocity?: boolean): boolean;
tryTeleport(location: Location, keepVelocity?: boolean): boolean;
}
type RemovedKeys = "getRotation" | "getVelocity";
type OverridedKeys = "target" | "tryTeleport" | "teleport" | "addEffect" | "dimension";
type BaseVanillaEntityClass = Omit<Minecraft.Entity, RemovedKeys | OverridedKeys>;
interface Entity extends BaseVanillaEntityClass {
}
export { Entity, Entity as YoniEntity };