package net.minecraft.world.level.storage.loot.functions; import java.util.Arrays; import java.util.function.Function; public interface FunctionUserBuilder> { T apply(LootItemFunction.Builder builder); default T apply(final Iterable collection, final Function functionProvider) { T result = this.unwrap(); for (E value : collection) { result = result.apply((LootItemFunction.Builder)functionProvider.apply(value)); } return result; } default T apply(final E[] collection, final Function functionProvider) { return this.apply(Arrays.asList(collection), functionProvider); } T unwrap(); }