Newer
Older
void-pack-super-server / work / decompile-ee3ecae0 / net / minecraft / server / ResourcePackSourceFolder.java
package net.minecraft.server;

import java.io.File;
import java.io.FileFilter;
import java.util.Map;
import java.util.function.Supplier;

public class ResourcePackSourceFolder implements ResourcePackSource {

    private static final FileFilter a = (file) -> {
        boolean flag = file.isFile() && file.getName().endsWith(".zip");
        boolean flag1 = file.isDirectory() && (new File(file, "pack.mcmeta")).isFile();

        return flag || flag1;
    };
    private final File file;

    public ResourcePackSourceFolder(File file) {
        this.file = file;
    }

    @Override
    public <T extends ResourcePackLoader> void a(Map<String, T> map, ResourcePackLoader.b<T> resourcepackloader_b) {
        if (!this.file.isDirectory()) {
            this.file.mkdirs();
        }

        File[] afile = this.file.listFiles(ResourcePackSourceFolder.a);

        if (afile != null) {
            File[] afile1 = afile;
            int i = afile.length;

            for (int j = 0; j < i; ++j) {
                File file = afile1[j];
                String s = "file/" + file.getName();
                T t0 = ResourcePackLoader.a(s, false, this.a(file), resourcepackloader_b, ResourcePackLoader.Position.TOP);

                if (t0 != null) {
                    map.put(s, t0);
                }
            }

        }
    }

    private Supplier<IResourcePack> a(File file) {
        return file.isDirectory() ? () -> {
            return new ResourcePackFolder(file);
        } : () -> {
            return new ResourcePackFile(file);
        };
    }
}