UNPKG

yoni-mcscripts-lib

Version:

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

45 lines (44 loc) 1.92 kB
import { world, YoniWorld } from "./remix/world.js"; import { YoniEntity } from "./types"; import { EntityUtils } from "./EntityUtils.js"; import { YoniDimension } from "./remix/dimension.js"; import { Minecraft, Gametest, VanillaScoreboard } from "./basis.js"; import { ScoreboardEntry, Objective, Scoreboard } from "./scoreboard.js"; /** * 这个类上的方法用于将各种对象在原始对象与映射对象之间转换。 */ export class Yoni { static getVanilla(object) { if (object instanceof YoniEntity) return object.vanillaEntity; if (object instanceof YoniDimension) return object.vanillaDimension; if (object instanceof YoniWorld) return object.vanillaWorld; if (object instanceof ScoreboardEntry) { const identity = object.vanillaScoreboardIdentity; if (identity) return identity; else throw new ReferenceError("could not find the relative Minecraft.ScoreboardIdentity"); } if (object instanceof Objective) return object.vanillaObjective; if (object === Scoreboard) return VanillaScoreboard; } static get(object) { if (object instanceof Minecraft.Entity || object instanceof Minecraft.Player || object instanceof Gametest.SimulatedPlayer) return EntityUtils.from(object); if (object instanceof Minecraft.Dimension) return YoniDimension.toDimension(object); if (object instanceof Minecraft.World) return world; if (object instanceof Minecraft.ScoreboardIdentity) return ScoreboardEntry.getEntry(object.type, object); if (object instanceof Minecraft.ScoreboardObjective) return Scoreboard.getObjective(object.id); if (object instanceof Minecraft.Scoreboard) return Scoreboard; } }