@@ -0,0 +1,1436 @@
+package com.cjm721.overloaded.storage.builder;%0A%0Aimport net.minecraft.util.EnumFacing;%0Aimport net.minecraftforge.common.capabilities.Capability;%0Aimport net.minecraftforge.common.capabilities.ICapabilityProvider;%0A%0Aimport javax.annotation.Nonnull;%0Aimport javax.annotation.Nullable;%0Aimport java.util.ArrayList;%0Aimport java.util.Collection;%0Aimport java.util.List;%0A%0Apublic class CapabilityContainer implements ICapabilityProvider %7B%0A%0A    @Nonnull%0A    private List%3CICapabilityProvider%3E capabilityProviders;%0A%0A    public CapabilityContainer() %7B%0A        capabilityProviders = new ArrayList%3C%3E();%0A    %7D%0A%0A    public CapabilityContainer addCapability(ICapabilityProvider capabilityProvider) %7B%0A        capabilityProviders.add(capabilityProvider);%0A        return this;%0A    %7D%0A%0A    public CapabilityContainer addCapability(Collection%3CICapabilityProvider%3E capabilityProvider) %7B%0A        capabilityProviders.addAll(capabilityProvider);%0A        return this;%0A    %7D%0A%0A    @Override%0A    public boolean hasCapability(@Nonnull Capability%3C?%3E capability, @Nullable EnumFacing facing) %7B%0A        return capabilityProviders.stream().anyMatch(cap -%3E cap.hasCapability(capability, facing));%0A    %7D%0A%0A    @Nullable%0A    @Override%0A    public %3CT%3E T getCapability(@Nonnull Capability%3CT%3E capability, @Nullable EnumFacing facing) %7B%0A        return capabilityProviders.stream().map(cap -%3E cap.getCapability(capability, facing)).filter(o -%3E o != null).findAny().orElse(null);%0A    %7D%0A%7D%0A

Create a way to add multiple Capabilities to a single item nicely