Introduction
This documentation refers to version 1.3 public preview of the Five Minute Discord Moderation Bot.
Fiveminutes.io offers a Discord bot available to all users.
Getting started
Getting up and running with our Discord Moderator bot is quite simple. Follow these few simple steps
1. Add the bot to your Discord server
Invite our Fiveminutes.io Moderator Discord bot to your Discord server today and experience seamless moderation capabilities tied directly into Five Minute Chat.
2. Configure Discord access permissions for the moderator bot
It's up to your how you want to interact with the moderation bot on your Discord server.
Our recommendation is that the bot is assigned its own channel, either though role assignment or through direct permission assignments. The moderation bot does not currently support any kind of user authentication and will accept any command from any user in any channel it is a member.
Therefore, we suggest giving it a role that is denied access to all channels (or groups, or whatever suites you best), with the exception of one or a few specific channels where you intend to interact with the bot. This way, you won't end up in a situation where other channels are created and the bot accidentally is made a member.
3. Register your application(s)
In order to interact with your application via the moderator bot, you'll need to register the application with your Discord server. This is done by submitting the following command to the bot:
/admin register-app 1df65865-e515-4c3f-bbfa-040877a45350 mySecret
Where the first parameter is the application id and application secret you use in your Unity project (see the Usage > Commands > admin section below).
4. Just kidding, that's it!
Yep, that's it.
You're now ready to use the moderator bot with your Five Minute Chat application.
Usage
The bot uses Discord slash commands exclusively.
Here is an example of a command that lists all applications that have been registered to your Discord server (as documented below):
/admin list-apps
When running this command, the bot will respond - to the channel - with a list of all application ids that have been registered to your Discord server.
Use-case: Handling of a user reported message
Users can be given the ability to report messages inside your game, for example if they encounter inappropriate behavior from other users. Whenever the system receives such a user generated report for your application, it will be reported in Discord along with a unique id number, which you can use to refer to the report in your commands.
A moderator can then deal with this report by looking up details on the reported message, chat context around it, opening/closing the report and assigning it to themselves.
Moderation actions available include direct messaging users, silencing, kicking and banning users in/from channels or globally in an application.
Commands
Here's a comprehensive list of all commands available on the bot
Administrative tasks for the bot
| name | parameters | description |
|---|---|---|
| list-apps | - none - | List all applications currently registered to your Discord server. |
| register-app | applicationIdOrName, applicationSecret | Register tracking of an application using application id and application secret |
| deregister-app | applicationIdString | Deregister tracking of an application using application id |
Application related commands
| name | parameters | description |
|---|---|---|
| list-channels | - none - | List all channels currently registered for your default application |
| list-channels-for-app | applicationIdString | List all channels currently registered for application. |
| recent-history | channelName | Show recent history for channel (by name) in your default application |
| recent-history-for-app | applicationIdString, channelName | Show recent history for channel (by name) in the given application |
Help on how to use this bot
| name | parameters | description |
|---|---|---|
| commands | - none - | Lists all available commands by group |
| all | - none - | Lists all available commands by group |
| admin | - none - | Lists commands in the 'admin' group |
| apps | - none - | Lists commands in the 'apps' group |
| prefs | - none - | Lists commands in the 'user-prefs' group |
| user | - none - | Lists commands in the 'user' group |
Your own user preferences, when interacting with the bot
| name | parameters | description |
|---|---|---|
| set-default-app | applicationIdString | Set your user's default application |
| get-default-app | - none - | Gets your user's default application |
| set-message-visibility | visibility | Set message visibility for responses |
Interactions with reported messages
| name | parameters | description |
|---|---|---|
| details | reportId | Retrieves and displays details on a reported message |
| context | reportId, maxMessageHistory | Retrieves the 'maxMessageHistory' (but at most 100) messages preceding the reported message |
| close | reportId | Resolves a report and sets its status to Closed |
| open | reportId | Reopens a report and sets its status to Open |
| assign | reportId | Assigned a report message to you |
| unassign | reportId | Removes assigned user from a report message |
| list-oldest | maxResults, status | Lists the oldest X number of message reports with status Y |
| list-latest | maxResults, status | Lists the latest X number of message reports with status Y |
| list-mine | - none - | Lists reported messages assigned to you |
| whisper | message | Send private message directly to user, sent from within a thread context |
Support ticket related commands
| name | parameters | description |
|---|---|---|
| respond | response | Respond to a support ticket within a thread context |
| respond-to | supportTicketId, response | Respond to a support ticket with a given support ticket id |
Interactions with users
| name | parameters | description |
|---|---|---|
| ban-globally | displayOrUniqueUserId | Permanently bans a user (default application) globally |
| ban | displayOrUniqueUserId, channelName | Permanently bans a user (default application) from a given channel |
| ban-globally-with-expire | displayOrUniqueUserId, expiration | Temporarily bans a user (default application) globally (yyyy-MM-dd[THH:mm]) |
| ban-with-expire | displayOrUniqueUserId, channelName, expiration | Temporarily bans a user (default application) from a given channel (yyyy-MM-dd[THH:mm]) |
| kick | displayOrUniqueUserId, channelName | Permanently kicks a user (default application) from a given channel |
| message | userDisplayOrUniqueId, message | Send a direct message to a user (default application) |
| message-in-app | applicationId, userDisplayOrUniqueId, message | Send a direct message to a user in a given application |
| silence-globally | displayOrUniqueUserId | Permanently silences a user (default application) globally |
| silence | displayOrUniqueUserId, channelName | Permanently silences a user (default application) in a given channel |
| silence-globally-with-expire | displayOrUniqueUserId, expiration | Temporarily silences a user (default application) globally (yyyy-MM-dd[THH:mm]) |
| silence-with-expire | displayOrUniqueUserId, channelName, expiration | Temporarily silences a user (default application) in a given channel (yyyy-MM-dd[THH:mm]) |
| unban-globally | displayOrUniqueUserId | Unbans a user (default application) globally |
| unban-globally-scheduled | displayOrUniqueUserId, scheduledTime | Unbans a user (default application) globally at a scheduled time (yyyy-MM-dd[THH:mm]) |
| unban | displayOrUniqueUserId, channelName | Unbans a user (default application) from a given channel |
| unban-scheduled | displayOrUniqueUserId, channelName, scheduledTime | Unbans a user (default application) from a given channel at a scheduled time (yyyy-MM-dd[THH:mm]) |
| unsilence-globally | displayOrUniqueUserId | Lifts silence from a user (default application) globally |
| unsilence-globally-scheduled | displayOrUniqueUserId, scheduledTime | Schedule lifting silence from a user (default application) globally at time (yyyy-MM-dd[THH:mm]) |
| unsilence | displayOrUniqueUserId, channelName | Lifts silence from a user (default application) from a given channel |
| unsilence-scheduled | displayOrUniqueUserId, channelName, scheduledTime | Schedule lifting silence from a user (default application) at time (yyyy-MM-dd[THH:mm]) |
