package net.minecraft.world.item; import it.unimi.dsi.fastutil.Hash.Strategy; import it.unimi.dsi.fastutil.objects.ObjectLinkedOpenCustomHashSet; import java.util.Set; import org.jetbrains.annotations.Nullable; public class ItemStackLinkedSet { private static final Strategy TYPE_AND_TAG = new Strategy() { public int hashCode(@Nullable ItemStack stack) { return ItemStack.hashItemAndComponents(stack); } public boolean equals(@Nullable ItemStack first, @Nullable ItemStack second) { return first == second || first != null && second != null && first.isEmpty() == second.isEmpty() && ItemStack.isSameItemSameComponents(first, second); } }; public static Set createTypeAndComponentsSet() { return new ObjectLinkedOpenCustomHashSet<>(TYPE_AND_TAG); } }