- [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:
**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`**
- 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.**
> **⚠️ 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)**
> **ℹ️ 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.**
> **ℹ️ 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**
> **ℹ️ 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.**
> **ℹ️ 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)**
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`.**
> **ℹ️ 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.**
/move <on|off|get|up|down|east|west|north|south|center|xyz|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
> **ℹ️ 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: