Skip to content

Commit 6e77ee7

Browse files
committed
feat: 暂停使用 Json.Net 库
1 parent fa5cbbc commit 6e77ee7

19 files changed

Lines changed: 361 additions & 306 deletions

File tree

OverrideLauncher.Core/Modules/Classes/Account/MicrosoftAuthenticator.cs

Lines changed: 46 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
using System.Net.Http.Headers;
55
using System.Text;
66
using System.Threading.Tasks;
7-
using Newtonsoft.Json;
7+
88
using OverrideLauncher.Core.Modules.Entry.AccountEntry;
99
using JsonSerializer = System.Text.Json.JsonSerializer;
1010

@@ -154,18 +154,24 @@ private async Task<TokenResponse> PollForToken(string deviceCode)
154154
private async Task<XblTokenResponse> AuthenticateWithXboxLive(string accessToken)
155155
{
156156
var requestUri = "https://user.auth.xboxlive.com/user/authenticate";
157-
var content = new StringContent(
158-
JsonConvert.SerializeObject(new
157+
var requestData = new
158+
{
159+
Properties = new
159160
{
160-
Properties = new
161-
{
162-
AuthMethod = "RPS",
163-
SiteName = "user.auth.xboxlive.com",
164-
RpsTicket = $"d={accessToken}"
165-
},
166-
RelyingParty = "http://auth.xboxlive.com",
167-
TokenType = "JWT"
168-
}),
161+
AuthMethod = "RPS",
162+
SiteName = "user.auth.xboxlive.com",
163+
RpsTicket = $"d={accessToken}"
164+
},
165+
RelyingParty = "http://auth.xboxlive.com",
166+
TokenType = "JWT"
167+
};
168+
169+
// 序列化为 JSON
170+
var json = JsonSerializer.Serialize(requestData);
171+
172+
// 创建 StringContent
173+
var content = new StringContent(
174+
json,
169175
Encoding.UTF8,
170176
"application/json"
171177
);
@@ -180,17 +186,24 @@ private async Task<XblTokenResponse> AuthenticateWithXboxLive(string accessToken
180186
private async Task<XstsTokenResponse> AuthenticateWithXSTS(string xblToken)
181187
{
182188
var requestUri = "https://xsts.auth.xboxlive.com/xsts/authorize";
183-
var content = new StringContent(
184-
JsonConvert.SerializeObject(new
189+
190+
var requestData = new
191+
{
192+
Properties = new
185193
{
186-
Properties = new
187-
{
188-
SandboxId = "RETAIL",
189-
UserTokens = new[] { xblToken }
190-
},
191-
RelyingParty = "rp://api.minecraftservices.com/",
192-
TokenType = "JWT"
193-
}),
194+
SandboxId = "RETAIL",
195+
UserTokens = new[] { xblToken }
196+
},
197+
RelyingParty = "rp://api.minecraftservices.com/",
198+
TokenType = "JWT"
199+
};
200+
201+
// 序列化为 JSON
202+
var json = JsonSerializer.Serialize(requestData);
203+
204+
// 创建 StringContent
205+
var content = new StringContent(
206+
json,
194207
Encoding.UTF8,
195208
"application/json"
196209
);
@@ -205,11 +218,18 @@ private async Task<XstsTokenResponse> AuthenticateWithXSTS(string xblToken)
205218
private async Task<MinecraftTokenResponse> GetMinecraftAccessToken(string uhs, string xstsToken)
206219
{
207220
var requestUri = "https://api.minecraftservices.com/authentication/login_with_xbox";
221+
222+
var requestData = new
223+
{
224+
identityToken = $"XBL3.0 x={uhs};{xstsToken}"
225+
};
226+
227+
// 序列化为 JSON
228+
var json = JsonSerializer.Serialize(requestData);
229+
230+
// 创建 StringContent
208231
var content = new StringContent(
209-
JsonConvert.SerializeObject(new
210-
{
211-
identityToken = $"XBL3.0 x={uhs};{xstsToken}"
212-
}),
232+
json,
213233
Encoding.UTF8,
214234
"application/json"
215235
);

OverrideLauncher.Core/Modules/Classes/Download/Assets/CurseForge/CurseForgeSearch.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
using System.Text;
22
using System.Text.Json;
33
using System.Text.Json.Serialization;
4-
using Newtonsoft.Json;
4+
55
using OverrideLauncher.Core.Modules.Entry.DownloadEntry.DownloadAssetsEntry;
66
using JsonSerializer = System.Text.Json.JsonSerializer;
77

@@ -82,7 +82,7 @@ public static async Task<CurseForgeFeaturedResponse> GetFeatured(string ApiKey)
8282
gameId,
8383
};
8484

85-
var json = JsonConvert.SerializeObject(requestBody);
85+
var json = JsonSerializer.Serialize(requestBody);
8686
var content = new StringContent(json, Encoding.UTF8, "application/json");
8787

8888
// 发送请求

OverrideLauncher.Core/Modules/Classes/Download/DownloadVersionHelper.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using Newtonsoft.Json;
1+

2+
using System.Text.Json;
23
using OverrideLauncher.Core.Modules.Entry.DownloadEntry;
34

45
namespace OverrideLauncher.Core.Modules.Classes.Download;
@@ -40,7 +41,7 @@ async Task<string> GetJsonContentAsync(string url)
4041
string jsonContent = await GetJsonContentAsync(url);
4142

4243
// 反序列化为VersionManifest对象
43-
VersionManifestEntry.VersionManifest versionManifest = JsonConvert.DeserializeObject<VersionManifestEntry.VersionManifest>(jsonContent);
44+
VersionManifestEntry.VersionManifest versionManifest = JsonSerializer.Deserialize<VersionManifestEntry.VersionManifest>(jsonContent);
4445
return versionManifest;
4546
}
4647
catch (Exception ex)

OverrideLauncher.Core/Modules/Classes/Download/FileIntegrityChecker.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
using System.IO;
44
using System.Linq;
55
using System.Runtime.InteropServices;
6-
using Newtonsoft.Json;
6+
using System.Text.Json;
77
using OverrideLauncher.Core.Modules.Classes;
88
using OverrideLauncher.Core.Modules.Classes.Version;
99
using OverrideLauncher.Core.Modules.Entry.DownloadEntry;
@@ -34,10 +34,10 @@ public FileIntegrityChecker(VersionParse versionInfo)
3434
_gamePath = versionInfo.ClientInstances.GameCatalog;
3535
_versionInfo = versionInfo.ClientInstances;
3636

37-
_version = JsonConvert.DeserializeObject<GameJsonEntry>(
37+
_version = JsonSerializer.Deserialize<GameJsonEntry>(
3838
File.ReadAllText(Path.Combine(_gamePath, "versions", versionInfo.ClientInstances.GameName,
3939
$"{versionInfo.ClientInstances.GameName}.json")));
40-
_assets = JsonConvert.DeserializeObject<AssetsEntry.RootObject>(
40+
_assets = JsonSerializer.Deserialize<AssetsEntry.RootObject>(
4141
File.ReadAllText(Path.Combine(_gamePath, "assets", "indexes",
4242
$"{_version.Assets}.json")));
4343
}

OverrideLauncher.Core/Modules/Classes/Download/InstallClient.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
using System.Text.Json;
99
using System.Threading;
1010
using System.Threading.Tasks;
11-
using Newtonsoft.Json;
11+
1212
using OverrideLauncher.Core.Modules.Entry.DownloadEntry;
1313
using OverrideLauncher.Core.Modules.Enum.Download;
1414
using JsonSerializer = System.Text.Json.JsonSerializer;
@@ -92,7 +92,7 @@ public async Task<string> LoadGameJsonAsync()
9292
if (VersionInfo.GameJsonEntry == null)
9393
{
9494
string json = await _httpClient.GetStringAsync(VersionInfo.Version.Url);
95-
VersionInfo.GameJsonEntry = JsonConvert.DeserializeObject<GameJsonEntry>(json);
95+
VersionInfo.GameJsonEntry = JsonSerializer.Deserialize<GameJsonEntry>(json);
9696
if (VersionInfo.GameJsonEntry == null)
9797
{
9898
throw new InvalidOperationException("Failed to deserialize game JSON.");
@@ -102,7 +102,7 @@ public async Task<string> LoadGameJsonAsync()
102102
}
103103
else
104104
{
105-
return JsonConvert.SerializeObject(VersionInfo.GameJsonEntry, Formatting.Indented);
105+
return JsonSerializer.Serialize(VersionInfo.GameJsonEntry);
106106
}
107107
}
108108

@@ -137,7 +137,7 @@ public async Task<string> GetAssetsJson(string url)
137137
{
138138
if (Assets != null)
139139
{
140-
return JsonConvert.SerializeObject(Assets);
140+
return JsonSerializer.Serialize(Assets);
141141
}
142142
else
143143
{
@@ -640,7 +640,7 @@ private AssetsEntry.RootObject ParseAssetsJson(string jsonString)
640640
{
641641
try
642642
{
643-
AssetsEntry.RootObject root = JsonConvert.DeserializeObject<AssetsEntry.RootObject>(jsonString);
643+
AssetsEntry.RootObject root = JsonSerializer.Deserialize<AssetsEntry.RootObject>(jsonString);
644644

645645
if (root?.Objects == null)
646646
{

OverrideLauncher.Core/Modules/Classes/Download/InstallServer.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using Newtonsoft.Json;
1+

2+
using System.Text.Json;
23
using OverrideLauncher.Core.Modules.Entry.DownloadEntry;
34
using OverrideLauncher.Core.Modules.Entry.ServerEntry;
45

@@ -126,7 +127,7 @@ private string FormatBytes(long bytes)
126127
public async Task<string> LoadGameJsonAsync()
127128
{
128129
string json = await _httpServer.GetStringAsync(VersionInfo.Version.Url);
129-
VersionInfo.GameJsonEntry = JsonConvert.DeserializeObject<GameJsonEntry>(json);
130+
VersionInfo.GameJsonEntry = JsonSerializer.Deserialize<GameJsonEntry>(json);
130131
if (VersionInfo.GameJsonEntry == null)
131132
{
132133
throw new InvalidOperationException("Failed to deserialize game JSON.");

0 commit comments

Comments
 (0)