bugfix: Fixed Web Requests in Chat Bots and a sample script

This commit is contained in:
Anon 2026-03-24 21:21:53 +01:00 committed by GitHub
commit 6f30f9b79a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 9 additions and 18 deletions

View file

@ -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))

View file

@ -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();
}