UNPKG

yoni-mcscripts-lib

Version:

为 Minecraft Script API 中的部分接口创建了 wrapper,并提供简单的事件管理器和任务管理器,另附有一些便于代码编写的一些小工具。

103 lines (102 loc) 3.76 kB
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 };