Handling of blocks, silenced, restricted users
Right now we are doing basically nothing for these cases. As more users adopt lazer, it's going to become an important thing to do correctly very fast. I'd argue now is the time to focus on getting this right.
Restricted users
These users are basically jailed, and should not appear online in any way. They should not be able to interact with any online system apart from score submission.
- Cannot enter multiplayer room
- Cannot spectate other users
- Should not be spectate-able by other users
- Cannot chat
- Should not show in online users list
- Should not show presence to friends
Silenced users
These users are limited in actions they can perform to interact with others, but still appear as online as per usual.
- Cannot enter multiplayer room
- Cannot spectate other users
- Cannot chat
- Should show in online users list
- Should show presence to friends
Blocked users
This is the case where one user has blocked another and doesn't want to see / interact with them.
- Cannot enter a multiplayer room owned by the user that blocked them
- Cannot spectate the user that blocked them (or optionally matching stable, if they can, they should not show in spectator list)
- Should not show in online users list of users that blocked them
- Should not receive friend presence updates of users that blocked them
Appear offline users
This is the case where a user has set their status to "appear offline", but they can still interact with others if they choose to.
- Should not be spectate-able by other users (https://github.com/ppy/osu-server-spectator/issues/263)
- Should not show in online users list of users that blocked them
- Should not receive friend presence updates of users that blocked them
Additional considerations:
- Bancho checked silence and restricted status on an ongoing basis in the background, to ensure users which are restricted are actioned against immediately. This is going to be required. Restricted users need to almost immediately be removed from online status. Without this, we have scenarios where a potential cheater make a spectacle of themselves as users continue to spectate them being a twat (was a regular occurrence in the past).
There's probably missing details from this post, so let me know what needs to be added.
in regard to blocked users players need a way to actually block them in lazer, maybe something that can be interchangeable with osu-web and its block button on profile pages? blocking is mentioned here as a missing feature so i didnt make a new discussion/issue: https://github.com/ppy/osu/discussions/29129