-
Notifications
You must be signed in to change notification settings - Fork 42
Description
While adding or removing punishments, we aim for reducing ambiguity, as much as possible. We pick the most recent UUID with a given username, we unban both UUIDs and composite victims depending on which is present. This is an example of a "leaky abstraction": we try our best to provide simple, upfront handling, but the underlying complexity is capable of causing further problems.
To solve this, LibertyBans should develop a more extensive punish/unpunish interface. There are many factors that complicate referring to existing bans, referring to existing players, and selecting victims and IP addresses. We should be more cognizant of them:
- Staff can punish IP addresses, but IP addresses can change. Using the same name with /ipban and /unbanip might not always work.
- Players can change their names. Maybe a staff member looked at old logs, but someone recently logged in and stole the username.
- A player can have UUID-based punishments, IP-based punishments, or composite punishments.
- In version 2.0, we will remove the restriction on having multiple punishments of a certain type apply to the same victim. On punish, we should prompt a dialog in the case of existing punishments (including for overlapping victims).
To fix this, we should open a selection dialog for the staff member. Allow them to choose the player who is banned, the IP address selected, or the punishment to remove. Also, we should continue existing smart practices, like allowing /unban
to find an IP ban.
All of this should be presented to the staff member so they can choose from the available options. For example:
‘Since his last ban, his IP has changed to these: [and here list all linked IPs]. Do you want to remove all IP bans linked to this player?’
-- suggestion by trazodana (Discord)