Search in sources :

Example 6 with CarriedInventory

use of org.spongepowered.api.item.inventory.type.CarriedInventory in project modules-extra by CubeEngine.

the class BackpackManager method onInventoryClose.

@Listener
public void onInventoryClose(InteractInventoryEvent.Close event, @First Player player) {
    Container inventory = event.getTargetInventory();
    if (inventory instanceof CarriedInventory) {
        if (((CarriedInventory) inventory).getCarrier().orElse(null) instanceof BackpackHolder) {
            BackpackHolder holder = (BackpackHolder) ((CarriedInventory) inventory).getCarrier().get();
            holder.getBackpack().closeInventory(inventory, player);
        }
    }
}
Also used : Container(org.spongepowered.api.item.inventory.Container) CarriedInventory(org.spongepowered.api.item.inventory.type.CarriedInventory) Listener(org.spongepowered.api.event.Listener)

Example 7 with CarriedInventory

use of org.spongepowered.api.item.inventory.type.CarriedInventory in project LanternServer by LanternPowered.

the class ClientContainerRegistryModule method registerDefaults.

@Override
public void registerDefaults() {
    register("minecraft", "chest", inventory -> {
        final int rows = inventory.getInventoryProperty(InventoryCapacity.class).map(capacity -> (int) Math.ceil(capacity.getValue().doubleValue() / 9.0)).orElse(1);
        return new ChestClientContainer(rows);
    });
    register("minecraft", "furnace", inventory -> new FurnaceClientContainer());
    register("minecraft", "dispenser", inventory -> new DispenserClientContainer());
    register("minecraft", "crafting_table", inventory -> new CraftingTableClientContainer());
    register("minecraft", "brewing_stand", inventory -> new BrewingStandClientContainer());
    register("minecraft", "hopper", inventory -> new HopperClientContainer());
    register("minecraft", "beacon", inventory -> new BeaconClientContainer());
    register("minecraft", "enchanting_table", inventory -> new EnchantmentTableClientContainer());
    register("minecraft", "anvil", inventory -> new AnvilClientContainer());
    register("minecraft", "villager", inventory -> new TradingClientContainer());
    register("minecraft", "horse", inventory -> {
        int capacity = inventory.capacity();
        capacity -= 2;
        capacity = (int) Math.ceil((float) capacity / 3);
        int entityId = -1;
        if (inventory instanceof CarriedInventory) {
            final Carrier carrier = ((CarriedInventory<Carrier>) inventory).getCarrier().orElse(null);
            if (carrier instanceof Entity) {
                final LanternEntity entity = (LanternEntity) carrier;
                entityId = entity.getWorld().getEntityProtocolManager().getProtocolId(entity);
            }
        }
        if (entityId == -1) {
            throw new IllegalStateException("Invalid carrier entity to create a container.");
        }
        // TODO: Dummy entity support?
        return new EntityEquipmentClientContainer(capacity, entityId);
    });
    register("minecraft", "shulker_box", inventory -> new ShulkerBoxClientContainer());
}
Also used : ChestClientContainer(org.lanternpowered.server.inventory.client.ChestClientContainer) TradingClientContainer(org.lanternpowered.server.inventory.client.TradingClientContainer) EnchantmentTableClientContainer(org.lanternpowered.server.inventory.client.EnchantmentTableClientContainer) LanternEntity(org.lanternpowered.server.entity.LanternEntity) ClientContainerType(org.lanternpowered.server.inventory.client.ClientContainerType) GuiId(org.spongepowered.api.item.inventory.property.GuiId) CraftingTableClientContainer(org.lanternpowered.server.inventory.client.CraftingTableClientContainer) Carrier(org.spongepowered.api.item.inventory.Carrier) Entity(org.spongepowered.api.entity.Entity) Function(java.util.function.Function) DispenserClientContainer(org.lanternpowered.server.inventory.client.DispenserClientContainer) InventoryCapacity(org.spongepowered.api.item.inventory.property.InventoryCapacity) AnvilClientContainer(org.lanternpowered.server.inventory.client.AnvilClientContainer) FurnaceClientContainer(org.lanternpowered.server.inventory.client.FurnaceClientContainer) EntityEquipmentClientContainer(org.lanternpowered.server.inventory.client.EntityEquipmentClientContainer) PluginCatalogRegistryModule(org.lanternpowered.server.game.registry.PluginCatalogRegistryModule) BrewingStandClientContainer(org.lanternpowered.server.inventory.client.BrewingStandClientContainer) GuiIds(org.spongepowered.api.item.inventory.property.GuiIds) CarriedInventory(org.spongepowered.api.item.inventory.type.CarriedInventory) ClientContainer(org.lanternpowered.server.inventory.client.ClientContainer) HopperClientContainer(org.lanternpowered.server.inventory.client.HopperClientContainer) ShulkerBoxClientContainer(org.lanternpowered.server.inventory.client.ShulkerBoxClientContainer) AbstractInventory(org.lanternpowered.server.inventory.AbstractInventory) BeaconClientContainer(org.lanternpowered.server.inventory.client.BeaconClientContainer) LanternEntity(org.lanternpowered.server.entity.LanternEntity) Entity(org.spongepowered.api.entity.Entity) DispenserClientContainer(org.lanternpowered.server.inventory.client.DispenserClientContainer) CarriedInventory(org.spongepowered.api.item.inventory.type.CarriedInventory) TradingClientContainer(org.lanternpowered.server.inventory.client.TradingClientContainer) FurnaceClientContainer(org.lanternpowered.server.inventory.client.FurnaceClientContainer) BrewingStandClientContainer(org.lanternpowered.server.inventory.client.BrewingStandClientContainer) ShulkerBoxClientContainer(org.lanternpowered.server.inventory.client.ShulkerBoxClientContainer) ChestClientContainer(org.lanternpowered.server.inventory.client.ChestClientContainer) CraftingTableClientContainer(org.lanternpowered.server.inventory.client.CraftingTableClientContainer) EntityEquipmentClientContainer(org.lanternpowered.server.inventory.client.EntityEquipmentClientContainer) AnvilClientContainer(org.lanternpowered.server.inventory.client.AnvilClientContainer) EnchantmentTableClientContainer(org.lanternpowered.server.inventory.client.EnchantmentTableClientContainer) BeaconClientContainer(org.lanternpowered.server.inventory.client.BeaconClientContainer) HopperClientContainer(org.lanternpowered.server.inventory.client.HopperClientContainer) Carrier(org.spongepowered.api.item.inventory.Carrier) LanternEntity(org.lanternpowered.server.entity.LanternEntity)

Aggregations

CarriedInventory (org.spongepowered.api.item.inventory.type.CarriedInventory)7 AbstractHorse (net.minecraft.entity.passive.AbstractHorse)2 Entity (org.spongepowered.api.entity.Entity)2 Listener (org.spongepowered.api.event.Listener)2 InventoryQueueEntry (com.karanumcoding.adamantineshield.db.queue.InventoryQueueEntry)1 Date (java.util.Date)1 Function (java.util.function.Function)1 Nullable (javax.annotation.Nullable)1 IMerchant (net.minecraft.entity.IMerchant)1 Container (net.minecraft.inventory.Container)1 ContainerBeacon (net.minecraft.inventory.ContainerBeacon)1 ContainerBrewingStand (net.minecraft.inventory.ContainerBrewingStand)1 ContainerChest (net.minecraft.inventory.ContainerChest)1 ContainerDispenser (net.minecraft.inventory.ContainerDispenser)1 ContainerEnchantment (net.minecraft.inventory.ContainerEnchantment)1 ContainerFurnace (net.minecraft.inventory.ContainerFurnace)1 ContainerHopper (net.minecraft.inventory.ContainerHopper)1 ContainerHorseInventory (net.minecraft.inventory.ContainerHorseInventory)1 ContainerMerchant (net.minecraft.inventory.ContainerMerchant)1 ContainerRepair (net.minecraft.inventory.ContainerRepair)1