Skip to content
This repository was archived by the owner on Aug 18, 2024. It is now read-only.
This repository was archived by the owner on Aug 18, 2024. It is now read-only.

Moderation alerts #4

@TheMadKingNoah

Description

@TheMadKingNoah

Overview

Guild members should be able to report rule-breaking messages to moderators by reacting with an alert emoji. This will help keep the community safe and ensure that moderators are aware of any issues that may arise.

Context

Reporting messages is an important feature for maintaining a healthy community. By providing members with a simple way to report messages, we can ensure that rule-breaking behavior is addressed quickly and efficiently. Additionally, this feature can help build trust within the community by showing that moderators are actively monitoring and addressing issues.

Functionality

The functionality of this feature can be broken down into the following sections:

Triggering Alerts

  • Alerts are triggered when a member reacts with an alert emoji on a message.
  • Alerts are not triggered by self-reactions, bots, or staff.
  • Alerts are not triggered on bots or staff.
  • If the message has already been reported, the alert is not triggered.
  • Reported messages containing certain features should have flags added to alerts, including but not limited to: Attachment, Reply, Deleted, Flooding.

Resolving Alerts

  • Once an alert is resolved, it is logged containing the reported message content, action taken, and the moderator that reviewed said alert.
  • If a moderator deletes a reported message, they will be listed as the reviewer, and nobody besides them (and other configured roles) will be able to interact with the alert.
  • The action row of an alert must contain the following button components: Resolve, Mute (30m), Mute (1h), Infractions, User Info.
  • If the reported message is deleted, the Jump to Message URL should redirect to the log of the deleted message instead.

Other Functionality

  • If the reported user gets banned, all of their alerts are cleared.
  • A notice is sent in the configured channel if the oldest alert hasn't been resolved for the configured amount of time.
  • If a different message with the same content (by the same user) is already reported, a counter is incremented on the existing alert instead.
  • The following information should be cached per alert: messageId, messageContent, channelId, userId, createdAt.

Configuration Examples

Emojis

[emojis]
alert = "<:alert:123456789123456789>"
# other properties
  • alert: Either a default Discord emoji (e.g. :warning:) or a custom emoji (format: <:emoji-name:ID>) that would be used to trigger alerts

Moderation Alerts

[moderationAlerts]
enabled = true
channelId = "123456789123456789"
notice = "2h"
expiration = "1d"
excludedRoles = ["123456789123456789"]
clearOnBan = true
  • enabled: Whether the feature is enabled or not.
  • channelId: The ID of the channel where alerts should be sent.
  • notice : The maximum amount of time an alert can remain unresolved before a notice is sent to the alert channel.
  • expiration : The maximum amount of time an alert can remain unresolved before being removed.
  • excludedRoles: A list of role IDs that should be excluded from being able to report messages.
  • clearOnBan: Whether all alerts for a user should be cleared when they are banned.

Dependencies

The following dependencies are required for full implementation:

  • Message delete logs: To ensure that the Jump to Message URL redirects to the log of the deleted message instead of the original message.
  • Member ban logs: To clear all alerts for a user when they are banned.
  • Quick mutes (30 minutes) and (1 hour): To provide moderators with a way to resolve urgent alerts instantly.
  • User info: To provide moderators with easy access to information about the reported user.
  • Infraction search: To allow moderators to easily search for past infractions of the reported user.

Layout Example

image

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions