From 14b4901f51d7698c604d72a37980dfdba1081736 Mon Sep 17 00:00:00 2001 From: jhqwqmc <2110242767@qq.com> Date: Sun, 22 Jun 2025 02:01:00 +0800 Subject: [PATCH] =?UTF-8?q?feat(core):=20=E6=B7=BB=E5=8A=A0=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E6=89=80=E6=9C=89=E7=9D=80=E8=89=B2=E5=99=A8=E7=9A=84?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common-files/src/main/resources/config.yml | 2 ++ .../core/pack/AbstractPackManager.java | 21 +++++++++++++++++++ .../core/plugin/config/Config.java | 6 ++++++ gradle.properties | 2 +- 4 files changed, 30 insertions(+), 1 deletion(-) diff --git a/common-files/src/main/resources/config.yml b/common-files/src/main/resources/config.yml index cd70214c5..04d0295c4 100644 --- a/common-files/src/main/resources/config.yml +++ b/common-files/src/main/resources/config.yml @@ -62,6 +62,8 @@ resource-pack: max: LATEST # Remove 1.21.5+ tinted_leaves particles remove-tinted-leaves-particle: true + # Remove all shaders + remove-all-shaders: false merge-external-folders: - ModelEngine/resource pack - BetterModel/build diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/AbstractPackManager.java b/core/src/main/java/net/momirealms/craftengine/core/pack/AbstractPackManager.java index f80cd2d4c..00631a72f 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/AbstractPackManager.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/AbstractPackManager.java @@ -615,6 +615,9 @@ public abstract class AbstractPackManager implements PackManager { this.generateClientLang(generatedPackPath); this.generateEquipments(generatedPackPath); this.generateParticle(generatedPackPath); + if (Config.removeAllShaders()) { + this.removeAllShaders(generatedPackPath); + } if (Config.validateResourcePack()) { this.validateResourcePack(generatedPackPath); } @@ -631,6 +634,24 @@ public abstract class AbstractPackManager implements PackManager { } } + private void removeAllShaders(Path path) { + List rootPaths; + try { + rootPaths = FileUtils.collectOverlays(path); + } catch (IOException e) { + plugin.logger().warn("Failed to collect overlays for " + path.toAbsolutePath(), e); + return; + } + for (Path rootPath : rootPaths) { + Path shadersPath = rootPath.resolve("assets/minecraft/shaders"); + try { + FileUtils.deleteDirectory(shadersPath); + } catch (IOException e) { + plugin.logger().warn("Failed to delete shaders directory for " + shadersPath.toAbsolutePath(), e); + } + } + } + @SuppressWarnings("DuplicatedCode") private void validateResourcePack(Path path) { List rootPaths; diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/Config.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/Config.java index 835b8f486..0cadaa1a8 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/Config.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/Config.java @@ -60,6 +60,7 @@ public class Config { protected boolean resource_pack$protection$crash_tools$method_3; protected boolean resource_pack$validate$enable; + protected boolean resource_pack$remove_all_shaders; protected boolean resource_pack$protection$obfuscation$enable; protected long resource_pack$protection$obfuscation$seed; @@ -262,6 +263,7 @@ public class Config { resource_pack$protection$obfuscation$resource_location$bypass_sounds = config.getStringList("resource-pack.protection.obfuscation.resource-location.bypass-sounds"); resource_pack$protection$obfuscation$resource_location$bypass_equipments = config.getStringList("resource-pack.protection.obfuscation.resource-location.bypass-equipments"); resource_pack$validate$enable = config.getBoolean("resource-pack.validate.enable", true); + resource_pack$remove_all_shaders = config.getBoolean("resource-pack.remove-all-shaders", false); try { resource_pack$duplicated_files_handler = config.getMapList("resource-pack.duplicated-files-handler").stream().map(it -> { @@ -736,6 +738,10 @@ public class Config { return instance.resource_pack$validate$enable; } + public static boolean removeAllShaders() { + return instance.resource_pack$remove_all_shaders; + } + public YamlDocument loadOrCreateYamlData(String fileName) { Path path = this.plugin.dataFolderPath().resolve(fileName); if (!Files.exists(path)) { diff --git a/gradle.properties b/gradle.properties index 1c385d86e..3b133a061 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ org.gradle.jvmargs=-Xmx1G # Project settings # Rule: [major update].[feature update].[bug fix] project_version=0.0.57.6 -config_version=37 +config_version=38 lang_version=19 project_group=net.momirealms latest_supported_version=1.21.6