From 600bd6e9eeb4c01c5396fbfde7a16566272fd8f2 Mon Sep 17 00:00:00 2001 From: Glavo Date: Wed, 14 Jan 2026 20:15:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20CurseForge=20=E6=BA=90?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E6=90=9C=E7=B4=A2=E5=88=B0=E5=86=85=E5=AE=B9?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98=20(#5220)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../curse/CurseForgeRemoteModRepository.java | 33 +++++++++---------- 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/curse/CurseForgeRemoteModRepository.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/curse/CurseForgeRemoteModRepository.java index 71689ce05..62ed34441 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/curse/CurseForgeRemoteModRepository.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/curse/CurseForgeRemoteModRepository.java @@ -35,14 +35,7 @@ import java.io.IOException; import java.io.InputStream; import java.nio.file.Files; import java.nio.file.Path; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.HashMap; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Optional; +import java.util.*; import java.util.concurrent.Semaphore; import java.util.stream.Stream; @@ -125,16 +118,20 @@ public final class CurseForgeRemoteModRepository implements RemoteModRepository if (category != null && category.getSelf() instanceof CurseAddon.Category) { categoryId = ((CurseAddon.Category) category.getSelf()).getId(); } - Response> response = withApiKey(HttpRequest.GET(downloadProvider.injectURL(NetworkUtils.withQuery(PREFIX + "/v1/mods/search", mapOf( - pair("gameId", "432"), - pair("classId", Integer.toString(section)), - pair("categoryId", Integer.toString(categoryId)), - pair("gameVersion", gameVersion), - pair("searchFilter", searchFilter), - pair("sortField", Integer.toString(toModsSearchSortField(sortType))), - pair("sortOrder", toSortOrder(sortOrder)), - pair("index", Integer.toString(pageOffset * pageSize)), - pair("pageSize", Integer.toString(pageSize))))))) + + var query = new LinkedHashMap(); + query.put("gameId", "432"); + query.put("classId", Integer.toString(section)); + if (categoryId != 0) + query.put("categoryId", Integer.toString(categoryId)); + query.put("gameVersion", gameVersion); + query.put("searchFilter", searchFilter); + query.put("sortField", Integer.toString(toModsSearchSortField(sortType))); + query.put("sortOrder", toSortOrder(sortOrder)); + query.put("index", Integer.toString(pageOffset * pageSize)); + query.put("pageSize", Integer.toString(pageSize)); + + Response> response = withApiKey(HttpRequest.GET(downloadProvider.injectURL(NetworkUtils.withQuery(PREFIX + "/v1/mods/search", query)))) .getJson(Response.typeOf(listTypeOf(CurseAddon.class))); if (searchFilter.isEmpty()) { return new SearchResult(response.getData().stream().map(CurseAddon::toMod), calculateTotalPages(response, pageSize));