From f4e828d4eb3aed7317766c50959f23cd5e467e7a Mon Sep 17 00:00:00 2001 From: Max Date: Fri, 27 May 2022 17:31:05 +0200 Subject: [PATCH] Add Platform#getFilePaths (#268) Signed-off-by: Max (cherry picked from commit 517205efdc5a8c7791b3eae088420221a9b4f1a6) (cherry picked from commit d1d491dad25f82d24b769e8d15e04e36c99d6e73) --- .../main/java/dev/architectury/platform/Mod.java | 14 ++++++++++++++ .../architectury/platform/fabric/PlatformImpl.java | 8 +++++++- .../architectury/platform/forge/PlatformImpl.java | 7 ++++++- 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/common/src/main/java/dev/architectury/platform/Mod.java b/common/src/main/java/dev/architectury/platform/Mod.java index 117cc795..8aa80a28 100644 --- a/common/src/main/java/dev/architectury/platform/Mod.java +++ b/common/src/main/java/dev/architectury/platform/Mod.java @@ -26,6 +26,7 @@ import org.jetbrains.annotations.Nullable; import java.nio.file.Path; import java.util.Collection; +import java.util.List; import java.util.Optional; public interface Mod { @@ -45,6 +46,19 @@ public interface Mod { */ Optional getLogoFile(int preferredSize); + /** + * Gets a list of all possible root paths for the mod. + * This is especially relevant on Fabric, as a single mod may have multiple source sets + * (such as client / server-specific ones), each corresponding to one root path. + * + * @return A list of root paths belonging to the mod + */ + List getFilePaths(); + + /** + * @deprecated Use {@link #getFilePaths()} instead + */ + @Deprecated(forRemoval = true) Path getFilePath(); Collection getAuthors(); diff --git a/fabric/src/main/java/dev/architectury/platform/fabric/PlatformImpl.java b/fabric/src/main/java/dev/architectury/platform/fabric/PlatformImpl.java index 12053ccd..84cd77e4 100644 --- a/fabric/src/main/java/dev/architectury/platform/fabric/PlatformImpl.java +++ b/fabric/src/main/java/dev/architectury/platform/fabric/PlatformImpl.java @@ -31,6 +31,7 @@ import org.jetbrains.annotations.Nullable; import java.nio.file.Path; import java.util.Collection; +import java.util.List; import java.util.Map; import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; @@ -116,7 +117,12 @@ public class PlatformImpl { public @NotNull Optional getLogoFile(int preferredSize) { return metadata.getIconPath(preferredSize); } - + + @Override + public List getFilePaths() { + return container.getRootPaths(); + } + @Override public @NotNull Path getFilePath() { return container.getRootPath(); diff --git a/forge/src/main/java/dev/architectury/platform/forge/PlatformImpl.java b/forge/src/main/java/dev/architectury/platform/forge/PlatformImpl.java index 626b1879..2d0c93e5 100644 --- a/forge/src/main/java/dev/architectury/platform/forge/PlatformImpl.java +++ b/forge/src/main/java/dev/architectury/platform/forge/PlatformImpl.java @@ -127,7 +127,12 @@ public class PlatformImpl { public @NotNull Optional getLogoFile(int i) { return this.info.getLogoFile(); } - + + @Override + public List getFilePaths() { + return List.of(getFilePath()); + } + @Override public @NotNull Path getFilePath() { return this.info.getOwningFile().getFile().getFilePath();