Skip to content
This repository was archived by the owner on Dec 30, 2022. It is now read-only.

Commit 2e53e6a

Browse files
authored
Merge pull request #37 from DeathsGun/bugs/forge_versions
Fixed forge version of mods showing up
2 parents cf4c411 + ec92e09 commit 2e53e6a

3 files changed

Lines changed: 16 additions & 3 deletions

File tree

src/main/java/xyz/deathsgun/modmanager/providers/modrinth/Modrinth.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
import java.util.ArrayList;
4343
import java.util.HashMap;
4444
import java.util.List;
45+
import java.util.stream.Collectors;
4546

4647
public class Modrinth implements IModProvider {
4748

@@ -146,7 +147,9 @@ public List<ModVersion> getVersionsForMod(String id) throws Exception {
146147
if (response.statusCode() != 200) {
147148
throw new Exception(response.body());
148149
}
149-
return Version.toModVersion(gson.fromJson(response.body(), new TypeToken<ArrayList<Version>>() {
150-
}.getType()));
150+
List<Version> versions = gson.fromJson(response.body(), new TypeToken<ArrayList<Version>>() {
151+
}.getType());
152+
versions = versions.stream().filter(v -> v.getLoaders().contains("fabric")).collect(Collectors.toList());
153+
return Version.toModVersion(versions);
151154
}
152155
}

src/main/java/xyz/deathsgun/modmanager/providers/modrinth/model/Version.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,15 +37,20 @@ public class Version {
3737
@SerializedName("game_versions")
3838
private List<String> gameVersions;
3939
private List<File> files;
40+
private List<String> loaders;
4041

41-
public static ArrayList<ModVersion> toModVersion(ArrayList<Version> versions) {
42+
public static ArrayList<ModVersion> toModVersion(List<Version> versions) {
4243
ArrayList<ModVersion> result = new ArrayList<>();
4344
for (Version version : versions) {
4445
result.add(new ModVersion(version.version, version.changelog, VersionType.fromString(version.version), version.releaseDate, version.gameVersions, File.toFiles(version.files)));
4546
}
4647
return result;
4748
}
4849

50+
public List<String> getLoaders() {
51+
return loaders;
52+
}
53+
4954
private static class File {
5055
private String url;
5156
private String filename;

src/main/java/xyz/deathsgun/modmanager/util/FabricMods.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import com.google.gson.Gson;
2020
import net.fabricmc.loader.api.FabricLoader;
2121
import net.fabricmc.loader.api.ModContainer;
22+
import org.apache.logging.log4j.LogManager;
2223
import xyz.deathsgun.modmanager.api.mod.SummarizedMod;
2324
import xyz.deathsgun.modmanager.model.ReducedModMetadata;
2425

@@ -47,6 +48,10 @@ public static Path getJarFromModContainer(String id, String name) throws Excepti
4748
for (Path path : jars) {
4849
ZipFile zipFile = new ZipFile(path.toFile());
4950
ZipEntry entry = zipFile.getEntry("fabric.mod.json");
51+
if (entry == null) {
52+
LogManager.getLogger().warn("No fabric.mod.json found in {}", path);
53+
continue;
54+
}
5055
ReducedModMetadata metadata = gson.fromJson(new InputStreamReader(zipFile.getInputStream(entry)), ReducedModMetadata.class);
5156
zipFile.close();
5257
if (metadata.getId().equals(id) || metadata.getName().equals(name)) {

0 commit comments

Comments
 (0)