# Discord Bot Commands The following commands are available for interacting with the Discord bot in designated channels (queue channels or the chat channel). Commands are prefixed with `!` and are case-insensitive. Some commands are restricted to specific users (e.g., staff or registered players), and certain commands are only available in the chat channel. ## General Commands | Command | Alias | Description | Usage | Restrictions | |---------|-------|-------------|-------|--------------| | `!help` | - | Displays a placeholder message about upcoming documentation. | `!help` | None | | `!register` | - | Registers a new player with a name, MMR, and Dota ID. MMR must be between 0 and 9999. | `!register <name> <mmr> <dota_id>`<br>Example: `!register Uvs 3000 444510529` | Cannot be used if already registered, name is taken, or Dota ID is in use. | | `!whois` | `!wh`, `!who`, `!profile`, `!stats` | Displays information about a player (MMR, games played, roles, etc.). If no name is provided, shows the caller's info. | `!whois [name]`<br>Example: `!whois Uvs` | Available in chat channel only. | | `!top` | - | Shows the top players by score (default 10). | `!top [limit]`<br>Example: `!top 5` | Available in chat channel only. Disabled in casual mode. | | `!bottom` | `!bot` | Shows the bottom players by score (default 10). | `!bottom [limit]`<br>Example: `!bottom 5` | Available in chat channel only. Disabled in casual mode. | | `!streak` | - | Shows a player's current and longest win/loss streak. If no name is provided, shows the caller's streak. | `!streak [name]`<br>Example: `!streak Uvs` | Available in chat channel only. | | `!recent` | - | Shows a player's recent matches (default 5, max 9). If no name is provided, shows the caller's matches. | `!recent [name] [number]`<br>Example: `!recent Uvs 3` | Available in chat channel only. | ## Queue Management Commands | Command | Alias | Description | Usage | Restrictions | |---------|-------|-------------|-------|--------------| | `!q+` | `!join` | Joins the queue in the current channel. | `!q+` | Requires vouched player, sufficient MMR, and not in a full queue. | | `!q-` | `!leave` | Leaves the queue in the current channel. | `!q-` | Cannot leave a full queue (10 players). | | `!q` | `!list` | Shows details of all active queues. | `!q` | None | | `!add` | - | Adds a player to the queue in the current channel. | `!add <name>`<br>Example: `!add Uvs` | Staff-only. Player must not be in another queue. | | `!kick` | - | Kicks a player from the queue in the current channel. | `!kick <name>`<br>Example: `!kick Uvs` | Staff-only. | | `!votekick` | `!vk` | Initiates a vote to kick a player from a full queue. Requires a set number of votes. | `!votekick <name>`<br>Example: `!votekick Uvs` | Must be in a full queue with the target player. Available in chat channel. | | `!close` | - | Closes a specified queue by ID. | `!close <queue_id>`<br>Example: `!close 454` | Staff-only. | ## Player Management Commands | Command | Alias | Description | Usage | Restrictions | |---------|-------|-------------|-------|--------------| | `!vouch` | - | Vouches a player, allowing them to queue. | `!vouch <name>`<br>Example: `!vouch Uvs` | Staff-only. | | `!ban` | - | Bans a player from playing. | `!ban <name>`<br>Example: `!ban Uvs` | Staff-only. Available in chat channel. | | `!unban` | - | Unbans a player. | `!unban <name>`<br>Example: `!unban Uvs` | Staff-only. Available in chat channel. | | `!set-name` | `!rename` | Changes a player's name using their Discord mention. | `!set-name <@mention> <new_name>`<br>Example: `!set-name @Uvs Napster` | Staff-only. Available in chat channel. | | `!set-mmr` | `!adjust` | Sets a player's MMR and logs the change. | `!set-mmr <name> <mmr>`<br>Example: `!set-mmr Uvs 6500` | Staff-only. Available in chat channel. | | `!set-dota-id` | - | Updates a player's Dota ID. | `!set-dota-id <name> <dota_id>`<br>Example: `!set-dota-id Uvs 111886427` | Staff-only. Available in chat channel. | | `!role` | `!roles` | Sets or displays a player's role preferences (1-5 for carry, mid, offlane, pos4, pos5). | `!role [role] [value]` or `!role <carry> <mid> <offlane> <pos4> <pos5>`<br>Examples: `!role mid 5`, `!role 1 4 2 5 3` | Available in chat channel only. | | `!afk-ping` | `!afkping` | Sets or displays the player's AFK ping preference for queue kicks. | `!afk-ping [on/off]`<br>Example: `!afk-ping on` | Available in chat channel only. | ## Match Management Commands | Command | Alias | Description | Usage | Restrictions | |---------|-------|-------------|-------|--------------| | `!record-match` | - | Records a match with 10 player mentions and a winner (radiant or dire). | `!record-match <winner> <@mention1> ... <@mention10>`<br>Example: `!record-match radiant @Uvs @Nappa ...` | Staff-only. Available in chat channel. | ## Queue Channel Management Commands | Command | Alias | Description | Usage | Restrictions | |---------|-------|-------------|-------|--------------| | `!mmr` | - | Sets the minimum MMR requirement for the queue channel. | `!mmr <mmr>`<br>Example: `!mmr 4000` | Staff-only. Cannot be used if active queues exist in the channel. | ## Fun Responses The bot responds to certain phrases in queue or chat channels (case-insensitive): | Phrase | Response (Randomly Chosen) | |--------|----------------------------| | `stupid bot`, `bot is stupid` | `Smarter than you.` or `You are stupid.` | | `fu bot`, `fuck you bot`, `fuck u bot` | `Bite my shiny metal ass!` or `Fuck you too.` | | Mentioning the bot (e.g., `@Bot`) | `Imagine thinking inhouse-bot and inhouse-ping are same thing :thinking:` or `Ping your mum.` | ## Notes - **Staff-Only Commands**: Commands like `!vouch`, `!add`, `!kick`, `!mmr`, `!ban`, `!unban`, `!set-name`, `!set-mmr`, `!set-dota-id`, `!record-match`, and `!close` require the user to have `bot_access` permission in the database. - **Chat Channel Restrictions**: Commands such as `!whois`, `!top`, `!bottom`, `!streak`, `!recent`, `!role`, `!afk-ping`, `!votekick`, `!ban`, `!unban`, `!set-name`, `!set-mmr`, `!set-dota-id`, and `!record-match` are only available in the designated chat channel. - **Free-for-All Commands**: The `!register` and `!help` commands can be used by anyone, even unregistered players, provided they meet the criteria (e.g., unique name, valid MMR). - **Queue Restrictions**: Players must be vouched and meet MMR requirements to join a queue. They cannot join if already in a full queue (10 players) or leave a full queue without risking a dodge warning. - **Reaction-Based Queue Joining**: Players can join a queue by reacting with ✅ to the queue message in the queues channel. Removing the reaction leaves the queue, unless the queue is full.