Commit graph

49 commits

Author SHA1 Message Date
BruceChen
9cada9d19d Refactor ConsoleIO and Program settings handling
- Updated ConsoleIO to allow writing to the console when Backend is null, improving error handling.
- Simplified settings write-back logic in Program.cs to ensure default settings are written correctly based on configuration results.
2026-03-29 00:54:34 +08:00
BruceChen
8456e363f5
TUI for MCC (#2976)
* feat: implement interactive TUI inventory viewer

- Added InventoryTui command to open an interactive terminal user interface for inventory management.
- Introduced InventoryApp and InventoryMainView classes for TUI layout and functionality.
- Created InventoryViewModel and SlotViewModel to manage inventory data and display.
- Integrated Consolonia for enhanced console UI experience.
- Updated McClient to support console message handling during TUI operation.

These changes enhance user interaction with inventory management in Minecraft Console Client.

* feat: enhance debugging workflow with mcc-debug.sh and TUI support

- Introduced mcc-debug.sh for streamlined one-step build, server start, and MCC launch.
- Added TUI mode for improved user experience during debugging sessions.
- Updated mcc-env.sh to include new debug helpers and TUI mode functionality.
- Enhanced SKILL.md with detailed instructions for using the new debugging tools and console modes.

These changes significantly improve the debugging process for Minecraft Console Client, making it more efficient and user-friendly.

* feat: introduce TUI console backend and related enhancements

- Added ClassicConsoleBackend and TuiConsoleBackend to support different console I/O modes.
- Implemented IConsoleBackend interface for better abstraction of console operations.
- Enhanced ConsoleIO to utilize the new backend structure for input and output handling.
- Introduced MainTuiView and MccTuiApp for a full-screen TUI experience using Avalonia.
- Updated InventoryTuiHost to manage TUI lifecycle and interactions.

These changes significantly improve the console experience in Minecraft Console Client, providing a more flexible and user-friendly interface.

* refactor: remove InventoryTui command implementation

- Deleted the InventoryTui class, which provided an interactive terminal user interface for inventory management.
- This change simplifies the command structure as part of ongoing improvements to the console experience in Minecraft Console Client.

The removal of this command is aligned with recent enhancements to the console backend and user interface.

* refactor: update InventoryMainView and MainTuiView for improved UI handling

- Changed several fields from readonly to mutable in InventoryMainView to allow for dynamic updates.
- Introduced a new McColorParser class for parsing Minecraft color codes and creating colored text blocks.
- Enhanced MainTuiView to support formatted log lines and improved notification handling.
- Updated chat scrolling behavior to ensure better user experience during text input and log display.

These changes streamline the UI components and enhance the overall console experience in Minecraft Console Client.

* feat: enhance command input handling in MainTuiView

- Updated command input to use event routing for better key handling.
- Added support for Ctrl key shortcuts to improve text manipulation (e.g., word deletion, caret movement).
- Implemented text cleaning on input change to prevent newline characters.
- Improved health and food status bar rendering with a new method for building bar text.

These changes significantly enhance the user experience in the TUI by providing more intuitive command input functionality.

* feat: enhance TUI command suggestion functionality

- Introduced a new CommandSuggestion struct for backend-independent suggestion handling.
- Updated ConsoleIO to streamline suggestion updates for both Classic and TUI backends.
- Enhanced MainTuiView to display command suggestions with improved visibility and interaction.
- Increased the maximum number of displayed suggestions from 6 to 10 for better user experience.

These changes significantly improve the command input experience in the TUI, making it more intuitive and user-friendly.

* feat: enhance offline command autocomplete functionality

- Introduced an OfflineAutocompleteHandler to provide command suggestions for offline commands.
- Added support for tab cycling through suggestions in the TUI.
- Improved command input handling to clear suggestions when necessary and manage user input more effectively.
- Updated TuiConsoleBackend to integrate with the new autocomplete feature.

These changes significantly enhance the user experience by making command input more intuitive and responsive in offline scenarios.

* feat: enhance localization and user feedback in TUI

- Updated various TUI components to utilize localized strings for improved user experience.
- Enhanced debug state output with translated labels for better clarity.
- Improved inventory command help messages with localized text.
- Added new translations for console mode descriptions and inventory viewer prompts.

These changes significantly enhance the usability and accessibility of the TUI in Minecraft Console Client, making it more user-friendly and informative.

* feat: enforce localization for user-facing strings in AGENTS.md

- Added guidelines to ensure all user-facing text, including log messages and error messages, is managed through the translation system.
- Specified the use of `Translations.resx` and `Translations.Designer.cs` for localization, emphasizing the importance of avoiding hardcoded strings in source code.

These changes improve the consistency and accessibility of user-facing content across the application.
2026-03-26 02:08:18 +08:00
copilot-swe-agent[bot]
c5df6a49c6 Modernize null-check patterns: use 'is null' and 'is not null'
Replace '== null' with 'is null' and '!= null' with 'is not null'
across 19 core files following modern C# pattern matching conventions.

Only literal null comparisons are changed. Assignments, value
comparisons, and LINQ expressions are left untouched.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-24 00:28:02 +00:00
yaggod
d0caf4c9ee fixed typo in word heAlper lol 2024-04-16 21:21:08 +03:00
Spongecade
c3fa413b4e
[skip ci] Update Minecraft wiki links to new domain (#2593) 2023-10-07 17:59:08 +08:00
BruceChen
94a3c92b36 Bug fix 2022-12-11 16:30:45 +08:00
BruceChen
5e11ed3896 Tooltip support & Bug fix 2022-12-11 13:00:19 +08:00
BruceChen
892999ac98 Merge into master 2022-12-06 20:32:46 +08:00
BruceChen
84cf749344 Implement command completion suggestions. 2022-12-06 15:50:17 +08:00
BruceChen
f8aefaf129 init 2022-10-26 08:54:54 +08:00
BruceChen
1d52d1eadd
Fix all warnings & Trim (#2226)
* Fix AutoFishing crash
* Fix all warnings
* Remove DotNetZip.
* Fix the usage of HttpClient.
2022-10-02 18:31:08 +08:00
BruceChen
290ec9cc79 Bug fix 2022-09-01 23:10:09 +08:00
BruceChen
b26949e483 Fix issue #2111 2022-09-01 22:57:13 +08:00
xdavidwu
78dd3ea17e
ConsoleIO: fix timestamp & BasicIO-NoColor (#2076)
* ConsoleIO: correct BasicIO-NoColor handling

We need color code stripped string in place of original string, not
appending to it

* ConsoleIO: fix timestamp order

Timestamp should come before the string, not after.

* ConsoleIO: check BasicIO-NoColor only when BasicIO
2022-08-15 18:17:30 +02:00
BruceChen
a8bbb1ac76
Basic support for minecraft 1.19 (#2084)
* merge commit from milutinke
* chat signature & encrypted login
* Bug fix :EncryptionResponse format error below 1.18.2
* Implemented chat command signature
* Chat message parsing and verification for 1.19
* Add signature settings
* Update Simplified Chinese Translation
* Clear up comments
* Fix wrong variable naming
* Bug fix: SignatureV2 Processing
2022-08-15 17:55:44 +02:00
breadbyte
d9f1a77ac2
.NET 5+ Support (#1674)
Implement changes to support .NET 5 onwards.
Co-authored-by: ReinforceZwei <39955851+ReinforceZwei@users.noreply.github.com>
Co-authored-by: ORelio <ORelio@users.noreply.github.com>
2022-07-03 22:34:07 +08:00
5tanly
a018304f99
Strip Minecraft Color Codes (§) in BasicIO-NoColor mode (#995)
Strip Minecraft color codes and formatting (§) if in BasicIO mode by using BasicIO-NoColor.
2020-05-14 19:36:56 +02:00
ORelio
e4cae97dd7 ConsoleIO: Rewrite backspace handling
Manually move the cursor instead of using the backspace character.
Should help when deleting characters requiring multiple keypresses
like Chinese characters. Fix attempt for #941
2020-04-15 14:54:36 +02:00
ORelio
b01c50b792 Improve logging, auto respawn
See discussion in GitHub issue #918
2020-04-01 21:15:35 +02:00
TheSnoozer
d4aa63d1d3 fix some doc strings 2019-10-03 09:46:08 +02:00
ORelio
ecf0114f62 ConsoleIO: Sync with SharpTools
Had 2 versions of the ConsoleIO class, one here inc MCC (the original),
and another one in SharpTools, more generic, for use in other projects.

Both had diverged, this commit imports changes from the other repository.
This should not have any particular effect on MCC, besides adding more
documentation and settings in the source code of the class.

If any issue arises, as always, please report it :)
2018-05-28 22:09:50 +02:00
ORelio
176bbccd50 U.S. Keyboards: Fix Oem6 ('}') character typing
See #137 and #382
2018-02-09 21:43:50 +01:00
ORelio
7c9c12bee7 Add keyboard debug routine 2017-05-28 15:09:19 +02:00
ORelio
66d57b0ce6 Cycle through tab-complete results
Allow cycling through tab-complete options sent back by the server by
pressing TAB multiple times in a row. Fix #148
2016-05-14 11:51:02 +02:00
ORelio
e8a8ca4e7a Catch exception while moving cursor in ConsoleIO
- ConsoleIO bug report by ibspa.
- Also: NullReferenceException when closing connection
2015-10-20 22:55:29 +02:00
Pokechu22
295dfe717e Fixed issues with passwords containing unicode special characters.
The main fix is the change to ProtocolHandler's jsonEncode method.  Previously,
it used 'char.IsLetterOrDigit' to see if it needed to be escaped, but some
chars, such as "Ð", count as a letter but still need to be escaped.  The fix is
to check if it's in the right range, rather than using that method.

There's also some changes to those methods for performance and clarity reasons.
Most of this is using a StringBuilder rather than appending to the string.  Not
too important, but it makes things clearer.
2015-08-17 11:11:09 -07:00
ORelio
80b44228f8 Further autocompletion fixes
Refactor code as splitting is now useless
2015-07-23 21:39:41 +02:00
ORelio
1e801ad415 Fix tab autocompletion when no result is found
When no result is found, tab-complete result should be ignored. Bug
report by c0dei.
2015-07-21 16:46:41 +02:00
ORelio
546119a334 Fix ] password typing on QWERTY keyboards
Oem6 key was incorrectly ignored. Fix #47
2015-07-17 23:00:45 +02:00
ORelio
a6b3bf0481 AutoRespond tests and fixes
- Automatically add [BotName] tags to log lines
- Fix case handling and actionPrivate used for public messages
- Add a sample file for basic and regex matches
2015-06-21 16:40:13 +02:00
ORelio
5b662e2d07 Fix HeroChat public messages treated as private
See issue #63 - Also includes minor fixes and optimizations
2015-05-18 16:15:58 +02:00
ORelio
dd5e2f8e39 Rewrite translation rule processing
Improve speed and handling of %1$s tags
Fix prompt in ConsoleIO not being reset to gray
2015-05-17 21:45:00 +02:00
ORelio
834e446a74 Add 1.8.4 in supported version list
+ minor fixes to ConsoleIO
2015-05-13 10:59:46 +02:00
ORelio
33b84584aa Indentation change for Fix concurrency[..]
Indentation was intentionally left the same in previous commit for
clearer diff, this commit only fixes code indentation from last commit
2015-05-10 18:59:00 +02:00
ORelio
3376247826 Fix concurrency in ConsoleIO
Fix concurrency issues by using proper locks
2015-05-10 18:57:33 +02:00
ORelio
57c66c82d7 Merge error handlers
- Merge all error handling code into one method
- Fix ConsoleIO not clearing the line being typed upon reset
- Update console title upon logging in to the server
- Pass "failed to ping this IP" to AutoRelog (thx doranchak)
2015-04-22 10:27:53 +02:00
ORelio
2cf46c0487 Fix crash when resizing terminal
Bug report by doranchak
2015-04-11 12:30:36 +02:00
ORelio
82c95be611 Fix console background color
- Save & Restore background color when needed
- Remove useless color modifications
- Fix issue #71
2015-03-25 19:45:50 +01:00
ORelio
cb49ad7036 Fix TAB different behavior between MCC and Vanilla
Vanilla sends everyting behing the cursor
MCC was only sending the beginning of last typed word
Now MCC will send everything behind the cursor.
2014-08-18 10:25:43 +02:00
ORelio
068b87a11a Variable engine done, catch bot exceptions
- %variable% variables can be declared in the INI file and used
elsewhere
- Default argument 'true' for WriteLineFormatted in ConsoleIO
- Exceptions thrown by bots no longer disconnect from the server, stack
trace is printed instead
2014-06-11 20:40:25 +02:00
ORelio
d2ec2f48b7 App refactoring almost done
- Created specific namespaces and folders for each app brick
- Added proxy support using Starksoft's Biko Library
- App bricks: Main, ChatBots, Crypto, Protocol, Proxy
- Each class is now in its own file (Aes streams, chatbots)
- Used "Bridge" design pattern for Crypto, Protocol, Proxy
- Added back support for Minecraft 1.4.6 to 1.6.4 (MCC 1.6.2)
- Need to fully re-test everything and fix bugs
- To Fix : Server pinging is slow on SpigotMC
- To Do : Add Minecraft 1.2.5 (MCC 1.3) and maybe 1.3 to 1.4.5
2014-05-31 01:59:03 +02:00
ORelio
09bff17fc2 Allow AutoRelog to relog on server login failed
- Add some explanations for adding a custom bot in the app
- Remove debug code in ConsoleIO (see previous commit)
2014-05-04 11:25:51 +02:00
ORelio
a543620a80 Fix null characters in chat prompt (old bug)
Sometimes null characters were inserted in chat prompt
Rename "Scripting" bot into "Script" bot.
2014-04-10 19:55:16 +02:00
ORelio
bca2a4116c Support text pasting with Ctrl+V 2014-01-11 12:48:59 +01:00
ORelio
f7835e7f60 Added password obfuscation while typing
Each character of the password is replaced by a star while typing
+ Fixed an old typo for "Handshake successfull" (ss -> cc).
2013-08-23 10:48:26 +02:00
ORelio
700d345cef Added BasicIO mode
If "BasicIO" is passed as last argument, Basic IO will be enabled.
- Basic input/output : disable the advanced I/O class from MCC 1.3+
- Do not print colors, output messages directly with §c color tags
This allows an external GUI to manage input/output instead of MCC.
http://www.minecraftforum.net/topic/1314800-/page__st__180#entry23903618
2013-08-15 18:04:29 +02:00
ORelio
88105d30ad Added TAB autocomplete
Now handles TAB keypresses and ask the server for an autocompletion,
just like a vanilla client does.
2013-08-06 12:25:09 +02:00
ORelio
ea2774068b Improved console input/output 2013-07-27 18:44:54 +02:00
ORelio
e6f2ef4e4f Added MCC Source Code v1.5.2
Minecraft Console Client is now on GitHub!
2013-07-18 09:27:19 +02:00