by 0xcf10cd8b5dc2323b1eb6de6164647756bad4de4d (Eibriel)
Following on my 2 previous proposals to improve the moderation and safety tools on Decentraland.
This one improves on the previous ones by allowing the owners of a land to fully control the moderation of their own scenes, without affecting other scenes.
When developing a scene with the SDK a new new element can be added to requiredPermissions
on scene.json
: ALLOW_TO_BLOCK_USERS_INSIDE_SCENE
.
The developer can call to blockUser()
With the following parameters
setUserBlockStatus(
"0x000....",
{
chat: true,
voice: true,
avatar_sounds: true
}
)
That call will instruct the Client to block (or unblock) an user while the player’s avatar is inside the scene, for the duration of the current session. A notification could be shown to the player to let them know about the change.
This will allow for the following:
- PlayerA enters the scene
- PlayerB enters the scene and starts harassing other players via voice
- A moderator sets
voice: false
on a server for PlayerB - Since PlayerA’s scene has the necessary logic to connect to that server it receives the change, and executes
setUserBlockStatus
with PlayerB’s address andvoice: false
as parameters - If PlayerB exits the scene PlayerA still can’t hear PlayerB
- If PlayerA also exits the scene PlayerA can now hear PlayerB
All the logic on who should be blocked is handled exclusively in the scene’s code (with the aid of an optional authoritative server), without any involvement of the Catalysts.
- Implement it
- Don’t implement it
- Invalid question/options