@bdsx/containermenu
Version:
ContainerMenu - An API allowing you to create fake container menus.
82 lines (80 loc) • 6.66 kB
JavaScript
;
/*
_____ _
___ __|___ |__ _ __ __| | _____ __
/ __|/ _ \ / / _ \ '_ \ _____ / _` |/ _ \ \ / /
\__ \ __// / __/ | | |_____| (_| | __/\ V /
|___/\___/_/ \___|_| |_| \__,_|\___| \_/
ContainerMenu - An API for BDSX that allows you to create fake interactive container menus !
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.ContainerMenu = exports.ContainerSize = exports.FakeContainerType = void 0;
const ChestContainer_1 = require("./containers/ChestContainer");
const PlayerManager_1 = require("./PlayerManager");
const PacketListener_1 = require("./listener/PacketListener");
const HopperContainer_1 = require("./containers/HopperContainer");
const DispenserContainer_1 = require("./containers/DispenserContainer");
const DropperContainer_1 = require("./containers/DropperContainer");
const DoubleChestContainer_1 = require("./containers/DoubleChestContainer");
const TrappedChestContainer_1 = require("./containers/TrappedChestContainer");
const DoubleTrappedChestContainer_1 = require("./containers/DoubleTrappedChestContainer");
PacketListener_1.PacketListener.loadListeners();
/**
* All the fake containers types.
*/
var FakeContainerType;
(function (FakeContainerType) {
FakeContainerType[FakeContainerType["Chest"] = 0] = "Chest";
FakeContainerType[FakeContainerType["TrappedChest"] = 1] = "TrappedChest";
FakeContainerType[FakeContainerType["DoubleChest"] = 2] = "DoubleChest";
FakeContainerType[FakeContainerType["DoubleTrappedChest"] = 3] = "DoubleTrappedChest";
FakeContainerType[FakeContainerType["Hopper"] = 4] = "Hopper";
FakeContainerType[FakeContainerType["Dropper"] = 5] = "Dropper";
FakeContainerType[FakeContainerType["Dispenser"] = 6] = "Dispenser";
})(FakeContainerType = exports.FakeContainerType || (exports.FakeContainerType = {}));
/**
* All the containers sizes.
*/
var ContainerSize;
(function (ContainerSize) {
ContainerSize[ContainerSize["Chest"] = 27] = "Chest";
ContainerSize[ContainerSize["DoubleChest"] = 54] = "DoubleChest";
ContainerSize[ContainerSize["Hopper"] = 5] = "Hopper";
ContainerSize[ContainerSize["Dropper"] = 9] = "Dropper";
ContainerSize[ContainerSize["Dispenser"] = 9] = "Dispenser";
})(ContainerSize = exports.ContainerSize || (exports.ContainerSize = {}));
var ContainerMenu;
(function (ContainerMenu) {
/**
* Creates a fake container for a specific player.
*
* @param player - The player to create the container for.
* @param container - The container type to create.
* @param destructItems - Whether the ItemStacks should be automatically destructed.
* @param inventory - The inventory of the container.
*/
function create(player, container, destructItems, inventory) {
if (!PlayerManager_1.PlayerManager.hasContainer(player.getNetworkIdentifier())) {
switch (container) {
case FakeContainerType.Chest:
return new ChestContainer_1.ChestContainer(player, destructItems, inventory);
case FakeContainerType.TrappedChest:
return new TrappedChestContainer_1.TrappedChestContainer(player, destructItems, inventory);
case FakeContainerType.DoubleChest:
return new DoubleChestContainer_1.DoubleChestContainer(player, destructItems, inventory);
case FakeContainerType.DoubleTrappedChest:
return new DoubleTrappedChestContainer_1.DoubleTrappedChestContainer(player, destructItems, inventory);
case FakeContainerType.Hopper:
return new HopperContainer_1.HopperContainer(player, destructItems, inventory);
case FakeContainerType.Dropper:
return new DropperContainer_1.DropperContainer(player, destructItems, inventory);
case FakeContainerType.Dispenser:
return new DispenserContainer_1.DispenserContainer(player, destructItems, inventory);
}
}
else
throw new Error("Player already has a fake container assigned. Close it before creating a new one.");
}
ContainerMenu.create = create;
})(ContainerMenu = exports.ContainerMenu || (exports.ContainerMenu = {}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGFpbmVyTWVudS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkNvbnRhaW5lck1lbnUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7R0FTRzs7O0FBR0gsZ0VBQTZEO0FBRTdELG1EQUFnRDtBQUNoRCw4REFBMkQ7QUFDM0Qsa0VBQStEO0FBQy9ELHdFQUFxRTtBQUNyRSxvRUFBaUU7QUFFakUsNEVBQXlFO0FBQ3pFLDhFQUEyRTtBQUMzRSwwRkFBdUY7QUFFdkYsK0JBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztBQUUvQjs7R0FFRztBQUNILElBQVksaUJBUVg7QUFSRCxXQUFZLGlCQUFpQjtJQUN6QiwyREFBSyxDQUFBO0lBQ0wseUVBQVksQ0FBQTtJQUNaLHVFQUFXLENBQUE7SUFDWCxxRkFBa0IsQ0FBQTtJQUNsQiw2REFBTSxDQUFBO0lBQ04sK0RBQU8sQ0FBQTtJQUNQLG1FQUFTLENBQUE7QUFDYixDQUFDLEVBUlcsaUJBQWlCLEdBQWpCLHlCQUFpQixLQUFqQix5QkFBaUIsUUFRNUI7QUFFRDs7R0FFRztBQUNILElBQVksYUFNWDtBQU5ELFdBQVksYUFBYTtJQUNyQixvREFBVSxDQUFBO0lBQ1YsZ0VBQWdCLENBQUE7SUFDaEIscURBQVUsQ0FBQTtJQUNWLHVEQUFXLENBQUE7SUFDWCwyREFBYSxDQUFBO0FBQ2pCLENBQUMsRUFOVyxhQUFhLEdBQWIscUJBQWEsS0FBYixxQkFBYSxRQU14QjtBQUlELElBQWlCLGFBQWEsQ0E2QjdCO0FBN0JELFdBQWlCLGFBQWE7SUFDMUI7Ozs7Ozs7T0FPRztJQUNILFNBQWdCLE1BQU0sQ0FBQyxNQUFvQixFQUFFLFNBQTRCLEVBQUUsYUFBdUIsRUFBRSxTQUE4QjtRQUM5SCxJQUFHLENBQUMsNkJBQWEsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLG9CQUFvQixFQUFFLENBQUMsRUFBRTtZQUMzRCxRQUFPLFNBQVMsRUFBRTtnQkFDZCxLQUFLLGlCQUFpQixDQUFDLEtBQUs7b0JBQ3hCLE9BQU8sSUFBSSwrQkFBYyxDQUFDLE1BQU0sRUFBRSxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQ2hFLEtBQUssaUJBQWlCLENBQUMsWUFBWTtvQkFDL0IsT0FBTyxJQUFJLDZDQUFxQixDQUFDLE1BQU0sRUFBRSxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQ3ZFLEtBQUssaUJBQWlCLENBQUMsV0FBVztvQkFDOUIsT0FBTyxJQUFJLDJDQUFvQixDQUFDLE1BQU0sRUFBRSxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQ3RFLEtBQUssaUJBQWlCLENBQUMsa0JBQWtCO29CQUNyQyxPQUFPLElBQUkseURBQTJCLENBQUMsTUFBTSxFQUFFLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDN0UsS0FBSyxpQkFBaUIsQ0FBQyxNQUFNO29CQUN6QixPQUFPLElBQUksaUNBQWUsQ0FBQyxNQUFNLEVBQUUsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUNqRSxLQUFLLGlCQUFpQixDQUFDLE9BQU87b0JBQzFCLE9BQU8sSUFBSSxtQ0FBZ0IsQ0FBQyxNQUFNLEVBQUUsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUNsRSxLQUFLLGlCQUFpQixDQUFDLFNBQVM7b0JBQzVCLE9BQU8sSUFBSSx1Q0FBa0IsQ0FBQyxNQUFNLEVBQUUsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2FBQ3ZFO1NBQ0o7O1lBQU0sTUFBTSxJQUFJLEtBQUssQ0FBQyxtRkFBbUYsQ0FBQyxDQUFDO0lBQ2hILENBQUM7SUFuQmUsb0JBQU0sU0FtQnJCLENBQUE7QUFDTCxDQUFDLEVBN0JnQixhQUFhLEdBQWIscUJBQWEsS0FBYixxQkFBYSxRQTZCN0IifQ==