From a409409668c45961c631c465f573e68b658c2fa8 Mon Sep 17 00:00:00 2001 From: xSquishyLiam <56977759+xSquishyLiam@users.noreply.github.com> Date: Sat, 18 Oct 2025 05:08:26 +0100 Subject: [PATCH] auto create folders just need to sort out the json files to auto create --- .../templates/TemplatesManager.java | 4 +++ .../util/FileConfiguration.java | 8 +----- .../util/FileUtils.java | 25 +++++++++++++++++++ .../{Material.json => material.json} | 0 .../{PackManifest.json => packmanifest.json} | 0 src/main/resources/extension.yml | 4 ++- 6 files changed, 33 insertions(+), 8 deletions(-) rename src/main/resources/Extension/ResoucePack/Templates/{Material.json => material.json} (100%) rename src/main/resources/Extension/ResoucePack/Templates/{PackManifest.json => packmanifest.json} (100%) diff --git a/src/main/java/re/imc/geysermodelenginepackgenerator/managers/resourcepack/templates/TemplatesManager.java b/src/main/java/re/imc/geysermodelenginepackgenerator/managers/resourcepack/templates/TemplatesManager.java index f7b069e..8364263 100644 --- a/src/main/java/re/imc/geysermodelenginepackgenerator/managers/resourcepack/templates/TemplatesManager.java +++ b/src/main/java/re/imc/geysermodelenginepackgenerator/managers/resourcepack/templates/TemplatesManager.java @@ -4,6 +4,7 @@ import com.google.gson.JsonObject; import com.google.gson.JsonParser; import com.google.gson.JsonSyntaxException; import re.imc.geysermodelenginepackgenerator.GeyserModelEnginePackGenerator; +import re.imc.geysermodelenginepackgenerator.util.FileConfiguration; import re.imc.geysermodelenginepackgenerator.util.FileUtils; import java.io.File; @@ -21,6 +22,9 @@ public class TemplatesManager { this.extension = extension; loadTemplates(); + + FileUtils.createFiles(extension,"ResourcePack/Templates/material.json"); + FileUtils.createFiles(extension,"ResourcePack/Templates/packmanifest.json"); } private void loadTemplates() { diff --git a/src/main/java/re/imc/geysermodelenginepackgenerator/util/FileConfiguration.java b/src/main/java/re/imc/geysermodelenginepackgenerator/util/FileConfiguration.java index 4138783..8198d83 100644 --- a/src/main/java/re/imc/geysermodelenginepackgenerator/util/FileConfiguration.java +++ b/src/main/java/re/imc/geysermodelenginepackgenerator/util/FileConfiguration.java @@ -37,13 +37,7 @@ public class FileConfiguration { Path config = this.dataDirectory.resolve(fileName); - if (!Files.exists(config)) { - try (InputStream resourceAsStream = this.extension.getClass().getClassLoader().getResourceAsStream("Extension/" + fileName)) { - Files.copy(resourceAsStream, config); - } catch (IOException err) { - throw new RuntimeException(err); - } - } + FileUtils.createFiles(extension, fileName); YamlConfigurationLoader loader = YamlConfigurationLoader.builder().path(config).build(); diff --git a/src/main/java/re/imc/geysermodelenginepackgenerator/util/FileUtils.java b/src/main/java/re/imc/geysermodelenginepackgenerator/util/FileUtils.java index 2080e8c..9575af3 100644 --- a/src/main/java/re/imc/geysermodelenginepackgenerator/util/FileUtils.java +++ b/src/main/java/re/imc/geysermodelenginepackgenerator/util/FileUtils.java @@ -1,6 +1,12 @@ package re.imc.geysermodelenginepackgenerator.util; +import re.imc.geysermodelenginepackgenerator.GeyserModelEnginePackGenerator; + import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; import java.util.ArrayList; import java.util.List; @@ -20,4 +26,23 @@ public class FileUtils { return files; } + + public static void createFiles(GeyserModelEnginePackGenerator extension, String fileName) { + Path config = extension.dataFolder().resolve(fileName); + extension.logger().warning(config.toString()); + if (Files.exists(config)) return; + + try { + Path parentDirectory = config.getParent(); + if (parentDirectory != null && !Files.exists(parentDirectory)) Files.createDirectories(parentDirectory); + + try (InputStream resourceAsStream = extension.getClass().getClassLoader().getResourceAsStream("Extension/" + fileName)) { + Files.copy(resourceAsStream, config); + } catch (IOException err) { + throw new RuntimeException(err); + } + } catch (IOException err) { + throw new RuntimeException(err); + } + } } diff --git a/src/main/resources/Extension/ResoucePack/Templates/Material.json b/src/main/resources/Extension/ResoucePack/Templates/material.json similarity index 100% rename from src/main/resources/Extension/ResoucePack/Templates/Material.json rename to src/main/resources/Extension/ResoucePack/Templates/material.json diff --git a/src/main/resources/Extension/ResoucePack/Templates/PackManifest.json b/src/main/resources/Extension/ResoucePack/Templates/packmanifest.json similarity index 100% rename from src/main/resources/Extension/ResoucePack/Templates/PackManifest.json rename to src/main/resources/Extension/ResoucePack/Templates/packmanifest.json diff --git a/src/main/resources/extension.yml b/src/main/resources/extension.yml index cdb398c..004f7df 100644 --- a/src/main/resources/extension.yml +++ b/src/main/resources/extension.yml @@ -3,4 +3,6 @@ id: geysermodelenginepackgenerator main: re.imc.geysermodelenginepackgenerator.GeyserModelEnginePackGenerator api: 2.7.0 version: 1.0.0 -authors: [zimzaza4] \ No newline at end of file +authors: + - zimzaza4 + - xSquishyLiam \ No newline at end of file