mirror of
https://github.com/MCCTeam/Minecraft-Console-Client
synced 2026-08-15 13:04:36 +00:00
Fix ParseJson crash on non-JSON plain-text input (e.g. vanilla MOTD)
When the MC server sends a plain-text string (not valid JSON) for fields like the ServerData MOTD, JsonNode.Parse() throws JsonReaderException. This was a regression introduced by the System.Text.Json modernization. Fix: catch JsonException in ParseJson() and return JsonValue.Create(json) so plain-text strings are treated as literal string values rather than crashing. Tested against a real Minecraft 1.21.11 server (offline mode): MCC connects and stays connected without crashing. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
parent
d2c1cbf2a5
commit
757cbe1a68
1 changed files with 8 additions and 2 deletions
|
|
@ -17,9 +17,15 @@ public static class Json
|
|||
/// <summary>
|
||||
/// Parse a JSON string into a mutable <see cref="JsonNode"/> DOM.
|
||||
/// Returns null for null, empty, or whitespace-only input.
|
||||
/// Returns a <see cref="JsonValue"/> wrapping the raw string when the input
|
||||
/// is not valid JSON (e.g. a plain-text Minecraft MOTD or chat message).
|
||||
/// </summary>
|
||||
public static JsonNode? ParseJson(string? json) =>
|
||||
string.IsNullOrWhiteSpace(json) ? null : JsonNode.Parse(json);
|
||||
public static JsonNode? ParseJson(string? json)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(json)) return null;
|
||||
try { return JsonNode.Parse(json); }
|
||||
catch (JsonException) { return JsonValue.Create(json); }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Escape a string for embedding inside a JSON string literal.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue