discord-csharp / MODiX

Discord Bot handling basic moderation needs, soon implements statistics.
MIT License
115 stars 63 forks source link

Proposal: Soft bans #276

Closed patrickklaeren closed 6 months ago

patrickklaeren commented 5 years ago

Summary

Allow for users to be "soft banned" into a new role that allows for users to read a locked channel's content that describes an appeal process for the guild.

Motivation

Discord's ban process leaves a lot to be desired, especially when, for a lot of the bans the guild enforces could allow for room to be appealed - the end user, being banned, does not know this, however. In some instances users should be given fair benefit of the doubt to rejoin the community.

Detailed design

A new !softban command should be added to MODiX which strips users of any and all roles, and assigns a new SOFT BANNED role. This role would expose a new readonly channel where a ban appeal process can be posted for the newly soft banned user to read about the proces to appeal.

Example usage: !softban @Inzanit Writing too long of a proposal Example API: !softban {user} {reason}

As MODiX supports multi tenancy, this functionality should be able to be toggled on and off. If turned off, the !softban command should notify the user.

JakenVeina commented 5 years ago

I was thinking this recently, too, on account of the discussions about ban appeals.

My thought at the time was, "how would this mesh with people wanting to perform manual Discord bans, rather than through MODiX?" This was explicitly a feature requested by the mod/admin team when we first started considering MODiX moderation, and the use-case cited was the need for quick bans during raids.

An alternative to this might be to have MODiX send a DM to users that are banned, whether through the command or through the Discord UI, indicating the reason, and the potential process for appeals.

Scott-Caldwell commented 5 years ago

Some thoughts:

mastorm commented 5 years ago

and the use-case cited was the need for quick bans during raids. Raiders wouldnt be banned by a soft ban, and a raid is the only situation where a ban through discords banning system is warranted. I like the idea of softbanning.

patrickklaeren commented 5 years ago

RE: Sending comments @JakenVeina @Scott-Caldwell

There's always the issue of people having DMs turned off. If MODiX were to send DMs, I think it should be in addition to the user being locked to the readonly channel. That way, if they have DMs turned off, they'll at least see the channel if they revisit the server.

RE: Persisting roles @Scott-Caldwell

Good point - the user could just leave the guild and rejoin to have all normal privileges back. I assume a new query will need to be executed on join to check if the user has been soft banned and apply this role immediately. Shame Discord doesn't do this natively.

Foxtrek64 commented 5 years ago

The way I've handled this is in the past with my bots is the following, depending on the type:

Temp-ban (duration specified)

  1. Send the user a PM regarding the ban - the reason why and the duration of the ban.
  2. Add a reaction to the message and have the user click that button if they wish to be given a new one-time join link when their temp-ban expires
  3. Ban the user.

This should all happen within a second, usually less (though it varies on how CloudFlare is feeling that day).

Permaban with appeal Same as above, but it sends the person a link to where they can apply to be unbanned. I typically use google docs for this, but we could also see it be worked into modix (perhaps a link with the user's id and the ban record id, but in a post request so they can't modify the url and apply for someone else. Include both, because if just one is provided, it'd be easy to change it and apply as a different person. This assumes they don't just log in through the standard oauth cycle.) Also, the reaction is not necessary in this case.

In regards to the reaction on the permaban, my staff did request at one point to have a duration before they're allowed to appeal, so perhaps that can be used in that way.

sylveon commented 5 years ago

Sending a PM is unreliable because users might have private messages disabled for that server.

patrickklaeren commented 6 months ago

As part of a new effort to refocus on priorities, I will close this. If you feel this is imperative to the bot, a new issue can be opened to supersede this.