Skip to content

Commit 600bd6e

Browse files
authored
修复 CurseForge 源无法搜索到内容的问题 (#5220)
1 parent ccc64db commit 600bd6e

1 file changed

Lines changed: 15 additions & 18 deletions

File tree

HMCLCore/src/main/java/org/jackhuang/hmcl/mod/curse/CurseForgeRemoteModRepository.java

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,7 @@
3535
import java.io.InputStream;
3636
import java.nio.file.Files;
3737
import java.nio.file.Path;
38-
import java.util.ArrayList;
39-
import java.util.Collections;
40-
import java.util.Comparator;
41-
import java.util.HashMap;
42-
import java.util.List;
43-
import java.util.Locale;
44-
import java.util.Map;
45-
import java.util.Optional;
38+
import java.util.*;
4639
import java.util.concurrent.Semaphore;
4740
import java.util.stream.Stream;
4841

@@ -125,16 +118,20 @@ public SearchResult search(DownloadProvider downloadProvider, String gameVersion
125118
if (category != null && category.getSelf() instanceof CurseAddon.Category) {
126119
categoryId = ((CurseAddon.Category) category.getSelf()).getId();
127120
}
128-
Response<List<CurseAddon>> response = withApiKey(HttpRequest.GET(downloadProvider.injectURL(NetworkUtils.withQuery(PREFIX + "/v1/mods/search", mapOf(
129-
pair("gameId", "432"),
130-
pair("classId", Integer.toString(section)),
131-
pair("categoryId", Integer.toString(categoryId)),
132-
pair("gameVersion", gameVersion),
133-
pair("searchFilter", searchFilter),
134-
pair("sortField", Integer.toString(toModsSearchSortField(sortType))),
135-
pair("sortOrder", toSortOrder(sortOrder)),
136-
pair("index", Integer.toString(pageOffset * pageSize)),
137-
pair("pageSize", Integer.toString(pageSize)))))))
121+
122+
var query = new LinkedHashMap<String, String>();
123+
query.put("gameId", "432");
124+
query.put("classId", Integer.toString(section));
125+
if (categoryId != 0)
126+
query.put("categoryId", Integer.toString(categoryId));
127+
query.put("gameVersion", gameVersion);
128+
query.put("searchFilter", searchFilter);
129+
query.put("sortField", Integer.toString(toModsSearchSortField(sortType)));
130+
query.put("sortOrder", toSortOrder(sortOrder));
131+
query.put("index", Integer.toString(pageOffset * pageSize));
132+
query.put("pageSize", Integer.toString(pageSize));
133+
134+
Response<List<CurseAddon>> response = withApiKey(HttpRequest.GET(downloadProvider.injectURL(NetworkUtils.withQuery(PREFIX + "/v1/mods/search", query))))
138135
.getJson(Response.typeOf(listTypeOf(CurseAddon.class)));
139136
if (searchFilter.isEmpty()) {
140137
return new SearchResult(response.getData().stream().map(CurseAddon::toMod), calculateTotalPages(response, pageSize));

0 commit comments

Comments
 (0)