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