[1.19.3] Fix retrieveRegistryLookup attempting to get the registry lookup from a HolderGetter (#9225)

This commit is contained in:
matyrobbrt authored and GitHub committed 2022-12-19 16:03:56 +00:00
1 parent 84d7a0facb
commit d9e3a0081e
4 files changed
+45 -1

No files matched your search

@@ -24,6 +24,7 @@ import java.util.concurrent.CompletableFuture;
import java.util.function.Function;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Stream;
import com.google.common.base.Strings;
import com.google.common.collect.ImmutableMap;
@@ -46,6 +47,8 @@ import net.minecraft.commands.SharedSuggestionProvider;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.core.Holder;
import net.minecraft.core.HolderLookup;
import net.minecraft.core.HolderSet;
import net.minecraft.core.registries.Registries;
import net.minecraft.network.chat.ChatDecorator;
import net.minecraft.network.chat.ClickEvent;
@@ -1586,4 +1589,15 @@ public class ForgeHooks
}
return false;
}
@ApiStatus.Internal
public static <T> HolderLookup.RegistryLookup<T> wrapRegistryLookup(final HolderLookup.RegistryLookup<T> lookup)
{
return new HolderLookup.RegistryLookup.Delegate<>()
{
@Override protected RegistryLookup<T> parent() { return lookup; }
@Override public Stream<HolderSet.Named<T>> listTags() { return Stream.empty(); }
@Override public Optional<HolderSet.Named<T>> get(TagKey<T> key) { return Optional.of(HolderSet.emptyNamed(lookup, key)); }
};
}
}