Search in sources :

Example 1 with QueryOperation

use of org.spongepowered.api.item.inventory.query.QueryOperation in project modules-extra by CubeEngine.

the class Network method queryFiltered.

private Inventory queryFiltered(List<ItemStack> filters, Inventory inventory) {
    if (filters.isEmpty()) {
        return inventory;
    }
    QueryOperation[] ops = new QueryOperation[filters.size()];
    for (int i = 0; i < filters.size(); i++) {
        ItemStack filter = filters.get(i);
        ops[i] = QueryOperationTypes.ITEM_STACK_IGNORE_QUANTITY.of(filter);
    }
    return inventory.query(ops);
}
Also used : ItemStack(org.spongepowered.api.item.inventory.ItemStack) QueryOperation(org.spongepowered.api.item.inventory.query.QueryOperation)

Example 2 with QueryOperation

use of org.spongepowered.api.item.inventory.query.QueryOperation in project Skree by Skelril.

the class GoldRushInstance method tryToStart.

public void tryToStart() {
    BigDecimal coffersNeeded = getCoffersNeeded();
    if (coffersNeeded.compareTo(BigDecimal.ZERO) >= 0) {
        MessageChannel channel = getPlayerMessageChannel(PlayerClassifier.SPECTATOR);
        channel.send(Text.of(TextColors.RED, "Your party doesn't have a high enough coffer risk!"));
        channel.send(Text.of(TextColors.RED, "At least ", coffersNeeded, " more coffers must be risked."));
        return;
    }
    Optional<PlayerStateService> optService = Sponge.getServiceManager().provide(PlayerStateService.class);
    for (Player player : getPlayers(PlayerClassifier.PARTICIPANT)) {
        if (optService.isPresent()) {
            PlayerStateService service = optService.get();
            try {
                service.storeInventory(player);
                service.releaseInventory(player);
                player.getInventory().clear();
            } catch (InventoryStorageStateException e) {
                e.printStackTrace();
                player.sendMessage(Text.of(TextColors.RED, "An error occurred while saving your inventory, contact an admin!"));
                return;
            }
        } else {
            QueryOperation[] queries = new QueryOperation[] { QueryOperationTypes.INVENTORY_TYPE.of(PlayerInventory.class), QueryOperationTypes.INVENTORY_TYPE.of(EquipmentInventory.class) };
            if (player.getInventory().query(queries).size() > 0) {
                getPlayerMessageChannel(PlayerClassifier.SPECTATOR).send(Text.of(TextColors.RED, "All players inventories must be empty."));
                return;
            }
        }
    }
    readyPlayers();
    calculateLootSplit();
    // Reset tryToStart clock
    startTime = System.currentTimeMillis();
    // Add content
    populateChest();
    runLavaChance();
    setFloodStartTime();
}
Also used : Player(org.spongepowered.api.entity.living.player.Player) PlayerStateService(com.skelril.skree.service.PlayerStateService) MessageChannel(org.spongepowered.api.text.channel.MessageChannel) InventoryStorageStateException(com.skelril.skree.service.internal.playerstate.InventoryStorageStateException) BigDecimal(java.math.BigDecimal) QueryOperation(org.spongepowered.api.item.inventory.query.QueryOperation)

Example 3 with QueryOperation

use of org.spongepowered.api.item.inventory.query.QueryOperation in project SpongeCommon by SpongePowered.

the class IMixinSingleBlockCarrier method getInventory.

static Inventory getInventory(Direction from, BlockCarrier thisThing) {
    if (thisThing instanceof ISidedInventory) {
        EnumFacing facing = DirectionFacingProvider.getInstance().get(from).get();
        int[] slots = ((ISidedInventory) thisThing).getSlotsForFace(facing);
        QueryOperation<?>[] indices = new QueryOperation[slots.length];
        for (int i = 0; i < slots.length; i++) {
            indices[i] = QueryOperationTypes.INVENTORY_PROPERTY.of(SlotIndex.of(slots[i]));
        }
        return thisThing.getInventory().query(indices);
    }
    return thisThing.getInventory();
}
Also used : ISidedInventory(net.minecraft.inventory.ISidedInventory) EnumFacing(net.minecraft.util.EnumFacing) QueryOperation(org.spongepowered.api.item.inventory.query.QueryOperation)

Aggregations

QueryOperation (org.spongepowered.api.item.inventory.query.QueryOperation)3 PlayerStateService (com.skelril.skree.service.PlayerStateService)1 InventoryStorageStateException (com.skelril.skree.service.internal.playerstate.InventoryStorageStateException)1 BigDecimal (java.math.BigDecimal)1 ISidedInventory (net.minecraft.inventory.ISidedInventory)1 EnumFacing (net.minecraft.util.EnumFacing)1 Player (org.spongepowered.api.entity.living.player.Player)1 ItemStack (org.spongepowered.api.item.inventory.ItemStack)1 MessageChannel (org.spongepowered.api.text.channel.MessageChannel)1