Messaggio Sticky (/sticky)
Trasforma un messaggio esistente in un messaggio "sticky" che resta sempre in fondo al canale, ripubblicandosi automaticamente ad ogni nuovo messaggio.
/sticky permette di trasformare un messaggio già esistente in un messaggio sticky: da quel momento il bot ne mantiene una copia sempre in fondo al canale. Ogni volta che qualcuno scrive un nuovo messaggio, il bot elimina la copia corrente e ne invia subito una identica, così resta sempre l'ultimo messaggio visibile.
Il bot copia interamente il messaggio indicato: testo, embed, bottoni/select ed eventuali allegati. Il messaggio originale può essere cancellato subito dopo senza alcuna conseguenza sullo sticky.
La feature è per canale: ogni canale può avere al massimo uno sticky attivo, e sopravvive ai riavvii del bot.
Comandi
| Comando | Descrizione |
|---|---|
/sticky set message_id:<id> [canale:<canale>] |
Cattura il messaggio indicato (per default nel canale corrente) e lo rende sticky. Se il canale ha già uno sticky attivo, lo sostituisce. |
/sticky remove [canale:<canale>] |
Disattiva lo sticky di un canale, cancellando l'ultima copia pubblicata. |
/sticky info [canale:<canale>] |
Mostra se un canale ha uno sticky attivo e alcuni dettagli (messaggio corrente, chi l'ha impostato, numero di allegati). |
/sticky non è utilizzabile in DM, solo nei server.
Come funziona
- Prepara nel canale il messaggio che vuoi rendere sticky (testo, embed, bottoni...), poi recuperane l'ID (con la modalità sviluppatore di Discord attiva: tasto destro sul messaggio → "Copia ID messaggio").
- Esegui
/sticky set message_id:<id>. - Il bot cattura una copia del messaggio e la pubblica subito in fondo al canale.
- Da quel momento, ogni messaggio scritto nel canale (da chiunque) fa scattare un bump: la copia corrente viene eliminata e una nuova viene inviata in fondo, per restare sempre l'ultimo messaggio.
- Per evitare di ripubblicare lo sticky una volta per ogni messaggio durante una raffica ravvicinata, c'è un piccolo ritardo (circa 3 secondi): se arrivano più messaggi in quella finestra, il bump avviene una sola volta.
/sticky removedisattiva lo sticky ed elimina la copia corrente.
Se il canale aveva già uno sticky attivo, eseguire di nuovo /sticky set sostituisce quello precedente.
Limiti da conoscere
- Se il messaggio copiato contiene bottoni o menu con una logica propria non gestita da UrbanBoi (es. di un altro bot), quei componenti restano visivamente identici ma non funzionanti nella copia: si replica l'aspetto, non il comportamento di codice esterno.
- Se un embed fa riferimento a un'immagine tramite l'allegato del messaggio originale (non un vero allegato del messaggio catturato), quell'immagine può smettere di funzionare se il messaggio originale viene cancellato dopo la cattura. Gli allegati veri e propri del messaggio, invece, restano sempre disponibili nella copia.
- Un solo sticky attivo per canale.
Pulizia automatica
Lo sticky di un canale viene rimosso automaticamente (copia eliminata, dati ripuliti) se:
- il canale viene cancellato;
- il bot viene rimosso dal server;
- imposti un nuovo sticky sullo stesso canale (sostituisce il precedente).
Log degli eventi
Se hai configurato log_channel_id (vedi Per Iniziare), il bot registra in quel canale:
- ogni sticky impostato o rimosso
- permessi insufficienti nel leggere il messaggio sorgente o nel bumpare lo sticky
- errori Discord nell'inviare o cancellare una copia
Errori dovuti a input dell'utente (ID messaggio non valido, messaggio non trovato, nessuno sticky da rimuovere) restano solo risposte dirette a chi ha eseguito il comando, senza generare log.
Permessi richiesti
Oltre ai permessi base indicati in Per Iniziare, questa feature richiede specificamente:
- Gestisci Messaggi - richiesto sia per usare
/sticky(verificato nel canale in cui lo esegui) sia al bot, per eliminare la vecchia copia ad ogni bump - Allega File - necessario se il messaggio reso sticky contiene allegati