ChromaBot

This bot has some useful features like assigning roles but the most interesting part may be that it's integrated with Minecraft.

## Minecraft chat

The **#minecraft-chat** channel on DIscord is connected to the Minecraft server. Any message sent there is sent to the server and vice-versa. You can also run Minecraft commands from Discord in this channel, however, it's very limited because of technical reasons (see below), unless you're online on the server. Trying a disallowed command (in fact even /help) will show the list of allowed commands.

If you're online on the MC server (and have your accounts connected), you can access any command from **#minecraft-chat**, and it will run as if you ran it from the game. If you're not online, you can still access any command but not in the public chat, see the /mcchat command below.

The channel description shows who's online on the server.

## Commands

The bot has some commands which can be used in the **#bot** channel on the main server. To run a command, you need to either ping the bot or (after Update 2) use a forward slash (/) before the command.

You can also DM the bot with a command you'd like to run when needed.

### Minecraft chat (/mcchat) - *Direct Message only*

This command is perhaps the most useful one, as it allows you (besides talking in private channels) to run *any* command you have access to in-game. Note however that you need to connect your Minecraft account and run the command by DMing the bot for it to work.

*The reason why a command like this is required for running arbitrary commands is a little bit of improper implementation of other plugins. Most plugins assume that anything running a command which is not a player must be the server console. What this means is that even though the Discord user may not have OP on the server, some other plugins automatically give full access to all of their commands. For this reason, the commands used in the public chat are restricted to a few safe commands. The private chat command, however, makes the plugins believe that a player joined the server (with the UUID and name of the actual player), giving access only to what you normally have access to. (Fun fact: you can even use /tpa, however, it's independent of your actual last position.)*

### Connect MC account (/connect)

This command lets you connect your Minecraft account which allows the private chat mentioned above and lets your Discord info show in Minecraft chat and vice-versa.

Usage: /connect <minecraftname>

Once done, you'll be prompted in Minecraft to confirm you own the account using /discord accept.

*Mojang doesn't really provide a good way for us to authenticate Minecraft users and we don't want to ask for your MC password. Since you need to be able to log in to your account to join our server, this is a reliable way to verify ownership.*

### Give/take role (/role add|remove|list)

This command adds a role to you. This is mainly used for *game roles*.

Usage: /role add|remove <rolename> or /role list

### Show user info (/userinfo)

This command gives information about a certain user.

Usage: /userinfo <discordname/tag>

### Channel connect (/channelcon) - *After Update 2*

This command can connect a Discord channel to a Minecraft chat channel. This can be useful to have a channel for your town or nation. This is the only command that must be used *outside* **#bot** (except for getting the invite link for the bot by using the command without arguments) - use it in the channel you want to connect to Minecraft. Note that you need to have "manage" permission on the Discord channel and have your Minecraft account connected.

Usage: /channelcon <mcchannel> (For example: /channelcon tc)

*The reason why you need to connect your Minecraft account is to determine which town/nation/anything you belong to. This also ensures you don't get access to channels you can't access from Minecraft.*