Commit graph

1961 commits

Author SHA1 Message Date
copilot-swe-agent[bot]
a9930b0a67 Update authentication documentation for OAuth 2.0 device code flow
- Update Account setting in configuration.md: clarify that Microsoft
  accounts don't need passwords (device code flow with 2FA support),
  add separate examples for Microsoft, offline, and Yggdrasil accounts
- Update usage.md: add tip about device code flow for Microsoft accounts,
  update command-line examples to show Microsoft and offline patterns,
  clarify that password is not needed in config files for Microsoft auth
- Update README.md features list: add Microsoft authentication with 2FA
  support as a listed feature

Co-authored-by: milutinke <441903+milutinke@users.noreply.github.com>
Agent-Logs-Url: https://github.com/MCCTeam/Minecraft-Console-Client/sessions/3afd0e85-19ae-45c7-ac4b-c2b7bf733008
2026-03-23 15:59:35 +00:00
copilot-swe-agent[bot]
94c6425a2b Address code review: add SlowDownIncrementSeconds constant, return OtherError for device code failures
Co-authored-by: milutinke <441903+milutinke@users.noreply.github.com>
Agent-Logs-Url: https://github.com/MCCTeam/Minecraft-Console-Client/sessions/e13b31f3-8d76-4240-bb69-a519a145fc6a
2026-03-23 15:41:25 +00:00
copilot-swe-agent[bot]
5147fb42df Replace PPFT/urlPost HTML scraping with OAuth 2.0 device code flow for 2FA support
- Add Microsoft.RequestDeviceCode() and Microsoft.PollDeviceCodeToken() methods
- Remove XboxLive.PreAuth() and XboxLive.UserLogin() (HTML scraping)
- Remove PreAuthResponse struct, PPFT/urlPost regex patterns
- Update XblAuthenticate to always use "d=" prefix for OAuth tokens
- Update MicrosoftMCCLogin to use device code flow
- Skip password prompting for Microsoft device code method
- Add translation strings for device code prompts
- Update config comments and documentation

Co-authored-by: milutinke <441903+milutinke@users.noreply.github.com>
Agent-Logs-Url: https://github.com/MCCTeam/Minecraft-Console-Client/sessions/e13b31f3-8d76-4240-bb69-a519a145fc6a
2026-03-23 15:38:47 +00:00
copilot-swe-agent[bot]
daeec49789 Initial plan 2026-03-23 15:23:27 +00:00
Anon
8f4e6b08b3
[skipci]Merge pull request #2970 from milutinke/feature/true-20-tps-runtime 2026-03-23 15:39:19 +01:00
Anon
b2eeb80659 Improved AGENTS.md 2026-03-23 15:38:29 +01:00
Anon
445c236914 Improved the development workflow and testing skills using skill-creator and a real server testing + feedback from actual workflow 2026-03-23 15:35:34 +01:00
Anon
932d01fb30
Merge pull request #2969 from milutinke/feature/true-20-tps-runtime 2026-03-23 15:34:54 +01:00
Anon
9efb7ef767 Remove obsolete 20 TPS smoke harness 2026-03-23 14:37:37 +01:00
Anon
484133f07a Run MCC at true 20 TPS 2026-03-23 14:29:04 +01:00
Anon
a18b5d2415
[skipci]Merge pull request #2968 from MCCTeam/copilot/update-termux-installation-docs 2026-03-23 13:56:57 +01:00
copilot-swe-agent[bot]
a0a69caeea docs: replace .NET 8 with .NET 10 in Android/Termux install section
Co-authored-by: milutinke <441903+milutinke@users.noreply.github.com>
Agent-Logs-Url: https://github.com/MCCTeam/Minecraft-Console-Client/sessions/4d7542ac-8231-4da1-bc87-b617d718cc97
2026-03-23 12:43:10 +00:00
copilot-swe-agent[bot]
a16152410e Fix 404 MCC download in Android/Termux install docs
Co-authored-by: milutinke <441903+milutinke@users.noreply.github.com>
Agent-Logs-Url: https://github.com/MCCTeam/Minecraft-Console-Client/sessions/f43c042f-896c-40a8-a28f-67a945e5dbcb
2026-03-23 12:35:47 +00:00
copilot-swe-agent[bot]
7e2e2f3f53 Update Termux installation docs to 2026: proot-distro, F-Droid, dotnet-install.sh
Co-authored-by: milutinke <441903+milutinke@users.noreply.github.com>
Agent-Logs-Url: https://github.com/MCCTeam/Minecraft-Console-Client/sessions/9ba5d661-a024-469c-8382-651f34b090ca
2026-03-23 12:01:51 +00:00
copilot-swe-agent[bot]
a0171af007 Initial plan 2026-03-23 11:54:49 +00:00
Anon
5f7e302213
Merge pull request #2967 from milutinke/fix/discord-rpc-unix-ipc-paths 2026-03-23 03:08:26 +01:00
Anon
2d8412ce29 Embed Discord RPC pipe client in DiscordRpc bot 2026-03-23 03:06:00 +01:00
Anon
1d4ff226e0 Limit custom Discord RPC pipe client to Linux 2026-03-23 03:01:06 +01:00
Anon
8bedcece52 Fix Discord RPC Unix IPC path detection 2026-03-23 02:58:43 +01:00
Anon
19a4f8132a
[skipci]Merge pull request #2966 from MCCTeam/copilot/update-chat-bots-documentation 2026-03-23 02:41:56 +01:00
copilot-swe-agent[bot]
a5896d47b5 docs: add Discord RPC docs and update Discord Bridge docs
Co-authored-by: milutinke <441903+milutinke@users.noreply.github.com>
Agent-Logs-Url: https://github.com/MCCTeam/Minecraft-Console-Client/sessions/2b93eea6-4093-4793-a817-4ac97a8255da
2026-03-23 01:20:56 +00:00
copilot-swe-agent[bot]
15a50dc844 Initial plan 2026-03-23 01:18:01 +00:00
Anon
9db4ad86b4
Merge pull request #2965 from MCCTeam/copilot/implement-discord-rpc-integration 2026-03-23 02:13:14 +01:00
copilot-swe-agent[bot]
221b82643d Fix DiscordRpc to send presence only after game join, apply C# best practices, remove temp E2E scripts
Co-authored-by: milutinke <441903+milutinke@users.noreply.github.com>
Agent-Logs-Url: https://github.com/MCCTeam/Minecraft-Console-Client/sessions/80d151a5-aee7-4ae6-8497-9e7487d25136
2026-03-23 01:05:48 +00:00
copilot-swe-agent[bot]
6c1449439c Add Discord RPC E2E test scripts and address code review feedback
Co-authored-by: milutinke <441903+milutinke@users.noreply.github.com>
Agent-Logs-Url: https://github.com/MCCTeam/Minecraft-Console-Client/sessions/a41f3e83-c88d-4c57-971b-54c380891556
2026-03-23 00:49:34 +00:00
copilot-swe-agent[bot]
5a9786cb0b Add Discord RPC setup tutorial, Discord Bridge AllowOtherBotMessages config, and enhance integration tests
Co-authored-by: milutinke <441903+milutinke@users.noreply.github.com>
Agent-Logs-Url: https://github.com/MCCTeam/Minecraft-Console-Client/sessions/a41f3e83-c88d-4c57-971b-54c380891556
2026-03-23 00:41:40 +00:00
copilot-swe-agent[bot]
02686de79c Add granular privacy controls: ShowCoordinates, ShowHealth, ShowDimension, ShowGamemode
Co-authored-by: milutinke <441903+milutinke@users.noreply.github.com>
Agent-Logs-Url: https://github.com/MCCTeam/Minecraft-Console-Client/sessions/43388021-4264-47e6-8403-7a1bca66d86f
2026-03-23 00:13:03 +00:00
copilot-swe-agent[bot]
8743129e72 Address code review: fix party max, rename food variable, add ShowServerAddress option
Co-authored-by: milutinke <441903+milutinke@users.noreply.github.com>
Agent-Logs-Url: https://github.com/MCCTeam/Minecraft-Console-Client/sessions/43388021-4264-47e6-8403-7a1bca66d86f
2026-03-23 00:08:08 +00:00
copilot-swe-agent[bot]
a2d032b549 Add Discord Rich Presence ChatBot integration
- Add DiscordRichPresence NuGet package (v1.143.0)
- Create DiscordRpc.cs ChatBot with configurable presence display
- Wire config in Settings.cs ChatBotConfig class
- Register bot in McClient.cs RegisterBots()
- Add translation strings to Translations.resx and Designer
- Add config comments to ConfigComments.resx and Designer
- Support placeholders: {server_host}, {server_port}, {username},
  {health}, {max_health}, {food}, {dimension}, {gamemode},
  {x}, {y}, {z}, {player_count}, {protocol}

Co-authored-by: milutinke <441903+milutinke@users.noreply.github.com>
Agent-Logs-Url: https://github.com/MCCTeam/Minecraft-Console-Client/sessions/43388021-4264-47e6-8403-7a1bca66d86f
2026-03-23 00:03:55 +00:00
Anon
5d21b4575f
[skipci]Merge pull request #2964 from MCCTeam/copilot/update-documentation-configuration-section 2026-03-23 00:52:04 +01:00
copilot-swe-agent[bot]
0a463f2380 Initial plan 2026-03-22 23:50:40 +00:00
copilot-swe-agent[bot]
10593749dd Update Yggdrasil auth config docs
Co-authored-by: milutinke <441903+milutinke@users.noreply.github.com>
Agent-Logs-Url: https://github.com/MCCTeam/Minecraft-Console-Client/sessions/9b1c26c4-240d-40de-be7b-ba1174f7e2bd
2026-03-22 23:44:46 +00:00
copilot-swe-agent[bot]
c82b6c844b Initial plan 2026-03-22 23:37:28 +00:00
Anon
3ee0177d62
Merge pull request #2963 from milutinke/authlib-injector-accounts 2026-03-23 00:21:34 +01:00
Anon
ff9aa62702 Add configurable authlib-injector API path and HTTP support for Yggdrasil auth
Re-implements the changes from PR #2890, adapted for the current codebase
which uses System.Text.Json.Nodes and HttpClient instead of the legacy
Json.JSONData and hand-rolled SslStream HTTP client.

Changes:
- Settings.cs: Convert AuthlibServer from struct to class with
  [TomlDoNotInlineObject]; convert Host to a property that parses
  'host:port' syntax; add AuthlibInjectorAPIPath (default '/api/yggdrasil')
  for servers that use a different prefix (e.g. Drasl uses '/authlib-injector');
  add UseHttps (default true) so local/dev auth servers without TLS work.

- ConfigComments.resx: Add descriptive inline comments for the new
  AuthlibServer fields (Host, Port, AuthlibInjectorAPIPath, UseHttps).

- ProtocolHandler.cs: Replace three hardcoded '/api/yggdrasil/...' paths
  with AuthlibInjectorAPIPath-based paths (authenticate, refresh, join).
  Replace hand-rolled TcpClient+SslStream HTTP in DoHTTPSRequest with
  HttpClient+SocketsHttpHandler (ConnectCallback routes through ProxyHandler).
  Add useHttps parameter so HTTP-only auth servers are supported.

- KeyUtils.cs: Add AuthServerSupportsProfileKeys() that fetches the
  authlib-injector metadata endpoint and checks feature.enable_profile_key.
  Update GetNewProfileKeys() to skip key fetch when the auth server does not
  support profile keys; build the cert URL dynamically using AuthlibInjectorAPIPath
  for Yggdrasil; always fetch real certs instead of returning a dummy response.
  Remove MakeDummyResponse() which is no longer needed.

Tested against a local Drasl instance with authlib-injector 1.2.7 on a
1.21.11 Minecraft server — full auth flow (login, profile key fetch, session
join) confirmed working end-to-end.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-23 00:15:32 +01:00
Anon
72ec3122ae
Merge pull request #2961 from milutinke/update-json-http-client 2026-03-22 23:06:58 +01:00
Anon
6c9dcfd216
Merge pull request #2962 from MCCTeam/copilot/update-mcc-integration-testing 2026-03-22 23:04:02 +01:00
Anon
d44fc22c8a Fix offline Microsoft auth profile-key checks and complete status ping/pong during auto-version detection. 2026-03-22 22:19:59 +01:00
copilot-swe-agent[bot]
02873957a8 skill: update mcc-integration-testing to use tools/mcc-env.sh instead of ~/.zshrc
- Replace `source ~/.zshrc` with `source "$REPO_ROOT/tools/mcc-env.sh"` in
  ensure_offline_server.sh and run_full_spectrum_test.sh
- Convert both scripts from zsh to bash (#!/usr/bin/env bash) so mcc-env.sh
  can be sourced natively; replace ${0:A:h} with portable SCRIPT_DIR expansion
- Update SKILL.md: drop ~/.zshrc references, point to tools/mcc-env.sh and
  standalone tools/start-server.sh + tools/mc-rcon.sh; update server path
  from ~/Minecraft/Servers/ to MinecraftOfficial/downloads/; replace
  `mcc-build` with `dotnet build MinecraftClient.sln -c Release`
- Update evals.json expectation to match new workflow

Co-authored-by: milutinke <441903+milutinke@users.noreply.github.com>
Agent-Logs-Url: https://github.com/MCCTeam/Minecraft-Console-Client/sessions/1ff08b70-7be3-4211-9b77-a9e10ff1d157
2026-03-22 21:19:55 +00:00
copilot-swe-agent[bot]
07189509b0 Initial plan 2026-03-22 21:15:19 +00:00
Anon
af405e5632 Fixed Profile Component crashing on 1.21.9 2026-03-22 21:53:13 +01:00
Anon
5c39d3b83d
Merge pull request #12 from milutinke/master 2026-03-22 20:42:41 +01:00
Anon
5e99e3a42d
Merge pull request #11 from milutinke/copilot/update-json-http-client 2026-03-22 20:39:28 +01:00
Anon
757cbe1a68 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>
2026-03-22 19:53:15 +01:00
copilot-swe-agent[bot]
d2c1cbf2a5 Fix Json.ParseJson crash on empty/null input
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
2026-03-22 17:22:08 +00:00
copilot-swe-agent[bot]
64ccdcb39b Address code review feedback
- Replace GetAwaiter().GetResult() with synchronous ReadAsStream()
- Use JsonNode.DeepClone() instead of serialize/parse round-trip
- Extract timeout magic number to named constant

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
2026-03-22 16:46:33 +00:00
copilot-swe-agent[bot]
37fe626325 Replace hand-rolled ProxiedWebRequest with HttpClient/SocketsHttpHandler
- Rewrite ProxiedWebRequest to use System.Net.Http.HttpClient internally
- Use SocketsHttpHandler with native SOCKS4/4a/5 and HTTP proxy support
- Remove 250+ lines of manual HTTP/1.1 parsing, chunked transfer, TLS pinning
- Proper TLS negotiation (no longer pinned to TLS 1.2)
- Remove unused ITcpFactory interface and isProxied flag
- Maintain same public API (Get(), Post(), Response class) for all consumers

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
2026-03-22 16:44:35 +00:00
copilot-swe-agent[bot]
15aabd9423 Replace legacy custom JSON parser with System.Text.Json
- 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
2026-03-22 16:39:26 +00:00
Anon
f31ed82ce1
[skipci]Merge pull request #2960 from milutinke/ai-dev-workflow-docs 2026-03-22 17:33:42 +01:00
Anon
611951668e Updated documentation to use <details> tag, updated the AGENTS md 2026-03-22 17:31:41 +01:00