package io.gitlab.jfronny.respackopts.mixin; import io.gitlab.jfronny.respackopts.Respackopts; import net.minecraft.resource.FileResourcePackProvider; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; import java.io.IOException; import java.nio.file.*; @Mixin(FileResourcePackProvider.class) public class FileResourcePackProviderMixin { //TODO use MixinExtras Wrap instead of redirecting @Redirect(method = "forEachProfile(Ljava/nio/file/Path;Lnet/minecraft/util/path/SymlinkFinder;ZLjava/util/function/BiConsumer;)V", at = @At(value = "INVOKE", target = "Ljava/nio/file/Files;newDirectoryStream(Ljava/nio/file/Path;)Ljava/nio/file/DirectoryStream;")) private static DirectoryStream createFilteredStream(Path dir) throws IOException { return Files.newDirectoryStream(dir, path -> !(Files.isRegularFile(path) && path.getFileName().toString().endsWith(Respackopts.FILE_EXTENSION))); } }