A248 / LibertyBans

The be-all, end-all of discipline.
https://ci.hahota.net:8443/job/LibertyBans/
GNU Affero General Public License v3.0
165 stars 40 forks source link

[Feature Request]: Send ban notice to player on first join after their ban expires. #232

Open accLarson opened 1 year ago

accLarson commented 1 year ago

I have confirmed that ...

Description

While many bans are given while the offender is online, many bans are also given to offline players. It is currently possible to receive a ban while offline, for example a 5 day ban, and join the server again in 7 days (weekend warrior) and never know of the ban. If the player never knew about the ban, it's 0% effective as a deterrent for repeat offences; in their minds they haven't been caught yet.

I propose that when a player first connects after having been being banned, they should be sent a message indicating their ban. Maybe something like:

Welcome Back! You were banned for %REASON% on %START_DATE% for %DURATION%.

This message would be one time only and simply aims to ensure every banned players has a reasonable opportunity to know of their ban.

Thanks for reading! : )

SrBedrock commented 1 year ago

I think it's a good idea to send a warning when the player enters after receiving a warning or if there is a warning in progress as well

A248 commented 1 year ago

One issue with implementing this feature is one can never really know whether a player received the message sent to them. The server doesn't provide guarantees that a chat message was sent; a player can connect and disconnect (thereby receiving any notifications) while the message is still in the pipeline. The player might even receive the message but disconnect within the same second, and thus not see it.

Such concerns matter when your purpose is to inform users of their punishments. If you set thr expectation that players will be automatically notified of their previous punishment, you might actually cause more trouble for the user who doesn't see the notification due to a quick disconnect; with such expectations, a fall through the cracks in the automatic notification system is potentially more likely to be overlooked than in the absence of automatic notifications.

If the player never knew about the ban, it's 0% effective as a deterrent for repeat offences; in their minds they haven't been caught yet.

I consider your purpose here, and I wonder if there is a different, even better, solution for deterrence. Perhaps you seek a kind of probation system, whereby players are notified if their current record is in murky waters rules-wise. Staff could mark players as under probation, and players would be notified on every join of their status, as opposed to just once. This could be further developed into a points-based probation system, although such a mechanism feels similar to warnings.

A similar idea, which might satisfy your needs, would be to send players their active warnings every time they join. If you want to deter past rulebreakers, ban them and set a warning that lasts for longer. With the LibertyBans API, automatically creating a complimentary warning to every ban requires only a few lines of code. Ultimately, I believe that tracking whether a player has received messages is ineffective, and that any notifications would be better sent on every join.

accLarson commented 1 year ago

I see your concern with this feature however in my opinion I believe a simple notification on first login post ban would still be quite effective and simple.

You are right that there could be no certainty that the previously banned player would receive the message when logging in again however I feel its still worth implementing. The goal is not to have certainty of the ban notification being seen, but rather just providing a likely opportunity to notify about the ban. For slightly better results, delay the message until the player has been online for a configurable amount of seconds (3?) before sending; if they log off before that time, don't send it and delay till the next login. Another method of increasing likelihood of the message being seen would be a configurable count of login events (3?) for which the plugin would send the notification on.

Although your suggested ideas may work for some, they are not ideal for my case.

If you still have concerns with this feature, I have a secondary idea which would provide much more certainty in delivering the notification but would be far less "smooth". On a player's first login after their ban, immediately kick them with a customizable message. The key here is to ensure the message indicates they are no longer banned and can re-log immediately. I'd much rather the chat notification on login but a kick would likely satisfy your desire for guaranteed notifying.