// 
// Decompiled by Procyon v0.6.0
// 

package com.hypixel.hytale.server.core.inventory.container;

import com.hypixel.hytale.server.core.inventory.container.filter.NoDuplicateFilter;
import com.hypixel.hytale.server.core.inventory.container.filter.SlotFilter;
import com.hypixel.hytale.server.core.inventory.container.filter.ArmorSlotAddFilter;
import com.hypixel.hytale.server.core.inventory.container.filter.FilterActionType;
import com.hypixel.hytale.protocol.ItemArmorSlot;

public class ItemContainerUtil
{
    public static <T extends ItemContainer> T trySetArmorFilters(final T container) {
        if (container instanceof final SimpleItemContainer itemContainer) {
            final ItemArmorSlot[] itemArmorSlots = ItemArmorSlot.VALUES;
            for (short i = 0; i < itemContainer.getCapacity(); ++i) {
                if (i < itemArmorSlots.length) {
                    if (i < 5) {
                        itemContainer.setSlotFilter(FilterActionType.ADD, i, new ArmorSlotAddFilter(itemArmorSlots[i]));
                    }
                    else {
                        itemContainer.setSlotFilter(FilterActionType.ADD, i, new NoDuplicateFilter(itemContainer));
                    }
                }
                else {
                    itemContainer.setSlotFilter(FilterActionType.ADD, i, SlotFilter.DENY);
                }
            }
        }
        return container;
    }
    
    public static <T extends ItemContainer> T trySetSlotFilters(final T container, final SlotFilter filter) {
        if (container instanceof final SimpleItemContainer itemContainer) {
            for (short i = 0; i < itemContainer.getCapacity(); ++i) {
                itemContainer.setSlotFilter(FilterActionType.ADD, i, filter);
            }
        }
        return container;
    }
}
