--- a/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplateManager.java
+++ b/net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplateManager.java
@@ -53,7 +_,7 @@
     private static final String STRUCTURE_GENERATED_DIRECTORY_NAME = "structures";
     private static final String STRUCTURE_FILE_EXTENSION = ".nbt";
     private static final String STRUCTURE_TEXT_FILE_EXTENSION = ".snbt";
-    private final Map<ResourceLocation, Optional<StructureTemplate>> structureRepository = Maps.newConcurrentMap();
+    public final Map<ResourceLocation, Optional<StructureTemplate>> structureRepository = Maps.newConcurrentMap();
     private final DataFixer fixerUpper;
     private ResourceManager resourceManager;
     private final Path generatedDir;
@@ -116,7 +_,7 @@
         this.structureRepository.clear();
     }
 
-    private Optional<StructureTemplate> loadFromResource(ResourceLocation id) {
+    public Optional<StructureTemplate> loadFromResource(ResourceLocation id) {
         ResourceLocation resourceLocation = RESOURCE_LISTER.idToFile(id);
         return this.load(() -> this.resourceManager.open(resourceLocation), throwable -> LOGGER.error("Couldn't load structure {}", id, throwable));
     }
@@ -139,7 +_,7 @@
         }
     }
 
-    private Optional<StructureTemplate> loadFromGenerated(ResourceLocation id) {
+    public Optional<StructureTemplate> loadFromGenerated(ResourceLocation id) {
         if (!Files.isDirectory(this.generatedDir)) {
             return Optional.empty();
         } else {
@@ -235,7 +_,7 @@
         }
     }
 
-    private StructureTemplate readStructure(InputStream stream) throws IOException {
+    public StructureTemplate readStructure(InputStream stream) throws IOException {
         CompoundTag compressed = NbtIo.readCompressed(stream, NbtAccounter.unlimitedHeap());
         return this.readStructure(compressed);
     }
