Port the WebSocket bot functionality to an external standalone script that:
- Uses //MCCScript 1.0 format instead of being a built-in bot
- Uses System.Text.Json instead of Newtonsoft.Json (no external DLL)
- Serializes ItemType, EntityType, and other enums as string names
instead of numeric IDs (addresses #2805)
- Adds GetItemTypeMappings and GetEntityTypeMappings commands
- Accepts both string names and numeric IDs for enum parameters
- Uses 4096 byte WebSocket buffer for better message handling
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Update Roslyn compiler LanguageVersion from CSharp9 to Latest
- Implement ChatBotCommand.RegisterCommand() (was empty)
- Add RegisterChatBotCommand() helper to ChatBot base class
- Add automatic command cleanup in BotUnLoad via UnregisterChatBotCommands()
- Fix external scripts using Handler.dispatcher (CS0176 static via instance)
- Fix AutoTree.cs wrong Initialize/OnUnload signatures (CS0115)
- EntityCount.cs RegisterChatBotCommand() now works with new helper
Co-authored-by: milutinke <441903+milutinke@users.noreply.github.com>
Agent-Logs-Url: https://github.com/MCCTeam/Minecraft-Console-Client/sessions/27fc44b8-50d8-4194-8057-019a29675d4a
Replace all lock object declarations using 'object' type with the C# 13
System.Threading.Lock type across 12 files. The Lock type provides a
more efficient locking mechanism - when used with lock(), the compiler
automatically uses Lock.EnterScope() instead of Monitor.Enter/Exit.
Also made two previously non-readonly lock fields readonly:
- McClient.DigLock
- Protocol18.MessageSigningLock
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- 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
* Add function to determine if the client is executing a walking process
* Add comments
* Remove test bot entry
* Add funtion to approach a block as close as possible
* Add funtion to approach a block as close as possible
* Add funtion to approach a block as close as possible
* Add comment to function in McClient.cs
* Improve concurrency and reduce potential calculation power
* Apply code suggestions
* Apply code suggestions
* Improve CalculatePath() function to allow approaching
* Fix typo in MinecraftClient/ChatBot.cs
* Add comments to Chatbot fucntion
* Add break to for loop to exit quicker
* Allow to give a maxOffset to the goal
* Comment the sample bot again.
* Add parameter for calculation timeout
* Remove TestBot again
* Implement timeout in Chatbot class
* Remove test commands
* Update comment in Chatbot.cs
* Set timeout to default 5 sec
* Change order of parameters back
* Add suggested improvements
* Move task and fix missing methods in .NET 4.0
* Create switch for tool handling
* Remove unused function
* Improve movement
* Improve performance of CalculatePath()
- Replace Hashset OpenSet with a Binary Heap
- Temporary remove maxOffset / minOffset features
- Round start location for easier calculation
- Add 0.5 to each location in reconstruct path to avoid getting stuck
on edges
* Add diagonal movement
* Remove direct block movement
- causes kick for invalid packet movement if moving on the block you are
currently standing on
* Floor start in A* and improve diagonal walking check
* Add helperfunctions to McClient.cs
* Prevent client from falling into danger
* Add comment to function and remove dependencies
* Add comments
* Remove debug settings
Co-authored-by: ORelio <ORelio@users.noreply.github.com>
* Automatic sugar cane farming
Inspired by #1871 I wrote a script to farm a field of sugar cane fully autonomous.
* Implement suggestions
* Remove unused comment
* Remove comment and improve return value
* Fixed some spelling and typing mistakes
* Added docker-compose configuration
* Added docker-compose description to the user manual
* changed the default path of the mapped volume to a relative path
* Add MineCube.cs
* Clear unused comments and using directives
* Move the command to a chatbot class
* Set a maximum sleep time for block mining
* Add tool selection function
* Improve the block - tool detection
* Improve naming and comments
* Add missing blocktypes
* Add block-tool assertion and tool switching in hotbar
* Remove unused using declaratives and improve coordinate handling
* Move Material2Tool in the Mapping folder
* Add function to let the bot mine up to 5 blocks above its head
* Remove obsolete function to detect breakability
* Implement mineup command
Users can dig out a 2 high square manually. The client will walk through it
mining everything that is reachable above, while avoiding falling blocks and liquids.
* Refactor big parts of the code
Move the function for obtaining cubes to a seperate file.
Sort Unbreakables alphabetically.
Change the distance to wait in the mine function back to 2.
* Fix suggestions from review
Change several parts of the code according to the review
Add credits
* Convert the bot into a script file and move it to config folder
Adjust the script to be loadable with /script
Remove unnecessary code
Add public modifier to material2tool
* Add checking for lava and water for normal mining
* Remove MineCube.cs from chatbots
* Code re-format
Rename variables
Fix indentation
Co-authored-by: ReinforceZwei <39955851+ReinforceZwei@users.noreply.github.com>
This file was created for test reasons and never worked properly. With the implementation of the Mailer.cs chat bot this file became completely obsolete and is currently wasting unnecessary disk space.
I suffered from some errors when I started the script. I soon found out, that the client detects some players leaving and I was wondering why, because there was not even a leaving message. I soon found out that the errors came from OnPlayerLeave() which returned a UUID but the name parameter was NULL. I don't know whether this is a bug in the client, but this should fix it for the script.
Prevent a match from triggering too often using a cooldown
By default, matches do not have a cooldown (it's opt-in)
Also add translation support and more debug messages
Allow specifying any setting as --setting=value
Sections other than main: --section.setting=value
Previous positional arguments are still supported
Update user manual with quick usage and examples
* Improve caching and remove unused functions
* Save Player UUID before leaving
Save the UUID when they leave and save it until they join again.
* Clear the cache after disconnect
* Update MinecraftClient/config/ChatBots/DiscordWebhook.cs
* Send chatmessages to Discord via webhook.
With corresponding Minecraft skins as profilepicture.
* Support for pings at keywords and server messages.
* Cleanup, Settings Class and applied suggestions.
* Fix all function names
* Improve variable naming and UUID search
* Re-format some comment
* Rename file to DiscordWebhook.cs
* Add message caching and option for disabling UUID lookup
Add Message class
Add Cache class
Change internal Message delivery
* Add an ignore list
Improved help message
Add option to get all settings
* Add feature to deactivat CustomChatDetection
Comment some functions
* Option to unload the bot
Fix crash when not entering a valid ping syntax
Co-authored-by: ReinforceZwei <39955851+ReinforceZwei@users.noreply.github.com>