Search in sources :

Example 1 with IEquipmentInventory

use of org.lanternpowered.server.inventory.IEquipmentInventory in project LanternServer by LanternPowered.

the class AbstractEquipable method equip.

@Override
default boolean equip(EquipmentType type, @Nullable ItemStack equipment) {
    checkNotNull(type, "type");
    final Inventory inventory = getInventory().query(Holder.EQUIPMENT_INVENTORY_OPERATION);
    if (inventory instanceof EmptyInventory) {
        return false;
    }
    final AbstractSlot slot = (AbstractSlot) inventory.<IEquipmentInventory>first().getSlot(type).orElse(null);
    if (slot == null) {
        return false;
    }
    final InventoryTransactionResult result = slot.set(equipment);
    return result.getType().equals(InventoryTransactionResult.Type.SUCCESS);
}
Also used : AbstractSlot(org.lanternpowered.server.inventory.AbstractSlot) EmptyInventory(org.spongepowered.api.item.inventory.EmptyInventory) Inventory(org.spongepowered.api.item.inventory.Inventory) IEquipmentInventory(org.lanternpowered.server.inventory.IEquipmentInventory) EmptyInventory(org.spongepowered.api.item.inventory.EmptyInventory) InventoryTransactionResult(org.spongepowered.api.item.inventory.transaction.InventoryTransactionResult)

Example 2 with IEquipmentInventory

use of org.lanternpowered.server.inventory.IEquipmentInventory in project LanternServer by LanternPowered.

the class AbstractEquipable method canEquip.

@Override
default boolean canEquip(EquipmentType type, @Nullable ItemStack equipment) {
    checkNotNull(type, "type");
    final Inventory inventory = getInventory().query(Holder.EQUIPMENT_INVENTORY_OPERATION);
    if (inventory instanceof EmptyInventory) {
        return false;
    }
    final AbstractSlot slot = (AbstractSlot) inventory.<IEquipmentInventory>first().getSlot(type).orElse(null);
    return slot != null && (equipment == null || slot.isValidItem(equipment));
}
Also used : AbstractSlot(org.lanternpowered.server.inventory.AbstractSlot) EmptyInventory(org.spongepowered.api.item.inventory.EmptyInventory) Inventory(org.spongepowered.api.item.inventory.Inventory) IEquipmentInventory(org.lanternpowered.server.inventory.IEquipmentInventory) EmptyInventory(org.spongepowered.api.item.inventory.EmptyInventory)

Aggregations

AbstractSlot (org.lanternpowered.server.inventory.AbstractSlot)2 IEquipmentInventory (org.lanternpowered.server.inventory.IEquipmentInventory)2 EmptyInventory (org.spongepowered.api.item.inventory.EmptyInventory)2 Inventory (org.spongepowered.api.item.inventory.Inventory)2 InventoryTransactionResult (org.spongepowered.api.item.inventory.transaction.InventoryTransactionResult)1