When MCC runs in non-interactive terminals (e.g. CI runners, IDE
embedded shells, piped input), several Console APIs throw exceptions
because there is no real console attached.
Changes:
- Program.cs: Wrap Console.KeyAvailable / Console.ReadKey in
HandleFailure() with try-catch so MCC does not crash on startup
failure in headless environments.
- Chunk.cs: Wrap Console.BufferWidth / BufferHeight in try-catch
with fallback values (120x50) to prevent exceptions when rendering
chunk maps without a console buffer.
- Map.cs: Same treatment for the map rendering path - use safe
fallback values when Console.BufferWidth/Height are unavailable.
- ReplayHandler.cs: Replace Array.Reverse() (returns void in newer
.NET) with .AsEnumerable().Reverse() to fix compilation with
.NET 10 SDK where the void return breaks the fluent chain.
Made-with: Cursor
* add miscellaneous fixes
* Fixed connecting to server when compression threshold is set to 0
The client assumes that 0 means disabled, when on a notchian (vanilla) server, it is possible to set the compression threshold to 0 (compress all packets).
* Try to capture all exceptions through Sentry
No exceptions are being logged through Sentry, so be more aggressive when sending exceptions
(cherry picked from commit eb1c2f5e771760fb3be32ffea79f8292adca92f1)
* Call OnSpawnPlayer packet when a player is spawned using the SpawnEntity packet
references #2721
(cherry picked from commit ef28ae09ac89e8988dd612de61f2849a9f0e528c)
* Replace Github Release Upload Action
Replaces the tixfactory release-manager action with a different one found in the marketplace, as the current one is no longer working.
* Update build-and-release.yml
* Add Sentry Error Tracking
* Omit personally identifiable information and add additional sentry context
* Remove debug message
* Make sentry opt-out and add related notices and strings
Also add Minecraft Version to error context
* Update build to send release info to sentry
* Adjust sentry error tracking
- Send the user-friendly Minecraft Version in the error logs
- Capture exceptions in more parts of the application
We now capture exceptions from the following locations:
- Protocol18 (1.8+) Packet errors
- Errors during client initialization phase (When client is about to start, session keys are NEVER sent to sentry)
* Make Sentry DSN configurable and repository-specific
The Sentry DSN will automatically be filled out on the main repository through the Github Actions build.
* Update build-and-release.yml
Update sed command
* style: change variable name
nitpick, just to make it a little bit more descriptive
* Add Sentry branding in README.
* remove old code (merge conflict)
* Update CI to detect the word "skipci"
* Make script compilation errors more verbose
Rather than just giving the line in which the error has been found, return the actual text content of the line itself
* Attempt to bubble up errors in the script chain, so it says the reason for any NotRun errors.
The exception message gets eaten up when the script is running, and an exception happens.
Also put in a default result message for the CmdResult, instead of having it default to null.
* Trim the whitespace off returned script compilation error line