Fix build fail

This commit is contained in:
BruceChen 2022-11-04 11:01:07 +08:00
parent 262c84123f
commit bbdf5a3699
9 changed files with 0 additions and 5398 deletions

View file

@ -5,11 +5,7 @@ import { defineUserConfig } from '@vuepress/cli'
import { shikiPlugin } from '@vuepress/plugin-shiki' import { shikiPlugin } from '@vuepress/plugin-shiki'
import { defaultTheme } from '@vuepress/theme-default' import { defaultTheme } from '@vuepress/theme-default'
import { getDirname, path } from '@vuepress/utils' import { getDirname, path } from '@vuepress/utils'
import { backToTopPlugin } from "@vuepress/plugin-back-to-top"
import { externalLinkIconPlugin } from "@vuepress/plugin-external-link-icon"
import { nprogressPlugin } from "@vuepress/plugin-nprogress"
import { searchPlugin } from "@vuepress/plugin-search"; import { searchPlugin } from "@vuepress/plugin-search";
import { activeHeaderLinksPlugin } from '@vuepress/plugin-active-header-links'
import { headConfig } from './configs/head.js' import { headConfig } from './configs/head.js'
import { mainConfig, defaultThemeConfig } from './configs/locales_config.js' import { mainConfig, defaultThemeConfig } from './configs/locales_config.js'
@ -58,9 +54,6 @@ export default defineUserConfig({
// use plugins // use plugins
plugins: [ plugins: [
backToTopPlugin(),
externalLinkIconPlugin(),
nprogressPlugin(),
// only enable shiki plugin in production mode // only enable shiki plugin in production mode
isProd ? shikiPlugin({ theme: 'dark-plus' }) : [], isProd ? shikiPlugin({ theme: 'dark-plus' }) : [],
searchPlugin({ searchPlugin({
@ -72,6 +65,5 @@ export default defineUserConfig({
}, },
}, },
}), }),
activeHeaderLinksPlugin(),
], ],
}) })

View file

@ -1,27 +0,0 @@
---
home: true
heroImage: /images/MCC_logo_with_edge.png
tagline: 'Minecraft Console Client (MCC) is a lightweight open-source Minecraft Java client implemented in C#'
actions:
-
text: 安装
link: ./guide/installation.md
type: primary
-
text: Learn More →
link: ./guide/
type: secondary
actionText:
actionLink:
features:
-
title: Chat
details: Chat with other people on the server
-
title: Automation
details: Create bots to do automated tasks
-
title: Supported Versions
details: 1.4 - 1.19.2
footer: Made by MCC Team with ❤️
---

View file

@ -1,163 +0,0 @@
# Introduction
- [About](#about)
- [Quick Intro (YouTube Videos)](#quick-intro)
- [Features](#features)
- [Why Minecraft Console Client?](#why-minecraft-console-client)
- [Getting Help](#getting-help)
- [Submitting a bug report or an idea/feature-request](#bugs-ideas-feature-requests)
- [Important notes on some features](#notes-on-some-features)
- [Credits](#credits)
- [Disclaimer](#disclaimer)
- [License](#license)
## 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.
It also provides various automations that you can enable for administration and other purposes, as well as extensible C# API for creating Bots.
It was originally made by [ORelio](https://github.com/ORelio) in 2012 on the [Minecraft Forum](http://www.minecraftforum.net/topic/1314800-/), now it's maintained by him and many other contributors from the community.
## Features
- Chat
- Send and receive chat messages
- [Log chat history](chat-bots.md#chat-log)
- [Get alerted on certain keywords](chat-bots.md#alerts)
- [Auto Respond](chat-bots.md#auto-respond)
- [Anti AFK](chat-bots.md#anti-afk)
- [Auto Relog](chat-bots.md#auto-relog)
- [Script Scheduler](chat-bots.md#script-scheduler)
- [Remote Control](chat-bots.md#remote-control)
- [Auto Respond](chat-bots.md#auto-respond)
- [Auto Attack](chat-bots.md#auto-attack)
- [Auto Fishing](chat-bots.md#auto-fishing)
- [Auto Eat](chat-bots.md#auto-eat)
- [Auto Craft](chat-bots.md#auto-craft)
- [Mailer Bot](chat-bots.md#mailer)
- [Auto Drop](chat-bots.md#auto-drop)
- [Replay Mod](chat-bots.md#replay-mod)
- [API for creating Bots in C#](creating-bots.md#creating-chat-bots)
- [Docker Support](installation.md#using-docker)
- [Inventory Handling](usage.md#inventory)
- [Terrain Traversing](usage.md#move)
- Entity Handling
_NOTE: Some of mentioned features are disabled by default and you will have to turn them on in the configuration file and some may require additional configuration on your part for your specific usage._
## Why Minecraft Console Client?
- Easy to use
- Helpful community
- Open-Source
- Fast performance
- Cross-Platform
- Docker Support
- 10 years of continuous development
- Active contributors
- Widely used
## Quick Intro
Don't have time to read through the documentation, we got you, our community has made some simple introduction videos about the **Minecraft Console Client**.
### The list of the tutorials:
Installation:
- [Installation on Windows by Daenges](https://www.youtube.com/watch?v=BkCqOCa2uQw)
- [Installation on Windows + Auto AFK and More by Dexter113](https://www.youtube.com/watch?v=FxJ0KFIHDrY)
Using Commands, Scripts and other features:
- [Minecraft Console Client | Tutorial | Commands, Scripts, AppVars, Matches, Tasks and C# Scripts by Daenges](https://youtu.be/JbDpwwETEnU)
- [Console Client Tutorial - Scripting by Zixxter](https://www.youtube.com/watch?v=XE7rYBFJxn0)
## Getting Help
MCC has a community that is willing to help, we have a Discussions section in out Git Hub repository.
Click [here](https://github.com/MCCTeam/Minecraft-Console-Client/discussions) to access it.
### Before getting help
- **Please use the search option here or in the discussion section and read the documentation so we avoid duplicate questions. Thank you!**
- **Please be kind and patient, respect others as they're the ones using their time to help you**
## Bugs, Ideas, Feature Requests
Bug reporting, idea submitting or feature requesting are done in the [Issues](https://github.com/MCCTeam/Minecraft-Console-Client/issues) section of our [Github repository](<[here](https://github.com/MCCTeam/Minecraft-Console-Client)>).
Navigate to the Issues section, search for a bug, idea or a feature using the search option here in the documentation and in the `Issues` section on Git Hub before making your own.
If you haven't found anything similar, go ahead and click on the `New issue` button, then choose what you want to do.
If you're reporting a bug, please be descriptive as much as possible, try to explain how to re-create the bug, attack screenshots and logs, make sure that you have [`debugmessages`](configuration.me#debugmessages) set to `true` before sending a bug report or taking a screenshot.
### Before submitting
- **Please use the search option here or in the `Issues` section and read the documentation so we avoid duplicate questions/ideas/reports. Thank you!**
- **Please be kind, patient and respect others. Thank you!**
## Notes on some features
### Inventory, Terrain and Entity Handling
Inventory handling is currently not supported in versions: `1.4.6 - 1.9`
Terrain handling is currently not supported in versions: `1.4.6 - 1.6`
Entity handling is currently not supported in versions: `1.4.6 - 1.9` (but `1.8` and `1.9` are being worked on, almost at the working state, only `EntityMetadata` packet remains to be fixed)
There features might not always be implemented in the latest version of the game, since they're often subjected to major changes by Mojang, and we need some time to figure out what has changed and to implement the required changes.
If there was a major game update, and the MCC hasn't been updated to support these features, if you're a programmer, feel free to contribute to the project.
## Credits
_Project initiated by [ORelio](https://github.com/ORelio) in 2012 on the [Minecraft Forum](http://www.minecraftforum.net/topic/1314800-/)._
Many features would not have been possible without the help of our talented community:
**Maintainers**
ORelio, ReinforceZwei, milutinke, BruceChenQAQ, bradbyte
**Ideas**
ambysdotnet, Awpocalypse, azoundria, bearbear12345, bSun0000, Cat7373, dagonzaros, Dids, Elvang, fuckofftwice, GeorgH93, initsuj, JamieSinn, joshbean39, LehmusFIN, maski, medxo, mobdon, MousePak, TNT-UP, TorchRJ, yayes2, Yoann166, ZizzyDizzyMC and [many more](https://github.com/MCCTeam/Minecraft-Console-Client/issues?q=is%3Aissue+%5BIdea%5D+is%3Aopen).
**Bug Hunters**
1092CQ, ambysdotnet, bearbear12345, c0dei, Cat7373, Chtholly, Darkaegis, dbear20, DigitalSniperz, doranchak, drXor, FantomHD, gerik43, ibspa, iTzMrpitBull, JamieSinn, k3ldon, KenXeiko, link3321, lyze237, mattman00000, Nicconyancat, Pokechu22, ridgewell, Ryan6578, Solethia, TNT-UP, TorchRJ, TRTrident, WeedIsGood, xp9kus, Yoann166 and [many more](https://github.com/MCCTeam/Minecraft-Console-Client/issues?q=is%3Aissue+%5BBUG%5D+is%3Aopen+).
**贡献者**
Allyoutoo, Aragas, Bancey, bearbear12345, corbanmailloux, Daenges, dbear20, dogwatch, initsuj, JamieSinn, justcool393, lokulin, maxpowa, medxo, milutinke, Pokechu22, ReinforceZwei, repository, TheMeq, TheSnoozer, vkorn, v1RuX, yunusemregul, ZizzyDizzyMC, BruceChenQAQ, bradbyte _... And all the [GitHub contributors](https://github.com/MCCTeam/Minecraft-Console-Client/graphs/contributors)!_ And all the [GitHub contributors](https://github.com/MCCTeam/Minecraft-Console-Client/graphs/contributors)!</em>
**Libraries:**
Minecraft Console Client also borrows code from the following libraries:
| Name | Purpose | Author | License |
| ----------- | ---------------- | ---------------- | ------- |
| Biko | Proxy handling | Benton Stark | MIT |
| Heijden.Dns | DNS SRV Lookup | Geoffrey Huntley | MIT |
| DotNetZip | Zlib compression | Dino Chiesa | MS-PL |
## Disclaimer
Even if everything should work, we are not responsible for any damage this app could cause to your computer or your server. Even if everything should work, we are not responsible for any damage this app could cause to your computer or your server. This app does not steal your password. If you don't trust it, don't use it or check & compile from the source code. If you don't trust it, don't use it or check & compile from the source code.
Also, remember that when you connect to a server with this program, you will appear where you left the last time. Also, remember that when you connect to a server with this program, you will appear where you left the last time. This means that **you can die if you log in in an unsafe place on a survival server!** Use the script scheduler bot to send a teleport command after logging in.
We remind you that **you may get banned** by your server for using this program. Use accordingly with server rules. Use accordingly with server rules.
## License
Minecraft Console Client is a totally free of charge, open source project. The source code is available at [Github Repository](https://github.com/MCCTeam/Minecraft-Console-Client) The source code is available at [Github Repository](https://github.com/MCCTeam/Minecraft-Console-Client)
Unless specifically stated, source code is from the MCC Team or Contributors, and available under CDDL-1.0. Unless specifically stated, source code is from the MCC Team or Contributors, and available under CDDL-1.0. More info about CDDL-1.0: [http://qstuff.blogspot.fr/2007/04/why-cddl.html](http://qstuff.blogspot.fr/2007/04/why-cddl.html) Full license at [http://opensource.org/licenses/CDDL-1.0](http://opensource.org/licenses/CDDL-1.0)

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,75 +0,0 @@
# Contributing
At this moment this page needs to be created.
For now you can use our article from the [Git Hub repository Wiki](https://github.com/MCCTeam/Minecraft-Console-Client/wiki/Update-console-client-to-new-version) written by [ReinforceZwei](https://github.com/ReinforceZwei).
## Translations
MCC 现在支持这些语言(按字母顺序排列):
* `de.ini` : Deutsch - German
* **`en.ini`: English - English**
* `fr.ini` : Français (France) - French
* `ru.ini` : Русский (Russkiy) - Russian
* `vi.ini` : Tiếng Việt (Việt Nam) - Vietnamese
* `zh-Hans.ini` : 简体中文 - Chinese Simplified
* `zh-Hant.ini` : 繁體中文 - Chinese Traditional
### Add new translation
1. First you need to get the name of the translated file.
* Visit [this link](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-lcid/a9eac961-e77d-41a6-90a5-ce1a8b0cdb9c) and find the first occurrence of the language you need to translate in the table below.
* Use the language code of the row in the table as the name of the translation file.
* For example:
* `English` -> row `English 0x0009` -> `en` -> `en.ini`
* `Chinese (Traditional)` -> row `Chinese (Traditional) 0x7C04` -> `zh-Hant` -> `zh-Hant.ini`
2. Which system languages are recommended to use this translation?
* Still check the table in [this link](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-lcid/a9eac961-e77d-41a6-90a5-ce1a8b0cdb9c), one language may have multiple rows.
* You will need to indicate which language codes this translation applies to.
* For example:
* Translation `de.ini` applies to `de`, `de-AT`, `de-BE`, `de-DE`, ...
* Translation `zh-Hans.ini` applies to `zh-Hans`, `zh`, `zh-CN`, `zh-SG`.
3. Which game languages are recommended to use this translation?
* Check out the table in [this link](https://github.com/MCCTeam/Minecraft-Console-Client/discussions/2239), where the `Locale Code` column indicates the language code in minecraft.
* You will need to indicate which locale codes this translation applies to.
* For example:
* Translation `fr.ini` applies to `fr_ca`, `fr_fr`.
* Translation `zh-Hans.ini` applies to `zh_cn`.
4. Add the new translation to the code. (Optional)
* **If you are not familiar with programming, you can skip this step and just write the above information in your PR or issue.**
* Add the newly created translation file `xx.ini` to the project `/Resources/lang/xx.ini`.
* Open `/DefaultConfigResource.resx`.
* Click `Add Resources`.
* Choose `/Resources/lang/xx.ini`.
* Rename the added resource file in `/DefaultConfigResource.resx` to `Translation_xx`.
* Open `/Translations.cs`.
* Find `public static Tuple<string, string[]> GetTranslationPriority();`
* Update the mapping of system language codes to translation files.
* Find `public static string[] GetTranslationPriority(string gameLanguage);`
* Update the mapping of game locale code to translation files.
5. Follow the section "Update existing translation".
### Update existing translation
1. Visit [the lang folder](https://github.com/MCCTeam/Minecraft-Console-Client/tree/master/MinecraftClient/Resources/lang), download `en.ini` and the language you want to translate(`xx.ini`).
2. Compare `en.ini` and `xx.ini` and update outdated or non-existent entries in `xx.ini`.
3. Once you finished the translation work, submit a pull request or send us the file through an [Issue](https://github.com/MCCTeam/Minecraft-Console-Client/issues) in case you are not familiar with Git.
### Translate README.md
1. Get the English version of the README.md from [here](https://raw.githubusercontent.com/MCCTeam/Minecraft-Console-Client/master/README.md).
2. See `Add new translation -> 1.` for the target language code. Assume it is `xx`.
3. Complete the translation according to the English README.md and name the translated version as `README-xx.md`.
4. In the English README, above the "About" section, add the name of the language and a hyperlink to `README-xx.md`.
## 贡献者
[Check out our contributors on Github](https://github.com/MCCTeam/Minecraft-Console-Client/graphs/contributors).

View file

@ -1,170 +0,0 @@
# Creating Chat Bots
- [Notes](#notes)
- [Requirements](#requirements)
- [Quick Introduction](#quick-introduction)
- [Examples](#examples)
- [C# API](#c#-api)
## Notes
> ** NOTE: For now this page contains only the bare basics of the Chat Bot API, enough of details to teach you how to make basic Chat Bots. For more details you need to take a look at the [ChatBot.cs](https://github.com/MCCTeam/Minecraft-Console-Client/blob/master/MinecraftClient/Scripting/ChatBot.cs) and [Examples](#examples). This page will be improved in the future.**
**Minecraft Console Client** has a rich C# API which allows you to create Chat Bots (effectively plugins) which can help you create complex automations which normal scripts may not be able to do.
## Requirements
- A basic knowledge of C# programming language
- A text editor
If you're not familiar with the C# programming language, we suggest taking a look at the following resources:
Crash courses:
- [C# Crash Course playlist by Teddy Smit](https://www.youtube.com/watch?v=67oWw9TanOk&list=PL82C6-O4XrHfoN_Y4MwGvJz5BntiL0z0D)
More in-depth:
- [Learn C# Youtube Playlist by Microsoft](https://www.youtube.com/playlist?list=PLdo4fOcmZ0oVxKLQCHpiUWun7vlJJvUiN)
- [Getting started with C# (An index of tutorials and the documentation) by Microsoft](https://docs.microsoft.com/en-us/dotnet/csharp/)
## Quick Introduction
This introduction assumes that you have the basic knowledge of C#.
> ** NOTE: Here we will use terms Chat Bot and Script interchangeably**
Create a new empty file and name it `ExampleChatBot.cs` in the same folder where you have your MCC installed.
Paste the following example code:
```csharp
//MCCScript 1.0
MCC.LoadBot(new ExampleChatBot());
//MCCScript Extensions
// The code and comments above are defining a "Script Metadata" section
// Every single chat bot (script) must be a class which extends the ChatBot class.
// Your class must be instantiates in the "Script Metadata" section and passed to MCC.LoadBot function.
class ExampleChatBot : ChatBot
{
// This method will be called when the script has been initialized for the first time, it's called only once
// Here you can initialize variables, eg. Dictionaries. etc...
public override void Initialize()
{
LogToConsole("An example Chat Bot has been initialized!");
}
// This is a function that will be run when we get a chat message from a server
// In this example it just detects the type of the message and prints it out
public override void GetText(string text)
{
string message = "";
string username = "";
text = GetVerbatim(text);
if (IsPrivateMessage(text, ref message, ref username))
{
LogToConsole(username + " has sent you a private message: " + message);
}
else if (IsChatMessage(text, ref message, ref username))
{
LogToConsole(username + " has said: " + message);
}
}
}
```
Start MCC, connect to a server and run the following internal command: `/script ExampleChatBot.cs`.
If you did everything right you should see: `[Example Chat Bot] An example Chat Bot has been initialised!` message appear in your console log.
### Structure of Chat Bots
Chat Bot (Script) structure is the following:
```
<script metadata>
<chat bot class>
```
**Script Metadata** is a section with a custom format that mixes in C# with our format using comments. Every single Chat Bot (Script) must have this section at the beginning in order to work. Every single Chat Bot (Script) must have this section at the beginning in order to work.
### Script Metadata Format
`//MCCScript 1.0` marks the beginning of the **Script Metadata** section, this must always be on the first line or the Chat Bot (Script) will not load and will throw an error.
`//MCCScript Extensions` marks the end of the **Script Metadata** section, this must be defined before a Chat Bot (Script) class.
In order for your Chat Bot (Script) to properly load in-between the `//MCCScript 1.0` and the `//MCCScript Extensions` lines you must instantiate your Chat Bot (Script) class and pass it to the `MCC.LoadBot` function.
Example code:
```
MCC.LoadBot(new YourChatBotClassNameHere());
```
**Script Metadata** section allows for including C# packages and libraries with: `//using <namespace>` and `/dll <dll name>`.
> ** NOTE: Avoid adding whitespace between `//` and keywords**
By the default the following packages are loaded:
```csharp
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using System.Linq;
using System.Text;
using System.IO;
using System.Net;
using System.Threading;
using MinecraftClient;
using MinecraftClient.Mapping;
using MinecraftClient.Inventory;
```
Example:
```csharp
//using System.Collections.Immutable
//dll MyDll.dll
```
Full Example:
```csharp
//MCCScript 1.0
//using System.Collections.Immutable
//dll MyDll.dll
MCC.LoadBot(new ExampleChatBot());
//MCCScript Extensions
```
### Chat Bot Class
After the end of the **Script Metadata** section, you basically can define any number of classes you like, the only limitation is that the main class of your Chat Bot (Script) must extend `ChatBot` class.
There are no required methods, everything is optional.
When the Chat Bot (Script) has been initialized for the first time the `Initialize` method will be called. In it you can initialize variables, eg. Dictionaries, etc.. In it you can initialize variables, eg. Dictionaries, etc..
> ** NOTE: For allocating resources like a database connection, we recommend allocating them in `AfterGameJoined` and freeing them in `OnDisconnect`**.
## Examples
You can find a lot of examples in our Git Hub Repository at [ChatBots](https://github.com/MCCTeam/Minecraft-Console-Client/tree/master/MinecraftClient/ChatBots) and [config](https://github.com/MCCTeam/Minecraft-Console-Client/tree/master/MinecraftClient/config).
## C# API
As of the time of writing, the C# API has been changed in forks that are yet to be merged, so for now you can use the [ChatBot.cs](https://github.com/MCCTeam/Minecraft-Console-Client/blob/master/MinecraftClient/Scripting/ChatBot.cs) for reference.
Each method is well documented with standard C# documentation comments.
In the future we will make a script to auto-generate this section based on the documentation in the code.

View file

@ -1,932 +0,0 @@
# 安装
- [YouTube Tutorials](#youtube-tutorials)
- [Download a compiled binary](#download-a-compiled-binary)
- [Building from the source code](#building-from-the-source-code)
- [Run using Docker](#using-docker)
- [Run on Android](#run-on-android)
- [Run MCC 24/7 on a VPS](#run-on-a-vps)
## YouTube Tutorials
If you're not the kind of person that likes textual tutorials, our community has made video tutorials available on YouTube.
- [Installation on Windows by Daenges](https://www.youtube.com/watch?v=BkCqOCa2uQw)
- [Installation on Windows + Auto AFK and More by Dexter113](https://www.youtube.com/watch?v=FxJ0KFIHDrY)
## Download a compiled binary
In order to run **Minecraft Console Client** you need [.NET 6.0 or new-er](https://dotnet.microsoft.com/en-us/download)
> **⚠️ IMPORTANT: If you already have .NET, but an older version than `6.0`, please update to `6.0` since MCC might not work as expected or at all.**
#### How to install .NET on your platform
- [Install .NET on Windows](https://docs.microsoft.com/en-us/dotnet/core/install/windows)
- [Install .NET on Linux](https://docs.microsoft.com/en-us/dotnet/core/install/linux)
- [Install .NET on macOS](https://docs.microsoft.com/en-us/dotnet/core/install/macos)
#### 下载
You can download a compiled binary file of the latest build from our Releases section on Git Hub: [Download](https://github.com/MCCTeam/Minecraft-Console-Client/releases)
## Building from the source code
### Windows
Requirements:
- [Git](https://www.git-scm.com/)
- [.NET 6.0 or new-er](https://dotnet.microsoft.com/en-us/download) or [Visual Studio](https://visualstudio.microsoft.com/) configured for C# app development
#### Cloning using Git
Install [Git](https://www.git-scm.com/)
1. Make a new folder where you want to keep the source code
2. Then open it up, hold `SHIFT` and do a `right-click` on the empty white space in the folder
3. Click on `Git Bash Here` in the context menu
4. Clone the [Git Hub Repository](https://github.com/MCCTeam/Minecraft-Console-Client) by typing end executing the following command:
```bash
git clone https://github.com/MCCTeam/Minecraft-Console-Client.git --recursive
```
5. Once the repository has been cloned, you can close the `Git Bash` terminal emulator
6. Open up the new cloned folder
#### Building using the Visual Studio
1. Open up the `MinecraftClient.sln` via Visual Studio
2. Right click on `MinecraftClient` solution in the `Solution Explorer`
3. Click on `Properties`
4. Open up the `Build` tab and select configuration `Release`
5. Press `CTRL + S` and close the file
6. Right click on `MinecraftClient` solution in the `Solution Explorer`
7. Click `Build`
If the build has succeeded, the compiled binary `MinecraftClient.exe` will be in `MinecraftClient/bin/Release/net6.0/win-x64/publish` folder.
#### Building using .NET manually without Visual Studio
1. Open the `Minecraft-Console-Client` folder you've cloned or downloaded
2. Open the PowerShell (`Right-Click` on the whitespace and click `Open PowerShell`, or in Windows Explorer: `File -> Open PowerShell`)
3. Run the following command to build the project:
```bash
dotnet publish MinecraftClient -f net6.0 -r win-x64 --no-self-contained -c Release -p:UseAppHost=true -p:IncludeNativeLibrariesForSelfExtract=true -p:DebugType=None
```
If the build has succeeded, the compiled binary `MinecraftClient.exe` will be in `MinecraftClient/bin/Release/net6.0/win-x64/publish` folder.
### Linux, macOS
Requirements:
- Git
- Linux:
> ** NOTE: If you're using Linux we will assume that you should be able to install git on your own. If you don't know how, search it up for your distribution, it should be easy. (Debian based distros: `apt install git`, Arch based: `pacman -S git`)**
- [Install Git on macOS](https://git-scm.com/download/mac)
- .NET SDK 6.0 or new-er
- [Install .NET on Linux](https://docs.microsoft.com/en-us/dotnet/core/install/linux)
- [Install .NET on macOS](https://docs.microsoft.com/en-us/dotnet/core/install/macos)
#### Cloning using Git
1. Open up a terminal emulator and navigate to the folder where you will store the MCC
2. Recursively clone the [Git Hub Repository](https://github.com/MCCTeam/Minecraft-Console-Client) by typing end executing the following command:
```bash
git clone https://github.com/MCCTeam/Minecraft-Console-Client.git --recursive
```
3. Go to the folder you've cloned (should be `Minecraft-Console-Client`)
4. Run the following command to build the project:
- On Linux:
```bash
dotnet publish MinecraftClient -f net6.0 -r linux-x64 --no-self-contained -c Release -p:UseAppHost=true -p:IncludeNativeLibrariesForSelfExtract=true -p:DebugType=None
```
> ** NOTE: If you're using Linux that is either ARM, 32-bit, Rhel based, Using Musl, or Tirzen, [find an appropriate RID](https://docs.microsoft.com/en-us/dotnet/core/rid-catalog#linux-rids) for your platform and replace the `'-r linux-64` with an appropriate `-r <your RID>` (Example for arm: `-r linux-arm64`)**
- On macOS:
```bash
dotnet publish MinecraftClient -f net6.0 -r osx-x64 --no-self-contained -c Release -p:UseAppHost=true -p:IncludeNativeLibrariesForSelfExtract=true -p:DebugType=None
```
> ** NOTE: If you're not using MAC with Intel, find an appropriate RID for your ARM processor, [find an appropriate RID](https://docs.microsoft.com/en-us/dotnet/core/rid-catalog#macos-rids) and replace the `'-r osx-64` with an appropriate `-r <your RID>` (Example for arm: `-r osx.12-arm64`)**
If the build has succeeded, the compiled binary `MinecraftClient` will be in:
- Linux: `MinecraftClient/bin/Release/net6.0/linux-x64/publish/`
- macOS: `MinecraftClient/bin/Release/net6.0/osx-x64/publish/`
## Using Docker
Requirements:
- Git
- Docker
> ** NOTE: This section is for more advanced users, if you do not know how to install git or docker, you can take a look at other sections for Git, and search on how to install Docker on your system.**
> **⚠️ WARNING: Pay attention at warnings, Docker currently works, but you must start the containers in the interactive mode or MCC will crash, we're working on solving this.**
1. Clone the [Git Hub Repository](https://github.com/MCCTeam/Minecraft-Console-Client) by typing end executing the following command:
```bash
git clone https://github.com/MCCTeam/Minecraft-Console-Client.git --recursive
```
2. Navigate to `Minecraft-Console-Client/Docker`
3. Build the image using the following command
```bash
docker build -t minecraft-console-client:latest .
```
**Start the container using Docker:**
> **⚠️ VERY IMPORTANT ⚠️: There is a bug with the ConsoleInteractive which causes a crash when a container is started in a headless mode, so you need to use the interactive mode. Do not restart containers in a classic way, stop then and start them with interactive mode (this command), after that simply detach with `CTRL + P` and then `CTRL + Q`. Do not restart containers in a classic way, stop then and start them with interactive mode (this command), after that simply detach with `CTRL + P` and then `CTRL + Q`.**
```bash
# You could also ignore the -v parameter if you dont want to mount the volume that is up to you. # You could also ignore the -v parameter if you dont want to mount the volume that is up to you. If you don't it's harder to edit the .ini file if thats something you want to do
docker run -it -v <PATH_ON_YOUR_MACHINE_TO_MOUNT>:/opt/data minecraft-console-client:latest
```
Now you could login and the Client is running. Now you could login and the Client is running. To detach from the Client but still keep it running in the Background press: `CTRL + P` and then after `CTRL + Q`. To reattach use the `docker attach` command. To reattach use the `docker attach` command.
**Start the container using docker-compose:**
By default, the volume of the container gets mapped into a new folder named `data` in the same folder the `docker-compose.yml` is stored.
If you don't want to map a volume, you have to comment out or delete the entire volumes section:
```yml
#volumes:
#- './data:/opt/data'
```
Make sure you are in the directory the `docker-compose.yml` is stored before you attempt to start. If you do so, you can start the container:
```bash
docker-compose run MCC
```
Remember to remove the container after usage:
```bash
docker-compose down
```
If you use the INI file and entered your data (username, password, server) there, you can start your container using
```bash
docker-compose up
docker-compose up -d #for deamonized running in the background
```
Note that you won't be able to interact with the client using `docker-compose up`. If you want that functionality, please use the first method: `docker-compose run MCC`. As above, you can stop and remove the container using If you want that functionality, please use the first method: `docker-compose run MCC`. As above, you can stop and remove the container using
```bash
docker-compose down
```
## Run on Android
It is possible to run the Minecraft Console Client on Android through Termux and Ubuntu 22.04 in it, however it requires a manual setup with a lot of commands, be careful no to skip any steps. Note that this might take anywhere from 10 to 20 minutes or more to do depending on your technical knowledge level, Internet speed and CPU speed.
> ** NOTE: This section is going to get a bit technical, I'll try my best to make everything as simple as possible. If you are having trouble following along or if you encounter any issues, feel free to open up a discussion on our Github repository page.**
> ** NOTE: You're required to have some bare basic knowledge of Linux, if you do not know anything about it, watch [this video](https://www.youtube.com/watch?v=SkB-eRCzWIU) to get familiar with basic commands.**
> ** NOTE: Here we're installing everything on the root account for simplicity sake, if you want to make a user account, make sure you update the command which reference the `/root` directory with your home directory.**
### 安装
#### Termux
> **⚠️ IMPORTANT: The Play Store version of Termux is outdated and not supported, do not use it, use the the [Github one](https://github.com/termux/termux-app/releases/latest/).**
Go to [the Termux Github latest release](https://github.com/termux/termux-app/releases/latest/), download the `debug_universal.apk`, unzip it and run it.
> ** NOTE: If your file manager does not let you run APK files, install and use `File Manager +` and give it a permission to install 3rd party applications when asked.**
> **⚠️ VERY IMPORTANT ⚠️: Once you have installed Termux, open it, bring down the Android menu for notifications, on Termux notification, drag down until you see the following options: `Exit | Acquire wakelock`, press on the `Acquire wakelock` and allow Termux to have a battery optimization exclusion permission when asked. If you do not do this, your performance will be poorer and the Termux might get killed by Android while running in the background!**
#### Installing Ubuntu 22.04
At this stage, you have 2 options:
1. Following this textual tutorial
2. Watching a [Youtube tutorial for installing Ubuntu](https://www.youtube.com/watch?v=5yit2t7smpM)
> ** NOTE: If you decide to watch the Youtube tutorial, watch only up to `1:58`, the steps after are not needed and might just confuse you.**
In order to install Ubuntu 22.04 in Termux you require `wget` and `proot`, we're going to install them in the next step.
Once you have Termux installed open it up and run the following command one after other (in order):
1. `pkg update`
2. `pkg upgrade`
3. `pkg install proot wget`
> ** NOTE: If you're asked to press Y/N during the update/upgrade command process, just enter Y and press Enter**
Then you need to download an installation script using the following command:
```bash
wget https://raw.githubusercontent.com/MFDGaming/ubuntu-in-termux/master/ubuntu.sh
```
Once the script has downloaded, run it with:
```bash
bash ubuntu.sh
```
Then you will be asked a question, enter `Y` and press `Enter`. Once the installation is complete, you can start Ubuntu with: Once the installation is complete, you can start Ubuntu with:
```bash
./startubuntu.sh
```
> ** NOTE: Now every time you open Termux after it has been closed, in order to access Ubuntu you have to use this command**
#### Installing .NET on ARM
Since there are issues installing .NET 6.0 via the APT package manager at the time of writing, we will have to install it manually.
First we need to update the APT package manager repositories and install dependencies.
To update the APT repositories, run the following command:
```bash
apt update -y && apt upgrade -y
```
After you did it, we need to install dependencies for .NET, with the following command:
```bash
apt install wget nano unzip libc6 libgcc1 libgssapi-krb5-2 libstdc++6 zlib1g libicu70 libssl3 -y
```
After you have installed dependencies, it's time to install .NET, you either can follow this tutorial or the [Microsoft one](https://docs.microsoft.com/en-us/dotnet/core/install/linux-scripted-manual#manual-install).
Navigate to your `/root` home directory with the following command:
```bash
cd /root
```
First you need to download .NET 6.0, you can do it with the following command:
```bash
wget https://download.visualstudio.microsoft.com/download/pr/901f7928-5479-4d32-a9e5-ba66162ca0e4/d00b935ec4dc79a27f5bde00712ed3d7/dotnet-sdk-6.0.400-linux-arm64.tar.gz
```
> ** NOTE: This tutorial assumes that you have 64 bit version of ARM processor, if you happen to have a 32-bit version replace the link in the command above with [this one](https://download.visualstudio.microsoft.com/download/pr/cf567026-a29a-41aa-bc3a-e4e1ad0df480/0925d411e8e09e31ba7a39a3eb0e29af/aspnetcore-runtime-6.0.8-linux-arm.tar.gz)**.
> ** NOTE: This tutorial assumes that you're following along and using Ubuntu 22.04, if you're using a different distro, like Alpine, go to [here](https://dotnet.microsoft.com/en-us/download/dotnet/6.0) and copy an appropriate link for your distro.**
Once the file has been downloaded, you need to run the following commands in order:
1. `DOTNET_FILE=dotnet-sdk-6.0.400-linux-arm64.tar.gz`
> **⚠️ IMPORTANT: If you're using a different download link, update the file name in this command to match your version.**
2. `export DOTNET_ROOT=/root/.dotnet`
> **⚠️ IMPORTANT: Here we're installing .NET in `/root`, if you're installing it somewhere else, make sure to set your own path!**
3. `mkdir -p "$DOTNET_ROOT" && tar zxf "$DOTNET_FILE" -C "$DOTNET_ROOT"`
4. `export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools`
Now we need to tell our shell to know where the `dotnet` command is, for future sessions, since the commands above just tell this current session where the `dotnet` is located.
> **⚠️ IMPORTANT: You will need a basic knowledge of Nano text editor, if you do not know how to use it, watch this [Youtube video tutorial](https://www.youtube.com/watch?v=DLeATFgGM-A)**
To enable this, we need to edit our `/root/.bashrc` file with the following command:
```bash
nano /root/.bashrc
```
Scroll down to the bottom of the file using `Page Down` (`PGDN`) button, make a new line and paste the following text:
```bash
export DOTNET_ROOT=/root/.dotnet/
export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools
```
> **⚠️ IMPORTANT: Here we're installing .NET in `/root`, if you're installing it somewhere else, make sure to set your own path!**
Save the file usign the following combination of keys: `CTRL + X`, type `Y` and press Enter.
Veryfy that .NET was installed correctly by running:
```bash
dotnet
```
You should get a help page:
```bash
root@localhost:~# dotnet
Usage: dotnet [options]
Usage: dotnet [path-to-application]
Options:
-h|--help Display help.
--info Display .NET information.
--list-sdks Display the installed SDKs.
--list-runtimes Display the installed runtimes.
path-to-application:
The path to an application .dll file to execute.
```
#### Installing MCC
Finally, we can install MCC.
> **⚠️ IMPORTANT: If you have a 32 ARM processor, you need to build the MCC yourself, take a look at the [Building From Source](#building-from-the-source-code) section. Also make sure to be using the appropriate `-r` parameter value for your architecture.**
Let's make a folder where the MCC will be stored with the following command:
```bash
mkdir MinecraftConsoleClient
```
Then enter it the newly created folder:
```bash
cd MinecraftConsoleClient
```
Download the MCC with the following command:
```bash
wget https://github.com/MCCTeam/Minecraft-Console-Client/releases/latest/download/MinecraftClient-linux-arm64.zip
```
Unzip it with the following command:
```bash
unzip MinecraftClient-linux-arm64.zip
```
You can remove the zip archive now, we do not need it anymore, with:
```bash
rm MinecraftClient-linux-arm64.zip
```
And finally run it with:
```
./MinecraftClient
```
#### After installation
When you run Termux next time, you need to start Ubuntu with: `./startubuntu.sh`
Then you can start the MCC again with `./MinecraftClient`
To stop MCC from running you can press `CTRL + C`
To edit the configuration/settings, you need a text editor, we recommend Nano, as it's very simple to use, if you have followed the installation steps above, you should be familiar with it, if not, check out [this tutorial](https://www.youtube.com/watch?v=DLeATFgGM-A).
For downloading files, you can use the `wget` file we have installed, simply run: `wget your_link_here` (you have examples above, and a video tutorial down bellow).
Also, here are some linux tutorials for people who are new to it:
- [Linux Terminal Introduction by ExplainingComputers](https://www.youtube.com/watch?v=SkB-eRCzWIU)
- [Linux Crash Course - nano (command-line text editor) by Learn Linux TV](https://www.youtube.com/watch?v=DLeATFgGM-A)
- [Linux Crash Course - The wget Command by Learn Linux TV](https://www.youtube.com/watch?v=F80Z5qd2b_4)
- [Linux Basics: How to Untar and Unzip Files (tar, gzip) by webpwnized](https://www.youtube.com/watch?v=1DF0dTscHHs)
## Run on a VPS
> ** NOTE: This is a new section, if you find a mistake, please report it by opening an Issue in our [Github repository](https://github.com/MCCTeam/Minecraft-Console-Client). Thank you!**
The **Minecraft Console Client** can be run on a VPS 24 hours, 7 days a week.
- [What is a VPS?](#what-is-a-vps)
- [Prerequisites](#prerequisites)
- [Where to get a VPS](#where-to-get-a-vps)
- [Initial Amazon VPS setup](#initial-amazon-vps-setup)
- [Initial VPS setup](#initial-vps-setup)
- [Creating a new user account](#creating-a-new-user)
- [Installing .NET Core 6](#installing-net-core-6)
- [Installing the Minecraft Console Client](#installing-mcc-on-a-vps)
### What is a VPS?
VPS stands for a **V**irtual **P**rivate **S**erver, it's basically a remote virtual PC that is running in the cloud, 24 hours a day, 7 days in week. To be precise, it's a virtual machine that runs on top of a host operating system (eg. Proxmox).
You can use a VPS for hosting a website, or a an app, or a game server, or your own VPN, or the Minecraft Console Client.
Here is a [Youtube video](https://youtu.be/42fwh_1KP_o) that explains it in more detail if you're interested.
### Prerequisites
1. Gitbash (if you're on Windows)
Download and install [Gitbash](https://git-scm.com/downloads).
> ** NOTE: Make sure to allow the installation to add it to the context menu**
2. `ssh` and `ssh-keygen` commands (On Windows they're available with Gitbash, on macOs and Linux they should be available by default, it not, search on how to install them)
3. Basic knowledge of Linux shell commands, terminal emulator usage, SSH and Nano editor.
If you already know this, feel free to skip.
if you get stuck, watch those tutorials.
If you're new to this, you can learn about it here:
- [What is Linux? by Bennett Bytes](https://www.youtube.com/watch?v=JsWQUOEL0N8)
- [Linux Terminal Introduction by ExplainingComputers](https://www.youtube.com/watch?v=SkB-eRCzWIU)
- [Linux Crash Course - nano (command-line text editor) by Learn Linux TV](https://www.youtube.com/watch?v=DLeATFgGM-A)
- [Linux Crash Course - The wget Command by Learn Linux TV](https://www.youtube.com/watch?v=F80Z5qd2b_4)
- [Linux Basics: How to Untar and Unzip Files (tar, gzip) by webpwnized](https://www.youtube.com/watch?v=1DF0dTscHHs)
### Where to get a VPS
You have 2 options:
- [Buying a VPS](#buying-a-vps)
- [Getting an AWS EC2 VPS for free (12 months free trial)](#aws-ec2-vps)
#### Buying a VPS
If you do not want to give your info to Amazon or don't have a debit card, you can buy your own VPS.
**What hardware requirements I need for running the MCC?**
The MCC is not expensive to run, so it can run on basically any hardware, you do not need to spend a lot of money on a VPS if you are going to run just the MCC, go with the cheapest option.
**Where to buy a VPS?**
> **⚠️ VERY IMPORTANT: In this tutorial we will be using `Ubuntu 22.04`, make sure to select it as the OS when buying a VPS.**
Some of the reliable and cheap hosting providers (sorted for price/performance):
- [E-Trail](https://e-trail.net/vps)
**Minimum price**: `2.50 EUR / month`
> ** NOTE: Does not have Ubuntu 22.04 in the dropdown menu when ordering, you will have to re-install later or ask support to do it.**
- [OVH Cloud](https://www.ovhcloud.com/de/vps/)
**Minimum price**: `3.57 EUR / month`
- [Hetzner Cloud](https://www.hetzner.com/cloud)
**Minimum price**: `4.51 EUR / month`
- [Digital Ocean](https://www.digitalocean.com/pricing/droplets)
**Minimum price**: `4 EUR / month`
- [Contabo](https://contabo.com/en/vps/)
**Minimum price**: `7 EUR / month`
**More serious VPS able to host multiple applications, 4 CPU cores and 8 GB of RAM, 200 GB SSD**
You also may want to search for better deals.
#### AWS EC2 VPS
> **⚠️ VERY IMPORTANT: This will require you to have a valid debit card that can be used on internet and a mobile phone number, as well as giving that info to Amazon corporation.**
> **⚠️ WARNING: Scammers often get AWS VPS and use it to mass login on to stolen Microsoft accounts, some AWS IP addresses might be blocked by Microsoft because of that, if so, you might need to switch regions or to use a Proxy. To debug if your IP has been banned by Microsoft, use the `ping <ip>` and `traceroute <ip>` commands.**
> **⚠️ WARNING: Related to the warning above, if you have issues logging with Microsoft and you're not banned, you may want to check the Security center on your account and approve the login from the VPS, this can be the case for some users.**
> ** NOTE: If you're not banned, sometimes fetching the keys can take some time, try giving it a minute or two, if it still hangs, hit some keys to refresh the screen, or try restarting and running again. If it still happens, use tmux instead of screen.**
Register on AWS and enter all of your billing info and a phone number.
Once you're done, you can continue to [Setting up the Amazon VPS](#setting-up-an-aws-vps).
### Initial Amazon VPS setup
> ** NOTE: Skip this section if you're not using AWS. Go to [Initial VPS setup](#initial-vps-setup)**
When you register and open the `AWS Console`, click on the Search field on the top of the page and search for: `EC2`
> ** NOTE: Make sure to select the region closest to you for the minimal latency**
Click on the **Launch instance** button.
Fill out the `Name` field with a name of your preference.
![VPS Name](/images/guide/VPS_Name.png)
For the **Application and OS images** select `Ubuntu Server 22.04 LTS (HVM), SSD Volume Type`.
> **⚠️ VERY IMPORTANT: Make sure that it has `Free tier eligible` next to it.**
![VPS Select OS](/images/guide/VPS_SelectOS.png)
For the **Instance type** select `t2.micro`.
For the **Key pair (login)** click on **Create new key pair** and name it `VpsRoot`, leave the rest of settings as default and click **Create key pair**, this will generate a RSA private key that will be automatically downloaded.
> **⚠️ EXTREMELY IMPORTANT: Make sure that you save this file in a safe place and do not loose it, it's of an upmost importance since it's used to access the root/admin account of the VPS. Without it you will not be able to access the root account of the VPS! Also do not let it fall into wrong hands.**
![VPS Instance Type](/images/guide/VPS_InstanceType.png)
For the **Network settings** check the following checkboxes on:
- `Allow SSH traffic from` (Anywhere)
- `Allow HTTPs traffic from the internet`
- `Allow HTTP traffic from the internet`
> ** NOTE: The SSH traffic from Anywhere is not the best thing for security, you might want to enter IP addresses of your devices from which you want to access the VPS manually.**
![VPS Network Settings](/images/guide/VPS_NetworkSettings.png)
For the **Storage** enter `30`.
![VPS Configure Storage](/images/guide/VPS_ConfigureStorage.png)
Finally, review the **Summary** confirm that everything is as in the tutorial and that you will not be charged and click on the **Launch instance**. Once you've clicked on the button, it will take a couple of minutes for the instance to be available up and running.
Once the instance is up and running, go to it's details and copy the `Public DNS v4 IP`.
You now need to login, go to your folder where you keep the private key you've generated and downloaded (make sure you make a new folder for it, do not keep in the downloads folder) and right click on the empty white space (not on files), if you're on Windows click **Git Bash here**, on mac OS and Linux click on **Open Terminal** (or whatever it is called).
In order to login with SSH, you are going to use the following command:
```bash
ssh -i <name of your private root key here> ubuntu@<your public dns v4 ip here>
```
> ** NOTE: `<` and `>` are not typed, that is just a notation for a placeholder!**
> ** NOTE: `ubuntu` is a default root account username for Ubuntu on AWS!**
Example:
```bash
ssh -i VpsRoot.pem ubuntu@ec2-3-71-108-69.eu-central-1.compute.amazonaws.com
```
If you've provided the right info you should get `Welcome to Ubuntu 20.04.5 LTS` message.
Now you can continue to [Creating a new user](#creating-a-new-user)
### Initial VPS setup
> ** NOTE: This section if for those who do not use AWS, if you use AWS skip it**
When you order the VPS, most likely you will be asked to provide the root account name and password, if it is the case, name the account as `root` and give it a password of your choice.
Other option is that you will get your login info in the email once the setup is done.
Once you have the root login account info, you need [Gitbash](https://git-scm.com/downloads) on Windows and `ssh` if you're on macOS or Linux (if you do not have it by some chance, search on how to install it, it is simple).
If you're on Windows open `Git Bash`, on mac OS and Linux open a `Terminal` and type the following command:
```bash
ssh <username>@<ip>
```
> ** NOTE: If you're given a custom port other than `22` by your host, you should add `-p <port here>` before the username (eg. `ssh -p <port here> <username>@<ip>`) or `:<port>` after the ip (eg. `ssh <username>@<ip>:<port>`)**
Example:
```bash
ssh root@142.26.73.14
```
Example with port:
```bash
ssh -p 2233 root@142.26.73.14
```
Once you've logged in you should see a Linux prompt and a welcome message if there is one set by your provider.
### Creating a new user
Once you've logged in to your VPS you need to create a new user and give it SSH access.
In this tutorial we will be using `mcc` as a name for the user account that will be running the MCC.
> ** NOTE: You may be wondering why we're creating a separate user account and making it be accessible over SSH only. This is for security reasons, if you do not want to do this, you're free to skip it, but be careful.**
To create a new user named `mcc` execute the following command:
```bash
sudo useradd mcc -m
```
Now we need to give it a password, execute the following command, type the password and confirm it:
```bash
sudo passwd mcc
```
> ** NOTE: When you're typing a password it will not be displayed on the screen, but you're typing it for real.**
> ** NOTE: Make sure you have a strong password!**
Now we need to give our user account the admin permissions:
```bash
sudo usermod -aG sudo mcc
```
Now we are going to set it's shell to bash:
```bash
sudo chsh mcc -s /bin/bash
```
Now we need to log in as the `mcc` user:
```bash
su mcc
```
Fill in your password when asked.
Navigate to the `mcc` user home directory with:
```bash
cd ~
```
Make a new `.ssh` directory:
```bash
mkdir .ssh
```
Enter it with:
```bash
cd .ssh
```
Make a new empty file named `authorized_keys`:
```bash
touch authorized_keys
```
Do no close the Git bash/Terminal emulator. On your PC, make a new folder where you are going to store your SSH keys that you're going to use to log in to the user account. Open the folder, and right click on the empty white space (not on files), if you're on Windows click **Git Bash here**, on mac OS and Linux click on **Open Terminal** (or whatever it is called). On your PC, make a new folder where you are going to store your SSH keys that you're going to use to log in to the user account. Open the folder, and right click on the empty white space (not on files), if you're on Windows click **Git Bash here**, on mac OS and Linux click on **Open Terminal** (or whatever it is called).
Type the following command:
```bash
ssh-keygen -t RSA -b 4096
```
Enter the name of the key file to be: `MCC_Key`, press Enter.
When asked for a `passphrase`, enter a password of your choice and confirm it, make sure it's strong and that you remember it, best if you write it down on a piece of paper.
This will generate a private and a public key that you will use to log in to the VPS as a user that you've created.
Now open the `MCC_Key.pub` file with a text editor of your choice and copy it's contents to the clipboard.
Return to the Git Bash/Terminal emulator and execute the following command:
```bash
sudo apt install nano -y
```
This will install the Nano editor on your VPS.
Now we need to let the SSH service on your VPS know about your newly generated SSH key pair.
Make sure you are in the `/home/mcc/.ssh` folder, you can confirm this by executing:
```bash
pwd
```
If it does not print `/home/mcc/.ssh`, navigate to it with:
```bash
cd /home/mcc/.ssh
```
Now you need to open the `authorized_keys` file with the nano editor:
```bash
nano authorized_keys
```
Now paste the copied contents of the `MCC_Key.pub` into the nano editor by right clicking on it.
Save the file with `CTRL + O`, press Enter, and then exit it with `CTRL + X`.
Now we need to configure the SSHD service to let us login with the SSH key we have generated, for this we need to edit the `/etc/ssh/sshd_config` file with nano:
```bash
sudo nano /etc/ssh/sshd_config
```
Find the `#PubkeyAuthentication yes` line and remove the `#` in front to uncomment the line.
Then find the `#AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2` line and remove the `#` to uncomment the line.
Additionally for better security you can do the following:
- Set `PermitRootLogin` to `yes`
- Change the `Port` to some number of your choice (22-65000) (Make sure it's at least 2 digits and avoid common ports used by other apps like: 21, 80, 35, 8080, 3000, etc...)
- Uncomment `#PasswordAuthentication yes` by removing the `#` in front and set it to `yes` (This will disable password login, you will be able to login with SSH keys only!)
Save the file with `CTRL + O`, hit Enter, close it with `CTRL + X`.
Now we need to restart the SSHD service with:
```bash
sudo systemctl restart sshd
```
Let's check if everything is working correctly:
```bash
sudo systemctl status sshd
```
If everything has been configured as it should be you should see `active (running)` as a status of the service. If not, open the config file again and check for mistakes. If not, open the config file again and check for mistakes.
Press `q` to exit the log mode.
Logout from the `mcc` user with `exit` command, and then logout from the root `ubuntu` user by typing `exit` again.
Now we can login to the user with our private `MCC_Key` file.
Command:
```bash
ssh -i <path to the MCC_Key private key> mcc@<ip here>
```
Example:
```bash
ssh -i MCC_Key mcc@3.71.108.69
```
> ** NOTE: If you've changed the `Port`, make sure you add a `-p <your port here>` option after the `-i <key>` option (eg. `ssh -i MCC_Key -p 8973 mcc@3.71.108.69`)!**
If did everything correctly you should see a Linux prompt and a welcome message if there is one on your provider.
You can do `whoami` to see your username.
Now you can install .NET Core 6 and MCC.
### Installing .NET Core 6
> ** NOTE: If your VPS has an ARM CPU, follow [this](#installing-net-on-arm) part of the documentation and then return to section after this one.**
> **⚠️ WARNING: With newer versions of .NET Core 6 on Ubuntu 22.04 you might get the following error: `A fatal error occurred, the folder [/usr/share/dotnet/host/fxr] does not contain any version-numbered child folders`, if you get it, use [this solution](https://github.com/dotnet/sdk/issues/27082#issuecomment-1211143446)**
Log in as the user you've created.
Update the system packages and package manager repositories:
```bash
sudo apt update -y && sudo apt upgrade -y
```
Install `wget`:
```bash
sudo apt install wget -y
```
Go to your home directory with:
```bash
cd ~
```
Download the Microsoft repository file:
```bash
wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
```
Add Microsoft repositories to the package manager:
```bash
sudo dpkg -i packages-microsoft-prod.deb
```
Remove the file, we do not need it anymore:
```bash
rm packages-microsoft-prod.deb
```
Finally, install .NET Core 6:
```bash
sudo apt-get update -y && sudo apt-get install -y dotnet-sdk-6.0
```
Run the following command to check if everything was installed correctly:
```bash
dotnet
```
You should get:
```
Usage: dotnet [options]
Usage: dotnet [path-to-application]
Options:
-h|--help Display help.
--info Display .NET information.
--list-sdks Display the installed SDKs.
--list-runtimes Display the installed runtimes.
path-to-application:
The path to an application .dll file to execute.
```
If you do not get this output and the installation was not successful, [try other methods](https://docs.microsoft.com/en-us/dotnet/core/install/linux-ubuntu#2204).
If it was successful, you can now install the MCC.
### Installing MCC on a VPS
Now that you have .NET Core 6.0 and a user account, you should install the `screen` utility, you will need this in order to keep the MCC running once you close down the SSH session (if you do not have it, the MCC will just stop working once you disconnect). You can look at the `screen` like a window, except it's in a terminal, it lets you have multiple "windows" open at the same time.
> ** NOTE: There is also a Docker method, if you're using Docker, you do not need the `screen` program.**
You also can learn about the screen command from [this Youtube tutorial](https://youtu.be/_ZJiEX4rmN4).
To install the `screen` execute the following command:
```bash
sudo apt install screen -y
```
Now you can install the MCC:
- [Download a compiled binary](#download-a-compiled-binary)
- [Building from the source code](#building-from-the-source-code)
- [Run using Docker](#using-docker) (Doesn't require the `screen` command)
How to use the `screen` command?
> **⚠️ WARNING: If you have issues with Screen command, like output not being properly formatted or program handing/freezing, try using tmux, click [here](https://www.youtube.com/watch?v=Yl7NFenTgIo) to learn how to use it.**
To start a screen, type:
```bash
screen -S mcc
```
> ** NOTE: `mcc` here is the name of the screen, you can use whatever you like, but if you've used a different name, make sure you use that one instead of the `mcc` in the following commands.**
> ** NOTE: You need to make a screen only once, however if you reboot your VPS, you need to start it on each reboot.**
Now you will be in the screen, now you can start the MCC and detach from the screen.
To detach from the screen press `CTRL + A + D`.
To re-attach/return to the screen, execute the following command:
```bash
screen -r mcc
```
If you've accidentally closed the SSH session without detaching from the screen it might be still attached, to detach it use:
```bash
screen -d mcc
```
To list out screens you can use:
```bash
screen -ls
```
To stop the MCC, you can hit `CTRL + D` (hit it few times).

View file

@ -1,918 +0,0 @@
# 用法
How to run the program:
- [Running on Windows](#windows)
- [Running on Linux, macOS](#linux-macos)
- [Running using Docker](#docker)
Using the command line parameters:
- [Examples](#quick-usage-of-mcc-with-examples)
- [Command line parameters](#command-line-parameters)
- [Internal commands](#internal-commands)
## Windows
Simply run `MinecraftClient.exe`
> ** NOTE: On Windows it's best using [Windows Terminal](https://docs.microsoft.com/en-us/windows/terminal/install) for the best experience and looks. Some features like emojis in the [`/chunk`](#chunk) command do not work in CMD or Powershell 5**
## Linux, macOS
To run the client you need to type the following command in your terminal emulator:
```bash
./MinecraftClient
```
If you want to keep it running in the background you can use `screen` (Linux only) Example:
```bash
# Start the screen
screen -S mcc
# Run it
./MinecraftClient
# Detach from the screen by pressing CTRL + A + D
# Re-attach if you want to have accces again
screen -r mcc
```
_Learn more on how to use the screen command: [YouTube](https://www.youtube.com/watch?v=_ZJiEX4rmN4)_
## Docker
See [Run using Docker](./guide/installation.md#using-docker)
## Command-line usage
**Minecraft Console Client** has a plethora of useful command line parameters, here you can learn about them.
### For people not familiar with the command line
For people who are not familiar with the usage of programs in the command line (terminal emulators), here we will explain what every single thing means, if you're already experienced you can skip this.
In command line (terminal emulators) you can run programs by specifying their name and hitting enter, usually programs have additional way of being configured, started or provided some additional data in a different manner, this is achieved by using command line parameters.
Command line parameters are written after the name of the program, they're separated by spaces and they can have a few different formats, examples:
- `someparameter`
- `-some-parameter`
- `--some-other-parameter`
- `--some-setting="some value"`
- `-a=5`
Parameters with a single dash (`-`) are usually used for a single letter (short-hand) parameters, while the ones with a double dash (`--`) are being used for parameters with a longer/full name.
When you are reading examples, you will often see something like this: `<something here>`, this means that this is a place holder and it should be changed with some value, excluding the `<` and the `>`.
For example `<username>` you need to change to an username of your liking, example: `notch` (`<` and `>` should not be included).
`[` and `]` mean that a parameter is an optional one.
They also can hold some values, example from the MCC:
```bash
MinecraftClient.exe --debugmessages=false
```
When a parameter has a textual value that includes one more spaces, you will need to wrap it the value in double quotes (`"`), example: `--some-parameter="some text here with spaces in it"`
Here is an example for using a `--help` command line parameter for MCC that will print out a page on how to use MCC from the command line:
```bash
MinecraftClient.exe --help
```
### Quick usage of MCC with examples
> ** NOTE: On Linux and macOS, you need to type: `./MinecraftClient` instead of `MinecraftClient.exe`**
```bash
MinecraftClient.exe --help
MinecraftClient.exe <username> <password> <server>
MinecraftClient.exe <username> <password> <server> "/mycommand"
MinecraftClient.exe --setting=value [--other settings]
MinecraftClient.exe --section.setting=value [--other settings]
MinecraftClient.exe <settings-file.ini> [--other settings]
```
Examples:
```bash
# Logging in as a user: notch, with a password: password123 onto a server with the ip: mc.someserver.com:25565
MinecraftClient.exe notch password123 mc.someserver.com:25565
# Overriding a setting from MinecraftClient.ini using a command line parameter
MinecraftClient.exe --debugmessages=false
# Providing a custom settings ini file and overriding a language to Chinese
MinecraftClient.exe CustomSettingsFile.ini --language=zh
```
### Rules of using the command line parameters
You can mix and match arguments by following theses rules:
- First positional argument may be either the login or a settings file
- Other positional arguments are read in order: login, password, server, command
- Arguments starting with `--` can be in any order and position
Examples and further explanations:
```bash
MinecraftClient.exe <login> <password> <server>
```
- This will automatically connect you to the chosen server.
- You may omit password and/or server to specify e.g. only the login
- To specify a server but ask password interactively, use `""` as password.
- To specify offline mode with no password, use `-` as password.
```bash
MinecraftClient.exe <login> <password> <server> "/mycommand"
```
- This will automatically send `/mycommand` to the server and close.
- To send several commands and/or stay connected, use the 1ScriptScheduler1 bot instead.
```bash
MinecraftClient.exe <myconfig.ini>
```
- This will load the specified configuration file
- If the file contains login / password / server ip, it will automatically connect.
```bash
MinecraftClient.exe --setting=value [--other settings]
```
- Specify settings on the command-line, see possible value in the configuration file
- Use `--section.setting=value` for settings outside the `[Main]` section
- Example: `--antiafk.enabled=true` for enabling the `AntiAFK` bot
```bash
MinecraftClient.exe <myconfig.ini> <login> <password> <server> [--other settings]
```
- Load the specified configuration file and override some settings from the file
## Internal Commands
These commands can be performed from the chat prompt, scripts or remote control.
From chat prompt, commands must by default be prepended with a slash, eg. `/quit`.
In scripts and remote control, no slash is needed to perform the command, eg. `quit`.
> ** NOTE: Some commands may not be documented yet or are defined in description of Chat Bots, use `/help` to list them all, or you can contribute to this page.**
### `animation`
- **Description:**
Swing your main or off hand.
- **使用方法:**
```
/animation <mainhand|offhand>
```
### `bed`
- **Description:**
Allows you to make the bot sleep easily, all about sleeping in one command.
- **使用方法:**
Basic usage: `bed leave|sleep <x> <y> <z>|sleep <radius>`
- **Examples:**
Leave a bed:
```
/bed leave
```
Sleep in a bed on 124 84 76:
```
/bed sleep 124 84 76
```
Sleep in a bed using relative coordinates:
```
/bed sleep ~ ~ ~-2
```
Automatically find a bed in radius of 50 blocks and sleep in it:
```
/bed sleep 50
```
### `bots`
- **Description:**
Allows you to list and unload a specific bot or all bots. Useful when debugging and developing scripts. Useful when debugging and developing scripts.
- **使用方法:**
```
/bots <list|unload <bot name|all>>
```
- **Examples:**
Unload a bot called CustomScript
```
/bots unload CustomScript
```
Unload all bots
```
/bots unload all
```
### `changeslot`
- **Description:**
Change your selected slot in the hotbar.
> ** NOTE: You need to have [Inventory Handling](configuration.md#inventoryhandling) enabled in order for this to work.**
- **使用方法:**
```
/changeslot <1-9>
```
### `chunk`
- **Description:**
Displays the chunk loading status in a nice way.
> **⚠️ WARNING: To use this feature you need to enable the [Terrain and Movements](configuration.md#terrainandmovements)**
> ** NOTE: You need a terminal with emoji support, like Powershell 7, Windows Terminal or Alacritty, if you do not want emoji support and want to use cmd or powershell 5, disable emojis with: [`enableemoji`](configuration.md#enableemoji)**
- **使用方法:**
```
/chunk status [chunkX chunkZ|locationX locationY locationZ]
```
How it looks:
![Chunk status](/images/guide/ChunkStatus.png)
### `dig`
- **Description:**
Dig a block on a specific coordinate.
- **使用方法:**
```
/dig <x> <y> <z>
```
- **Example:**
```
/dig 127 63 12
```
Using relative coordinates:
```
/dig ~ ~-1 ~2
```
### `dropitem`
- **Description:**
Drop all items of a specific type from your inventory.
> ** NOTE: You need to have [Inventory Handling](configuration.md#inventoryhandling) enabled in order for this to work.**
- **使用方法:**
```
/dropitem <itemtype>
```
> ** NOTE: All item types can be found [here](https://github.com/MCCTeam/Minecraft-Console-Client/blob/master/MinecraftClient/Inventory/ItemType.cs).**
- **Example:**
```
/dropitem diamond
```
### `entity`
- **Description:**
Attack an entity, use an entity or get a list of entities around you.
> ** NOTE: You need to have [Inventory Handling](configuration.md#inventoryhandling) and [Entity Handling](configuration.md#entityhandling) enabled in order for this to work.**
- **使用方法:**
Basic usage:
```
/entity <id|entitytype> <attack|use>
```
Get a list of entities around you:
```
/entity
```
> ** NOTE: All entity types can be found [here](https://github.com/MCCTeam/Minecraft-Console-Client/blob/master/MinecraftClient/Mapping/EntityType.cs).**
- **Examples:**
Attack a Zombie:
```
/entity Zombie attack
```
### `execif`
- **Description:**
Allows you to execute a command if a specific condition is met.
The condition is a C# expression and the local variables you set using [`set`](#set), [`setrnd`](#setrnd) or the configuration file can be used. The condition is always returned as a boolean, so only comparison can be done, if needed cast the expression result to bool. The condition is always returned as a boolean, so only comparison can be done, if needed cast the expression result to bool.
Also the instance of MCC is available with `MCC.`.
> ** NOTE: All local variables are treated as strings in the app, when comparing their values, you can use `<variable> == "<value>"`, or better use [`.Equals`](https://www.programiz.com/csharp-programming/library/string/equals) method**
- **使用方法:**
Basic usage: `/execif <condition (C# expression)> ---> <command>`
- **Examples:**
Setting a variable and using it:
```
/set test=Something
/execif test == "Something" ---> send Success!
```
```
/set test2=1
/execif test2 == "1" ---> send Success 2!
```
Basic C# expression:
```
/execif 1 + 2 + 3 == 6 ---> send Success!
```
Using MCC class:
```
/execif MCC.GetHealth() == 20.0 ---> send Success!
```
Using in combination with [`execmulti`](#execmulti):
```
/execif 1 == 1 ---> execmulti send 1 -> send 2 -> send 3
```
### `execmulti`
- **Description:**
Allows you to execute multiple commands in succession on a single line, useful for debugging or when using [`execif`](#execif)
Commands are separated by `->`
- **使用方法:**
Basic usage: `execmulti <command 1> -> <command 2> -> <command 3> -> ...`
- **Examples:**
```
/execmulti send 1 -> send 2 -> send 3 -> sneak
```
### `quit`
- **Alias:** `exit`
- **Description:**
Disconnect from the server and close the application
### `reco`
- **Description:**
Disconnect and reconnect to the server
- **使用方法:**
```
/reco [account]
```
> ** NOTE: `[account]` is an account alias defined in accounts file, for more info check out [accountlist](configuration.html#accountlist)**
### `reload`
- **Description:**
Reloads settings from MinecraftClient.ini and Chat Bots.
- **使用方法:**
> ** NOTE: Some settings won't be reloaded since they are used before the client initialization. Also, settings provided by the command line paramteres will be overriden. This also does not reload the ReplayBot due to technical limitations.**
```
/reload
```
### `connect`
- **Description:**
Go to the given server and resume the script
- **使用方法:**
```
/connect <server> [account]
```
> ** NOTE: `<server>` is either a server IP or a server alias defined in servers file, for more info check out [serverlist](configuration.html#serverlist)**
> ** NOTE: `[account]` is an account alias defined in accounts file, for more info check out [accountlist](configuration.html#accountlist)**
### `script`
- **Description:**
Run a script containing a list of commands
- **使用方法:**
```
/script <script name>
```
### `send`
- **Description:**
Send a message or a command to the server
- **使用方法:**
```
/send <text>
```
### `respawn`
- **Description:**
Use this to respawn if you are dead (like clicking "respawn" in-game)
- **使用方法:**
```
/respawn
```
### `log`
- **Description:**
Display some text in the console (useful for scripts)
- **使用方法:**
```
/log <text>
```
- Example:
```
/log this is some text
```
### `list`
- **Description:**
List players logged in to the server (uses tab list info sent by server)
- **使用方法:**
```
/list
```
### `set`
- **Description:**
Set a value which can be used as `%variable%` in further commands
- **使用方法:**
```
/set <variable>=<value>
```
- **Examples:**
```
/set abc=123
```
### `setrnd`
- **Description:**
Set a `%variable%` randomly to one of the provided values
- **使用方法:**
```
/setrnd <variable> string1 "\"string2\" string3"
```
- **Examples:**
```
/setrnd <variable> -7to10
```
(Set a `%variable%` to a number from -7 to 9)
### `sneak`
- **Description:**
Toggle sneaking.
- **使用方法:**
```
/Sneak
```
### `tps`
- **Description:**
Get the server TPS (Ticks Per Second).
- **使用方法:**
```
/tps
```
### `useitem`
- **Description:**
Use item in the hand, this can be used to do a right click on items which open menus on servers.
> ** NOTE: You need to have [Inventory Handling](configuration.md#inventoryhandling) enabled in order for this to work.**
> **⚠️ WARNING: The [Inventory Handling](configuration.md#inventoryhandling) is currently not supported in `1.4.6 - 1.9`**
- **使用方法:**
```
/useitem
```
### `useblock`
- **Description:**
Place a block from a hand on a specific coordinate or open an inventory:
- chest/trap chest
- furnace
- brewing stand
- dispenser/dropper
- hopper
- shulker
- loom
> ** NOTE: You need to have [Inventory Handling](configuration.md#inventoryhandling) and [Terrain and Movements](configuration.md#terrainandmovements) enabled in order for this to work.**
> ** NOTE: Not all inventories have a GUI representation in an ASCII art format.**
> **⚠️ WARNING: The [Inventory Handling](configuration.md#inventoryhandling) is currently not supported in `1.4.6 - 1.9`.**
- **使用方法:**
```
/useblock <x> <y> <z>
```
- **Example:**
```
/useblock 43 72 7
```
### `follow`
- **Description:**
Make the bot follow a player.
> ** NOTE: This command is avaliable only with [Follow Player](chat-bots.md#follow-player) Chat Bot enabled.**
> ** NOTE: You need to have [Inventory Handling](configuration.md#inventoryhandling) enabled in order for this to work.** > ** NOTE: You need to have [Enity Handling](configuration.md#entityhandling) enabled in order for this to work.**
- **使用方法:**
```
/follow <player name|stop>
```
- **Example:**
```
/follow milutinke
```
### `wait`
- **Description:**
- **使用方法:**
Wait X ticks (10 ticks = ~1 second. Only for scripts)
```
/wait <time>
```
- **Examples:**
```
/wait 20
```
### `move`
- **Description:**
Used for moving when terrain and movements feature is enabled.
> ** NOTE: You need to have [Terrain and Movements](configuration.md#terrainandmovements) enabled in order for this to work.**
> **⚠️ WARNING: The [Terrain and Movements](configuration.md#terrainandmovements) is currently not supported in `1.4.6 - 1.6`.**
- **使用方法:**
```
/move <on|off|get|up|down|east|west|north|south|center|x y z|gravity [on|off]> [-f]: walk or start walking. "-f": force unsafe movements like falling or touching fire
```
- **Examples:**
Enable gravity
```
/move gravity on
```
Move to coordinates:
```
/move 125 72 34
```
Move to a center of a block:
```
/move center
```
### `look`
- **Description:**
Used for looking at direction when terrain and movements is enabled
- **使用方法:**
```
/look <x y z|yaw pitch|up|down|east|west|north|south>
```
- **Examples:**
```
/look up
```
```
/look east
```
### `inventory`
- **Description:**
Used for inventory manipulation.
> ** NOTE: You need to have [Inventory Handling](configuration.md#inventoryhandling) enabled in order for this to work.**
> **⚠️ WARNING: The [Inventory Handling](configuration.md#inventoryhandling) is currently not supported in `1.4.6 - 1.9`.**
MCC defines inventories as containers internally, so player's inventory, chests, droppers, dispensers, hoppers, chest minecarts, barrels, furnaces, etc... are all considered a container, and each one of them has it's ID, the words container and inventory can be used interchangeably.
Inventory has slots and each one of them has an id.
> ** NOTE: This command DOES NOT physically open a container (eg. chest), for that you need to use [`useblock`](#useblock) command first.**
An example of player inventory with annotated IDs in ASCII art and a list of items:
![Player Inventory](/images/guide/PlayerInventory.png "Player Inventory")
- **使用方法:**
Basic usage:
```
/inventory <player|container|<id>> <action> [action parameters] | /inventory <inventories/i> | /inventory <search/s> <item type> [amount]
```
> ** NOTE: player and container can be simplified with p and c accordingly**
Actions:
- `click`
- `shiftclick`
- `drop`
Show/Preview items in an inventory:
```
/inventory <player|id>
```
Click/Shift-Click on an item in an inventory:
```
/inventory <player|container|<id>> <click|shiftclick> <slot id> [left|right|middle]
```
> ** NOTE: The default click is left click**
Close an inventory:
```
/inventory <player|container|<id>> close
```
Drop item(s) from an inventory:
```
/inventory <player|id> drop <slot id> <number of items|all>
```
> ** NOTE: To drop all items from a slot, you can use:** `all`
Give an item to the player inventory from a creative menu when in the creative mode:
```
/inventory creativegive <slot id> <item type> <amount>
```
> ** NOTE: To find item types, check out [this list](https://github.com/MCCTeam/Minecraft-Console-Client/blob/master/MinecraftClient/Inventory/ItemType.cs)**
Delete an item from a player's inventory when in the creative mode:
```
/inventory creativedelete <slot id>
```
Show all available inventories:
```
/inventory inventories
```
Search for an item of specified type in available inventories:
```
/inventory search <item type>
```
- **Examples:**
Show player's inventory:
```
/inventory player
```
Show/Preview items in an inventory using an id:
```
/inventory 3
```
Click on an item in player's inventory in slot number/id `36`:
```
/inventory player click 36
```
Right-Click on an item in slot number/id `4` in an inventory with an id `2`:
```
/inventory 2 click 4 right
```
Close an inventory with an id `2`:
```
/inventory 2 close
```
Drop a single item from a player's inventory in slot number/id `36`:
```
/inventory player drop 36 1
```
Drop all items from a player's inventory in slot number/id `37`:
```
/inventory player drop 37 all
```
Give an item to the player inventory from a creative menu when in the creative mode:
```
/inventory creativegive 36 diamondblock 64
```
> ** NOTE: To find item types, check out [this list](https://github.com/MCCTeam/Minecraft-Console-Client/blob/master/MinecraftClient/Inventory/ItemType.cs)**
Delete an item from a player's inventory in slot number/id `36` when in the creative mode:
```
/inventory creativedelete 36
```
Search for 10 Slime Blocks in available inventories:
```
/inventory s SlimeBlock 10
```
### `debug`
- **Description:**
Toggle debug messages, useful for chatbot developers.
### `help`
- **Description:**
Show commands help.
> ** NOTE: Use "/send /help" for server help**