bot icon indicating copy to clipboard operation
bot copied to clipboard

Automated temporary voice access for new users

Open Mindful-Developer opened this issue 5 months ago • 2 comments

Mautovoice (moderated auto-voice) would let new users bypass the voice gate by granting temporary permissions to un-gated users when a supervising moderator is present in a public voice channel. This will hopefully cut down on spamming and provide a better experience for people wanting to chat on the server.

How it should work:

  • System activates when a moderator-role member (not mod-team) joins a public voice channel and is not deafened.
  • Bot automatically grants temporary speaking permissions to un-gated users in that channel.
  • Users with active timeouts or those who join the server after the moderator has entered the channel will not receive permissions.
  • Permissions automatically revert when the last active, non-deafened moderator leaves or deafens. The standard voice gate reactivates.
  • Users receive in-chat notifications about temporary permissions. The bot moves them to an AFK channel and back to apply changes without manual re-connection. This also happens when the permissions are revoked.
  • Moderators can use !mautovoice to permanently toggle their system activation preference. This preference will be persisted across bot reboots.

For voice raids, moderators can quickly deactivate the system by using !mautovoice

Mindful-Developer avatar Jul 23 '25 01:07 Mindful-Developer

This is my understanding. Use the on_voice_state_update event Check if: -The member has the moderator role (but not “mod-team”). -The channel is public (not private or stage). -The moderator is not deafened.

Grant temporary permissions using await channel.set_permissions(member, speak=True) or grant a temporary “speak” permission to a specific role like everyone

And then check if the person has any active infacs(i don't know how to do this but I think member.communication_disabled_until for the infacs and member.joined_at timestamp with the moderator joined timestamp for checking if they joined server after moderator) and then to move them to an afk channel: await member.move_to(afk_channel) or await member.move_to(original_channel)

and the !mautovoice command would probably be in bot/ext/moderation

I expect this to take around 100-200 lines?

DragonSenseiGuy avatar Oct 11 '25 18:10 DragonSenseiGuy

btw I would be willing to take this up.

DragonSenseiGuy avatar Oct 11 '25 20:10 DragonSenseiGuy