Déduites automatiquement
Tu ne choisis jamais les permissions. En blocs, elles viennent des actions utilisées. En code, l’éditeur lit tes appels : ctx.send( demande « Envoyer des messages », ctx.voice.play( demande « Rejoindre un salon vocal et jouer du son »… La liste apparaît dans « Ce que le module demandera » et dans l’onglet Publier.
Les cas que l’éditeur ne devine pas (code)
Quand une route Discord est construite dynamiquement, l’éditeur ne peut pas la lire. Déclare alors la permission avec module.uses :
module.uses('roles.manage');
module.command('couleur', async (ctx) => {
const chemin = '/guilds/' + ctx.server.id + '/roles';
await ctx.discord.post(chemin, { name: 'Bleu', color: 0x86a8cf });
});Sans la permission, l’appel échoue avec un message clair : « Permission non accordée : … Ajoute module.uses('…') dans le code puis republie le module. »
Liste complète
| Identifiant | Ce que voit l’admin | Niveau |
|---|---|---|
messages.send | Envoyer des messages dans les salons choisis | Faible |
messages.dm | Envoyer des messages privés aux membres | Moyen |
roles.assign | Donner et retirer des rôles aux membres | Moyen |
channels.create | Créer des salons | Moyen |
members.timeout | Rendre muets des membres | Élevé |
members.kick | Expulser des membres | Élevé |
members.ban | Bannir des membres | Élevé |
members.nickname | Changer le pseudo des membres | Moyen |
messages.manage | Supprimer et épingler des messages, ajouter des réactions | Moyen |
channels.manage | Fermer et rouvrir des salons, créer des fils de discussion | Moyen |
messages.read | Lire l’historique des messages et les réactions | Moyen |
messages.everyone | Mentionner @everyone et @here | Élevé |
channels.delete | Supprimer des salons et des fils | Élevé |
channels.permissions | Modifier les permissions des salons | Élevé |
roles.manage | Créer, modifier et supprimer des rôles | Élevé |
members.read | Lire la liste complète des membres | Faible |
members.voice | Déplacer, rendre muet ou déconnecter des membres en vocal | Moyen |
server.manage | Modifier le serveur (nom, icône, réglages, accueil) | Élevé |
expressions.manage | Gérer les emojis, stickers et sons | Moyen |
events.manage | Gérer les événements programmés et les conférences | Moyen |
invites.manage | Créer, lire et supprimer des invitations | Moyen |
webhooks.manage | Créer et utiliser des webhooks (nom et avatar personnalisés) | Moyen |
automod.manage | Gérer les règles d’AutoMod | Élevé |
audit.read | Lire le journal d’audit du serveur | Moyen |
network.fetch | Contacter des sites extérieurs | Moyen |
voice.play | Rejoindre un salon vocal et jouer du son | Moyen |
Ce qui reste toujours interdit
- Agir sur un autre serveur que celui de l’installation.
- Donner à un rôle : Administrateur, Gérer le serveur, Gérer les rôles ou Gérer les webhooks.
- Donner un rôle qui a des permissions sensibles, ou un rôle au-dessus de celui d’Opale.
- Toucher au propriétaire du serveur, aux administrateurs et aux membres au-dessus d’Opale (expulsion, bannissement, exclusion, pseudo).
- Mentionner @everyone et @here sans la permission « messages.everyone ».
- Contacter un site qui n’est pas déclaré.