UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

28 lines (27 loc) 3.62 kB
import { Entity } from "../Entity.es.js"; import AddItemActorPacket from "../../network/packet/AddItemActorPacket.es.js"; import { Vector3 } from "@jsprismarine/math"; //#region src/entity/other/Item.ts var Item = class extends Entity { static MOB_ID = "minecraft:item"; item; constructor({ item, ...options }) { super(options); this.item = item; } async sendSpawn(player) { if (!this.item) return; const players = player ? [player] : this.getWorld().getEntities().filter((entity) => entity.isPlayer()); const pk = new AddItemActorPacket(); pk.runtimeEntityId = this.getRuntimeId(); pk.position = new Vector3(this.getX(), this.getY(), this.getZ()); pk.item = this.item.getItem(); await Promise.all(players.map(async (p) => p.getNetworkSession().getConnection().sendDataPacket(pk))); } async update(tick) { await super.update(tick); } }; //#endregion export { Item }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSXRlbS5lcy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZW50aXR5L290aGVyL0l0ZW0udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmVjdG9yMyB9IGZyb20gJ0Bqc3ByaXNtYXJpbmUvbWF0aCc7XG5pbXBvcnQgdHlwZSBQbGF5ZXIgZnJvbSAnLi4vLi4vUGxheWVyJztcbmltcG9ydCB0eXBlIENvbnRhaW5lckVudHJ5IGZyb20gJy4uLy4uL2ludmVudG9yeS9Db250YWluZXJFbnRyeSc7XG5pbXBvcnQgeyBBZGRJdGVtQWN0b3JQYWNrZXQgfSBmcm9tICcuLi8uLi9uZXR3b3JrL1BhY2tldHMnO1xuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSAnLi4vRW50aXR5JztcblxuZXhwb3J0IGNsYXNzIEl0ZW0gZXh0ZW5kcyBFbnRpdHkge1xuICAgIHB1YmxpYyBzdGF0aWMgTU9CX0lEID0gJ21pbmVjcmFmdDppdGVtJztcbiAgICBwcml2YXRlIGl0ZW0/OiBDb250YWluZXJFbnRyeTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcih7XG4gICAgICAgIGl0ZW0sXG4gICAgICAgIC4uLm9wdGlvbnNcbiAgICB9OiBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIEVudGl0eT5bMF0gJiB7XG4gICAgICAgIGl0ZW0/OiBDb250YWluZXJFbnRyeTtcbiAgICB9KSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuXG4gICAgICAgIHRoaXMuaXRlbSA9IGl0ZW07XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHNlbmRTcGF3bihwbGF5ZXI/OiBQbGF5ZXIpIHtcbiAgICAgICAgaWYgKCF0aGlzLml0ZW0pIHJldHVybjtcblxuICAgICAgICBjb25zdCBwbGF5ZXJzOiBQbGF5ZXJbXSA9IHBsYXllclxuICAgICAgICAgICAgPyBbcGxheWVyXVxuICAgICAgICAgICAgOiAodGhpcy5nZXRXb3JsZCgpXG4gICAgICAgICAgICAgICAgICAuZ2V0RW50aXRpZXMoKVxuICAgICAgICAgICAgICAgICAgLmZpbHRlcigoZW50aXR5KSA9PiBlbnRpdHkuaXNQbGF5ZXIoKSkgYXMgUGxheWVyW10pO1xuXG4gICAgICAgIGNvbnN0IHBrID0gbmV3IEFkZEl0ZW1BY3RvclBhY2tldCgpO1xuICAgICAgICBway5ydW50aW1lRW50aXR5SWQgPSB0aGlzLmdldFJ1bnRpbWVJZCgpO1xuICAgICAgICBway5wb3NpdGlvbiA9IG5ldyBWZWN0b3IzKHRoaXMuZ2V0WCgpLCB0aGlzLmdldFkoKSwgdGhpcy5nZXRaKCkpO1xuICAgICAgICBway5pdGVtID0gdGhpcy5pdGVtLmdldEl0ZW0oKTtcblxuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChwbGF5ZXJzLm1hcChhc3luYyAocCkgPT4gcC5nZXROZXR3b3JrU2Vzc2lvbigpLmdldENvbm5lY3Rpb24oKS5zZW5kRGF0YVBhY2tldChwaykpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgdXBkYXRlKHRpY2s6IG51bWJlcikge1xuICAgICAgICBhd2FpdCBzdXBlci51cGRhdGUodGljayk7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBTUEsSUFBYSxPQUFiLGNBQTBCLE9BQU87Q0FDN0IsT0FBYyxTQUFTO0NBQ3ZCO0NBRUEsWUFBbUIsRUFDZixNQUNBLEdBQUcsV0FHSjtFQUNDLE1BQU0sT0FBTztFQUViLEtBQUssT0FBTztDQUNoQjtDQUVBLE1BQWEsVUFBVSxRQUFpQjtFQUNwQyxJQUFJLENBQUMsS0FBSyxNQUFNO0VBRWhCLE1BQU0sVUFBb0IsU0FDcEIsQ0FBQyxNQUFNLElBQ04sS0FBSyxTQUFTLEVBQ1YsWUFBWSxFQUNaLFFBQVEsV0FBVyxPQUFPLFNBQVMsQ0FBQztFQUUvQyxNQUFNLEtBQUssSUFBSSxtQkFBbUI7RUFDbEMsR0FBRyxrQkFBa0IsS0FBSyxhQUFhO0VBQ3ZDLEdBQUcsV0FBVyxJQUFJLFFBQVEsS0FBSyxLQUFLLEdBQUcsS0FBSyxLQUFLLEdBQUcsS0FBSyxLQUFLLENBQUM7RUFDL0QsR0FBRyxPQUFPLEtBQUssS0FBSyxRQUFRO0VBRTVCLE1BQU0sUUFBUSxJQUFJLFFBQVEsSUFBSSxPQUFPLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztDQUN4RztDQUVBLE1BQWEsT0FBTyxNQUFjO0VBQzlCLE1BQU0sTUFBTSxPQUFPLElBQUk7Q0FDM0I7QUFDSiJ9