Icona
Urban Boi
HomepagePartnersGDPDocsStatus
Aggiungi il Bot

Introduzione

Per Iniziare

Features

moderazione

Canale Bait (Anti-Scam)

Ruolo Sudoer (/sudo)

Messaggio Sticky (/sticky)

utility

Ruolo Sudoer (/sudo)

Comando che permette a un membro di richiedere temporaneamente il ruolo Sudoer (permessi da Amministratore), soggetto ad approvazione manuale.

/sudo permette a un membro del server di richiedere temporaneamente il ruolo Sudoer, un ruolo con permesso Discord Administrator. La richiesta non viene mai concessa in automatico: va sempre approvata a mano da un Amministratore tramite bottoni su un messaggio dedicato. Una volta approvata, il ruolo viene rimosso automaticamente allo scadere della durata richiesta (default 10 minuti, personalizzabile fino a un massimo di 5 ore).

La feature è per-server: ogni server ha il proprio ruolo Sudoer, il proprio canale richieste e la propria durata, isolati dagli altri.

Come attivarlo

Chiave Obbligatoria Descrizione
sudo_channel_id Canale dove arrivano le richieste di approvazione. Il bot deve poterci scrivere e menzionare @everyone.
sudo_role_id Impostata automaticamente Il ruolo Sudoer da assegnare/revocare. Vedi sotto.
default_sudo_duration_minutes No (default 10) Durata in minuti usata quando /sudo viene eseguito senza specificare una durata custom.
/config set chiave:sudo_channel_id valore:<id-canale>
/config set chiave:default_sudo_duration_minutes valore:<minuti>

Richiede permesso Amministratore, come tutti i sottocomandi di /config.

Note

Questa chiave si chiamava in precedenza sudo_duration_minutes: se l'avevi già impostata, aggiornala con il nuovo nome.

Il ruolo "Sudoer" viene creato automaticamente dal bot al momento dell'ingresso nel server, con permesso Administrator, colore rosso e visibile separatamente nella lista membri. Il suo ID viene salvato da solo in sudo_role_id: non serve impostarlo a mano, a meno che la creazione automatica fallisca per permessi mancanti (in quel caso il bot lo segnala nel messaggio di benvenuto, con l'indicazione di crearlo manualmente e collegarlo con /config set chiave:sudo_role_id valore:<ruolo>).

Warning

Dopo la creazione, posiziona il ruolo Sudoer nella gerarchia dei ruoli sotto al ruolo del bot (altrimenti Discord impedirà al bot di assegnarlo/rimuoverlo) e sopra i ruoli a cui non deve dare accesso quando qualcuno viene elevato temporaneamente.

Checklist minima:

  1. Verifica che il ruolo Sudoer sia stato creato (automatico al join) e posizionalo correttamente in gerarchia.
  2. Imposta sudo_channel_id.
  3. (Opzionale) Imposta default_sudo_duration_minutes se 10 minuti non vanno bene come default.
  4. (Consigliato) Configura log_channel_id per non perdere visibilità sulle richieste.

Come funziona

/sudo [durata:<durata>]
  • durata è opzionale. Formato: <numero>*<unità>, con più unità concatenabili con uno spazio, es. 30*min, 1*h, 2*h 30*min.
  • Se omesso, viene usata la durata di default del server (default_sudo_duration_minutes, 10 minuti se non configurata).
  • Massimo consentito: 5 ore (300 minuti), indipendentemente dal default configurato sul server. Una durata superiore, un formato non valido (es. boh) o un valore ≤ 0 vengono rifiutati subito con un messaggio ephemeral, senza inviare nessuna richiesta.

Il flusso di approvazione:

  1. Un membro esegue /sudo (con o senza durata) e riceve una conferma ephemeral che la richiesta è stata inviata.
  2. Nel canale richieste compare un messaggio che menziona @everyone, con un embed che indica chi ha richiesto il ruolo e per quanti minuti, e due bottoni: Approva e Rifiuta.
  3. Un Amministratore clicca uno dei due bottoni:
    • se rifiutata, il messaggio viene aggiornato mostrando chi ha rifiutato e i bottoni vengono disabilitati;
    • se approvata, il bot assegna il ruolo Sudoer al richiedente e il messaggio viene aggiornato mostrando chi ha approvato.
  4. Trascorsa la durata indicata nella richiesta originale, il ruolo viene rimosso automaticamente senza bisogno di alcuna azione manuale.

Note

La durata mostrata nell'embed è quella che verrà effettivamente applicata all'approvazione, anche se nel frattempo default_sudo_duration_minutes viene cambiato sul server: la richiesta "ricorda" la durata al momento in cui è stata creata.

Le richieste rimaste in sospeso restano valide anche in caso di riavvio del bot: i bottoni continuano a funzionare normalmente al suo ritorno online.

Chi può richiedere e chi può approvare

  • Richiedere: qualsiasi membro del server, senza permessi particolari.
  • Approvare o rifiutare: solo membri con permesso Amministratore, verificato ad ogni click sul bottone. Chi non ha il permesso riceve un avviso ephemeral e non succede nulla.
  • Un utente non può avere più di una richiesta in attesa contemporaneamente, né richiedere il ruolo se lo possiede già.
  • Se due Amministratori cliccano Approva/Rifiuta nello stesso momento, solo il primo ha effetto: il secondo riceve un avviso che la richiesta è già stata gestita.

Limiti da conoscere

  • Se il ruolo del bot ha una posizione troppo bassa in gerarchia rispetto al ruolo Sudoer, sia l'assegnazione che la rimozione falliranno (errore Discord): serve sistemare manualmente la gerarchia dei ruoli. L'errore viene comunque registrato nei log (se configurati).
  • Se il ruolo Sudoer o il canale richieste vengono cancellati, il comando se ne accorge a runtime e risponde con un messaggio ephemeral che invita a contattare un amministratore, invece di fallire silenziosamente.

Log degli eventi

Se hai configurato log_channel_id (vedi Per Iniziare), il bot registra in quel canale, tra le altre cose:

  • ogni richiesta inviata, approvata o rifiutata (con chi ha gestito la richiesta)
  • ogni rimozione automatica del ruolo a scadenza
  • errori di configurazione (canale o ruolo non trovato) ed errori nell'assegnare/rimuovere il ruolo (es. problemi di gerarchia)

Permessi richiesti

Oltre ai permessi base indicati in Per Iniziare, questa feature richiede specificamente:

  • Gestisci Ruoli - per creare il ruolo Sudoer al join, e per assegnarlo/rimuoverlo ai membri
  • Invia Messaggi e Menziona @everyone - nel canale impostato come sudo_channel_id, per notificare le richieste
Precedente

Canale Bait (Anti-Scam)

Successivo

Messaggio Sticky (/sticky)