Skip to content

Commit

Permalink
Fix update checker not working for Quilt mods (#616)
Browse files Browse the repository at this point in the history
- Fix update checker not working for Quilt mods
  • Loading branch information
LostLuma authored Jul 3, 2023
1 parent 3ffb291 commit 0b88e0a
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 6 deletions.
2 changes: 1 addition & 1 deletion src/main/java/com/terraformersmc/modmenu/ModMenu.java
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public class ModMenu implements ClientModInitializer {
private static List<Map<String, ConfigScreenFactory<?>>> delayedScreenFactoryProviders = new ArrayList<>();

private static int cachedDisplayedModCount = -1;
public static boolean runningQuilt = false;
public static boolean runningQuilt = FabricLoader.getInstance().isModLoaded("quilt_loader");

public static Screen getConfigScreen(String modid, Screen menuScreen) {
if(!delayedScreenFactoryProviders.isEmpty()) {
Expand Down
13 changes: 8 additions & 5 deletions src/main/java/com/terraformersmc/modmenu/util/ModrinthUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -49,13 +49,16 @@ public static void checkForUpdates() {
LOGGER.error("Error checking for updates: ", e);
}
});
String loader = ModMenu.runningQuilt ? "quilt" : "fabric";

String primaryLoader = ModMenu.runningQuilt ? "quilt" : "fabric";
List<String> loaders = ModMenu.runningQuilt ? List.of("fabric", "quilt") : List.of("fabric");

String mcVer = SharedConstants.getGameVersion().getName();
String[] splitVersion = FabricLoader.getInstance().getModContainer(ModMenu.MOD_ID)
.get().getMetadata().getVersion().getFriendlyString().split("\\+", 1); // Strip build metadata for privacy
final var modMenuVersion = splitVersion.length > 1 ? splitVersion[1] : splitVersion[0];
final var userAgent = "%s/%s (%s/%s)".formatted(ModMenu.GITHUB_REF, modMenuVersion, mcVer, loader);
String body = ModMenu.GSON_MINIFIED.toJson(new LatestVersionsFromHashesBody(HASH_TO_MOD.keySet(), loader, mcVer));
final var userAgent = "%s/%s (%s/%s)".formatted(ModMenu.GITHUB_REF, modMenuVersion, mcVer, primaryLoader);
String body = ModMenu.GSON_MINIFIED.toJson(new LatestVersionsFromHashesBody(HASH_TO_MOD.keySet(), loaders, mcVer));
LOGGER.debug("User agent: " + userAgent);
LOGGER.debug("Body: " + body);
var latestVersionsRequest = HttpRequest.newBuilder()
Expand Down Expand Up @@ -123,9 +126,9 @@ public static class LatestVersionsFromHashesBody {
@SerializedName("game_versions")
public Collection<String> gameVersions;

public LatestVersionsFromHashesBody(Collection<String> hashes, String loader, String mcVersion) {
public LatestVersionsFromHashesBody(Collection<String> hashes, Collection<String> loaders, String mcVersion) {
this.hashes = hashes;
this.loaders = Set.of(loader);
this.loaders = loaders;
this.gameVersions = Set.of(mcVersion);
}
}
Expand Down

0 comments on commit 0b88e0a

Please sign in to comment.