fix GsonRequest serialize fail

This commit is contained in:
Timi
2025-07-19 17:28:24 +08:00
parent 3c723bd443
commit 051f0b3ca1
2 changed files with 7 additions and 9 deletions

View File

@ -3,7 +3,7 @@ package cn.forevermc.launcher.service;
import cn.forevermc.launcher.bean.APISetting;
import cn.forevermc.launcher.util.Resources;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.google.gson.reflect.TypeToken;
import com.imyeyu.fx.task.RunAsync;
import com.imyeyu.inject.annotation.Inject;
import com.imyeyu.inject.annotation.InvokeForInjected;
@ -49,7 +49,7 @@ public class APISettingService {
for (APISetting.Key key : APISetting.Key.values()) {
reqArgs.put(key, null);
}
Map<APISetting.Key, String> data = TimiRequest.<Map<APISetting.Key, String>>wrap(Request.post(API).bodyString(gson.toJson(reqArgs), ContentType.APPLICATION_JSON)).result();
Map<APISetting.Key, String> data = TimiRequest.wrap(Request.post(API).bodyString(gson.toJson(reqArgs), ContentType.APPLICATION_JSON)).resultAs(new TypeToken<>() {});
setting.setBg(gson.fromJson(data.get(APISetting.Key.FMC_BG), APISetting.DynamicList.class));
setting.setBgm(gson.fromJson(data.get(APISetting.Key.FMC_BGM), APISetting.DynamicList.class));
setting.setSplashes(gson.fromJson(data.get(APISetting.Key.FMC_SPLASHES), APISetting.DynamicList.class));

View File

@ -137,11 +137,11 @@ public class FMCLoginService implements OS.FileSystem {
@Override
protected Void call() throws Exception {
{
String data = TimiRequest.<String>get(SETTING_API + "/FMC_LOGIN_FABRIC").result();
String data = TimiRequest.get(SETTING_API + "/FMC_LOGIN_FABRIC").resultAs(String.class);
loginModMapTemp = gson.fromJson(data, new TypeToken<Map<String, String>>() {}.getType());
}
{
List<FabricAPI> data = TimiRequest.<List<FabricAPI>>get(MIRROR_API + "/FabricAPI").result();
List<FabricAPI> data = TimiRequest.get(MIRROR_API + "/FabricAPI").resultAs(new TypeToken<>() {});
fabricAPIMapTemp = data.stream().collect(Collectors.toMap(FabricAPI::getMinecraftVer, item -> item));
}
return null;
@ -214,19 +214,17 @@ public class FMCLoginService implements OS.FileSystem {
TokenRequest request = new TokenRequest();
request.setUser(user);
request.setPassword(password);
return TimiRequest.<TokenResponse>wrap(Request.post(LOGIN_TOKEN_API).bodyString(gson.toJson(request), ContentType.APPLICATION_JSON)).result();
return TimiRequest.wrap(Request.post(LOGIN_TOKEN_API).bodyString(gson.toJson(request), ContentType.APPLICATION_JSON)).resultAs(TokenResponse.class);
}
public List<MinecraftPlayer> listBoundPlayer(String token) throws Exception {
return TimiRequest.<List<MinecraftPlayer>>wrap(Request.get(LIST_PLAYER_API).addHeader("Token", token)).result();
return TimiRequest.wrap(Request.get(LIST_PLAYER_API).addHeader("Token", token)).resultAs(new TypeToken<>() {});
}
public TokenResponse doLogin(MinecraftPlayer player, String token) throws Exception {
Map<String, Object> map = new HashMap<>();
map.put("playerId", player.id);
return TimiRequest.<TokenResponse>wrap(Request.get(LIST_PLAYER_API)
.addHeader("Token", token)
.bodyString(gson.toJson(map), ContentType.APPLICATION_JSON)).result();
return TimiRequest.wrap(Request.get(LIST_PLAYER_API).addHeader("Token", token).bodyString(gson.toJson(map), ContentType.APPLICATION_JSON)).resultAs(TokenResponse.class);
}
private boolean hasMod(Game game, String name) {