diff --git a/MinecraftClient/Protocol/Message/ChatParser.cs b/MinecraftClient/Protocol/Message/ChatParser.cs index 383421d7..c0c1e03d 100644 --- a/MinecraftClient/Protocol/Message/ChatParser.cs +++ b/MinecraftClient/Protocol/Message/ChatParser.cs @@ -473,7 +473,7 @@ namespace MinecraftClient.Protocol.Message { List using_data = new(); if (obj.ContainsKey("using") && !obj.ContainsKey("with")) - obj["with"] = System.Text.Json.Nodes.JsonNode.Parse(obj["using"]!.ToJsonString()); + obj["with"] = obj["using"]!.DeepClone(); if (obj.ContainsKey("with")) { foreach (var item in obj["with"]!.AsArray()) diff --git a/MinecraftClient/Protocol/ProxiedWebRequest.cs b/MinecraftClient/Protocol/ProxiedWebRequest.cs index 247a65e9..16724b71 100644 --- a/MinecraftClient/Protocol/ProxiedWebRequest.cs +++ b/MinecraftClient/Protocol/ProxiedWebRequest.cs @@ -13,6 +13,8 @@ namespace MinecraftClient.Protocol /// public class ProxiedWebRequest { + private const int DefaultConnectTimeoutSeconds = 30; + private readonly Uri _uri; public NameValueCollection Headers { get; } = new(); @@ -113,7 +115,9 @@ namespace MinecraftClient.Protocol try { using var httpResponse = client.Send(request); - string responseBody = httpResponse.Content.ReadAsStringAsync().GetAwaiter().GetResult(); + using var stream = httpResponse.Content.ReadAsStream(); + using var reader = new System.IO.StreamReader(stream); + string responseBody = reader.ReadToEnd(); var responseHeaders = new NameValueCollection(); foreach (var header in httpResponse.Headers) @@ -150,7 +154,7 @@ namespace MinecraftClient.Protocol UseCookies = true, CookieContainer = new CookieContainer(), AllowAutoRedirect = false, - ConnectTimeout = TimeSpan.FromSeconds(30), + ConnectTimeout = TimeSpan.FromSeconds(DefaultConnectTimeoutSeconds), }; if (ProxyHandler.Config.Enabled_Login)