Fix availability of experimental datapack features in unit tests

This commit is contained in:
md_5 2023-03-15 20:41:42 +11:00
parent e1fc95c506
commit 968d28df04
No known key found for this signature in database
GPG Key ID: E8E901AC7C617C11

View File

@ -2,7 +2,6 @@ package org.bukkit.support;
import com.google.common.collect.ImmutableList;
import com.google.common.util.concurrent.MoreExecutors;
import java.util.Collections;
import java.util.List;
import net.minecraft.SharedConstants;
import net.minecraft.commands.CommandDispatcher;
@ -16,6 +15,8 @@ import net.minecraft.server.DispenserRegistry;
import net.minecraft.server.RegistryLayer;
import net.minecraft.server.WorldLoader;
import net.minecraft.server.packs.EnumResourcePackType;
import net.minecraft.server.packs.repository.ResourcePackLoader;
import net.minecraft.server.packs.repository.ResourcePackRepository;
import net.minecraft.server.packs.repository.ResourcePackSourceVanilla;
import net.minecraft.server.packs.resources.ResourceManager;
import net.minecraft.world.flag.FeatureFlags;
@ -43,8 +44,11 @@ public abstract class AbstractTestingBase {
static {
SharedConstants.tryDetectVersion();
DispenserRegistry.bootStrap();
// Populate available packs
ResourcePackRepository resourceRepository = new ResourcePackRepository(new ResourcePackSourceVanilla());
resourceRepository.reload();
// Set up resource manager
ResourceManager resourceManager = new ResourceManager(EnumResourcePackType.SERVER_DATA, Collections.singletonList(new ResourcePackSourceVanilla().getVanillaPack()));
ResourceManager resourceManager = new ResourceManager(EnumResourcePackType.SERVER_DATA, resourceRepository.getAvailablePacks().stream().map(ResourcePackLoader::open).toList());
// add tags and loot tables for unit tests
LayeredRegistryAccess<RegistryLayer> layers = RegistryLayer.createRegistryAccess();
layers = WorldLoader.loadAndReplaceLayer(resourceManager, layers, RegistryLayer.WORLDGEN, RegistryDataLoader.WORLDGEN_REGISTRIES);