Skip to content

Bernard Command List

This document contains a list of commands used to interact with Bernard, the syntax used to invoke each command, and a description of each command's required and/or optional parameters if applicable.

Most commands require a specific administrative capability in order for Bernard to execute the command. Users matching one of the below conditions can execute any Bernard command:

  • The server owner.
  • A user with a role that has Administrator permissions in the server.
  • A user with a role that has the ADMINISTRATOR administrative capability assigned to it.

Command Usage Syntax

The commands described in this document may have required or optional parameters. The syntax used to describe each command uses the following nomenclature to designate required or optional parameters:

  • {example-required-parameter} - Denotes a required parameter named example-required-parameter.
  • [example-optional-parameter] - Denotes an optional parameter named example-optional-parameter.

This document occasionally references a command's invoker. The invoker is the user who executes the command.

Punishment Commands

This section describes commands that moderators use to punish users.

Ban

Description

This command temporarily or permanently bans a user from the server.

Syntax

!ban {duration} {target} [cleanup] {reason}

Parameters

  • duration - Defines how long the user (target) should be banned from the server. Combine a whole number quantity (e.g. 1, 15, 60, etc.) with a case-insensitive unit of time (e.g. s, m, d, etc.). For a permanent ban, use a phrase like perm, perma, permanent, etc. A full list of valid units of time is shown below:
    • s - Represents seconds.
    • m - Represents minutes.
    • h - Represents hours.
    • d - Represents days.
    • w - Represents weeks.
    • mo - Represents months.
    • y - Represents years.
  • target - Specifies the user to be punished. You can mention a specific user (e.g. @Bernard) or use their ID (e.g. 12345678).
  • cleanup - Represents how many days worth of target's previous messages should be automatically deleted shortly after being banned. Use a whole number quantity between 1 and 7.

Note

Any value higher than 7 will be accepted, but automatically bumped down to the maximum value of 7. If you'd like to clean up more than a week's worth of messages from a specific user, consider using the Cleanup command instead.

  • reason - Defines the reason the user has been banned. This will appear on target's rapsheet.

Requirements

Temporary bans require the TEMP_BAN_MEMBERS administrative capability. Permanent bans require the PERMA_BAN_MEMBERS administrative capability.

Bernard will return an error message in the following scenarios:

  • If the user defined by the target parameter has an equal or higher position in the Discord role hierarchy than you.
  • If the user defined by the target parameter is the Discord server owner.
  • If the user defined by the target parameter is Bernard itself.

Example Usage

The command below would ban a user named "Fred" for 15 days. A reason of "Spamming the server with inappropriate content" would appear on the user's rapsheet.

!ban 15d @Fred Spamming the server with inappropriate content

The command below would permanently ban a user named "Melanie". A reason of "Excessive profanity" would appear on the user's rapsheet.

!ban perma @Melanie Excessive profanity

The command below would ban a user named "Stephanie" for 3 weeks. All messages that they have sent in the server within the past 5 days would be cleaned up shortly afterwards. A reason of "Posted the same image over and over again" would appear on the user's rapsheet.

!ban 3w @Stephanie 5 Posted the same image over and over again

Unban

Description

This command unbans a user from the server.

Syntax

!unban {target} [reason]

Parameters

  • target - Specifies the user to be unbanned. You can mention a specific user (e.g. @Bernard) or use their ID (e.g. 12345678).
  • reason - Defines the reason the user has been unbanned. This will not appear on target's rapsheet.

Requirements

Unbanning a target that is temporarily banned requires the TEMP_UNBAN_MEMBERS administrative capability. Unbanning a target that is permanently banned requires the PERMA_UNBAN_MEMBERS administrative capability.

Bernard will return an error message in the following scenarios:

  • If the user defined by the target parameter is not currently banned.
  • If the user defined by the target parameter was banned by a user with an equal or higher position in the Discord role hierarchy than you.

Example Usage

The command below would unban a user named "Fred".

!unban @Fred

The command below would unban a user named "Melanie" with a reason of "Promised to improve their behavior in the future".

!unban @Melanie Promised to improve their behavior in the future

Massban

Description

This command temporarily or permanently bans one or more users from the server.

Syntax

!massban {duration} {target-1} [target-2...target-n] [cleanup] {reason}

Parameters

  • duration - Defines how long the user (target) should be banned from the server. Combine a whole number quantity (e.g. 1, 15, 60, etc.) with a case-insensitive unit of time (e.g. s, m, d, etc.). For a permanent ban, use a phrase like perm, perma, permanent, etc. A full list of valid units of time is shown below:
    • s - Represents seconds.
    • m - Represents minutes.
    • h - Represents hours.
    • d - Represents days.
    • w - Represents weeks.
    • mo - Represents months.
    • y - Represents years.
  • target-1, target-2, target-n - Specifies the users to be punished. You can mention a specific user (e.g. @Bernard) or use their ID (e.g. 12345678). Each user must be separated by a space.
  • cleanup - Represents how many days worth of each target's previous messages should be automatically deleted shortly after being banned. Use a whole number quantity between 1 and 7.

Note

Any value higher than 7 will be accepted, but automatically bumped down to the maximum value of 7. If you'd like to clean up more than a week's worth of messages from a specific user, consider using the Cleanup command instead.

  • reason - Defines the reason each user has been banned. This will appear on each target's rapsheet.

Requirements

Either temporary or permanent bans require the MASS_BAN_MEMBERS administrative capability.

Bernard will return an error message in the following scenarios:

  • If any user defined by the target-1, target-2, target-n, etc. parameters has an equal or higher position in the Discord role hierarchy than you.
  • If any user defined by the target-1, target-2, target-n, etc. parameters is the Discord server owner.
  • If any user defined by the target-1, target-2, target-n, etc. parameters is Bernard itself.

The above error messages are returned on a per-user basis. If a single user meets any of the above conditions, only that single user will not be banned. All other valid users will still be banned.

For example, let's say Fred, Michelle, and David are permanently banned through the below command.

!massban perma @Fred @Michelle @David Continuous spamming

Let's also say that Michelle happens to be the server owner. In this scenario, Bernard will return an error message saying that Michelle could not be banned. However, Fred and David will still be banned.

Example Usage

The command below would ban users "Fred" and "Melanie" for 5 days. A reason of "Did not stop arguing after multiple warnings" would appear on each user's rapsheet.

!massban 5d @Fred @Melanie Did not stop arguing after multiple warnings

The command below would permanently ban users "Stephanie" and "Alex". A reason of "Coordinated spamming of server" would appear on each user's rapsheet.

!massban perma @Stephanie @Alex Coordinated spamming of server

The command below would ban users "Jessica" and "Dillon" for 2 weeks. All messages that they have sent in the server within the past 3 days would be cleaned up shortly afterwards. A reason of "Raided from another server" would appear on each user's rapsheet.

!massban 2w @Jessica @Dillon 3 Raided from another server

Join Ban

Description

This command temporarily or permanently bans one or more users from the server based upon the date and time they joined the server.

Syntax

!joinban {duration} {relative-start-time | start-datetime} [relative-end-time | end-datetime] [cleanup] {reason}

Parameters

  • duration - Defines how long the user (target) should be banned from the server. Combine a whole number quantity (e.g. 1, 15, 60, etc.) with a case-insensitive unit of time (e.g. s, m, d, etc.). For a permanent ban, use a phrase like perm, perma, permanent, etc. A full list of valid units of time is shown below:
    • s - Represents seconds.
    • m - Represents minutes.
    • h - Represents hours.
    • d - Represents days.
    • w - Represents weeks.
    • mo - Represents months.
    • y - Represents years.
  • relative-start-time - Defines how long ago the start of the time period should be. Combine a whole number quantity (e.g. 1, 15, 60, etc.) with a case-insensitive unit of time (e.g. s, m, d, etc.). For a permanent ban, use a phrase like perm, perma, permanent, etc. A full list of valid units of time is shown below:
    • s - Represents seconds.
    • m - Represents minutes.
    • h - Represents hours.
    • d - Represents days.
    • w - Represents weeks.
    • mo - Represents months.
    • y - Represents years.
  • start-datetime - Defines the date and time the start of the time period should be in a ISO 8601 format. Note that if a timezone is not explicitly provided to this value, then the UTC timezone is assumed. A few examples of this format are as follows:
    • 2011-11-04
    • 2011-11-04T00:05:23
    • 2011-11-04 00:05:23.283
    • 2011-11-04 00:05:23.283+00:00
    • 2011-11-04T00:05:23+04:00
  • relative-end-time - Defines how long ago the end of the time period should be. Combine a whole number quantity (e.g. 1, 15, 60, etc.) with a case-insensitive unit of time (e.g. s, m, d, etc.). For a permanent ban, use a phrase like perm, perma, permanent, etc. A full list of valid units of time is shown below:
  • end-datetime - Defines the date and time the end of the time period should be in a ISO 8601 format. Note that if a timezone is not explicitly provided to this value, then the UTC timezone is assumed. A few examples of this format are as follows:
    • 2011-11-04
    • 2011-11-04T00:05:23
    • 2011-11-04 00:05:23.283
    • 2011-11-04 00:05:23.283+00:00
    • 2011-11-04T00:05:23+04:00
  • cleanup - Represents how many days worth of each target's previous messages should be automatically deleted shortly after being banned. Use a whole number quantity between 1 and 7.

Note

Any value higher than 7 will be accepted, but automatically bumped down to the maximum value of 7. If you'd like to clean up more than a week's worth of messages from a specific user, consider using the Cleanup command instead.

  • reason - Defines the reason each user has been banned. This will appear on each target's rapsheet.

Requirements

Either temporary or permanent bans require the JOIN_BAN_MEMBERS administrative capability.

Bernard will return an error message in the following scenarios:

  • If any user found within the defined time range has an equal or higher position in the Discord role hierarchy than you.
  • If any user found within the defined time range is the Discord server owner.
  • If any user found within the defined time range is Bernard itself.

The above error messages are returned on a per-user basis. If a single user meets any of the above conditions, only that single user will not be banned. All other valid users will still be banned.

For example, let's say Fred, Michelle, and David are permanently banned through the below command.

!joinban perma 2022-05-18 2022-05-19 Continuous spamming

Let's also say that Michelle happens to be the server owner. In this scenario, Bernard will return an error message saying that Michelle could not be banned. However, Fred and David will still be banned.

Example Usage

The command below would ban all users that joined the server within the past 30 minutes for 5 days. A reason of "Spamming the server with advertisements" would appear on each user's rapsheet.

!joinban 5d 30m Spamming the server with advertisements

The command below would ban all users that joined the server within a time window between 30 minutes ago and 15 minutes ago for 5 days. A reason of "Spamming the server with advertisements" would appear on each user's rapsheet.

!joinban 5d 30m 15m Spamming the server with advertisements

The command below would ban all users that joined the server since a specific date and time (May 18th, 2022) for 5 days. A reason of "Spamming the server with advertisements" would appear on each user's rapsheet.

!joinban 5d 2022-05-18 Spamming the server with advertisements

The command below would ban all users that joined the server between two specific dates and times (May 18th, 2022 to May 19th, 2022) for 5 days. A reason of "Spamming the server with advertisements" would appear on each user's rapsheet.

!joinban 5d 2022-05-18 2022-05-19 Spamming the server with advertisements

The command below would ban all users that joined the server between two specific dates and times (May 18th, 2022 to May 19th, 2022) for 5 days. All messages that they have sent in the server within the past 3 days would be cleaned up shortly afterwards. A reason of "Spamming the server with advertisements" would appear on each user's rapsheet.

!joinban 5d 2022-05-18 2022-05-19 3 Spamming the server with advertisements

Invite Ban

Description

This command temporarily or permanently bans all users that joined the server through a specific invite to the server or a channel in the server. The invite could be an active invite that currently exists in the server, or it could be an invite that was recently deleted.

Syntax

!invite ban {duration} {invite-id} [cleanup] {reason}

Parameters

  • duration - Defines how long the user (target) should be banned from the server. Combine a whole number quantity (e.g. 1, 15, 60, etc.) with a case-insensitive unit of time (e.g. s, m, d, etc.). For a permanent ban, use a phrase like perm, perma, permanent, etc. A full list of valid units of time is shown below:
    • s - Represents seconds.
    • m - Represents minutes.
    • h - Represents hours.
    • d - Represents days.
    • w - Represents weeks.
    • mo - Represents months.
    • y - Represents years.
  • invite-id - Defines a server or channel invite. Users who joined through this invite will be banned. This could be an active invite that currently exists in the server, or it could be an invite that was recently deleted.
  • cleanup - Represents how many days worth of each target's previous messages should be automatically deleted shortly after being banned. Use a whole number quantity between 1 and 7.

Note

Any value higher than 7 will be accepted, but automatically bumped down to the maximum value of 7. If you'd like to clean up more than a week's worth of messages from a specific user, consider using the Cleanup command instead.

  • reason - Defines the reason each user has been banned. This will appear on each target's rapsheet.

Requirements

Either temporary or permanent bans require the INVITE_BAN_MEMBERS administrative capability.

Bernard will return an error message in the following scenarios:

  • If any user that joined through the invite-id parameter has an equal or higher position in the Discord role hierarchy than you.
  • If any user that joined through the invite-id parameter is the Discord server owner.
  • If any user that joined through the invite-id parameter is Bernard itself.

The above error messages are returned on a per-user basis. If a single user meets any of the above conditions, only that single user will not be banned. All other valid users will still be banned.

For example, let's say John, Stephanie, and Melanie joined through invite ID kUsDOl. All three are permanently banned through the below command.

!invite ban perma kUsDOl Raiders from another server

Let's also say that Melanie happens to be the server owner. In this scenario, Bernard will return an error message saying that Melanie could not be banned. However, John and Stephanie will still be banned.

Example Usage

The command below would ban all users who joined through invite aJEwq for 4 days. A reason of "Spamming inappropriate images" would appear on each user's rapsheet.

!invite ban 4d aJEwq Spamming inappropriate images

The command below would permanently ban all users who joined through invite bNrRth. A reason of "Bots scamming users in the server" would appear on each user's rapsheet.

!invite ban perma bNrRth Bots scamming users in the server

The command below would ban all users who joined through invite jVCefX for 1 week. All messages that these users have sent in the server within the past 6 days would be cleaned up shortly afterwards. A reason of "Spamming invites to another server" would appear on each user's rapsheet.

!invite ban 1w jVCefX6 Spamming invites to another server

Voteban

Description

This command starts a community-driven vote to determine whether a user should be temporarily or permanently banned from the server.

Syntax

!voteban {ban-duration} {target} {vote-timer} {reason}

Parameters

  • ban-duration - Defines how long the user (target) should be banned from the server. Combine a whole number quantity (e.g. 1, 15, 60, etc.) with a case-insensitive unit of time (e.g. s, m, d, etc.). For a permanent ban, use a phrase like perm, perma, permanent, etc. A full list of valid units of time is shown below:
    • s - Represents seconds.
    • m - Represents minutes.
    • h - Represents hours.
    • d - Represents days.
    • w - Represents weeks.
    • mo - Represents months.
    • y - Represents years.
  • target - Specifies the user to be banned. You can mention a specific user (e.g. @Bernard) or use their ID (e.g. 12345678).
  • vote-timer - Defines how long the vote should be held. Combine a whole number quantity (e.g. 1, 15, 60, etc.) with a case-insensitive unit of time (e.g. s, m, d, etc.).
    • s - Represents seconds.
    • m - Represents minutes.
    • h - Represents hours.
    • d - Represents days.
    • w - Represents weeks.
    • mo - Represents months.
    • y - Represents years.
  • reason - Defines the reason the user's ban is being put to a vote. This will appear on target's rapsheet with (Voteban) appended to the beginning.

Requirements

Votebans with a temporary ban duration require the START_VOTEBAN administrative capability. Votebans with a permanent ban duration require the PERMA_VOTEBAN_MEMBERS administrative capability.

Bernard will return an error message in the following scenarios:

  • If the vote-timer parameter was set to a permanent value (e.g. perm, perma, permanent, etc.).
  • If the vote-timer parameter was set to a value higher than 1 hour.
  • If the user defined by the target parameter has an equal or higher position in the Discord role hierarchy than you.
  • If the user defined by the target parameter is the Discord server owner.
  • If the user defined by the target parameter is Bernard itself.

Example Usage

The command below would start a voteban for a user named "Fred". If the voteban passes, the ban would be a temporary ban that is 6 hours long. The vote itself will last 5 minutes. A reason of "Antagonizing other members of the server" would appear on the user's rapsheet.

!voteban 6h @Fred 5m Antagonizing other members of the server

The command below would start a voteban for a user named "Jane". If the voteban passes, the ban would be a permanent ban. The vote itself will last 15 minutes. A reason of "Generally disliked by the community" would appear on the user's rapsheet.

!voteban perma @Jane 15m Generally disliked by the community

Kick

Description

This command kicks a user from the server. A kick is not equivalent to a ban; a user who is kicked from the server can re-join the server immediately afterwards, assuming that they have an invite to the server.

Syntax

!kick {target} {reason}

Parameters

  • target - Specifies the user to be kicked. You can mention a specific user (e.g. @Bernard) or use their ID (e.g. 12345678).
  • reason - Defines the reason the user is being kicked. This will appear on target's rapsheet.

Requirements

This command requires the KICK_MEMBERS administrative capability.

Bernard will return an error message in the following scenarios:

  • If the user defined by the target parameter has an equal or higher position in the Discord role hierarchy than you.
  • If the user defined by the target parameter is the Discord server owner.
  • If the user defined by the target parameter is Bernard itself.

Example Usage

The command below would kick a user named "Fred" from the server with a reason of "Warned not to break server rules multiple times".

!kick @Fred Warned not to break server rules multiple times

Voice Mute

Description

This command temporarily or permanently mutes a user within a voice channel server-wide.

Syntax

!mute {duration} {target} {reason}

Parameters

  • duration - Defines how long the user (target) should be muted in the server. Combine a whole number quantity (e.g. 1, 15, 60, etc.) with a case-insensitive unit of time (e.g. s, m, d, etc.). For a permanent ban, use a phrase like perm, perma, permanent, etc. A full list of valid units of time is shown below:
    • s - Represents seconds.
    • m - Represents minutes.
    • h - Represents hours.
    • d - Represents days.
    • w - Represents weeks.
    • mo - Represents months.
    • y - Represents years.
  • target - Specifies the user to be muted. You can mention a specific user (e.g. @Bernard) or use their ID (e.g. 12345678).
  • reason - Defines the reason the user has been muted. This will appear on target's rapsheet.

Requirements

Temporary mutes require the TEMP_MUTE_MEMBERS administrative capability. Permanent mutes require the PERMA_MUTE_MEMBERS administrative capability.

Bernard will return an error message in the following scenarios:

  • If the user defined by the target parameter has an equal or higher position in the Discord role hierarchy than you.
  • If the user defined by the target parameter is the Discord server owner.
  • If the user defined by the target parameter is Bernard itself.

Example Usage

The command below would mute a user named "Fred" for 15 days. A reason of "Playing music over microphone constantly" would appear on the user's rapsheet.

!mute 15d @Fred Playing music over microphone constantly

The command below would permanently mute a user named "Melanie". A reason of "Excessive profanity over voice" would appear on the user's rapsheet.

!mute perma @Melanie Excessive profanity over voice

Voice Unmute

Description

This command reverses a temporary or permanent server mute.

Syntax

!unmute {target} [reason]

Parameters

  • target - Specifies the user to be unmuted. You can mention a specific user (e.g. @Bernard) or use their ID (e.g. 12345678).
  • reason - Defines the reason the user has been unmuted.

Requirements

This command requires the TEMP_UNMUTE_MEMBERS administrative capability to unmute temporary mutes. This command requires the PERMA_UNMUTE_MEMBERS administrative capability to unmute permanent mutes.

Bernard will return an error message in the following scenarios:

  • If the user defined by the target parameter is not currently muted.
  • If the user defined by the target parameter was muted by a user with an equal or higher position in the Discord role hierarchy than you.

Example Usage

The command below would unmute a user named "Fred".

!unmute @Fred

The command below would unmute a user named "Melanie" with a reason of "Promised to improve their behavior in the future".

!unban @Melanie Promised to improve their behavior in the future

Warning

Description

This command formally warns a target about their actions in a server. This warning appears on the user's rapsheet. This is primarily used for documentation purposes to show that a moderator noticed the user's inappropriate behavior and warned them to stop.

Syntax

!warn {target} {reason}

Parameters

  • target - Specifies the user to be given a warning. You can mention a specific user (e.g. @Bernard) or use their ID (e.g. 12345678).
  • reason - Defines the reason the user has been given a warning. This will appear on target's rapsheet.

Requirements

This command requires the WARN_MEMBERS administrative capability.

Bernard will return an error message in the following scenarios:

  • If the user defined by the target parameter has an equal or higher position in the Discord role hierarchy than you.
  • If the user defined by the target parameter is the Discord server owner.
  • If the user defined by the target parameter is Bernard itself.

Example Usage

The command below issues a warning to a user named "Fred" with a reason of "Became unnecessarily angry during an argument".

!warn @Fred Became unnecessarily angry during an argument

Cleanup

Description

This comand deletes messages sent by a target within a recent time period to the server.

Note

This action does not appear on the target's rapsheet. This command is typically used for user privacy concerns (e.g. a user is leaving the server and wants their recent messages purged) or after some other formal punishment (e.g. a kick, ban, etc.).

Syntax

!cleanup {recent-time-period} {target} [channel-1...channel-n | category-1...category-n]

Parameters

  • recent-time-period - Defines how far back in time Bernard should search for messages from target within the scope (either server-wide, or only channels defined by channel-1, channel-2, etc.). Combine a whole number quantity (e.g. 1, 15, 60, etc.) with a case-insensitive unit of time (e.g. s, m, d, etc.).A full list of valid units of time is shown below:
    • s - Represents seconds.
    • m - Represents minutes.
    • h - Represents hours.
    • d - Represents days.
    • w - Represents weeks.
    • mo - Represents months.
    • y - Represents years.
  • target - Specifies the user to delete messages for. You can mention a specific user (e.g. @Bernard) or use their ID (e.g. 12345678).
  • channel-1, channel-2, channel-n - If specified, the specific channel(s) to clean messages up in. You can mention one or more channels to filter the cleanup on (e.g. #general) or use the channel's ID (e.g. 12345678). Each channel must be separated by a space. If no channel(s) is/are specified, then all channels in the server are searched for eligible messages.
  • category-1, category-2, category-n - If specified, the specific text channels under the defined categories to clean messages up in. You can mention one or more channel categories to filter the cleanup on (e.g. "General Channels") or use the category's ID (e.g. 12345678). Each category must be separated by a space. If no category(s) is/are specified, then all channels in the server are searched for eligible messages.

Requirements

This command requires the CLEANUP_MEMBERS administrative capability.

Example Usage

The command below cleans up the last 7 days of messages sent by a user named "Fred" across all channels in the server.

!cleanup 7d @Fred

The command below cleans up 2 weeks of messages sent by a user named "Stephanie" within the #general channel of the server.

!cleanup 2w @Stephanie #general

The command below cleans up 3 days of messages sent by a user named "Melanie" within the #general and #off-topic channels of the server.

!cleanup 3d @Melanie #general #off-topic

Note

Description

This commands adds an informative note to a user's rapsheet. This does not count as a punishment, but can be used to communicate important information about a user to the moderation team.

Syntax

!note {target} {reason}

Parameters

  • target - Specifies the user to be punished. You can mention a specific user (e.g. @Bernard) or use their ID (e.g. 12345678).
  • reason - Defines the note to be added to target's rapsheet.

Requirements

This command requires the ADD_NOTE administrative capability.

Bernard will return an error message in the following scenarios:

  • If the user defined by the target parameter has an equal or higher position in the Discord role hierarchy than you.
  • If the user defined by the target parameter is the Discord server owner.
  • If the user defined by the target parameter is Bernard itself.

Example Usage

The command below adds a note to the rapsheet of a user named "Fred" stating "Susan's cousin".

!note @Fred Susan's cousin

Silence

Description

This command applies a role to the user that prevents them from sending messages in text channels, adding reactions to messages in text channels, speak in voice channels, or stream video in voice channels. The role that is added to the user is defined through the !role silence command.

Syntax

!silence {duration} {target} [reason]

Parameters

  • duration - Defines how long the user (target) should be silenced. Combine a whole number quantity (e.g. 1, 15, 60, etc.) with a case-insensitive unit of time (e.g. s, m, d, etc.). For a permanent silence, use a phrase like perm, perma, permanent, etc. A full list of valid units of time is shown below:
    • s - Represents seconds.
    • m - Represents minutes.
    • h - Represents hours.
    • d - Represents days.
    • w - Represents weeks.
    • mo - Represents months.
    • y - Represents years.
  • target - Specifies the user to be punished. You can mention a specific user (e.g. @Bernard) or use their ID (e.g. 12345678).
  • reason - Defines the reason the user has been banned. This will appear on target's rapsheet.

Requirements

Temporary silences require the TEMP_SILENCE_MEMBERS administrative capability. Permanent bans require the PERMA_SILENCE_MEMBERS administrative capability.

Bernard will return an error message in the following scenarios:

  • If the user defined by the target parameter has an equal or higher position in the Discord role hierarchy than you.
  • If the user defined by the target parameter is the Discord server owner.
  • If the user defined by the target parameter is Bernard itself.

Example Usage

The command below would silence a user named "Fred" for 15 days. A reason of "Spamming the server with inappropriate content" would appear on the user's rapsheet.

!silence 15d @Fred Spamming the server with inappropriate content

The command below would permanently silence a user named "Melanie". A reason of "Excessive profanity" would appear on the user's rapsheet.

!silence perma @Melanie Excessive profanity

Unsilence

Description

This command removes a role from the user that prevents them from sending messages in text channels, adding reactions to messages in text channels, speak in voice channels, or stream video in voice channels. The role that is added to the user is defined through the !role silence command.

Syntax

!unsilence {target} [reason]

Parameters

  • target - Specifies the user to be unsilenced. You can mention a specific user (e.g. @Bernard) or use their ID (e.g. 12345678).
  • reason - Defines the reason the user will be unsilenced.

Requirements

Unsilencing a target that is temporarily silenced requires the TEMP_UNSILENCE_MEMBERS administrative capability. Unsilencing a target that is permanently silenced requires the PERMA_UNSILENCE_MEMBERS administrative capability.

Bernard will return an error message in the following scenarios:

  • If the user defined by the target parameter was silenced by a user with an equal or higher position in the Discord role hierarchy than you.

Example Usage

The command below unsilences a user named "Austin".

!unsilence @Austin

The command below would unban a user named "Taylor" with a reason of "Promised to improve their behavior in the future".

!unsilence @Taylor Promised to improve their behavior in the future

Lock

Description

This command locks one or more channels, which prevents the default @everyone role from being able to send messages, add reactions, speak in voice, or stream video in the relevant channel. This is done by setting the Send Messages, Add Reactions, Speak, and Video permissions to "False" on each channel.

Syntax

!lock [channel-1...channel-n | category-1...category-n] {reason}

Parameters

  • channel-1, channel-2, channel-n - If specified, the specific channel(s) to lock. You can mention one or more channels to lock (e.g. #general) or use the channel's ID (e.g. 12345678). Each channel must be separated by a space. If no channel(s) is/are specified, then all channels in the server will be locked.
  • category-1, category-2, category-n - If specified, the specific channels under the defined categories to lock. You can mention one or more channel categories to lock (e.g. "General Channels") or use the category's ID (e.g. 12345678). Each category must be separated by a space. If no category(s) is/are specified, then all channels in the server will be locked.
  • reason - Defines the reason the channel(s) will be locked.

Requirements

This command requires the LOCK_CHANNELS administrative capability.

Bernard will return an error message in the following scenarios:

  • If Bernard does not have Send Messages or Manage Channel permissions in a channel.

Example Usage

The command below locks all channels in the server.

!lock Locking down server due to raid.

The command below locks channels under the "General Channels" category in the server.

!lock "General Channels" Locking down server due to raid.

The command below locks a single channel named "general" in the server.

!lock #general Locking down server due to raid.

The command below locks two channels in the server - one named "general", and another named "off-topic".

!lock #general #off-topic Locking down server due to raid.

Unlock

Description

This command unlocks one or more channels, which allows the default @everyone role to send messages, add reactions, speak in voice, and stream video in the relevant channel. This is done by setting the Send Messages, Add Reactions, Speak, and Video permissions to "None" on each channel.

Syntax

!unlock [channel-1...channel-n | category-1...category-n] {reason}

Parameters

  • channel-1, channel-2, channel-n - If specified, the specific channel(s) to unlock. You can mention one or more channels to unlock (e.g. #general) or use the channel's ID (e.g. 12345678). Each channel must be separated by a space. If no channel(s) is/are specified, then all channels in the server will be unlocked.
  • category-1, category-2, category-n - If specified, the specific channels under the defined categories to unlock. You can mention one or more channel categories to unlock (e.g. "General Channels") or use the category's ID (e.g. 12345678). Each category must be separated by a space. If no category(s) is/are specified, then all channels in the server will be unlocked.
  • reason - Defines the reason the channel(s) will be unlocked.

Requirements

This command requires the UNLOCK_CHANNELS administrative capability.

Bernard will return an error message in the following scenarios:

  • If Bernard does not have Send Messages or Manage Channel permissions in a channel.

Example Usage

The command below unlocks all channels in the server.

!unlock Locking down server due to raid.

The command below unlocks channels under the "General Channels" category in the server.

!unlock "General Channels" Locking down server due to raid.

The command below unlocks a single channel named "general" in the server.

!unlock #general Locking down server due to raid.

The command below unlocks two channels in the server - one named "general", and another named "off-topic".

!unlock #general #off-topic Locking down server due to raid.

Moderation Utility

This section describes commands that offer helpful utilities to moderators to assist them with taking administrative action against a user.

View My Rapsheet

Description

This command displays a target's rapsheet. A rapsheet is an at-a-glance compilation of moderation information surrounding a user. It primarily consists of a record of bans, warnings, kicks, and mutes incurred by a user during their time in the server.

If a valid target parameter is not provided to the !rapsheet command, then the command invoker's rapsheet will be displayed. Otherwise, the target's rapsheet will be displayed.

Syntax

!rapsheet [target]

Parameters

  • target - Specifies the user you would like to fetch the rapsheet for. You can mention a specific user (e.g. @Bernard) or use their ID (e.g. 12345678).

Requirements

This command requires the VIEW_MY_RAPSHEET administrative capability for one to view their own rapsheet. This command requires the VIEW_OTHER_RAPSHEET administrative capability to view a target's rapsheet.

Example Usage

The command below displays the invoker's rapsheet.

!rapsheet

The command below displays the rapsheet for a user named "Fred" in the server.

!rapsheet @Fred

Edit User's Rapsheet Entry

Description

This command edits the description for a specific entry within a specific user's rapsheet. This can be used if more information needs to be added to or removed from a user's rapsheet regarding a specific punishment that will appear on the user's rapsheet.

Syntax

!rapsheet edit {target} {rapsheet-entry-id} {new-description}

Parameters

  • target - Specifies the user you would like to edit the rapsheet entry for. You can mention a specific user (e.g. @Bernard) or use their ID (e.g. 12345678).
  • rapsheet-entry-id - The specific case-sensitive rapsheet entry you would like to edit. This will appear as a series of alphanumeric characters in square brackets ([]) preceding each rapsheet entry in a user's rapsheet.
  • new-description - The new description that will be associated with the rapsheet entry.

Requirements

This command requires the EDIT_RAPSHEET_ENTRIES administrative capability.

Bernard will return an error message in the following scenarios:

  • If the user who created the punishment defined by rapsheet-entry-id has an equal or higher position in the Discord role hierarchy than you.

Example Usage

Consider a scenario where you recently banned a user named "Fred" for a reason of "Annoying Melanie constantly." This ban created rapsheet entry "3Yfa4" on Fred's rapsheet. It was later discovered that Fred was warned on February 19th to stop annoying Melanie, which further justifies the ban against Fred. The command below edits rapsheet entry "3Yfa4" in the rapsheet of a user named "Fred" to read "Annoying Melanie constantly, even after being warned on February 19th to stop."

!rapsheet edit @Fred 3Yfa4 Annoying Melanie constantly, even after being warned on February 19th to stop.

Delete User's Rapsheet Entry

Description

This command deletes a specific rapsheet entry on a specific user's rapsheet. This can be used to remove an incorrect or reversed punishment from the user's rapsheet.

Syntax

!rapsheet delete {target} {rapsheet-entry-id-1} [rapsheet-entry-id-2] ... [rapsheet-entry-id-n]

Parameters

  • target - Specifies the user you would like to delete the rapsheet entry for. You can mention a specific user (e.g. @Bernard) or use their ID (e.g. 12345678).
  • rapsheet-entry-id-1, rapsheet-entry-id-2, etc. - The specific case-sensitive rapsheet entry you would like to delete. This will appear as a series of alphanumeric characters in square brackets ([]) preceding each rapsheet entry in a user's rapsheet. Multiple rapsheet entries can be provided.

Requirements

This command requires the DELETE_RAPSHEET_ENTRIES administrative capability.

Bernard will return an error message in the following scenarios:

  • If the user who created the punishment defined by rapsheet-entry-id has an equal or higher position in the Discord role hierarchy than you.

Example Usage

Consider a scenario where another moderator in the server incorrectly banned a user named "Fred" with a reason of "Angrily arguing over voice chat", which created a rapsheet entry with an ID of "7JmNN2". After further investigation, it was found that the argument was a misunderstanding, and Fred did not deserve to be banned. After unbanning Fred with the !unban command, you can delete the record of their ban with the below command.

!rapsheet delete @Fred 7JmNN2

View Active Invites

Description

This command displays a list of current active invites within the server. The invite's number of uses (meaning, the number of people that have joined the server through that invite), creator, and whether it is protected from invite bans or not is also displayed.

Syntax

!invite

Parameters

This command does not have any parameters.

Requirements

This command requires the INVITE_BAN_MEMBERS administrative capability.

Example Usage

The below command displays a list of current active invites within the server.

!invite

View Invites Associated with User

Description

This command displays all invites associated with a user, both active and deleted. An invite becomes associated with a user through either of two actions:

  1. If the user creates an invite, then they are associated with that invite.
  2. If the user joins the server through an invite, then they are associated with that invite.

For this reason, it is common for one user to be associated with multiple invites. This can happen for a few reasons:

  1. The user has created multiple invites and distributed them to other Discord users.
  2. The user has joined and left the server through one or more different invites.

Syntax

!invite source {target}

Parameters

  • target - Specifies the user you would like to view associated invites of. You can mention a specific user (e.g. @Bernard) or use their ID (e.g. 12345678).

Requirements

This command requires the INVITE_BAN_MEMBERS administrative capability.

Example Usage

The below command displays the invites associated with a user named "Fred".

!invite source @Fred

View User Information

Description

This command displays basic information about a user and their recent events within the server. Specifically, the following information is displayed about the user:

  • Discord username
  • Display name (nickname)
  • If the user is currently banned or not
  • Discord snowflake/ID
  • Date and time of when the user's account was created
  • Account age (relative to current date and time)
  • Date and time of when the user last joined the server
  • Time since the user last joined the server (relative to current date and time)
  • Five most recent times when user joined or left the server
  • Five most recent times when user changed their nickname in the server

Syntax

/whois {user}

Parameters

  • user - Specifies the user you would like to view information about.

Requirements

This command requires any moderation-related administrative capability.

Example Usage

The below command displays information about a user named "Fred".

/whois Fred

AutoMod Configuration Commands

This section describes commands used to configure AutoMod settings within the server.

Toggle Dynamic Slow Mode Feature

Description

This command determines whether the Dynamic Slow Mode feature should be enabled within the server or not. This is usually used in conjunction with either the /configuration automod dynamic_slow_mode_messages or /configuration automod dynamic_slow_mode_attachments slash commands.

Syntax

/configuration automod dynamic_slow_mode {bool}

Parameters

  • bool - Defines whether the Dynamic Slow Mode feature should be enabled or not. This can be a value of either True or False.

Requirements

This command requires the CONFIG_CHANGES administrative capability. This command also requires that the current server have an active Bernard Premium subscription.

Example Usage

The following command enables the Dynamic Slow Mode feature in a server.

/configuration automod dynamic_slow_mode True

The following command disables the Dynamic Slow Mode feature in a server.

/configuration automod dynamic_slow_mode False

Toggle Dynamic Slow Mode Analysis of All Messages

Description

This command determines whether the Dynamic Slow Mode feature should analyze all messages or not. This is usually mutually exclusive with the /configuration automod dynamic_slow_mode_attachments slash command. If both commands are enabled, then the /configuration automod dynamic_slow_mode_messages slash command takes priority.

Syntax

/configuration automod dynamic_slow_mode_messages {bool}

Parameters

  • bool - Defines whether the Dynamic Slow Mode feature should analyze all messages or not. This can be a value of either True or False.

Requirements

This command requires the CONFIG_CHANGES administrative capability.

Example Usage

The following command allows the Dynamic Slow Mode feature to analyze all messages in a server.

/configuration automod dynamic_slow_mode_messages True

The following command stops the Dynamic Slow Mode feature from analyzing all messages in a server.

/configuration automod dynamic_slow_mode_messages False

Toggle Dynamic Slow Mode Analysis of Messages with Attachments or Embeds

Description

This command determines whether the Dynamic Slow Mode feature should only analyze messages that contain embeds or attachments. This is usually mutually exclusive with the /configuration automod dynamic_slow_mode_messages slash command. If both commands are enabled, then the /configuration automod dynamic_slow_mode_messages slash command takes priority.

Syntax

/configuration automod dynamic_slow_mode_attachments {bool}

Parameters

  • bool

Requirements

This command requires the CONFIG_CHANGES administrative capability.

Example Usage

The following command allows the Dynamic Slow Mode feature to analyze messages that contain embeds or attachments in a server.

/configuration automod dynamic_slow_mode_attachments True

The following command stops the Dynamic Slow Mode feature from analyzing messages that contain embeds or attachments in a server.

/configuration automod dynamic_slow_mode_attachments False

Set Dynamic Slow Mode Message Limit

Description

This command modifies the maximum number of messages a user can send in a server prior to the Dynamic Slow Mode's algorithmically-derived Message Expiration Timer expires before Bernard either warns or punishes the user. For more information about the Dynamic Slow Mode feature's algorithm and how it works, review the AutoMod Dynamic Slow Mode documentation.

Syntax

/configuration automod dynamic_slow_mode_limit {limit}

Parameters

  • limit - An integer (whole number) value dictating the maximum number of messages a user can send in a server prior to the Dynamic Slow Mode's algorithmically-derived Message Expiration Timer expires before Bernard either warns or punishes the user.

Requirements

This command requires the CONFIG_CHANGES administrative capability.

Example Usage

The following command modifies the Dynamic Slow Mode message limit to a value of 5.

/configuration automod dynamic_slow_mode_limit 5

Set Dynamic Slow Mode Minimum Member Age

Description

This command modifies the minimum amount of time a user must be a member of the server before the Dynamic Slow Mode stops analyzing their messages (thus making them immune from the Dynamic Slow Mode feature). For more information about Dynamic Slow Mode configuration options and how the feature works, review the AutoMod Dynamic Slow Mode documentation.

Syntax

/configuration automod dynamic_slow_mode_age {age}

Parameters

  • age - Defines the minimum member age required for users to be exempt from the AutoMod Dynamic Slow Mode feature. Combine a whole number quantity (e.g. 1, 15, 60, etc.) with a case-insensitive unit of time (e.g. s, m, d, etc.). A full list of valid units of time is shown below:
    • s - Represents seconds.
    • m - Represents minutes.
    • h - Represents hours.
    • d - Represents days.
    • w - Represents weeks.
    • mo - Represents months.
    • y - Represents years.

Requirements

This command requires the CONFIG_CHANGES administrative capability.

Example Usage

The following command modifies the minimum member age for the Dynamic Slow Mode feature to one week.

/configuration automod dynamic_slow_mode_limit 1w

The following command modifies the minimum member age for the Dynamic Slow Mode feature to three months.

/configuration automod dynamic_slow_mode_limit 3mo

Set Dynamic Slow Mode Algorithm Interval Value

Description

This command modifies the Base Interval component of the Dynamic Slow Mode feature's algorithm. This algorithm determines the Message Expiration Timer, which determines how quickly Bernard either warns or punishes the user when they're spamming. For more information about the Dynamic Slow Mode feature's algorithm and how it works, review the AutoMod Dynamic Slow Mode documentation.

Syntax

/configuration automod dynamic_slow_mode_interval {interval}

Parameters

  • interval - An integer (whole number) value that modifies the Base Interval component of the Dynamic Slow Mode feature's algorithm.

Requirements

This command requires the CONFIG_CHANGES administrative capability.

Example Usage

The following command modifies the Base Interval component of the Dynamic Slow Mode feature's algorithm to a value of 5.

/configuration automod dynamic_slow_mode_interval 5

Set Dynamic Slow Mode Algorithm Exponential Factor

Description

This command modifies the Exponential Factor component of the Dynamic Slow Mode feature's algorithm. This algorithm determines the Message Expiration Timer, which determines how quickly Bernard either warns or punishes the user when they're spamming. For more information about the Dynamic Slow Mode feature's algorithm and how it works, review the AutoMod Dynamic Slow Mode documentation.

Syntax

/configuration automod dynamic_slow_mode_exponent {exponent}

Parameters

  • exponent - A floating point value that modifies the Exponential Factor component of the Dynamic Slow Mode feature's algorithm.

Requirements

This command requires the CONFIG_CHANGES administrative capability.

Example Usage

The following command modifies the Base Interval component of the Dynamic Slow Mode feature's algorithm to a value of 1.5.

/configuration automod dynamic_slow_mode_exponent 1.5

List Filter Categories

Description

This command lists all configured filter categories for the server (including default filter categories) and their characteristics.

Syntax

!category list

Parameters

This command does not have any parameters.

Requirements

This command requires the invoker to be one of the following:

  • The server owner.
  • A user with a role that has Administrator permissions in the server.
  • A user with a role that has the ADMINISTRATOR administrative capability assigned to it.

Example Usage

The command below lists all configured filter categories for the server (including default filter categories) and their characteristics.

!category list

Add Filter Category

Description

This command adds a new custom filter category to the server's configuration.

Syntax

!category add {category-name}

Parameters

  • category-name - A string (series of case-sensitive alphanumeric characters) that describes the filter category to be created.

Note

For ease of use, we do not recommend including spaces in a new filter category name. Replace all spaces with dashes (-) instead. Including a space in a new filter category name will require that filter category name to be quoted in all commands that modify the filter category's configuration (such as adding a new filter, changing the filter category status, etc.)

Requirements

This command requires the invoker to be one of the following:

  • The server owner.
  • A user with a role that has Administrator permissions in the server.
  • A user with a role that has the ADMINISTRATOR administrative capability assigned to it.

Example Usage

The command below adds a new filter category to the server's configuration named "forbidden-subreddits".

!category add forbidden-subreddits

Remove Filter Category

Description

This command removes a custom filter category from the server's configuration.

Note

Default filter categories cannot be removed from the server's configuration.

Syntax

!category remove {category-name}

Parameters

  • category-name - A string (series of case-sensitive alphanumeric characters) that describes the filter category to be removed.

Requirements

This command requires the invoker to be one of the following:

  • The server owner.
  • A user with a role that has Administrator permissions in the server.
  • A user with a role that has the ADMINISTRATOR administrative capability assigned to it.

Example Usage

The command below removes an existing custom filter category from the server's configuration named "forbidden-subreddits".

!category remove forbidden-subreddits

Edit Filter Category Status

Description

This command changes the current status of all filters within an AutoMod filter category in the server. Filters can have one of three statuses:

  • ENFORCING
  • PERMISSIVE
  • DISABLED

This command is essentially a macro for the !filter status command for all AutoMod filters within a filter category.

Syntax

!category status {category-name} {status}

Parameters

  • category-name - A string (series of case-sensitive alphanumeric characters) that describes the filter category whose underlying filters will have their status changed.
  • status - The new status of the filter category. This parameter is case-insensitive and should be either ENFORCING, PERMISSIVE, or DISABLED.

Requirements

This command requires the invoker to be one of the following:

  • The server owner.
  • A user with a role that has Administrator permissions in the server.
  • A user with a role that has the ADMINISTRATOR administrative capability assigned to it.

Example Usage

The command below changes the current status of all filters in the "slurs" filter category to "Enforcing".

!category status slurs enforcing

The command below changes the current status of all filters in the "slurs" filter category to "Permissive".

!category status slurs permissive

The command below changes the current status of all filters in the "slurs" filter category to "Disabled".

!category status slurs disabled

Edit Filter Category Score History Tracking

Description

This command edits the Score History Tracking functionality of all AutoMod filters within a specific AutoMod filter category. This functionality modifies how the final score of an AutoMod filter violation is calculated. Specifically, it modifies whether recent AutoMod violations should be factored into a current AutoMod violation. This command is essentially a macro for the !filter track-score-history command for all AutoMod filters within a filter category.

Syntax

!category track-score-history {category-name} {boolean}

Parameters

  • category-name - A string (series of case-sensitive alphanumeric characters) that describes the filter category whose underlying filters will have their status changed.
  • boolean - Defines whether the filter should track previous AutoMod scores or not. This can be one of the following case-insensitive options:
    • To enable this setting:
      • yes
      • y
      • true
      • t
      • 1
      • enable
      • on
    • To disable this setting:
      • no
      • n
      • false
      • f
      • 0
      • disable
      • off

Requirements

This command requires the invoker to be one of the following:

  • The server owner.
  • A user with a role that has Administrator permissions in the server.
  • A user with a role that has the ADMINISTRATOR administrative capability assigned to it.

Example Usage

The command below enables Score History Tracking on all AutoMod filters within an AutoMod filter category named "example".

!category track-score-history example enable

The command below disables Score History Tracking on all AutoMod filters within an AutoMod filter category named "example".

!category track-score-history example disable

Add Immune Entity to AutoMod Filter Category

Description

This command adds one or more immune entities (such as a user's ID or a role's ID) to all AutoMod filters within a filter category. This command is essentially a macro for the !filter immune add command for all AutoMod filters within a filter category.

Syntax

!category immune add {category-name} {target-1 | role-1} [target-2 | role-2...target-n | role-n]

Parameters

  • category-name - A string (series of case-sensitive alphanumeric characters) that describes the AutoMod filter category to add immune entities to.
  • target-1, target-2, target-n - Specifies users to be made immune within the AutoMod filter category. You can mention a specific user (e.g. @Bernard) or use their ID (e.g. 12345678). Each user must be separated by a space.
  • role-1, role-2, role-n - Specifies roles to be made immune within the AutoMod filter category. You can mention a specific role (e.g. @Bernard) or use the role's ID (e.g. 12345678). Each role must be separated by a space.

Requirements

This command requires the invoker to be one of the following:

  • The server owner.
  • A user with a role that has Administrator permissions in the server.
  • A user with a role that has the ADMINISTRATOR administrative capability assigned to it.

Example Usage

The command below adds a user named "Fred" to the immune entities list for an AutoMod filter category named "slurs".

!category immune add slurs @Fred

The command below adds two users named "Fred" and "Jennifer" to the immune entities list for an AutoMod filter category named "slurs".

!category immune add slurs @Fred @Jennifer

The command below adds a role named "Moderators" to the immune entities list for an AutoMod filter category named "slurs".

!category immune add slurs @Moderators

The command below adds two roles named "Moderators" and "VIPs" to the immune entities list for an AutoMod filter category named "slurs".

!category immune add slurs @Moderators @VIPs

The command below adds a role named "Moderators" and a user named "Fred" to the immune entities list for an AutoMod filter category named "slurs".

!category immune add slurs @Moderators @Fred

The immune entities in the above command can be reversed or presented in any order, as shown below.

!category immune add slurs @Fred @Moderators

Remove Immune Entity from AutoMod Filter Category

Description

This command removes one or more immune entities (such as a user's ID or a role's ID) to all AutoMod filters within a filter category. This command is essentially a macro for the !filter immune remove command for all AutoMod filters within a filter category.

Syntax

!category immune remove {category-name} {target-1 | role-1} [target-2 | role-2...target-n | role-n]

Parameters

  • category-name - A string (series of case-sensitive alphanumeric characters) that describes the AutoMod filter category to remove immune entities from.
  • target-1, target-2, target-n - Specifies users to be made vulnerable to the AutoMod filter category. You can mention a specific user (e.g. @Bernard) or use their ID (e.g. 12345678). Each user must be separated by a space.
  • role-1, role-2, role-n - Specifies roles to be made vulnerable to the AutoMod filter category. You can mention a specific role (e.g. @Bernard) or use the role's ID (e.g. 12345678). Each role must be separated by a space.

Requirements

This command requires the invoker to be one of the following:

  • The server owner.
  • A user with a role that has Administrator permissions in the server.
  • A user with a role that has the ADMINISTRATOR administrative capability assigned to it.

Example Usage

The command below removes a user named "Fred" from the immune entities list for an AutoMod filter category named "slurs".

!category immune remove slurs @Fred

The command below removes two users named "Fred" and "Jennifer" from the immune entities list for an AutoMod filter category named "slurs".

!category immune remove slurs @Fred @Jennifer

The command below removes a role named "Moderators" from the immune entities list for an AutoMod filter category named "slurs".

!category immune remove slurs @Moderators

The command below removes two roles named "Moderators" and "VIPs" from the immune entities list for an AutoMod filter category named "slurs".

!category immune remove slurs @Moderators @VIPs

The command below removes a role named "Moderators" and a user named "Fred" from the immune entities list for an AutoMod filter category named "slurs".

!category immune remove slurs @Moderators @Fred

The immune entities in the above command can be reversed or presented in any order, as shown below.

!category immune remove slurs @Fred @Moderators

List Filters

Description

This command displays the AutoMod filters configured in the server and their characteristics.

Syntax

!filter list [category-name]

Parameters

  • category-name - If provided, the AutoMod filter category to display filters within.

Requirements

This command requires the invoker to be one of the following:

  • The server owner.
  • A user with a role that has Administrator permissions in the server.
  • A user with a role that has the ADMINISTRATOR administrative capability assigned to it.

Example Usage

The command below displays all AutoMod filters configured in the server and their characteristics.

!filter list

The command below displays all AutoMod filters configured in the server within the "slurs" AutoMod filter category.

!filter list slurs

Set Filter Status

Description

This command modifies the status of an AutoMod filter. Filters can have one of three statuses:

  • ENFORCING
  • PERMISSIVE
  • DISABLED

Syntax

!filter status {filter-name} {status}

Parameters

  • filter-name - The name of the filter. The format for the name is in the form of a URL slug, wherein spaces (`) are replaced with dashes (-) and all characters are lowercase. For example, a filter name of "Example AutoMod Filter Name" would be "sluggified" toexample-automod-filter-name`.
  • status - The new status of the filter category. This parameter is case-insensitive and should be either ENFORCING, PERMISSIVE, or DISABLED.

Requirements

This command requires the invoker to be one of the following:

  • The server owner.
  • A user with a role that has Administrator permissions in the server.
  • A user with a role that has the ADMINISTRATOR administrative capability assigned to it.

Example Usage

The command below sets the status of an AutoMod filter named "example" to "ENFORCING".

!filter status example enforcing

The command below sets the status of an AutoMod filter named "example" to "PERMISSIVE".

!filter status example permissive

The command below sets the status of an AutoMod filter named "example" to "DISABLED".

!filter status example disabled

View/Set Filter Description

Description

This command displays or changes the description for an AutoMod filter.

Syntax

!filter description {filter-name} [new-description]

Parameters

  • filter-name - The name of the filter. The format for the name is in the form of a URL slug, wherein spaces (`) are replaced with dashes (-) and all characters are lowercase. For example, a filter name of "Example AutoMod Filter Name" would be "sluggified" toexample-automod-filter-name`.
  • new-description - Changes the description of the filter if provided.

Requirements

This command requires the invoker to be one of the following:

  • The server owner.
  • A user with a role that has Administrator permissions in the server.
  • A user with a role that has the ADMINISTRATOR administrative capability assigned to it.

Example Usage

The command below displays the current description of an AutoMod filter named "example".

!filter description example

The command below changes the current description of an AutoMod filter named "example" to "This is an example description."

!filter description This is an example description

Add Filter

Description

This command adds an AutoMod filter within a specific filter category to the server's configuration.

Syntax

!filter add {category-name} {filter-name} [regex]

Parameters

  • category-name - The name of the filter category to add the new filter to.
  • filter-name - The name of the filter. The format for the name is in the form of a URL slug, wherein spaces (`) are replaced with dashes (-) and all characters are lowercase. For example, a filter name of "Example AutoMod Filter Name" would be "sluggified" toexample-automod-filter-name`.

Requirements

This command requires the invoker to be one of the following:

  • The server owner.
  • A user with a role that has Administrator permissions in the server.
  • A user with a role that has the ADMINISTRATOR administrative capability assigned to it.

Example Usage

The command below creates a new AutoMod filter named "new-example" in the "custom-filters" filter category.

!filter add custom-filters new-example

Add Regular Expression to Filter

Description

This command adds a regular expression to an AutoMod filter.

Syntax

!filter add regex {filter-name} {regex}

Parameters

  • filter-name - The name of the filter. The format for the name is in the form of a URL slug, wherein spaces (`) are replaced with dashes (-) and all characters are lowercase. For example, a filter name of "Example AutoMod Filter Name" would be "sluggified" toexample-automod-filter-name`.
  • regex - A regular expression that will be added to the AutoMod filter.

Requirements

This command requires the invoker to be one of the following:

  • The server owner.
  • A user with a role that has Administrator permissions in the server.
  • A user with a role that has the ADMINISTRATOR administrative capability assigned to it.

Example Usage

The command below adds a new regular expression "This is a test phrase" to the AutoMod filter named "new-example".

!filter add regex new-example This is a test phrase

Remove Filter

Description

This command removes an AutoMod filter from the server's configuration.

Syntax

!filter remove {filter-name} [regex]

Parameters

  • filter-name - The name of the filter. The format for the name is in the form of a URL slug, wherein spaces (`) are replaced with dashes (-) and all characters are lowercase. For example, a filter name of "Example AutoMod Filter Name" would be "sluggified" toexample-automod-filter-name`.

Requirements

This command requires the invoker to be one of the following:

  • The server owner.
  • A user with a role that has Administrator permissions in the server.
  • A user with a role that has the ADMINISTRATOR administrative capability assigned to it.

Example Usage

The command below removes an AutoMod filter named "example" from the server's configuration. Bernard will prompt for confirmation via an embed when this command is executed.

!filter remove example

Remove Regular Expression from Filter

Description

This command removes a regular expression from an AutoMod filter.

Syntax

!filter remove regex {filter-name} {regex-index}

Parameters

  • filter-name - The name of the filter. The format for the name is in the form of a URL slug, wherein spaces (`) are replaced with dashes (-) and all characters are lowercase. For example, a filter name of "Example AutoMod Filter Name" would be "sluggified" toexample-automod-filter-name`.
  • regex-index - An integer representing the index of a specific regular expression within filter_name to remove. This can be found using the !filter list command.

Requirements

This command requires the invoker to be one of the following:

  • The server owner.
  • A user with a role that has Administrator permissions in the server.
  • A user with a role that has the ADMINISTRATOR administrative capability assigned to it.

Example Usage

The command below removes the first listed regular expression from an AutoMod filter named "example". The regular expression index of "1" can be found by using the !filter list command.

!filter remove regex example 1

Edit Filter Score

Description

This command modifies the score used for an AutoMod filter.

Syntax

!filter score {filter-name} {score}

Parameters

  • filter-name - The name of the filter. The format for the name is in the form of a URL slug, wherein spaces (`) are replaced with dashes (-) and all characters are lowercase. For example, a filter name of "Example AutoMod Filter Name" would be "sluggified" toexample-automod-filter-name`.
  • score - An integer representing the score used for each instance of a AutoMod filter violation.

Requirements

This command requires the invoker to be one of the following:

  • The server owner.
  • A user with a role that has Administrator permissions in the server.
  • A user with a role that has the ADMINISTRATOR administrative capability assigned to it.

Example Usage

The command below sets the score of an AutoMod filter named "example" to 10.

!filter score example 10

The command below sets the score of an AutoMod filter named "long-example" to 25.

!filter score long-example 25

Add Immune Entity to AutoMod Filter

Description

This command adds one or more immune entities (such as a user's ID or a role's ID) to an AutoMod filter.

Syntax

!filter immune add {filter-name} {target-1 | role-1} [target-2 | role-2...target-n | role-n]

Parameters

  • filter-name - The name of the filter. The format for the name is in the form of a URL slug, wherein spaces (`) are replaced with dashes (-) and all characters are lowercase. For example, a filter name of "Example AutoMod Filter Name" would be "sluggified" toexample-automod-filter-name`.
  • target-1, target-2, target-n - Specifies users to be made immune to the AutoMod filter. You can mention a specific user (e.g. @Bernard) or use their ID (e.g. 12345678). Each user must be separated by a space.
  • role-1, role-2, role-n - Specifies roles to be made immune to the AutoMod filter. You can mention a specific role (e.g. @Bernard) or use the role's ID (e.g. 12345678). Each role must be separated by a space.

Requirements

This command requires the invoker to be one of the following:

  • The server owner.
  • A user with a role that has Administrator permissions in the server.
  • A user with a role that has the ADMINISTRATOR administrative capability assigned to it.

Example Usage

The command below adds a user named "Fred" to the immune entities list for an AutoMod filter named "bad-word".

!filter immune add bad-word @Fred

The command below adds two users named "Fred" and "Jennifer" to the immune entities list for an AutoMod filter named "bad-word".

!filter immune add bad-word @Fred @Jennifer

The command below adds a role named "Moderators" to the immune entities list for an AutoMod filter named "bad-word".

!filter immune add bad-word @Moderators

The command below adds two roles named "Moderators" and "VIPs" to the immune entities list for an AutoMod filter named "bad-word".

!filter immune add bad-word @Moderators @VIPs

The command below adds a role named "Moderators" and a user named "Fred" to the immune entities list for an AutoMod filter named "bad-word".

!filter immune add bad-word @Moderators @Fred

The immune entities in the above command can be reversed or presented in any order, as shown below.

!filter immune add bad-word @Fred @Moderators

Remove Immune Entity from AutoMod Filter

Description

This command removes one or more immune entities (such as a user's ID or a role's ID) from an AutoMod filter.

Syntax

!filter immune remove {filter-name} {target-1 | role-1} [target-2 | role-2...target-n | role-n]

Parameters

  • filter-name - The name of the filter. The format for the name is in the form of a URL slug, wherein spaces (`) are replaced with dashes (-) and all characters are lowercase. For example, a filter name of "Example AutoMod Filter Name" would be "sluggified" toexample-automod-filter-name`.
  • target-1, target-2, target-n - Specifies users to be made vulnerable to the AutoMod filter. You can mention a specific user (e.g. @Bernard) or use their ID (e.g. 12345678). Each user must be separated by a space.
  • role-1, role-2, role-n - Specifies roles to be made vulnerable to the AutoMod filter. You can mention a specific role (e.g. @Bernard) or use the role's ID (e.g. 12345678). Each role must be separated by a space.

Requirements

This command requires the invoker to be one of the following:

  • The server owner.
  • A user with a role that has Administrator permissions in the server.
  • A user with a role that has the ADMINISTRATOR administrative capability assigned to it.

Example Usage

The command below removes a user named "Fred" from the immune entities list for an AutoMod filter named "bad-word".

!filter immune remove bad-word @Fred

The command below removes two users named "Fred" and "Jennifer" from the immune entities list for an AutoMod filter named "bad-word".

!filter immune remove bad-word @Fred @Jennifer

The command below removes a role named "Moderators" from the immune entities list for an AutoMod filter named "bad-word".

!filter immune remove bad-word @Moderators

The command below removes two roles named "Moderators" and "VIPs" from the immune entities list for an AutoMod filter named "bad-word".

!filter immune remove bad-word @Moderators @VIPs

The command below removes a role named "Moderators" and a user named "Fred" from the immune entities list for an AutoMod filter named "bad-word".

!filter immune remove bad-word @Moderators @Fred

The immune entities in the above command can be reversed or presented in any order, as shown below.

!filter immune remove bad-word @Fred @Moderators

Edit Filter Score History Tracking

Description

This command edits the Score History Tracking functionality of an AutoMod filter. This functionality modifies how the final score of an AutoMod filter violation is calculated. Specifically, it modifies whether recent AutoMod violations should be factored into a current AutoMod violation.

Syntax

!filter track-score-history {filter-name} {boolean}

Parameters

  • filter-name - The name of the filter. The format for the name is in the form of a URL slug, wherein spaces (`) are replaced with dashes (-) and all characters are lowercase. For example, a filter name of "Example AutoMod Filter Name" would be "sluggified" toexample-automod-filter-name`.
  • boolean - Defines whether the filter should track previous AutoMod scores or not. This can be one of the following case-insensitive options:
    • To enable this setting:
      • yes
      • y
      • true
      • t
      • 1
      • enable
      • on
    • To disable this setting:
      • no
      • n
      • false
      • f
      • 0
      • disable
      • off

Requirements

This command requires the invoker to be one of the following:

  • The server owner.
  • A user with a role that has Administrator permissions in the server.
  • A user with a role that has the ADMINISTRATOR administrative capability assigned to it.

Example Usage

The command below enables Score History Tracking on an AutoMod filter named "example".

!filter track-score-history example enable

The command below disables Score History Tracking on an AutoMod filter named "example".

!filter track-score-history example disable

List AutoMod Gatekeeping Measures

Description

This command lists the current status of all AutoMod Gatekeeping measures.

Note: This command is not yet implemented, but is planned for a future release.

Syntax

!automod gatekeeping

Parameters

This command has no parameters.

Requirements

This command requires the CONFIG_CHANGES administrative capability.

Example Usage

This command lists the current status of all AutoMod Gatekeeping measures.

!automod gatekeeping

Set AutoMod Gatekeeping Join Measure Status

Description

This command modifies the status of the minimum account age AutoMod Gatekeeping measure, which prevents members from joining the server if their account age is below a specific age.

Syntax

!automod gatekeeping join-status {boolean}

Parameters

  • boolean - Defines whether the minimum account age AutoMod Gatekeeping measure should be enabled or not. This can be one of the following case-insensitive options:
    • To enable this setting:
      • yes
      • y
      • true
      • t
      • 1
      • enable
      • on
    • To disable this setting:
      • no
      • n
      • false
      • f
      • 0
      • disable
      • off

Requirements

This command requires the CONFIG_CHANGES administrative capability.

Example Usage

The command below enables the minimum account age AutoMod Gatekeeping measure.

!automod gatekeeping join-status enable

The command below disables the minimum account age AutoMod Gatekeeping measure.

!automod gatekeeping join-status disable

Edit AutoMod Gatekeeping Join Measure Minimum Account Age

Description

This command configures the minimum account age needed in order for new users to join the server. Users who join the server that do not meet this requirement will have the punishment defined by the !automod gatekeeping join-punishment command applied to them.

Syntax

!automod gatekeeping join-age {age}

Parameters

  • age - Defines the minimum account age required for users to join the server. Combine a whole number quantity (e.g. 1, 15, 60, etc.) with a case-insensitive unit of time (e.g. s, m, d, etc.). A full list of valid units of time is shown below:
    • s - Represents seconds.
    • m - Represents minutes.
    • h - Represents hours.
    • d - Represents days.
    • w - Represents weeks.
    • mo - Represents months.
    • y - Represents years.

Requirements

This command requires the CONFIG_CHANGES administrative capability.

Example Usage

The command below defines the minimum account age required for users to join the server to be one week.

!automod gatekeeping join-age 1w

The command below defines the minimum account age required for users to join the server to be three days.

!automod gatekeeping join-age 3d

Edit AutoMod Gatekeeping Join Measure Punishment

Description

This command defines the punishment that will be placed on users who attempt to join the server who do not meet the minimum account age required set by the !automod gatekeeping join-age command.

Syntax

!automod gatekeeping join-punishment {punishment}

Parameters

  • punishment - Can be one of the following:
    • KICK - Kicks the user from the server.
    • BAN - Permanently bans the user from the server.

Requirements

This command requires the CONFIG_CHANGES administrative capability.

Example Usage

The command below defines the punishment for violations of the minimum account age AutoMod Gatekeeping measure to be a kick from the server.

!automod gatekeeping join-punishment KICK

The command below defines the punishment for violations of the minimum account age AutoMod Gatekeeping measure to be a permanent ban from the server.

!automod gatekeeping join-punishment BAN

Set AutoMod File Crash Analysis Status

Description

This command sets the status of AutoMod file crash analysis. Some videos in Discord messages can cause the Discord client to lag severely or even crash when played. Bernard has the ability to proactively detect and delete these messages when this feature is enabled.

Syntax

!automod files crash status {boolean}

Parameters

  • boolean - Defines whether AutoMod file crash analysis should be performed in this server. This can be one of the following case-insensitive options:
    • To enable this setting:
      • yes
      • y
      • true
      • t
      • 1
      • enable
      • on
    • To disable this setting:
      • no
      • n
      • false
      • f
      • 0
      • disable
      • off

Requirements

This command requires the invoker to be one of the following:

  • The server owner.
  • A user with a role that has Administrator permissions in the server.
  • A user with a role that has the ADMINISTRATOR administrative capability assigned to it.

Example Usage

The command below enables AutoMod file crash analysis in the server.

!automod files crash status enable

The command below disables AutoMod file crash analysis in the server.

!automod files crash status disable

Edit AutoMod File Crash Analysis Punishment

Description

This command edits the punishment applied to message authors who send messages containing videos that can crash the Discord client. At the moment, only bans can be issued against message authors. This command controls the length of the ban.

Server administrators and owners will not be banned if they send messages containing videos that can crash the Discord client - however, Bernard will still attempt to delete the message containing the video.

Syntax

!automod files crash punishment {duration}

Parameters

  • duration - Defines how long the message author should be banned from the server. Combine a whole number quantity (e.g. 1, 15, 60, etc.) with a case-insensitive unit of time (e.g. s, m, d, etc.). For a permanent ban, use a phrase like perm, perma, permanent, etc. A full list of valid units of time is shown below:
    • s - Represents seconds.
    • m - Represents minutes.
    • h - Represents hours.
    • d - Represents days.
    • w - Represents weeks.
    • mo - Represents months.
    • y - Represents years.

Requirements

This command requires the invoker to be one of the following:

  • The server owner.
  • A user with a role that has Administrator permissions in the server.
  • A user with a role that has the ADMINISTRATOR administrative capability assigned to it.

Example Usage

The command below sets the AutoMod file crash analysis punishment to a temporary ban of one day.

!automod files crash punishment 1d

The command below sets the AutoMod file crash analysis punishment to a temporary ban of one week (seven days).

!automod files crash punishment 7d

The command below sets the AutoMod file crash analysis punishment to a permanent ban.

!automod files crash punishment perma

Set AutoMod Notification Status

Description

This command displays or changes the status of AutoMod notifications in the server. AutoMod notifications are the embed notifications Bernard posts to the channel where an AutoMod violation occurred immediately after the violating message is deleted.

Modifying this setting does not affect whether AutoMod violation events are routed to an event channel - that setting is modified with the !omnilogs channel automod command.

Syntax

!automod notifications [boolean]

Parameters

  • boolean - Defines whether AutoMod notifications should be sent in this server. This can be one of the following case-insensitive options:
    • To enable this setting:
      • yes
      • y
      • true
      • t
      • 1
      • enable
      • on
    • To disable this setting:
      • no
      • n
      • false
      • f
      • 0
      • disable
      • off

Requirements

This command requires the invoker to be one of the following:

  • The server owner.
  • A user with a role that has Administrator permissions in the server.
  • A user with a role that has the ADMINISTRATOR administrative capability assigned to it.

Example Usage

The command below displays the current AutoMod notifications status in the server.

!automod notifications

The command below enables AutoMod notifications in the server.

!automod notifications on

The command below disables AutoMod notifications in the server.

!automod notifications off

Omnilogs Configuration Commands

This section describes commands used to configure the Omnilogs feature within a server.

List Channels for OmniLog Event Monitoring

Description

This command displays the text channels that OmniLog events are being routed to. If a specific event is provided, only the text channel associated with that event is displayed.

Syntax

!omnilogs channel [event]

Parameters

  • event - This can be one of the following events:
    • message_delete
    • message_edit
    • member_ban
    • member_unban
    • member_kick
    • member_mute
    • member_unmute
    • member_warn
    • member_silence
    • member_unsilence
    • automod
    • notifications
    • member_join
    • member_leave
    • member_edit
    • member_join_voice
    • member_leave_voice
    • member_self_mute_voice
    • member_self_unmute_voice
    • member_self_deafen_voice
    • member_self_undeafen_voice
    • member_server_mute_voice
    • member_server_unmute_voice
    • member_server_deafen_voice
    • member_server_undeafen_voice
    • reaction_add
    • reaction_remove
    • channel_create
    • channel_update
    • channel_delete
    • thread_create
    • thread_update
    • thread_remove
    • thread_delete

Requirements

Requires the CONFIG_CHANGES administrative capability.

Example Usage

The below command displays all monitored events and their configured channels, if applicable.

!omnilogs channel

The below command displays the text channel that edited message events are routed to.

!omnilogs channel message_edit

The below command displays the text channel that deleted message events are routed to.

!omnilogs channel message_delete

The below command displays the text channel that ban events are routed to.

!omnilogs channel member_ban

The below command displays the text channel that unban events are routed to.

!omnilogs channel member_unban

The below command displays the text channel that kick events are routed to.

!omnilogs channel member_kick

The below command displays the text channel that voice mute events are routed to.

!omnilogs channel member_mute

The below command displays the text channel that voice unmute events are routed to.

!omnilogs channel member_unmute

The below command displays the text channel that warning events are routed to.

!omnilogs channel member_warn

The below command displays the text channel that silence events are routed to.

!omnilogs channel member_silence

The below command displays the text channel that unsilence events are routed to.

!omnilogs channel member_unsilence

The below command displays the text channel that AutoMod filter violation events are routed to.

!omnilogs channel automod

The below command displays the text channel that general Bernard notifications are routed to.

!omnilogs channel notifications

The below command displays the text channel that member server join events are routed to.

!omnilogs channel member_join

The below command displays the text channel that member server leave events are routed to.

!omnilogs channel member_leave

The below command displays the text channel that member joining voice channel events are routed to.

!omnilogs channel member_join_voice

The below command displays the text channel that member leaving voice channel events are routed to.

!omnilogs channel member_leave_voice

The below command displays the text channel that members self-muting in voice channel events are routed to.

!omnilogs channel member_self_mute_voice

The below command displays the text channel that members self-unmuting in voice channel events are routed to.

!omnilogs channel member_self_unmute_voice

The below command displays the text channel that members self-deafening in voice channel events are routed to.

!omnilogs channel member_self_deafen_voice

The below command displays the text channel that members self-undeafening in voice channel events are routed to.

!omnilogs channel member_self_undeafen_voice

The below command displays the text channel that members being server muted in voice channel events are routed to.

!omnilogs channel member_server_mute_voice

The below command displays the text channel that members being server unmuted in voice channel events are routed to.

!omnilogs channel member_server_unmute_voice

The below command displays the text channel that members being server deafened in voice channel events are routed to.

!omnilogs channel member_server_deafen_voice

The below command displays the text channel that members being server undeafened in voice channel events are routed to.

!omnilogs channel member_server_undeafen_voice

The below command displays the text channel that reaction addition events are routed to.

!omnilogs channel reaction_add

The below command displays the text channel that reaction deletion events are routed to.

!omnilogs channel reaction_remove

Edit Channel for OmniLog Event Monitoring

Description

This command edits the current text channel that a specific OmniLog event should be routed to.

Syntax

!omnilogs channel {event} {channel}

Parameters

  • event - This can be one of the following events:
    • message_delete
    • message_edit
    • member_ban
    • member_unban
    • member_kick
    • member_mute
    • member_unmute
    • member_warn
    • member_silence
    • member_unsilence
    • automod
    • notifications
    • member_join
    • member_leave
    • member_edit
    • member_join_voice
    • member_leave_voice
    • member_self_mute_voice
    • member_self_unmute_voice
    • member_self_deafen_voice
    • member_self_undeafen_voice
    • member_server_mute_voice
    • member_server_unmute_voice
    • member_server_deafen_voice
    • member_server_undeafen_voice
    • reaction_add
    • reaction_remove
    • channel_create
    • channel_update
    • channel_delete
    • thread_create
    • thread_update
    • thread_remove
    • thread_delete
  • channel - A text channel in the server that event instances should be routed to. To specify the text channel, you can mention a specific channel (e.g. #bernard-notifications) or use the ID (e.g. 12345678).

Requirements

Requires the CONFIG_CHANGES administrative capability.

Example Usage

The below command routes deleted message events to a text channel named "#bernard-deleted-messages".

!omnilogs channel message_delete #bernard-deleted-messages

The below command routes edited message events to a text channel named "#bernard-edited-messages".

!omnilogs channel message_edit #bernard-edited-messages

The below command routes member ban events to a text channel named "bernard-bans".

!omnilogs channel member_ban #bernard-bans

The below command routes member unban events to a text channel named "bernard-unbans".

!omnilogs channel member_unban #bernard-unbans

The below command routes member kick events to a text channel named "bernard-kicks".

!omnilogs channel member_kick #bernard-kicks

The below command routes voice mute events to a text channel named "bernard-mutes".

!omnilogs channel member_mute #bernard-mutes

The below command routes voice unmute events to a text channel named "bernard-unmutes".

!omnilogs channel member_unmute #bernard-unmutes

The below command routes warning events to a text channel named "bernard-warnings".

!omnilogs channel member_warn #bernard-warnings

The below command routes silence events to a text channel named "bernard-silences".

!omnilogs channel member_silence #bernard-silences

The below command routes unsilence events to a text channel named "bernard-unsilences".

!omnilogs channel member_unsilence

The below command routes Bernard AutoMod filter violation events to a text channel named "bernard-automod".

!omnilogs channel automod #bernard-automod

The below command routes general Bernard notifications to a text channel named "#bernard-notifications".

!omnilogs channel notifications #bernard-notifications

The below command routes server member join events to a text channel named "bernard-new-members".

!omnilogs channel member_join #bernard-new-members

The below command routes server member leave events to a text channel named "bernard-leaving-members".

!omnilogs channel member_leave #bernard-leaving-members

The below command routes member joining voice channel events to a text channel named "bernard-members-join-voice"

!omnilogs channel member_join_voice #bernard-members-join-voice

The below command routes member leaving voice channel events to a text channel named "bernard-members-leave-voice"

!omnilogs channel member_leave_voice #bernard-members-leave-voice

The below command routes members self-muting in voice channel events to a text channel named "bernard-members-self-mute-voice"

!omnilogs channel member_self_mute_voice #bernard-members-self-mute-voice

The below command routes members self-unmuting in voice channel events to a text channel named "bernard-members-self-unmute-voice"

!omnilogs channel member_self_unmute_voice #bernard-members-self-unmute-voice

The below command routes members self-deafening in voice channel events to a text channel named "bernard-members-self-deafen-voice"

!omnilogs channel member_self_deafen_voice #bernard-members-self-deafen-voice

The below command routes members self-undeafening in voice channel events to a text channel named "bernard-members-self-undeafen-voice"

!omnilogs channel member_self_undeafen_voice #bernard-members-self-undeafen-voice

The below command routes members being server muted in voice channel events to a text channel named "bernard-members-server-mute-voice"

!omnilogs channel member_server_mute_voice #bernard-members-server-mute-voice

The below command routes members being server unmuted in voice channel events to a text channel named "bernard-members-server-unmute-voice"

!omnilogs channel member_server_unmute_voice #bernard-members-server-unmute-voice

The below command routes members being server deafened in voice channel events to a text channel named "bernard-members-server-deafened-voice"

!omnilogs channel member_server_deafen_voice #bernard-members-server-deafened-voice

The below command routes members being server undeafened in voice channel events to a text channel named "bernard-members-server-undeafened-voice"

!omnilogs channel member_server_undeafen_voice #bernard-members-server-undeafened-voice

The below command routes reaction addition events to a text channel named "bernard-reaction-add".

!omnilogs channel reaction_add #bernard-reaction-add

The below command routes reaction removal events to a text channel named "bernard-reaction-removal".

!omnilogs channel reaction_remove #bernard-reaction-remove

Remove Channel for Event Monitoring

Description

This command removes all OmniLog event monitoring associated with a specific channel. After this command is executed, OmniLog events will no longer be routed to the specified channel.

Syntax

!omnilogs channel remove {channel} [event]

Parameters

  • channel - A text channel in the server that event instances should be routed to. To specify the text channel, you can mention a specific channel (e.g. #bernard-notifications) or use the ID (e.g. 12345678).
  • event - A specific event you want to stop routing to channel. This argument is optional; not including it implies all events should not be routed to channel.

Requirements

This command requires the CONFIG_CHANGES administrative capability.

Example Usage

The command below removes all event monitoring that was associated with a channel named "bernard-events".

!omnilogs channel remove #bernard-events

The command below prevents a specific event (reaction removal events via REACTION_REMOVE) from being routed to a channel named "bernard-events".

!omnilogs channel remove #bernard-events REACTION_REMOVE

List Users that Joined Server During Time Period

Description

This command displays a list of users who joined the server during a specific time period.

Syntax

!omnilogs event user join {relative-start-time | start-datetime} [relative-end-time | end-datetime] [id-only]

Parameters

  • relative-start-time - Defines how long ago the start of the time period should be. Combine a whole number quantity (e.g. 1, 15, 60, etc.) with a case-insensitive unit of time (e.g. s, m, d, etc.). For a permanent ban, use a phrase like perm, perma, permanent, etc. A full list of valid units of time is shown below:
    • s - Represents seconds.
    • m - Represents minutes.
    • h - Represents hours.
    • d - Represents days.
    • w - Represents weeks.
    • mo - Represents months.
    • y - Represents years.
  • start-datetime - Defines the date and time the start of the time period should be in a ISO 8601 format. Note that if a timezone is not explicitly provided to this value, then the UTC timezone is assumed. A few examples of this format are as follows:
    • 2011-11-04
    • 2011-11-04T00:05:23
    • 2011-11-04 00:05:23.283
    • 2011-11-04 00:05:23.283+00:00
    • 2011-11-04T00:05:23+04:00
  • relative-end-time - Defines how long ago the end of the time period should be. Combine a whole number quantity (e.g. 1, 15, 60, etc.) with a case-insensitive unit of time (e.g. s, m, d, etc.). For a permanent ban, use a phrase like perm, perma, permanent, etc. A full list of valid units of time is shown below:
  • end-datetime - Defines the date and time the end of the time period should be in a ISO 8601 format. Note that if a timezone is not explicitly provided to this value, then the UTC timezone is assumed. A few examples of this format are as follows:
    • 2011-11-04
    • 2011-11-04T00:05:23
    • 2011-11-04 00:05:23.283
    • 2011-11-04 00:05:23.283+00:00
    • 2011-11-04T00:05:23+04:00
  • id-only - Defines whether the Discord snowflake IDs for users should be listed, or whether each ID should be resolved to a server user/member and mentioned. This can be useful for copy-pasting a list of user snowflake IDs into the !massban command.

Requirements

This command requires any moderation-related administrative capability.

Example Usage

The command below lists all users who joined the server within the past 30 minutes.

!omnilogs event user join 30m

The command below lists all users who joined the server during a time period between 30 minutes ago and 15 minutes ago.

!omnilogs event user join 30m 15m

The command below lists all users who joined the server since November 5th, 2021 at 3:00PM UTC.

!omnilogs event user join 2021-11-05T15:00:00

The command below lists all users who joined the server during a time period between November 5th, 2021 at 3:00PM UTC and November 6th, 2021 at 8:00AM UTC.

!omnilogs event user join 2021-11-05T15:00:00 2021-11-06T08:00:00

The command below lists all users who joined the server within the past 30 minutes. Each user's Discord snowflake ID is listed - they are not mentioned. This can be useful for copy-pasting a list of user snowflake IDs into the !massban command. Alternatively, consider using the !joinban command.

!omnilogs event user join 30m yes

List Users that Left Server During Time Period

Description

This command displays a list of users who left the server during a specific time period.

Syntax

!omnilogs event user leave {relative-start-time | start-datetime} [relative-end-time | end-datetime] [id-only]

Parameters

  • relative-start-time - Defines how long ago the start of the time period should be. Combine a whole number quantity (e.g. 1, 15, 60, etc.) with a case-insensitive unit of time (e.g. s, m, d, etc.). For a permanent ban, use a phrase like perm, perma, permanent, etc. A full list of valid units of time is shown below:
    • s - Represents seconds.
    • m - Represents minutes.
    • h - Represents hours.
    • d - Represents days.
    • w - Represents weeks.
    • mo - Represents months.
    • y - Represents years.
  • start-datetime - Defines the date and time the start of the time period should be in a ISO 8601 format. Note that if a timezone is not explicitly provided to this value, then the UTC timezone is assumed. A few examples of this format are as follows:
    • 2011-11-04
    • 2011-11-04T00:05:23
    • 2011-11-04 00:05:23.283
    • 2011-11-04 00:05:23.283+00:00
    • 2011-11-04T00:05:23+04:00
  • relative-end-time - Defines how long ago the end of the time period should be. Combine a whole number quantity (e.g. 1, 15, 60, etc.) with a case-insensitive unit of time (e.g. s, m, d, etc.). For a permanent ban, use a phrase like perm, perma, permanent, etc. A full list of valid units of time is shown below:
  • end-datetime - Defines the date and time the end of the time period should be in a ISO 8601 format. Note that if a timezone is not explicitly provided to this value, then the UTC timezone is assumed. A few examples of this format are as follows:
    • 2011-11-04
    • 2011-11-04T00:05:23
    • 2011-11-04 00:05:23.283
    • 2011-11-04 00:05:23.283+00:00
    • 2011-11-04T00:05:23+04:00
  • id-only - Defines whether the Discord snowflake IDs for users should be listed, or whether each ID should be resolved to a server user/member and mentioned. This can be useful for copy-pasting a list of user snowflake IDs into the !massban command.

Requirements

This command requires any moderation-related administrative capability.

Example Usage

The command below lists all users who left the server within the past 30 minutes.

!omnilogs event user leave 30m

The command below lists all users who left the server during a time period between 30 minutes ago and 15 minutes ago.

!omnilogs event user leave 30m 15m

The command below lists all users who left the server since November 5th, 2021 at 3:00PM UTC.

!omnilogs event user leave 2021-11-05T15:00:00

The command below lists all users who left the server during a time period between November 5th, 2021 at 3:00PM UTC and November 6th, 2021 at 8:00AM UTC.

!omnilogs event user leave 2021-11-05T15:00:00 2021-11-06T08:00:00

The command below lists all users who left the server within the past 30 minutes. Each user's Discord snowflake ID is listed - they are not mentioned. This can be useful for copy-pasting a list of user snowflake IDs into the !massban command.

!omnilogs event user leave 30m yes

Server Configuration

This section describes commands that are used to configure general features of Bernard within the server.

List My Role Information

Description

This commands displays the invoker's highest position in the role hierarchy based upon their assigned roles, whether or not the invoker is considered a server administrator or not, and the Bernard administrative capabilities associated with the invoker's roles.

Syntax

!role

Parameters

This command has no parameters.

Requirements

This command requires the ROLE_VIEW administrative capability.

Example Usage

The command below displays the invoker's highest position in the role hierarchy based upon their assigned roles, whether or not the invoker is considered a server administrator or not, and the Bernard administrative capabilities associated with the invoker's roles.

!role

List Role Hierarchy

Description

This command displays a list of all roles configured in the server, their respective snowflake ID, and their position in the server's role hierarchy.

Syntax

!role list

Parameters

This command has no parameters.

Requirements

This command requires the ROLE_VIEW administrative capability.

Example Usage

The command below displays a list of all roles configured in the server, their respective snowflake ID, and their position in the server's role hierarchy.

!role list

List Members of Role

Description

This command displays a list of snowflake IDs corresponding with server members who are a specified role assigned to them.

Syntax

!role members <role>

Parameters

  • role - Specifies the Discord role to list the member snowflake IDs of. You can mention a specific role (e.g. @Moderators) or use their ID (e.g. 12345678).

Requirements

This command requires the ROLE_VIEW administrative capability.

Example Usage

The command below displays a list of snowflake IDs corresponding with server members who have been assigned the "Moderators" role.

!role members @Moderators

List Administrative Capabilities of Roles

Description

This command displays a list of all roles configured in the server that have Bernard administrative capabilities associated with them.

Syntax

!role capability list

Parameters

This command has no parameters.

Requirements

This command requires the ROLE_VIEW administrative capability.

Example Usage

The command below displays a list of all roles configured in the server that have Bernard administrative capabilities associated with them.

!role capability list

Add Administrative Capability to Role

Description

This command associates one or more roles in a Discord server with one or more administrative capabilities.

Syntax

!role capability add {role-1} [role-2...role-n] {capability-1} [capability-2...capability-n]

Parameters

  • role-1, role-2, role-n - Specifies the Discord roles to associate administrative capabilities with. You can mention a specific role (e.g. @Moderators) or use their ID (e.g. 12345678). Each role must be separated by a space.
  • capability-1, capability-2, capability-n - Specifies the administrative capabilities to be associated with Discord roles.

Requirements

This command requires the ROLE_PERMISSION_CHANGES administrative capability.

Example Usage

The command below adds the TEMP_BAN_MEMBERS administrative capability to the "Moderators" role.

!role capability add @Moderators TEMP_BAN_MEMBERS

The command below adds the TEMP_BAN_MEMBERS administrative capability to the "Moderators" role, which has an ID of 1234567890.

!role capability add 1234567890 TEMP_BAN_MEMBERS

The command below adds the TEMP_BAN_MEMBERS and PERMA_BAN_MEMBERS administrative capabilities to the "Moderators" role.

!role capability add @Moderators TEMP_BAN_MEMBERS PERMA_BAN_MEMBERS

The command below adds the TEMP_BAN_MEMBERS and PERMA_BAN_MEMBERS administrative capabilities to the "Moderators" and "Head Moderators" roles.

!role capability add @Moderators @Head Moderators TEMP_BAN_MEMBERS PERMA_BAN_MEMBERS

Remove Administrative Capability from Role

Description

This command disassociates one or more roles in a Discord server from one or more administrative capabilities.

Syntax

!role capability delete {role-1} [role-2...role-n] {capability-1} [capability-2...capability-n]

Parameters

  • role-1, role-2, role-n - Specifies the Discord roles to disassociate administrative capabilities from. You can mention a specific role (e.g. @Moderators) or use their ID (e.g. 12345678). Each role must be separated by a space.
  • capability-1, capability-2, capability-n - Specifies the administrative capabilities to be disassociated from Discord roles.

Requirements

This command requires the ROLE_PERMISSION_CHANGES administrative capability.

Example Usage

The command below removes the TEMP_BAN_MEMBERS administrative capability from the "Moderators" role.

!role capability delete @Moderators TEMP_BAN_MEMBERS

The command below removes the TEMP_BAN_MEMBERS administrative capability from the "Moderators" role, which has an ID of 1234567890.

!role capability delete 1234567890 TEMP_BAN_MEMBERS

The command below removes the TEMP_BAN_MEMBERS and PERMA_BAN_MEMBERS administrative capabilities from the "Moderators" role.

!role capability delete @Moderators TEMP_BAN_MEMBERS PERMA_BAN_MEMBERS

The command below removes the TEMP_BAN_MEMBERS and PERMA_BAN_MEMBERS administrative capabilities from the "Moderators" and "Head Moderators" roles.

!role capability delete @Moderators @Head Moderators TEMP_BAN_MEMBERS PERMA_BAN_MEMBERS

List Role Vote Weight

Description

This command lists the weight of all roles with a non-default vote weight.

Syntax

!role vote list

Parameters

This command has no parameters.

Requirements

This command requires the ROLE_PERMISSION_CHANGES administrative capability.

Example Usage

The command below lists the weight of all roles with a non-default vote weight.

!role vote list

Set Silence Role

Description

This command designates a specific role in the server as the role that is assigned to users when the !silence command is invoked. This is also the role that is removed from the user (if it is assigned) when the !unsilence command is invoked.

Syntax

!role silence {role}

Parameters

  • role - Specifies the Discord role to associate with silenced users. You can mention a specific role (e.g. @Silenced) or use their ID (e.g. 12345678). Each role must be separated by a space.

Requirements

This command requires the invoker to be one of the following:

  • The server owner.
  • A user with a role that has Administrator permissions in the server.
  • A user with a role that has the ADMINISTRATOR administrative capability assigned to it.

Example Usage

The command below designates the @Silenced role as the role to be applied or removed to a user through the !silence and !unsilence commands, respectively.

!role silence @Silenced

Set Role Vote Weight

Description

This command defines the weight of a specific role's vote in vote-based activities, such as votebans and arenas. This effectively determines how much a certain voter's vote counts in the overall vote. The default weight of all roles is "1".

Syntax

!role vote {role} {weight}

Parameters

  • role - Specifies the Discord role to set the weight of. You can mention a specific role (e.g. @Moderators) or use their ID (e.g. 12345678).
  • weight - An integer representing the weight of the specified role's vote.

Requirements

This command requires the ROLE_PERMISSION_CHANGES administrative capability.

Example Usage

The command below sets the weight of the "Moderators" role to "5".

!role vote @Moderators 5

Show Punishment Direct Message Flavor Text Configuration

Description

This command displays the current configuration for a type of flavor text in the server. This text is used in direct messages to targets of a corresponding punishment to provide context surrounding the punishment, link to potential unbans forms, and so on.

Syntax

/configuration flavor show {flavor_type}

Parameters

  • flavor_type - The specific punishment to view the flavor text for. This may be one of the following:
    • general
    • kick
    • tempban
    • permaban
    • tempmute
    • permamute
    • warn

Requirements

This command requires the invoker to be one of the following:

  • The server owner.
  • A user with a role that has Administrator permissions in the server.
  • A user with a role that has the CONFIG_CHANGES administrative capability assigned to it.

Example Usage

The command below displays the current configuration for the general flavor type.

/configuration flavor show general

The command below displays the current configuration for the permaban flavor type.

/configuration flavor show permaban

Set Punishment Direct Message Flavor Text Configuration

Description

This command modifies the current configuration for a type of flavor text in the server. This text is used in direct messages to targets of a corresponding punishment to provide context surrounding the punishment, link to potential unbans forms, and so on.

Syntax

/configuration flavor set {flavor_type}

Parameters

  • flavor_type - The specific punishment to view the flavor text for. This may be one of the following:
    • general
    • kick
    • tempban
    • permaban
    • tempmute
    • permamute
    • warn
  • value - The flavor text to configure.

Requirements

This command requires the invoker to be one of the following:

  • The server owner.
  • A user with a role that has Administrator permissions in the server.
  • A user with a role that has the CONFIG_CHANGES administrative capability assigned to it.

Example Usage

The command below modifies the current configuration for the general flavor type to read This is an example general flavor text..

/configuration flavor set general This is an example general flavor text.

The command below modifies the current configuration for the permaban flavor type to read This is an example permaban flavor text..

/configuration flavor set permaban This is an example permaban flavor text.

Remove Punishment Direct Message Flavor Text Configuration

This command removes the current configuration for a type of flavor text in the server.

Syntax

/configuration flavor remove {flavor_type}

Parameters

  • flavor_type - The specific punishment to view the flavor text for. This may be one of the following:
    • general
    • kick
    • tempban
    • permaban
    • tempmute
    • permamute
    • warn

Requirements

This command requires the invoker to be one of the following:

  • The server owner.
  • A user with a role that has Administrator permissions in the server.
  • A user with a role that has the CONFIG_CHANGES administrative capability assigned to it.

Example Usage

The command below removes the current configuration for the general flavor type.

/configuration flavor remove general

The command below removes the current configuration for the general flavor type.

/configuration flavor remove permaban

Test Punishment Direct Message Flavor Text Configuration

This command displays an example of a message that would be sent to the target of a particular punishment. This allows you to double-check the formatting of your flavor text and ensure a clean, professional-looking message is sent to the target after being punished.

Syntax

/configuration flavor test {flavor_type}

Parameters

  • flavor_type - The specific punishment to view the flavor text for. This may be one of the following:
    • kick
    • tempban
    • permaban
    • tempmute
    • permamute
    • warn

Note

The general flavor type cannot be used as a valid flavor type in this command. This is because the general flavor type appears in all punishment direct messages. Use any other flavor type (e.g. kick) to see a sample punishment direct message containing general flavor text.

Requirements

This command requires the invoker to be one of the following:

  • The server owner.
  • A user with a role that has Administrator permissions in the server.
  • A user with a role that has the CONFIG_CHANGES administrative capability assigned to it.

Example Usage

The command below shows an example message for the current configuration for the kick flavor type.

/configuration flavor test kick

The command below shows an example message for the current configuration for the permaban flavor type.

/configuration flavor test permaban

Include Quips in Punishment Embeds

Description

This command modifies whether quips (which are fun, snarky/sarcastic messages directed at the target of a punishment) are enabled within the server.

Syntax

/configuration quips_enabled {boolean}

Parameters

  • boolean - Defines whether quips should be displayed in punishment-related embeds or not. This can be a value of either True or False.

Requirements

This command requires the CONFIG_CHANGES administrative capability.

Example Usage

The command below enables the display of quips in punishment-related embeds.

/configuration quips_enabled True

The command below disables the display of quips in punishment-related embeds.

/configuration quips_enabled False

View/Set Arena Minimum Vote Duration

Description

This command displays or modifies the current minimum vote duration for arena battles in the server.

Syntax

!arena min-vote-duration [duration]

Parameters

  • duration - Defines the minimum vote duration for arena battles. Combine a whole number quantity (e.g. 1, 15, 60, etc.) with a case-insensitive unit of time (e.g. s, m, d, etc.). For a permanent ban, use a phrase like perm, perma, permanent, etc. A full list of valid units of time is shown below:
    • s - Represents seconds.
    • m - Represents minutes.
    • h - Represents hours.
    • d - Represents days.
    • w - Represents weeks.
    • mo - Represents months.
    • y - Represents years.

Requirements

This command requires the CONFIG_CHANGES administrative capability.

Example Usage

The command below displays the current minimum vote duration for arena battles in the server.

!arena min-vote-duration

The command below modifies the current minimum vote duration for arena battles in the server to 3 minutes.

!arena min-vote-duration 3m

View/Set Arena Maximum Vote Duration

Description

This command displays or modifies the current maximum vote duration for arena battles in the server.

Syntax

!arena max-vote-duration [duration]

Parameters

  • duration - Defines the maximum vote duration for arena battles. Combine a whole number quantity (e.g. 1, 15, 60, etc.) with a case-insensitive unit of time (e.g. s, m, d, etc.). For a permanent ban, use a phrase like perm, perma, permanent, etc. A full list of valid units of time is shown below:
    • s - Represents seconds.
    • m - Represents minutes.
    • h - Represents hours.
    • d - Represents days.
    • w - Represents weeks.
    • mo - Represents months.
    • y - Represents years.

Requirements

This command requires the CONFIG_CHANGES administrative capability.

Example Usage

The command below displays the current maximum vote duration for arena battles in the server.

!arena max-vote-duration

The command below modifies the current maximum vote duration for arena battles in the server to 10 minutes.

!arena max-vote-duration 10m

View/Set Arena Minimum Ban Duration

Description

This command displays or modifies the current minimum ban duration for arena battles in the server.

Syntax

!arena min-ban-duration [duration]

Parameters

  • duration - Defines the minimum ban duration for arena battles. Combine a whole number quantity (e.g. 1, 15, 60, etc.) with a case-insensitive unit of time (e.g. s, m, d, etc.). For a permanent ban, use a phrase like perm, perma, permanent, etc. A full list of valid units of time is shown below:
    • s - Represents seconds.
    • m - Represents minutes.
    • h - Represents hours.
    • d - Represents days.
    • w - Represents weeks.
    • mo - Represents months.
    • y - Represents years.

Requirements

This command requires the CONFIG_CHANGES administrative capability.

Example Usage

The command below displays the current minimum ban duration for arena battles in the server.

!arena min-ban-duration

The command below modifies the current minimum ban duration for arena battles in the server to 15 minutes.

!arena min-ban-duration 15m

View/Set Arena Maximum Ban Duration

Description

This command displays or modifies the current maximum ban duration for arena battles in the server.

Syntax

!arena max-ban-duration [duration]

Parameters

  • duration - Defines the maximum ban duration for arena battles. Combine a whole number quantity (e.g. 1, 15, 60, etc.) with a case-insensitive unit of time (e.g. s, m, d, etc.). For a permanent ban, use a phrase like perm, perma, permanent, etc. A full list of valid units of time is shown below:
    • s - Represents seconds.
    • m - Represents minutes.
    • h - Represents hours.
    • d - Represents days.
    • w - Represents weeks.
    • mo - Represents months.
    • y - Represents years.

Requirements

This command requires the CONFIG_CHANGES administrative capability.

Example Usage

The command below displays the current maximum ban duration for arena battles in the server.

!arena max-ban-duration

The command below modifies the current maximum ban duration for arena battles in the server to 1 hour.

!arena max-ban-duration 1h

View/Set Arena Channel Restriction

Description

This command displays or modifies the channel in which arena battles are restricted to. When this option is configured, arena battles can only be started within a specific text channel - otherwise, arena battles can be started in any text channel within the server. The purpose of this option is to reduce the amount of spam that might occur within the server.

Syntax

!arena channel [new-text-channel]

Parameters

  • new-text-channel - If specified, the specific channel that arena battles will be restricted to. To specify this, you can mention one or more channels (e.g. #general) or use the channel's ID (e.g. 12345678).

Requirements

This command requires the CONFIG_CHANGES administrative capability.

Example Usage

The command below displays the current text channel that arena battles are restricted to, if configured.

!arena channel

The command below modifies the current arena battle channel restriction to a channel named "#off-topic".

!arena channel #off-topic

Include Unbans in Rapsheets

Description

This command modifies whether unbans should be displayed in a user's rapsheet or not. By default, unbans are not displayed in a user's rapsheet - however, through this command, this behavior can be changed.

Syntax

/configuration include_unbans_in_rapsheet {boolean}

Parameters

  • boolean - Defines whether unbans should be displayed in a user's rapsheet or not. This can be a value of either True or False.

Requirements

This command requires the CONFIG_CHANGES administrative capability.

Example Usage

The command below enables the display of unbans in a user's rapsheet.

/configuration include_unbans_in_rapsheet True

The command below disables the display of unbans in a user's rapsheet.

/configuration include_unbans_in_rapsheet False

Miscellaneous Commands

This section describes general purpose commands that do not fit within any other specific category.

Start Arena

Description

This command starts a battle in the arena between two users - the command invoker (called the "challenger"), and a target (called the "defender").

First, Bernard will mention the defender and ask for their consent. The defender has 1 minute (60 seconds) to consent to the battle - otherwise, the battle will not take place. If the defender does not consent, the challenger will be informed that the defender did not consent, so the battle did not take place.

If the target consents, the battle begins. Similarly to the !voteban command, the winner of the battle is determined through a community vote. The community can vote for the challenger by reacting with the ⚔️ emoji, or they can vote for the defender by reacting with the 🛡️ emoji. Bernard will automatically add both reactions to the battle embed for convenience. Bernard will also pin the battle embed to the channel for the duration of the vote, and will unpin the battle embed when the vote concludes.

When the vote concludes, Bernard will tally the score for the challenger and the defender. The winner of the battle is the individual with the highest score. The loser of the battle is banned for the amount of time defined by the ban-duration parameter. This ban will not appear on the loser's rapsheet.

Syntax

!arena {ban-duration} {target} {vote-timer}

Parameters

  • ban-duration - Defines how long the user (target) should be banned from the server. Combine a whole number quantity (e.g. 1, 15, 60, etc.) with a case-insensitive unit of time (e.g. s, m, d, etc.). For a permanent ban, use a phrase like perm, perma, permanent, etc. A full list of valid units of time is shown below:
    • s - Represents seconds.
    • m - Represents minutes.
    • h - Represents hours.
    • d - Represents days.
    • w - Represents weeks.
    • mo - Represents months.
    • y - Represents years.
  • target - Specifies the user to be banned. You can mention a specific user (e.g. @Bernard) or use their ID (e.g. 12345678).
  • vote-timer - Defines how long the vote should be held. Combine a whole number quantity (e.g. 1, 15, 60, etc.) with a case-insensitive unit of time (e.g. s, m, d, etc.).
    • s - Represents seconds.
    • m - Represents minutes.
    • h - Represents hours.
    • d - Represents days.
    • w - Represents weeks.
    • mo - Represents months.
    • y - Represents years.

Requirements

This command requires the START_ARENA administrative capability.

Bernard will return an error message in the following scenarios:

  • If the vote-timer parameter is set to a value lower than defined within the server through the !arena min-vote-duration command.
  • If the vote-timer parameter is set to a value higher than defined within the server through the !arena max-vote-duration command.
  • If the ban-duration parameter is set to a value lower than defined within the server through the !arena min-ban-duration command.
  • If the ban-duration parameter is set to a value higher than defined within the server through the !arena max-ban-duration command.
  • If the command invoker has moderation-related administrative capabilities.
    • This prevents moderators or administrators from accidentally participating in the arena, which could lead to them being banned from the server.
  • If the user defined by the target parameter has moderation-related administrative capabilities.
  • If the user defined by the target parameter is the Discord server owner.
  • If the user defined by the target parameter is Bernard itself.

Example Usage

The command below initiates a battle in the arena against a user named "Fred". The vote for this battle will last 5 minutes, and the ban against the loser will last for 15 minutes.

!arena 15m @Fred 5m

Create Reminder

Description

This command creates a reminder for the command invoker. When the reminder executes at the desired time, the command invoker will be mentioned in the server and text channel where the reminder was created.

Note

All reminders have a maximum duration of one year. In other words, you cannot create a reminder that will execute more than one year in the future.

Syntax

!remind {duration} {reminder-text}

Aliases

The following aliases can be used in place of !remind:

  • !remindme
  • !remember

Parameters

  • duration - Defines the amount of time until the reminder should be executed. Combine a whole number quantity (e.g. 1, 15, 60, etc.) with a case-insensitive unit of time (e.g. s, m, d, etc.). A full list of valid units of time is shown below:
    • s - Represents seconds.
    • m - Represents minutes.
    • h - Represents hours.
    • d - Represents days.
    • w - Represents weeks.
    • mo - Represents months.
    • y - Represents years.

Note

All reminders have a maximum duration of one year. In other words, you cannot create a reminder that will execute more than one year in the future.

  • reminder-text - The text associated with the reminder, which describes the purpose of the reminder. This is typically personal to the command invoker (e.g. "Do the laundry", "Make sure to feed the fish", etc.)

Requirements

By default, this command does not require any administrative capabilities. However, if the START_REMINDER administrative capability is assigned to any role in the server, then a user must be assigned that role to use this command.

Example Usage

The command below creates a reminder that will execute in 15 minutes to "Do the laundry".

!remind 15m Do the laundry

The command below creates a reminder that will execute in 2 months to "Change car tires".

!remind 2mo Change car tires

List Reminders

Description

This command displays a list of all pending reminders for the command invoker. Each pending reminder has an integer identifier associated with it, which can be used to delete the reminder using the !unremind command.

Syntax

!todo

Parameters

This command has no parameters.

Requirements

By default, this command does not require any administrative capabilities. However, if the START_REMINDER administrative capability is assigned to any role in the server, then a user must be assigned that role to use this command.

Example Usage

The command below displays a list of all pending reminders for the command invoker.

!todo

Remove Reminder

Description

This command deletes a pending reminder for the command invoker.

Syntax

!unremind {reminder-id}

Parameters

  • reminder-id - The integer identifier for the specific reminder that needs to be deleted. This can be retrieved using the !todo command.

Requirements

By default, this command does not require any administrative capabilities. However, if the START_REMINDER administrative capability is assigned to any role in the server, then a user must be assigned that role to use this command.

Example Usage

The command below deletes a reminder belonging to the command invoker with an integer identifier of "0".

!unremind 0

Hello

Description

This command verifies that Bernard is healthy and operating as expected. This command displays Bernard's current version and heartbeat latency to the Discord API gateway.

Syntax

!hello

Parameters

This command has no parameters.

Requirements

This command does not require any administrative capabilities.

Example Usage

The command below displays the current version and health of Bernard.

!hello

Support

Description

This command displays an invite to the official Bernard support Discord server. Use this server to ask questions about how to configure Bernard, if you encounter an issue that you need help troubleshooting, or if you need to report a bug.

Syntax

!support

Parameters

This command has no parameters.

Requirements

This command requires one of the following administrative capabilities:

  • ADMINISTRATOR
  • PERMA_BAN_MEMBERS
  • TEMP_BAN_MEMBERS
  • PERMA_UNBAN_MEMBERS
  • TEMP_UNBAN_MEMBERS
  • MASS_BAN_MEMBERS
  • JOIN_BAN_MEMBERS
  • INVITE_BAN
  • KICK_MEMBERS
  • WARN_MEMBERS
  • CLEANUP_MEMBERS
  • EDIT_RAPSHEET_ENTRIES
  • DELETE_RAPSHEET_ENTRIES
  • CONFIG_CHANGES
  • CONFIG_RESET
  • ROLE_VIEW
  • ROLE_PERMISSION_CHANGES
  • PERMA_MUTE_MEMBERS
  • TEMP_MUTE_MEMBERS
  • PERMA_UNMUTE_MEMBERS
  • TEMP_UNMUTE_MEMBERS
  • INVITE_BAN_MEMBERS
  • INVITE_PROTECT
  • START_VOTEBAN
  • PERMA_VOTEBAN_MEMBERS
  • ADD_NOTE

Example Usage

The command below displays an invite to the official Bernard support Discord server.

!support

Premium

Description

This command displays the current status of the server's Bernard Premium subscription.

Syntax

!premium

Parameters

This command does not have any parameters.

Requirements

This command requires the invoker to be one of the following:

  • The server owner.
  • A user with a role that has Administrator permissions in the server.
  • A user with a role that has the ADMINISTRATOR administrative capability assigned to it.

Example Usage

The command below displays the current status of the server's Bernard Premium subscription.

!premium

Help

Description

This command below displays basic help information for Bernard, including a link to Bernard's website, documentation, Getting Started guide, and the Bernard support Discord server.

Syntax

!help

Parameters

This command does not have any parameters.

Requirements

This command does not have any specific requirements.

Example Usage

The command below displays basic help information for Bernard, including a link to Bernard's website, documentation, Getting Started guide, and the Bernard support Discord server.

!help