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 0036ae73..cd1b0a39 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; @@ -122,7 +123,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 a281e39f..ffb1fd62 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();