From 12c2dd5b221955611e091b8a8c08e9ba1f53d63b Mon Sep 17 00:00:00 2001 From: skippyall <121978267+skippyall@users.noreply.github.com> Date: Fri, 22 May 2026 20:43:06 +0200 Subject: [PATCH] Fix (and no longer be symlink safe again )-;) --- build.gradle | 2 +- .../main/java/io/github/skippyall/ruler/FileUtils.java | 9 ++++++--- .../io/github/skippyall/ruler/config/ConfigLoader.java | 2 +- .../java/io/github/skippyall/ruler/rule/RuleUtils.java | 9 +++------ fabric/build.gradle | 5 +++-- fabric/gradle.properties | 1 - 6 files changed, 14 insertions(+), 14 deletions(-) diff --git a/build.gradle b/build.gradle index 630784d..dbb7f7c 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ plugins { } group = 'io.github.skippyall' -version = '1.0-SNAPSHOT' +version = '1.0.0' subprojects { repositories { diff --git a/common/src/main/java/io/github/skippyall/ruler/FileUtils.java b/common/src/main/java/io/github/skippyall/ruler/FileUtils.java index 0207dad..2baca10 100644 --- a/common/src/main/java/io/github/skippyall/ruler/FileUtils.java +++ b/common/src/main/java/io/github/skippyall/ruler/FileUtils.java @@ -1,6 +1,7 @@ package io.github.skippyall.ruler; import java.io.IOException; +import java.nio.file.FileSystems; import java.nio.file.Files; import java.nio.file.Path; import java.util.stream.Stream; @@ -12,10 +13,12 @@ public class FileUtils { public static String removeExtension(String path) { if(path.contains(".")) { - return path.substring(0, path.lastIndexOf('.')); - } else { - return path; + int index = path.lastIndexOf('.'); + if(index > path.lastIndexOf(FileSystems.getDefault().getSeparator())) { + return path.substring(0, index); + } } + return path; } public static String getExtension(Path path) { diff --git a/common/src/main/java/io/github/skippyall/ruler/config/ConfigLoader.java b/common/src/main/java/io/github/skippyall/ruler/config/ConfigLoader.java index c54b239..f7e7290 100644 --- a/common/src/main/java/io/github/skippyall/ruler/config/ConfigLoader.java +++ b/common/src/main/java/io/github/skippyall/ruler/config/ConfigLoader.java @@ -25,7 +25,7 @@ public class ConfigLoader { } RuleConfig config = null; Path configPath = FileUtils.append(fileWithoutExtension, ".config.json"); - String rulePath = RuleUtils.getRulePathFromWithoutExtension(fileWithoutExtension.toString()); + String rulePath = RuleUtils.getRulePath(fileWithoutExtension); if(Files.isRegularFile(configPath)) { try { config = RuleConfig.loadFromJson(JsonParser.parseReader(Files.newBufferedReader(configPath)), rulePath); diff --git a/common/src/main/java/io/github/skippyall/ruler/rule/RuleUtils.java b/common/src/main/java/io/github/skippyall/ruler/rule/RuleUtils.java index 12c2aca..6a153d9 100644 --- a/common/src/main/java/io/github/skippyall/ruler/rule/RuleUtils.java +++ b/common/src/main/java/io/github/skippyall/ruler/rule/RuleUtils.java @@ -35,7 +35,8 @@ public class RuleUtils { } public static boolean isValidRulePath(String path) { - return path.matches("([A-Za-z0-9\\-_.]+)") && + return path.isEmpty() || + path.matches("([A-Za-z0-9\\-_.]+)") && Arrays.stream(path.split("\\.")).noneMatch(String::isEmpty); } @@ -46,11 +47,7 @@ public class RuleUtils { } public static boolean isInDirectory(Path path) { - try { - return path.toRealPath().startsWith(getRoot()); - } catch (IOException e) { - return false; - } + return path.toAbsolutePath().startsWith(getRoot()); } public static void checkDirectory(Path path) throws InvalidRulePathException { diff --git a/fabric/build.gradle b/fabric/build.gradle index dcbb3c0..289b251 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -4,7 +4,7 @@ plugins { id 'com.gradleup.shadow' version '9.4.1' } -version = project.mod_version +version = project.getParent().version group = project.maven_group base { @@ -76,6 +76,7 @@ java { } jar { + archiveClassifier = 'dev' from("LICENSE") { rename { "${it}_${project.archivesBaseName}"} } @@ -83,7 +84,7 @@ jar { shadowJar { configurations = [project.configurations.shadowBundle] - archiveClassifier = 'dev-shadow' + archiveClassifier = '' relocate("de.themoep.minedown.adventure", "io.github.skippyall.minedown") } diff --git a/fabric/gradle.properties b/fabric/gradle.properties index c729354..fe23101 100644 --- a/fabric/gradle.properties +++ b/fabric/gradle.properties @@ -8,7 +8,6 @@ org.gradle.jvmargs=-Xmx1G loom_version=1.16-SNAPSHOT # Mod Properties - mod_version = 1.0.0 maven_group = io.github.skippyall archives_base_name = ruler-fabric