Audited all 8 high-complexity structured components against official 1.20.6 decompiled STREAM_CODEC definitions. Found and fixed bugs in 3 components plus a systemic NBT serialization issue: TrimComponent (ID 35): - Serialize had TrimPatternType and ShowInTooltip incorrectly nested inside the TrimMaterialType==0 branch; moved them outside to match Parse logic - Description fields (TrimMaterial.description, TrimPattern.description) were read/written as String but official codec uses ComponentSerialization (NBT Tag format); changed to ReadNextNbt/GetNbt ProfileComponent (ID 46): - Serialize was missing the HasUniqueId Bool prefix before UUID - Serialize only wrote properties when count > 0 but omitted the VarInt count prefix entirely when empty; now always writes VarInt count WrittenBookContentComponent (ID 34): - Page content uses Filterable<Component> where Component is NBT-encoded via ComponentSerialization.STREAM_CODEC, not plain String; changed Parse to use ReadNextNbt and Serialize to use GetNbt - Added RawContentNbt/FilteredContentNbt fields to BookPage record for round-trip NBT preservation - Removed unnecessary ChatParser.ParseText on title (it's a plain string) DataTypes.GetNbt: - Added TAG_String root support for 1.20.4+ (chat components like "Page 1" are encoded as TAG_String, not TAG_Compound) - Fixed root name handling: versions >= 1.20.2 omit the root compound name, but GetNbt was unconditionally writing it Components confirmed correct (no changes needed): - FoodComponentComponent (ID 20), ToolComponent (ID 22), InstrumentComponent (ID 40), PotionContentsComponent (ID 31), AttributeModifiersComponent (ID 12) Made-with: Cursor |
||
|---|---|---|
| .github | ||
| .idea | ||
| ConsoleInteractive@db2be2a7f8 | ||
| DebugTools | ||
| Docker | ||
| docs | ||
| MinecraftClient | ||
| MinecraftClientGUI | ||
| .gitattributes | ||
| .gitignore | ||
| .gitmodules | ||
| crowdin.yml | ||
| LICENSE.md | ||
| MinecraftClient.sln | ||
| MinecraftClientGUI.sln | ||
| README.md | ||
English | Nederlands | Русский | Српски | Türkçe | Tiếng Việt | 简体中文 | 繁體中文
About ℹ️
Minecraft Console Client (MCC) is a lightweight cross-platform open-source Minecraft TUI client for Java edition that allows you to connect to any Minecraft Java server, send commands and receive text messages in a fast and easy way without having to open the main Minecraft game.
Download
Get development builds from the Releases section
How to use 📚
- 🌐 Full Documentation
- 📦 Installation
- 📖 Usage
- ⚙️ Configuration
- 🤖 Chat Bots
- 📝 Sample configuration files
Getting Help 🙋
Check out the Website, README and existing Discussions: Maybe your question is answered there. If not, please open a New Discussion and ask your question. If you find a bug, please report it in the Issues section.
Discord
We now have a Discord server, click here to join.
Helping Us ❤️
We are a small community so we need help to implement upgrades for new Minecraft versions, fixing bugs and expanding the project. We are always looking for motivated people to contribute. If you feel like it could be you, please have a look at the issues section :)
How to contribute 📝
If you'd like to contribute to Minecraft Console Client, great, just fork the repository and submit a pull request on the Master branch. To contribute to the website / online documentation see also the Website repository.
Translating Minecraft Console Client 🌍
To improve translations for MCC, please visit: Crowdin - Minecraft Console Client.
Building from the source 🏗️
This section has been moved to our new Documentation website.
License ⚖️
Unless specifically stated, the code is from the MCC Team or Contributors, and available under CDDL-1.0. Else, the license and original author are mentioned in source file headers. The main terms of the CDDL-1.0 license are basically the following:
- You may use the licensed code in whole or in part in any program you desire, regardless of the license of the program as a whole (or rather, as excluding the code you are borrowing). The program itself may be open or closed source, free or commercial.
- However, in all cases, any modifications, improvements, or additions to the CDDL code (any code that is referenced in direct modifications to the CDDL code is considered an addition to the CDDL code, and so is bound by this requirement; e.g. a modification of a math function to use a fast lookup table makes that table itself an addition to the CDDL code, regardless of whether it's in a source code file of its own) must be made publicly and freely available in source, under the CDDL license itself.
- In any program (source or binary) that uses CDDL code, recognition must be given to the source (either project or author) of the CDDL code. As well, modifications to the CDDL code (which must be distributed as source) may not remove notices indicating the ancestry of the code.
More info at http://qstuff.blogspot.fr/2007/04/why-cddl.html Full license at http://opensource.org/licenses/CDDL-1.0