Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
179 lines
8.7 KiB
Markdown
179 lines
8.7 KiB
Markdown
# Command reference
|
|
|
|
Every slash command the bot registers. Options marked with `*` are required. "Needs" is what the handler checks, not just what Discord shows in its menu. Commands that need a server cannot be used in DMs.
|
|
|
|
This page is written by hand from the command definitions in `internal/commands/*/public`. If you change a command, update it here and in `/help` (`internal/commands/help/help.go`). The [Features](features.md) page explains the behaviour behind them.
|
|
|
|
- [Fun](#fun)
|
|
- [Help](#help)
|
|
- [Leveling](#leveling)
|
|
- [Music](#music)
|
|
- [Meeting rooms](#meeting-rooms)
|
|
- [Moderation](#moderation)
|
|
- [Timezone and scheduling](#timezone-and-scheduling)
|
|
- [Projects](#projects)
|
|
- [Server setup (`/config`)](#server-setup-config)
|
|
- [Tickets](#tickets)
|
|
- [Security](#security)
|
|
- [Beta](#beta)
|
|
|
|
## Fun
|
|
|
|
Anyone can use these. `/rps`, `/rpsstats` and `/rpsleaderboard` work in servers only.
|
|
|
|
| Command | Options | What it does |
|
|
| --- | --- | --- |
|
|
| `/ping` | | Replies "Pong!" |
|
|
| `/joke` | `type` | A random joke, optionally of a type |
|
|
| `/coinflip` | | Heads or tails |
|
|
| `/dice` | `expr`* | Rolls a dice expression: `d20`, `2d20+1`, `2#d20+1` |
|
|
| `/rps` | `hand`* | Rock paper scissors against the bot |
|
|
| `/rpsstats` | | Your rock-paper-scissors record |
|
|
| `/rpsleaderboard` | | The server's leaderboard |
|
|
|
|
## Help
|
|
|
|
| Command | What it does |
|
|
| --- | --- |
|
|
| `/help` | DMs you a command reference |
|
|
|
|
## Leveling
|
|
|
|
| Command | Options | Needs | What it does |
|
|
| --- | --- | --- | --- |
|
|
| `/slvl toggle` | | Manage Server | Turns leveling on or off |
|
|
| `/slvl set` | `user`*, `level`* | Manage Server, leveling on | Sets a member's level |
|
|
| `/slvl set-channel` | `channel`* | Manage Server, leveling on | Where level-up messages go |
|
|
| `/slvl set-message` | `message`* | Manage Server, leveling on | The level-up message. Variables: `{user}`, `{level}` |
|
|
| `/slvl set-reward` | `level`*, `role`* | Manage Server, leveling on | Role granted at a level |
|
|
| `/rank` | `user` | Leveling on | A rank card for you or another member |
|
|
| `/leaderboard` | | Leveling on | Top 10 in the server |
|
|
| `/rewards` | | Leveling on | The role rewards |
|
|
|
|
## Music
|
|
|
|
| Command | Options | Needs | What it does |
|
|
| --- | --- | --- | --- |
|
|
| `/play` | `query`* | **DJ** role | Plays a song by name or URL |
|
|
| `/queue` | | **DJ** role | Shows the queue |
|
|
| `/volume` | `value`* (0 to 150) | **DJ** role | Sets the volume |
|
|
| `/music toggle` | | Manage Server | Turns music on or off in this server |
|
|
|
|
Requires Lavalink. See [Getting started](getting-started.md#optional-music-with-lavalink).
|
|
|
|
## Meeting rooms
|
|
|
|
Every subcommand needs **Manage Server** and works in servers only.
|
|
|
|
| Command | Options | What it does |
|
|
| --- | --- | --- |
|
|
| `/meeting add-lobby` | `channel`* (voice) | Makes a voice channel a lobby (up to 10 per server) |
|
|
| `/meeting remove-lobby` | `channel`* (voice) | Stops using it as a lobby |
|
|
| `/meeting lobbies` | | Lists the lobbies |
|
|
| `/meeting lock` | | Locks the room you are in |
|
|
| `/meeting lock-private` | | Locks it and hides it |
|
|
| `/meeting unlock` | | Unlocks it |
|
|
| `/meeting invite` | `user`* | Lets a user into a locked room |
|
|
| `/meeting uninvite` | `user`* | Removes that access |
|
|
|
|
## Moderation
|
|
|
|
Each subcommand checks the Discord permission in its "Needs" column.
|
|
|
|
| Command | Options | Needs | What it does |
|
|
| --- | --- | --- | --- |
|
|
| `/moderation purge` | `amount`* (1 to 100) | Manage Messages | Deletes recent messages in the channel |
|
|
| `/moderation timeout` | `user`*, `duration`* (`10m`, `1h`, `2h30m`, up to 28d), `reason` | Moderate Members | Times a member out |
|
|
| `/moderation untimeout` | `user`*, `reason` | Moderate Members | Removes a timeout |
|
|
| `/moderation kick` | `user`*, `reason` | Kick Members | Kicks a member |
|
|
| `/moderation ban` | `user`*, `delete_days` (0 to 7), `reason` | Ban Members | Bans a member |
|
|
| `/moderation unban` | `user_id`*, `reason` | Ban Members | Unbans by ID |
|
|
| `/moderation slowmode` | `channel`*, `seconds`* (0 to 21600) | Manage Channels | Sets slowmode, 0 turns it off |
|
|
|
|
## Timezone and scheduling
|
|
|
|
Anyone can use these.
|
|
|
|
| Command | Options | What it does |
|
|
| --- | --- | --- |
|
|
| `/timezone set` | `zone`* (IANA name, such as `Europe/Lisbon`) | Saves your timezone |
|
|
| `/timezone show` | | Shows it |
|
|
| `/schedule create` | | Opens a form (date, time, description) to request a session with a member |
|
|
| `/schedule list` | | Your upcoming sessions |
|
|
| `/schedule reschedule` | `id`* (from `/schedule list`), `datetime`* (UTC, `2006-01-02 15:04`) | Proposes a new time |
|
|
|
|
## Projects
|
|
|
|
| Command | Needs | What it does |
|
|
| --- | --- | --- |
|
|
| `/projects list` | | Active projects with creators and helpers |
|
|
| `/projects create` | Manage Server | Opens a form to create a project |
|
|
| `/projects add-helper` | Manage Server | Adds a helper to a project |
|
|
| `/projects close` | Manage Server | Closes a project |
|
|
|
|
## Server setup (`/config`)
|
|
|
|
Every subcommand needs **Manage Server**.
|
|
|
|
| Command | Options | What it does |
|
|
| --- | --- | --- |
|
|
| `/config setwelcomechannel` | `channel`* | Where welcome messages go |
|
|
| `/config setwelcomemessage` | `message`* | Welcome template. `{user}` is a mention, `{server}` the server name |
|
|
| `/config setwelcomedm` | `message`* | The welcome DM template |
|
|
| `/config setwelcomegif` | `url`* | Image or GIF for the welcome embed |
|
|
| `/config setdefaultrole` | `role`* | Role given on join |
|
|
| `/config setlogchannel` | `channel`* | Where logs go |
|
|
| `/config enablelogging` | | Turns logging on |
|
|
| `/config disablelogging` | | Turns it off |
|
|
| `/config addstreamer` | `username`* | Adds a Twitch streamer to watch |
|
|
| `/config removestreamer` | `username`* | Removes one |
|
|
| `/config settwitchnotificationchannel` | `channel`* | Where live alerts go |
|
|
|
|
## Tickets
|
|
|
|
| Command | Options | Needs | What it does |
|
|
| --- | --- | --- | --- |
|
|
| `/tickets setup` | `channel`*, `log-channel`, `staff-role` | Manage Server | Where tickets open and where closed ones are logged. `staff-role` creates a Support category if there are none yet |
|
|
| `/tickets category add` | `name`*, `staff-role`, `emoji`, `description` | Manage Server | Adds a category to the panel's dropdown |
|
|
| `/tickets category remove` | `name`* | Manage Server | Removes a category |
|
|
| `/tickets category list` | | Manage Server | Lists categories |
|
|
| `/tickets panel` | | Manage Server | Posts the panel, or updates it after changing categories |
|
|
| `/ticket add` | `user`* | The opener or staff | Adds someone to the ticket |
|
|
| `/ticket remove` | `user`* | Staff | Removes someone |
|
|
| `/ticket claim` | | Staff | Takes the ticket |
|
|
| `/ticket close` | `reason` | The opener or staff | Closes it and posts a transcript |
|
|
|
|
## Security
|
|
|
|
All of these are hidden from members without Manage Server (and `/lockdown` from those without Manage Channels), but **hiding is not the check**. The handlers check again, and some need the **server owner or someone on the trusted list** whatever Discord permissions a person has.
|
|
|
|
In this table "Manage Server" also lets Administrators and trusted members through.
|
|
|
|
| Command | Options | Needs | What it does |
|
|
| --- | --- | --- | --- |
|
|
| `/security status` | | Manage Server | What is on, and who is trusted |
|
|
| `/security toggle` | `feature`* (Join Gate, Raid mode, Anti-nuke, Heat), `on`* | Manage Server to turn on; owner or trusted to turn off | Turns a protection on or off |
|
|
| `/security alerts` | `channel`*, `role` | Owner or trusted | Alert channel and the role to ping |
|
|
| `/security quarantine-role` | `role` | Owner or trusted | Role given to quarantined members (empty for none) |
|
|
| `/security trust add` | `user` or `role` | Owner only | Exempts a user or role from anti-nuke |
|
|
| `/security trust remove` | `user` or `role` | Owner only | Removes that exemption |
|
|
| `/security quarantined` | | Manage Server | Lists quarantined members |
|
|
| `/security release` | `user`* | Owner or trusted | Releases a member and gives their roles back |
|
|
| `/security end-raid` | | Owner or trusted | Ends raid mode now |
|
|
| `/security snapshot` | | Manage Server | Saves roles and channels |
|
|
| `/security restore` | | Owner or trusted | Recreates deleted roles and channels from the latest snapshot |
|
|
| `/lockdown channel` | `channel` (default: this one) | Manage Channels | Locks a channel |
|
|
| `/lockdown server` | | Manage Channels | Locks every channel |
|
|
| `/lockdown joins` | `action`* (Kick or Ban) | Manage Channels | Kicks or bans new members until unlocked |
|
|
| `/unlock channel` | `channel` | Owner or trusted | Unlocks a channel |
|
|
| `/unlock server` | | Owner or trusted | Unlocks every channel |
|
|
| `/unlock joins` | | Owner or trusted | Lets people join again |
|
|
|
|
## Beta
|
|
|
|
| Command | Needs | What it does |
|
|
| --- | --- | --- |
|
|
| `/beta` | The bot's owner | Shows how beta access is set up. Registered in the beta server only |
|
|
|
|
Beta features come and go. See [Beta features](beta-features.md).
|