package net.minecraft.client.searchtree; import com.google.common.collect.ImmutableList; import java.util.Iterator; import java.util.List; import java.util.function.Function; import java.util.stream.Stream; import net.minecraft.resources.ResourceLocation; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @OnlyIn(Dist.CLIENT) public class FullTextSearchTree extends IdSearchTree { private final SearchTree plainTextSearchTree; public FullTextSearchTree(Function> p_235155_, Function> p_235156_, List p_235157_) { super(p_235156_, p_235157_); this.plainTextSearchTree = SearchTree.plainText(p_235157_, p_235155_); } @Override protected List searchPlainText(String p_235160_) { return this.plainTextSearchTree.search(p_235160_); } @Override protected List searchResourceLocation(String p_235162_, String p_235163_) { List list = this.resourceLocationSearchTree.searchNamespace(p_235162_); List list1 = this.resourceLocationSearchTree.searchPath(p_235163_); List list2 = this.plainTextSearchTree.search(p_235163_); Iterator iterator = new MergingUniqueIterator<>(list1.iterator(), list2.iterator(), this.additionOrder); return ImmutableList.copyOf(new IntersectionIterator<>(list.iterator(), iterator, this.additionOrder)); } }