diff --git a/MinecraftClient/Scripting/DynamicRun/Builder/Compiler.cs b/MinecraftClient/Scripting/DynamicRun/Builder/Compiler.cs index 2207bad8..2b201d0b 100644 --- a/MinecraftClient/Scripting/DynamicRun/Builder/Compiler.cs +++ b/MinecraftClient/Scripting/DynamicRun/Builder/Compiler.cs @@ -132,6 +132,8 @@ namespace MinecraftClient.Scripting.DynamicRun.Builder // Facade assemblies needed for compiling scripts that reference netstandard libraries (e.g. Brigadier.NET) assemblyrefs.Add(new("netstandard")); assemblyrefs.Add(new("System.Runtime")); + assemblyrefs.Add(new("System.Private.Uri")); + assemblyrefs.Add(new("System.Net.Requests")); foreach (var refs in assemblyrefs) { Assembly? loadedAssembly; @@ -180,7 +182,7 @@ namespace MinecraftClient.Scripting.DynamicRun.Builder // Add facade assemblies needed for Roslyn compilation when referencing // libraries that target netstandard (e.g. Brigadier.NET). var runtimeDir = Path.GetDirectoryName(SystemPrivateCoreLib)!; - foreach (var facadeName in new[] { "netstandard.dll", "System.Runtime.dll" }) + foreach (var facadeName in new[] { "netstandard.dll", "System.Runtime.dll", "System.Private.Uri.dll", "System.Net.Requests.dll" }) { var facadePath = Path.Combine(runtimeDir, facadeName); if (File.Exists(facadePath)) diff --git a/MinecraftClient/config/sample-script-with-http-request.cs b/MinecraftClient/config/sample-script-with-http-request.cs index 9b24fe34..60e6d27d 100644 --- a/MinecraftClient/config/sample-script-with-http-request.cs +++ b/MinecraftClient/config/sample-script-with-http-request.cs @@ -5,30 +5,19 @@ MCC.LogToConsole(mojangStatus); //MCCScript Extensions +private static readonly System.Net.Http.HttpClient s_httpClient = new(); + string PerformHttpRequest(string uri) { - var request = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(uri); - var response = (System.Net.HttpWebResponse)request.GetResponse(); - string responseString; - using (var stream = response.GetResponseStream()) - using (var reader = new StreamReader(stream)) - responseString = reader.ReadToEnd(); - return responseString; + return s_httpClient.GetStringAsync(uri).GetAwaiter().GetResult(); } void SendHttpPostAsync(string uri, string text) { new Thread(() => { - var request = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(uri); - request.ContentType = "text/plain"; - request.Method = "POST"; - using (var streamWriter = new StreamWriter(request.GetRequestStream())) - streamWriter.Write(text); - var response = (System.Net.HttpWebResponse)request.GetResponse(); - string responseString; - using (var stream = response.GetResponseStream()) - using (var reader = new StreamReader(stream)) - responseString = reader.ReadToEnd(); + using var content = new System.Net.Http.StringContent(text, System.Text.Encoding.UTF8, "text/plain"); + using var response = s_httpClient.PostAsync(uri, content).GetAwaiter().GetResult(); + string responseString = response.Content.ReadAsStringAsync().GetAwaiter().GetResult(); //LogToConsole(responseString); }).Start(); }