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 |
Sì | 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:
- Verifica che il ruolo Sudoer sia stato creato (automatico al join) e posizionalo correttamente in gerarchia.
- Imposta
sudo_channel_id. - (Opzionale) Imposta
default_sudo_duration_minutesse 10 minuti non vanno bene come default. - (Consigliato) Configura
log_channel_idper 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,10minuti 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≤ 0vengono rifiutati subito con un messaggio ephemeral, senza inviare nessuna richiesta.
Il flusso di approvazione:
- Un membro esegue
/sudo(con o senzadurata) e riceve una conferma ephemeral che la richiesta è stata inviata. - 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. - 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.
- 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