UNPKG

@bdsx/containermenu

Version:

ContainerMenu - An API allowing you to create fake container menus.

63 lines 5.93 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FakeDoubleContainer = void 0; const FakeContainer_1 = require("./FakeContainer"); const blockpos_1 = require("bdsx/bds/blockpos"); const PlayerManager_1 = require("../PlayerManager"); const Utils_1 = require("../utils/Utils"); const launcher_1 = require("bdsx/launcher"); const packets_1 = require("bdsx/bds/packets"); const nbt_1 = require("bdsx/bds/nbt"); class FakeDoubleContainer extends FakeContainer_1.FakeContainer { constructor(block, containerType, containerSize, player, destructItems = true, inventory = {}) { super(block, containerType, containerSize, player, destructItems, inventory); } /** * Sends the fake container to the client. */ sendToPlayer() { PlayerManager_1.PlayerManager.setContainer(this.netId, this); this.position = Utils_1.Utils.getAbovePosition(this.netId); this.position2 = blockpos_1.BlockPos.create(this.position.x + 1, this.position.y, this.position.z); this.placeContainer(this.position); this.placeContainer(this.position2); this.sendNbtData(true); this.sendNbtData(false); launcher_1.bedrockServer.serverInstance.nextTick().then(() => { this.openContainer(); this.updateAllItems(); }); } /** * Sends the container's nbt data to the client. */ sendNbtData(pairLead = false) { const pk = packets_1.BlockActorDataPacket.allocate(); pk.pos.set(pairLead ? this.position : this.position2); let nbtData = {}; if (this.customName) nbtData["CustomName"] = nbt_1.StringTag.constructWith(this.customName); nbtData["pairlead"] = nbt_1.ByteTag.constructWith(pairLead ? 1 : 0); nbtData["pairx"] = nbt_1.IntTag.constructWith(pairLead ? this.position2.x : this.position.x); nbtData["pairz"] = nbt_1.IntTag.constructWith(pairLead ? this.position2.z : this.position.z); for (const [key, tag] of Object.entries(nbtData)) pk.data.set(key, tag); pk.sendTo(this.netId); pk.dispose(); for (const tag of Object.values(nbtData)) tag.destruct(); } /** * Destroys the containers, and destructs all the ItemStack instances, if needed. */ destruct() { this.destroyContainer(this.position); this.destroyContainer(this.position2); if (this.destructItems) { this.destructAllItems(); } PlayerManager_1.PlayerManager.removeContainer(this.netId); } } exports.FakeDoubleContainer = FakeDoubleContainer; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFrZURvdWJsZUNvbnRhaW5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkZha2VEb3VibGVDb250YWluZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQWdEO0FBQ2hELGdEQUE2QztBQUM3QyxvREFBaUQ7QUFDakQsMENBQXVDO0FBQ3ZDLDRDQUE4QztBQUM5Qyw4Q0FBd0Q7QUFDeEQsc0NBQStEO0FBTy9ELE1BQWEsbUJBQW9CLFNBQVEsNkJBQWE7SUFHbEQsWUFBWSxLQUFZLEVBQUUsYUFBNEIsRUFBRSxhQUFxQixFQUFFLE1BQW9CLEVBQUUsZ0JBQXlCLElBQUksRUFBRSxZQUFnQyxFQUFFO1FBQ2xLLEtBQUssQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRDs7T0FFRztJQUNJLFlBQVk7UUFDZiw2QkFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxRQUFRLEdBQUcsYUFBSyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsU0FBUyxHQUFHLG1CQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4Qix3QkFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQzlDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxXQUFXLENBQUMsV0FBb0IsS0FBSztRQUN6QyxNQUFNLEVBQUUsR0FBRyw4QkFBb0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMzQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN0RCxJQUFJLE9BQU8sR0FBd0IsRUFBRSxDQUFDO1FBQ3RDLElBQUcsSUFBSSxDQUFDLFVBQVU7WUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLEdBQUcsZUFBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckYsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLGFBQU8sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlELE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxZQUFNLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkYsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLFlBQU0sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2RixLQUFJLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDdkUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2IsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUFFLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRO1FBQ1gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RDLElBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNuQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztTQUMzQjtRQUNELDZCQUFhLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDO0NBQ0o7QUFwREQsa0RBb0RDIn0=