Search in sources :

Example 1 with ChestContainer

use of net.minecraft.inventory.container.ChestContainer in project Enigmatic-Legacy by Aizistral-Studios.

the class PacketEnderRingKey method handle.

public static void handle(PacketEnderRingKey msg, Supplier<NetworkEvent.Context> ctx) {
    ctx.get().enqueueWork(() -> {
        ServerPlayerEntity playerServ = ctx.get().getSender();
        if (playerServ.openContainer.windowId == 0)
            if (SuperpositionHandler.hasCurio(playerServ, EnigmaticLegacy.enderRing)) {
                ChestContainer container = ChestContainer.createGeneric9X3(playerServ.currentWindowId + 1, playerServ.inventory, playerServ.getInventoryEnderChest());
                playerServ.currentWindowId = container.windowId;
                playerServ.connection.sendPacket(new SOpenWindowPacket(container.windowId, container.getType(), new TranslationTextComponent("container.enderchest")));
                container.addListener(playerServ);
                playerServ.openContainer = container;
                net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.entity.player.PlayerContainerEvent.Open(playerServ, playerServ.openContainer));
                playerServ.world.playSound(null, playerServ.getPosition(), SoundEvents.BLOCK_ENDER_CHEST_OPEN, SoundCategory.PLAYERS, 1.0F, (float) (0.8F + (Math.random() * 0.2)));
            }
    });
    ctx.get().setPacketHandled(true);
}
Also used : ChestContainer(net.minecraft.inventory.container.ChestContainer) TranslationTextComponent(net.minecraft.util.text.TranslationTextComponent) ServerPlayerEntity(net.minecraft.entity.player.ServerPlayerEntity) SOpenWindowPacket(net.minecraft.network.play.server.SOpenWindowPacket)

Example 2 with ChestContainer

use of net.minecraft.inventory.container.ChestContainer in project Magma-1.16.x by magmafoundation.

the class CraftContainer method setupSlots.

private void setupSlots(IInventory top, PlayerInventory bottom, PlayerEntity entityhuman) {
    int windowId = -1;
    switch(cachedType) {
        case CREATIVE:
            // TODO: This should be an error?
            break;
        case PLAYER:
        case CHEST:
        case ENDER_CHEST:
        case BARREL:
            delegate = new ChestContainer(ContainerType.GENERIC_9x3, windowId, bottom, top, top.getContainerSize() / 9);
            break;
        case DISPENSER:
        case DROPPER:
            delegate = new DispenserContainer(windowId, bottom, top);
            break;
        case FURNACE:
            delegate = new FurnaceContainer(windowId, bottom, top, new IntArray(4));
            break;
        // TODO: This should be an error?
        case CRAFTING:
        case WORKBENCH:
            // SPIGOT-3812 - manually set up slots so we can use the delegated inventory and not the automatically created one
            setupWorkbench(top, bottom);
            break;
        case ENCHANTING:
            delegate = new EnchantmentContainer(windowId, bottom);
            break;
        case BREWING:
            delegate = new BrewingStandContainer(windowId, bottom, top, new IntArray(2));
            break;
        case HOPPER:
            delegate = new HopperContainer(windowId, bottom, top);
            break;
        case ANVIL:
            delegate = new RepairContainer(windowId, bottom);
            break;
        case SMITHING:
            delegate = new SmokerContainer(windowId, bottom);
            break;
        case BEACON:
            delegate = new BeaconContainer(windowId, bottom);
            break;
        case SHULKER_BOX:
            delegate = new ShulkerBoxContainer(windowId, bottom, top);
            break;
        case BLAST_FURNACE:
            delegate = new BlastFurnaceContainer(windowId, bottom, top, new IntArray(4));
            break;
        case LECTERN:
            delegate = new LecternContainer(windowId, top, new IntArray(1), bottom);
            break;
        case SMOKER:
            delegate = new SmokerContainer(windowId, bottom, top, new IntArray(4));
            break;
        case LOOM:
            delegate = new LoomContainer(windowId, bottom);
            break;
        case CARTOGRAPHY:
            delegate = new CartographyContainer(windowId, bottom);
            break;
        case GRINDSTONE:
            delegate = new GrindstoneContainer(windowId, bottom);
            break;
        case STONECUTTER:
            delegate = new StonecutterContainer(windowId, bottom);
            break;
        case MERCHANT:
            delegate = new MerchantContainer(windowId, bottom);
            break;
    }
    if (delegate != null) {
        this.lastSlots = delegate.lastSlots;
        this.slots = delegate.slots;
    }
    // SPIGOT-4598 - we should still delegate the shift click handler
    if (cachedType == InventoryType.WORKBENCH) {
        delegate = new WorkbenchContainer(windowId, bottom);
    }
}
Also used : HopperContainer(net.minecraft.inventory.container.HopperContainer) BlastFurnaceContainer(net.minecraft.inventory.container.BlastFurnaceContainer) FurnaceContainer(net.minecraft.inventory.container.FurnaceContainer) DispenserContainer(net.minecraft.inventory.container.DispenserContainer) BrewingStandContainer(net.minecraft.inventory.container.BrewingStandContainer) EnchantmentContainer(net.minecraft.inventory.container.EnchantmentContainer) BeaconContainer(net.minecraft.inventory.container.BeaconContainer) LoomContainer(net.minecraft.inventory.container.LoomContainer) BlastFurnaceContainer(net.minecraft.inventory.container.BlastFurnaceContainer) GrindstoneContainer(net.minecraft.inventory.container.GrindstoneContainer) WorkbenchContainer(net.minecraft.inventory.container.WorkbenchContainer) ShulkerBoxContainer(net.minecraft.inventory.container.ShulkerBoxContainer) MerchantContainer(net.minecraft.inventory.container.MerchantContainer) StonecutterContainer(net.minecraft.inventory.container.StonecutterContainer) ChestContainer(net.minecraft.inventory.container.ChestContainer) CartographyContainer(net.minecraft.inventory.container.CartographyContainer) IntArray(net.minecraft.util.IntArray) RepairContainer(net.minecraft.inventory.container.RepairContainer) LecternContainer(net.minecraft.inventory.container.LecternContainer) SmokerContainer(net.minecraft.inventory.container.SmokerContainer)

Example 3 with ChestContainer

use of net.minecraft.inventory.container.ChestContainer in project LoliServer by Loli-Server.

the class CraftContainer method setupSlots.

private void setupSlots(IInventory top, PlayerInventory bottom, PlayerEntity entityhuman) {
    int windowId = -1;
    switch(cachedType) {
        case CREATIVE:
            // TODO: This should be an error?
            break;
        case PLAYER:
        case CHEST:
        case ENDER_CHEST:
        case BARREL:
            delegate = new ChestContainer(ContainerType.GENERIC_9x3, windowId, bottom, top, top.getContainerSize() / 9);
            break;
        case DISPENSER:
        case DROPPER:
            delegate = new DispenserContainer(windowId, bottom, top);
            break;
        case FURNACE:
            delegate = new FurnaceContainer(windowId, bottom, top, new IntArray(4));
            break;
        // TODO: This should be an error?
        case CRAFTING:
        case WORKBENCH:
            // SPIGOT-3812 - manually set up slots so we can use the delegated inventory and not the automatically created one
            setupWorkbench(top, bottom);
            break;
        case ENCHANTING:
            delegate = new EnchantmentContainer(windowId, bottom);
            break;
        case BREWING:
            delegate = new BrewingStandContainer(windowId, bottom, top, new IntArray(2));
            break;
        case HOPPER:
            delegate = new HopperContainer(windowId, bottom, top);
            break;
        case ANVIL:
            delegate = new RepairContainer(windowId, bottom);
            break;
        case SMITHING:
            delegate = new SmokerContainer(windowId, bottom);
            break;
        case BEACON:
            delegate = new BeaconContainer(windowId, bottom);
            break;
        case SHULKER_BOX:
            delegate = new ShulkerBoxContainer(windowId, bottom, top);
            break;
        case BLAST_FURNACE:
            delegate = new BlastFurnaceContainer(windowId, bottom, top, new IntArray(4));
            break;
        case LECTERN:
            delegate = new LecternContainer(windowId, top, new IntArray(1), bottom);
            break;
        case SMOKER:
            delegate = new SmokerContainer(windowId, bottom, top, new IntArray(4));
            break;
        case LOOM:
            delegate = new LoomContainer(windowId, bottom);
            break;
        case CARTOGRAPHY:
            delegate = new CartographyContainer(windowId, bottom);
            break;
        case GRINDSTONE:
            delegate = new GrindstoneContainer(windowId, bottom);
            break;
        case STONECUTTER:
            delegate = new StonecutterContainer(windowId, bottom);
            break;
        case MERCHANT:
            delegate = new MerchantContainer(windowId, bottom);
            break;
    }
    if (delegate != null) {
        this.lastSlots = delegate.lastSlots;
        this.slots = delegate.slots;
    }
    // SPIGOT-4598 - we should still delegate the shift click handler
    if (cachedType == InventoryType.WORKBENCH) {
        delegate = new WorkbenchContainer(windowId, bottom);
    }
}
Also used : HopperContainer(net.minecraft.inventory.container.HopperContainer) BlastFurnaceContainer(net.minecraft.inventory.container.BlastFurnaceContainer) FurnaceContainer(net.minecraft.inventory.container.FurnaceContainer) DispenserContainer(net.minecraft.inventory.container.DispenserContainer) BrewingStandContainer(net.minecraft.inventory.container.BrewingStandContainer) EnchantmentContainer(net.minecraft.inventory.container.EnchantmentContainer) BeaconContainer(net.minecraft.inventory.container.BeaconContainer) LoomContainer(net.minecraft.inventory.container.LoomContainer) BlastFurnaceContainer(net.minecraft.inventory.container.BlastFurnaceContainer) GrindstoneContainer(net.minecraft.inventory.container.GrindstoneContainer) WorkbenchContainer(net.minecraft.inventory.container.WorkbenchContainer) ShulkerBoxContainer(net.minecraft.inventory.container.ShulkerBoxContainer) MerchantContainer(net.minecraft.inventory.container.MerchantContainer) StonecutterContainer(net.minecraft.inventory.container.StonecutterContainer) ChestContainer(net.minecraft.inventory.container.ChestContainer) CartographyContainer(net.minecraft.inventory.container.CartographyContainer) IntArray(net.minecraft.util.IntArray) RepairContainer(net.minecraft.inventory.container.RepairContainer) LecternContainer(net.minecraft.inventory.container.LecternContainer) SmokerContainer(net.minecraft.inventory.container.SmokerContainer)

Aggregations

ChestContainer (net.minecraft.inventory.container.ChestContainer)3 BeaconContainer (net.minecraft.inventory.container.BeaconContainer)2 BlastFurnaceContainer (net.minecraft.inventory.container.BlastFurnaceContainer)2 BrewingStandContainer (net.minecraft.inventory.container.BrewingStandContainer)2 CartographyContainer (net.minecraft.inventory.container.CartographyContainer)2 DispenserContainer (net.minecraft.inventory.container.DispenserContainer)2 EnchantmentContainer (net.minecraft.inventory.container.EnchantmentContainer)2 FurnaceContainer (net.minecraft.inventory.container.FurnaceContainer)2 GrindstoneContainer (net.minecraft.inventory.container.GrindstoneContainer)2 HopperContainer (net.minecraft.inventory.container.HopperContainer)2 LecternContainer (net.minecraft.inventory.container.LecternContainer)2 LoomContainer (net.minecraft.inventory.container.LoomContainer)2 MerchantContainer (net.minecraft.inventory.container.MerchantContainer)2 RepairContainer (net.minecraft.inventory.container.RepairContainer)2 ShulkerBoxContainer (net.minecraft.inventory.container.ShulkerBoxContainer)2 SmokerContainer (net.minecraft.inventory.container.SmokerContainer)2 StonecutterContainer (net.minecraft.inventory.container.StonecutterContainer)2 WorkbenchContainer (net.minecraft.inventory.container.WorkbenchContainer)2 IntArray (net.minecraft.util.IntArray)2 ServerPlayerEntity (net.minecraft.entity.player.ServerPlayerEntity)1