'BanMembers' : votre éditeur les complète et refuse une faute de frappe. Rien ici n’envoie de requête : tout est calculé à partir de ce que sait le bot.
D’où viennent les permissions
Pour écrire des permissions, passez des noms à
guild.createRole(), role.edit() (RoleCreateOptions, RoleEditOptions) et channel.setPermissions().
Comment elles sont calculées
Le calcul suit les règles de permissions de Discord, en quatre étapes :- Sur le serveur. Le propriétaire peut tout faire. Sinon, un membre a ce que permet le rôle @everyone, plus ce que permet chacun de ses rôles ; un membre avec
Administratorpeut tout faire. - Dans un salon. Les remplacements du salon changent cela : d’abord celui pour @everyone, puis ceux des rôles du membre combinés, puis celui du membre lui-même. Chacun retire ce qu’il refuse, puis ajoute ce qu’il autorise. Un administrateur n’est jamais concerné par les remplacements.
- Ce qui en découle. Un membre qui ne peut pas
ViewChannelne peut rien y faire. Un membre qui ne peut pasSendMessagesne peut pas non plusMentionEveryone,SendTtsMessages,AttachFilesniEmbedLinks. - Exclusion temporaire. Un membre exclu temporairement ne garde que
ViewChanneletReadMessageHistory, sauf s’il est administrateur.
member.permissions applique les étapes 1 et 4 ; member.permissionsIn(channel) et channel.permissionsFor(member) appliquent les quatre. Un fil utilise les permissions du salon où il se trouve.
Permissions
Un ensemble de permissions qui ne change jamais : chaque opération renvoie un nouvel ensemble. Discord écrit les permissions sous forme de texte parce qu’elles ne tiennent pas dans un nombre ordinaire.Propriétés
constructor
'2048'). Sans argument, l’ensemble est vide. Un nom qui n’est pas une permission lève une TypeError :
has()
{ checkAdmin: false } est passé.
any()
missing()
add()
remove()
toArray()
toString()
toJSON()
has(), any() et missing() répondent pour un administrateur comme s’il avait tout. Passez { checkAdmin: false } à has() ou any() pour vérifier le bit exact.PermissionResolvable
Une permission, ou plusieurs : par nom, sous forme de bits, ou sous forme d’ensemble.Permissions, et chaque option qui prend des permissions, en accepte un. Autre chose qu’un nom, un bigint, un ensemble ou une liste de ceux-ci lève une TypeError :
PermissionName
Le nom d’une permission : une clé dePermissionFlags, comme listé ci-dessous.
Documentation de Discord
PermissionFlags
Le bit de chaque permission, par nom :PermissionFlags.BanMembers vaut 4n (1n << 2n). C’est ce dont est fait PermissionName, et ce par rapport à quoi bits est lu.
| ou les comparer à un nombre venu d’ailleurs.
Documentation de Discord
La hiérarchie
Avoir une permission ne suffit pas toujours : un membre ne peut expulser, bannir, renommer ou donner des rôles qu’aux membres dont le rôle le plus haut est en dessous du sien.member.isHigherThan(other) et role.isHigherThan(other) répondent à cela. Il en va de même pour votre bot : son rôle le plus haut doit être au-dessus du membre qu’il modère.
Documentation de Discord