yoni-mcscripts-lib
Version:
为 Minecraft Script API 中的部分接口创建了 wrapper,并提供简单的事件管理器和任务管理器,另附有一些便于代码编写的一些小工具。
45 lines (44 loc) • 1.92 kB
JavaScript
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;
}
}