Список ресурсов

ASi

Каменная лига
Сообщения
14
Лучшие ответы
0
Симпатии
0
#1
Версия Minecraft
1.7.10
Подтверждение
Я максимально подробно описал проблему, включая исходный код файлов, краш лог, изображения и другую информацию, которая может помочь пользователям форума решить мой вопрос!
В общем дело такое мне нужно получить массив всех файлов в определенной папке из ресурсов (не путать с папкой майна, именно мода) но сделать это нужно используя modid что бы можно было чекать файлы и в подключенном ресурс паке. Можно ли такое сделать и если да то как?
 

Agravaine

Алмазная лига
Сообщения
4,056
Лучшие ответы
150
Симпатии
430
#2
Файлы ты никак не получишь, только InputStream. Подойдет?
 

ASi

Каменная лига
Сообщения
14
Лучшие ответы
0
Симпатии
0
#3
Мне нужно сделать что то типо DLC - в ресурспаке лежит модель с текстурами и json файл конфигов вот их мне все получить и прочитать надо(конфиги). может тогда есть еще какой-то вариант реализации этого? Мне вообще и скрипт несколько раз юзать надо для подтипов итема и при рендере
 

JustAGod

Железная лига
Сообщения
792
Лучшие ответы
42
Симпатии
186
#4
Ну допустим есть такой вариант
Java:
public static List<String> getFilenamesInDir(String dir) {
        List<String> filenames = new ArrayList<String>();
        try {
            if (dir.startsWith("/")) {
                dir = dir.substring(1);
            }
            Enumeration<URL> urls = ClassPathHelper.class.getClassLoader().getResources(dir);
            while (urls.hasMoreElements()) {
                URL url = urls.nextElement();
                String protocol = url.getProtocol();
                if (protocol.equals("file")) {
                    File dirFile = new File(url.toURI());
                    HashMap<File, String> files = listFiles(dirFile, dir);
                    if (files != null) {
                        for (Map.Entry<File, String> entry : files.entrySet()) {
                            String filename = entry.getValue() + entry.getKey().getName();
                            filenames.add("/" + filename);
                        }
                    }
                }
                if (protocol.equals("jar") || protocol.equals("zip")) {
                    String file = URLDecoder.decode(url.getFile(), "UTF-8");
                    int bangIndex = file.indexOf('!');
                    String jarPath = file.substring(bangIndex + 2);
                    file = new URL(file.substring(0, bangIndex)).getFile();
                    ZipFile zip = new ZipFile(file);
                    Enumeration<? extends ZipEntry> entries = zip.entries();
                    while (entries.hasMoreElements()) {
                        ZipEntry entry = entries.nextElement();
                        if (entry.getName().startsWith(dir.substring(1)) && !entry.isDirectory()) {
                            filenames.add("/" + entry.getName());
                        }
                    }
                    zip.close();
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return filenames;
Этот код я просто скопипастил из кода ск. Мб у тебя он даже не запустится, но можешь попробовать даяда.
 
Сверху