diff --git a/geyser/build.gradle.kts b/geyser/build.gradle.kts index 6ac7c6f..21bdc20 100644 --- a/geyser/build.gradle.kts +++ b/geyser/build.gradle.kts @@ -4,7 +4,7 @@ plugins { } group = "re.imc" -version = "1.0.6" +version = "1.0.7" repositories { mavenCentral() diff --git a/geyser/src/main/java/re/imc/geysermodelengineextension/managers/resourcepack/ResourcePackManager.java b/geyser/src/main/java/re/imc/geysermodelengineextension/managers/resourcepack/ResourcePackManager.java index 5bec955..99b2940 100644 --- a/geyser/src/main/java/re/imc/geysermodelengineextension/managers/resourcepack/ResourcePackManager.java +++ b/geyser/src/main/java/re/imc/geysermodelengineextension/managers/resourcepack/ResourcePackManager.java @@ -119,14 +119,22 @@ private void generateResourcePack(File inputFolder, File output) { pathController.toFile().getParentFile().mkdirs(); path.toFile().getParentFile().mkdirs(); - if (path.toFile().exists()) continue; - AnimationController controller = new AnimationController(); controller.load(extension, entry.getValue(), entity); + JsonObject animationsJson = entry.getValue().getJson(); + boolean hasAnimations = animationsJson.has("animations") + && !animationsJson.getAsJsonObject("animations").entrySet().isEmpty(); + boolean hasControllers = controller.getJson().has("animation_controllers") + && !controller.getJson().getAsJsonObject("animation_controllers").entrySet().isEmpty(); + try { - Files.writeString(path, GSON.toJson(entry.getValue().getJson()), StandardCharsets.UTF_8); - Files.writeString(pathController, controller.getJson().toString(), StandardCharsets.UTF_8); + if (hasAnimations && !path.toFile().exists()) { + Files.writeString(path, GSON.toJson(animationsJson), StandardCharsets.UTF_8); + } + if (hasControllers && !pathController.toFile().exists()) { + Files.writeString(pathController, controller.getJson().toString(), StandardCharsets.UTF_8); + } } catch (IOException err) { throw new RuntimeException(err); }