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>
ParseJson now returns null for null, empty, or whitespace-only input
instead of throwing JsonReaderException. This matches the behavior of
the old hand-rolled parser and is needed because MC protocol packets
may contain empty strings where JSON text is expected (e.g. empty chat
messages in DeathCombatEvent packets).
Discovered during end-to-end testing against a Minecraft 1.21.11
protocol server.
Co-authored-by: milutinke <441903+milutinke@users.noreply.github.com>
Agent-Logs-Url: https://github.com/milutinke/Minecraft-Console-Client/sessions/34df723e-4a63-45a0-a942-e119d81a575b
- Rewrite Json.cs to use System.Text.Json.Nodes (JsonNode, JsonObject, JsonArray)
- Add JsonNodeExtensions.GetStringValue() for backward-compatible string access
- Update all 14 consumer files to use the new JsonNode API
- Remove ~300 lines of hand-rolled JSON parsing code from 2013
- Replace KeyUtils.EscapeString with delegation to Json.EscapeString
Co-authored-by: milutinke <441903+milutinke@users.noreply.github.com>
Agent-Logs-Url: https://github.com/milutinke/Minecraft-Console-Client/sessions/afcd1b7b-ea23-4a0d-bb46-a90b623406fc
Resolve#51
* Realms: update to new API; fix HTTP Get
* Realms: suggested changes
Co-authored-by: ORelio <ORelio@users.noreply.github.com>
* Realms: suggested changes
Co-authored-by: ORelio <ORelio@users.noreply.github.com>
* Add negative number support for JSON parser
* Nice print realms worlds result
* Option to join Realms world with world ID
* Suggested changes
Co-authored-by: ORelio <ORelio@users.noreply.github.com>
* Failure handle
Co-authored-by: ORelio <ORelio@users.noreply.github.com>
* world id paired with index
* fix text
* Clean up the code a bit
* Add setting for displaying Realms worlds
* Rename Realms worlds setting
* Put messages into translation file
Co-authored-by: Zizhen Lian <zizhlian@umd.edu>
Co-authored-by: ORelio <ORelio@users.noreply.github.com>
Co-authored-by: ReinforceZwei <39955851+ReinforceZwei@users.noreply.github.com>