diff --git a/api/src/main/java/net/momirealms/customnameplates/api/helper/AdventureHelper.java b/api/src/main/java/net/momirealms/customnameplates/api/helper/AdventureHelper.java index 74c2976..61faf33 100644 --- a/api/src/main/java/net/momirealms/customnameplates/api/helper/AdventureHelper.java +++ b/api/src/main/java/net/momirealms/customnameplates/api/helper/AdventureHelper.java @@ -231,7 +231,7 @@ public class AdventureHelper { * @return the text wrapped in a color tag to remove shadows */ public static String removeShadow(String text) { - return "<#F0F0F0>" + text + ""; + return "<#F0F0F0>" + text + ""; } /** diff --git a/api/src/main/java/net/momirealms/customnameplates/api/helper/VersionHelper.java b/api/src/main/java/net/momirealms/customnameplates/api/helper/VersionHelper.java index 905aacc..a9185c0 100644 --- a/api/src/main/java/net/momirealms/customnameplates/api/helper/VersionHelper.java +++ b/api/src/main/java/net/momirealms/customnameplates/api/helper/VersionHelper.java @@ -137,6 +137,15 @@ public class VersionHelper { } } + /** + * Checks if the server version is newer than 1.21.4 + * + * @return True if the version is newer than 1.21.4, otherwise false. + */ + public static boolean isVersionNewerThan1_21_4() { + return version >= 21.39; + } + /** * Checks if the server version is newer than 1.21.2. * diff --git a/backend/src/main/java/net/momirealms/customnameplates/backend/feature/pack/ResourcePackManagerImpl.java b/backend/src/main/java/net/momirealms/customnameplates/backend/feature/pack/ResourcePackManagerImpl.java index cd6fd14..a386d24 100644 --- a/backend/src/main/java/net/momirealms/customnameplates/backend/feature/pack/ResourcePackManagerImpl.java +++ b/backend/src/main/java/net/momirealms/customnameplates/backend/feature/pack/ResourcePackManagerImpl.java @@ -72,7 +72,18 @@ public class ResourcePackManagerImpl implements ResourcePackManager { this.saveLegacyUnicodes(); if (ConfigManager.enableShader()) { - if (VersionHelper.isVersionNewerThan1_21_2()) { + if (VersionHelper.isVersionNewerThan1_21_4()) { + this.generateShaders("ResourcePack" + File.separator + "overlay_1_21_4" + File.separator + "assets" + File.separator + "minecraft" + File.separator + "shaders" + File.separator + "core" + File.separator, true); + try { + FileUtils.copyDirectory( + new File(plugin.getDataFolder(), "ResourcePack" + File.separator + "overlay_1_21_4"), + new File(plugin.getDataFolder(), "ResourcePack") + ); + FileUtils.deleteDirectory(new File(plugin.getDataFolder(), "ResourcePack" + File.separator + "overlay_1_21_4")); + } catch (IOException e) { + throw new RuntimeException(e); + } + } else if (VersionHelper.isVersionNewerThan1_21_2()) { this.generateShaders("ResourcePack" + File.separator + "overlay_1_21_2" + File.separator + "assets" + File.separator + "minecraft" + File.separator + "shaders" + File.separator + "core" + File.separator, true); try { FileUtils.copyDirectory( @@ -83,6 +94,7 @@ public class ResourcePackManagerImpl implements ResourcePackManager { } catch (IOException e) { throw new RuntimeException(e); } + this.generateShaders("ResourcePack" + File.separator + "overlay_1_21_4" + File.separator + "assets" + File.separator + "minecraft" + File.separator + "shaders" + File.separator + "core" + File.separator, true); } else if (VersionHelper.isVersionNewerThan1_20_5()) { this.generateShaders("ResourcePack" + File.separator + "overlay_1_20_5" + File.separator + "assets" + File.separator + "minecraft" + File.separator + "shaders" + File.separator + "core" + File.separator, true); try { @@ -95,10 +107,12 @@ public class ResourcePackManagerImpl implements ResourcePackManager { throw new RuntimeException(e); } this.generateShaders("ResourcePack" + File.separator + "overlay_1_21_2" + File.separator + "assets" + File.separator + "minecraft" + File.separator + "shaders" + File.separator + "core" + File.separator, true); + this.generateShaders("ResourcePack" + File.separator + "overlay_1_21_4" + File.separator + "assets" + File.separator + "minecraft" + File.separator + "shaders" + File.separator + "core" + File.separator, true); } else { this.generateShaders("ResourcePack" + File.separator + "assets" + File.separator + "minecraft" + File.separator + "shaders" + File.separator + "core" + File.separator, false); this.generateShaders("ResourcePack" + File.separator + "overlay_1_20_5" + File.separator + "assets" + File.separator + "minecraft" + File.separator + "shaders" + File.separator + "core" + File.separator, true); this.generateShaders("ResourcePack" + File.separator + "overlay_1_21_2" + File.separator + "assets" + File.separator + "minecraft" + File.separator + "shaders" + File.separator + "core" + File.separator, true); + this.generateShaders("ResourcePack" + File.separator + "overlay_1_21_4" + File.separator + "assets" + File.separator + "minecraft" + File.separator + "shaders" + File.separator + "core" + File.separator, true); } } diff --git a/backend/src/main/resources/ResourcePack/overlay_1_21_4/assets/minecraft/shaders/core/rendertype_text.fsh b/backend/src/main/resources/ResourcePack/overlay_1_21_4/assets/minecraft/shaders/core/rendertype_text.fsh new file mode 100644 index 0000000..49cbc4b --- /dev/null +++ b/backend/src/main/resources/ResourcePack/overlay_1_21_4/assets/minecraft/shaders/core/rendertype_text.fsh @@ -0,0 +1,24 @@ +#version 150 + +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform vec4 FogColor; + +in float vertexDistance; +in vec4 vertexColor; +in vec2 texCoord0; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; + if (color.a < 0.1) { + discard; + } + fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); +} diff --git a/backend/src/main/resources/ResourcePack/overlay_1_21_4/assets/minecraft/shaders/core/rendertype_text.json b/backend/src/main/resources/ResourcePack/overlay_1_21_4/assets/minecraft/shaders/core/rendertype_text.json new file mode 100644 index 0000000..8fff4c6 --- /dev/null +++ b/backend/src/main/resources/ResourcePack/overlay_1_21_4/assets/minecraft/shaders/core/rendertype_text.json @@ -0,0 +1,17 @@ +{ + "vertex": "minecraft:core/rendertype_text", + "fragment": "minecraft:core/rendertype_text", + "samplers": [ + { "name": "Sampler0" }, + { "name": "Sampler2" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogColor", "type": "float", "count": 4, "values": [ 0.0, 0.0, 0.0, 0.0 ] }, + { "name": "FogShape", "type": "int", "count": 1, "values": [ 0 ] } + ] +} diff --git a/backend/src/main/resources/ResourcePack/overlay_1_21_4/assets/minecraft/shaders/core/rendertype_text.vsh b/backend/src/main/resources/ResourcePack/overlay_1_21_4/assets/minecraft/shaders/core/rendertype_text.vsh new file mode 100644 index 0000000..2852ddd --- /dev/null +++ b/backend/src/main/resources/ResourcePack/overlay_1_21_4/assets/minecraft/shaders/core/rendertype_text.vsh @@ -0,0 +1,26 @@ +#version 150 + +#moj_import + +in vec3 Position; +in vec4 Color; +in vec2 UV0; +in ivec2 UV2; + +uniform sampler2D Sampler2; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform int FogShape; + +out float vertexDistance; +out vec4 vertexColor; +out vec2 texCoord0; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexDistance = fog_distance(Position, FogShape); + vertexColor = Color * texelFetch(Sampler2, UV2 / 16, 0); + texCoord0 = UV0; +} diff --git a/backend/src/main/resources/ResourcePack/pack.mcmeta b/backend/src/main/resources/ResourcePack/pack.mcmeta index 45312a3..ae5d1af 100644 --- a/backend/src/main/resources/ResourcePack/pack.mcmeta +++ b/backend/src/main/resources/ResourcePack/pack.mcmeta @@ -4,7 +4,7 @@ "description": "CustomNameplates", "supported_formats": { "min_inclusive": 13, - "max_inclusive": 46 + "max_inclusive": 51 } }, "overlays": { @@ -19,9 +19,16 @@ { "formats": { "min_inclusive": 42, - "max_inclusive": 46 + "max_inclusive": 45 }, "directory": "overlay_1_21_2" + }, + { + "formats": { + "min_inclusive": 46, + "max_inclusive": 51 + }, + "directory": "overlay_1_21_4" } ] } diff --git a/backend/src/main/resources/ResourcePack/pack_1_20_5.mcmeta b/backend/src/main/resources/ResourcePack/pack_1_20_5.mcmeta index abba00c..84fd641 100644 --- a/backend/src/main/resources/ResourcePack/pack_1_20_5.mcmeta +++ b/backend/src/main/resources/ResourcePack/pack_1_20_5.mcmeta @@ -4,24 +4,24 @@ "description": "CustomNameplates", "supported_formats": { "min_inclusive": 32, - "max_inclusive": 46 + "max_inclusive": 51 } }, "overlays": { "entries": [ { "formats": { - "min_inclusive": 32, - "max_inclusive": 34 + "min_inclusive": 42, + "max_inclusive": 45 }, - "directory": "overlay_1_20_5" + "directory": "overlay_1_21_2" }, { "formats": { - "min_inclusive": 42, - "max_inclusive": 46 + "min_inclusive": 46, + "max_inclusive": 51 }, - "directory": "overlay_1_21_2" + "directory": "overlay_1_21_4" } ] } diff --git a/backend/src/main/resources/ResourcePack/pack_1_21_2.mcmeta b/backend/src/main/resources/ResourcePack/pack_1_21_2.mcmeta index 6b1f498..cf3ef2d 100644 --- a/backend/src/main/resources/ResourcePack/pack_1_21_2.mcmeta +++ b/backend/src/main/resources/ResourcePack/pack_1_21_2.mcmeta @@ -4,7 +4,18 @@ "description": "CustomNameplates", "supported_formats": { "min_inclusive": 42, - "max_inclusive": 46 + "max_inclusive": 51 } + }, + "overlays": { + "entries": [ + { + "formats": { + "min_inclusive": 46, + "max_inclusive": 51 + }, + "directory": "overlay_1_21_4" + } + ] } } \ No newline at end of file diff --git a/backend/src/main/resources/ResourcePack/pack_1_21_4.mcmeta b/backend/src/main/resources/ResourcePack/pack_1_21_4.mcmeta new file mode 100644 index 0000000..a851556 --- /dev/null +++ b/backend/src/main/resources/ResourcePack/pack_1_21_4.mcmeta @@ -0,0 +1,10 @@ +{ + "pack": { + "pack_format": 46, + "description": "CustomNameplates", + "supported_formats": { + "min_inclusive": 46, + "max_inclusive": 51 + } + } +} \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index b9394c7..27acec9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ # Project settings # Rule: [major update].[feature update].[bug fix] -project_version=3.0.19 +project_version=3.0.20 config_version=36 project_group=net.momirealms @@ -47,9 +47,9 @@ lwjgl_version=3.3.4 fastutil_version=8.5.15 # Proxy settings -#systemProp.socks.proxyHost=127.0.0.1 -#systemProp.socks.proxyPort=7890 -#systemProp.http.proxyHost=127.0.0.1 -#systemProp.http.proxyPort=7890 -#systemProp.https.proxyHost=127.0.0.1 -#systemProp.https.proxyPort=7890 \ No newline at end of file +systemProp.socks.proxyHost=127.0.0.1 +systemProp.socks.proxyPort=7890 +systemProp.http.proxyHost=127.0.0.1 +systemProp.http.proxyPort=7890 +systemProp.https.proxyHost=127.0.0.1 +systemProp.https.proxyPort=7890 \ No newline at end of file