Discord.py modifier une permission
Résolu/Fermé
MathKode
Messages postés
25
Date d'inscription
mardi 25 février 2020
Statut
Membre
Dernière intervention
10 juin 2022
-
Modifié le 4 mars 2022 à 15:51
mamiemando Messages postés 33367 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 19 novembre 2024 - 7 mars 2022 à 15:02
mamiemando Messages postés 33367 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 19 novembre 2024 - 7 mars 2022 à 15:02
A voir également:
- Discord.py modifier une permission
- Modifier dns - Guide
- Modifier liste déroulante excel - Guide
- Modifier une story facebook - Guide
- Comment modifier un pdf - Guide
- Modifier sa voix en direct - Guide
1 réponse
mamiemando
Messages postés
33367
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
19 novembre 2024
7 801
4 mars 2022 à 16:04
4 mars 2022 à 16:04
Bonjour,
D'après cette page, les permissions discord sont encodées à l'aide d'un masque, dont chaque bit correspond à une permission (1 si la permission est autorisée, 0 sinon). Par exemple :
Donc ce que tu pourrais faire c'est définir dans ton programme python une variable par permission, puis faire le OU logique (avec
D'après cette page, les permissions discord sont encodées à l'aide d'un masque, dont chaque bit correspond à une permission (1 si la permission est autorisée, 0 sinon). Par exemple :
-
CREATE_INSTANT_INVITE
correspond au 1er bit de poids faible (1 << 0 == 1
). -
KICK_MEMBERS
correspond au 2e bit de poids faible (1 << 1 == 1
). -
BAN_MEMBERS
correspond au 3e bit de poids faible (1 << 2 == 2
). - ...
Donc ce que tu pourrais faire c'est définir dans ton programme python une variable par permission, puis faire le OU logique (avec
|) des permissions à activer en fonction de ta liste.
MAP_PERMISSION_VALUE = { "create_instant_invite" : 1 << 0, "kick_members" : 1 << 1, "ban_members" : 1 << 2, # ... "speak" : 1 << 21, } def make_permission(tuples): ret = 0 for (name, enabled) in tuples: value = MAP_PERMISSION_VALUE[name] if enabled: ret |= value return ret print( make_permission([ ("speak", False), ("ban_members", True) ]) ) print( make_permission([ ("speak", True), ("ban_members", True) ]) )
4 mars 2022 à 17:34
4 mars 2022 à 17:40
Modifié le 7 mars 2022 à 15:03
Effectivement yg_be, d'après la documentation. Le code que tu proposes s'écrit plus naturellement :
Toujours d'après la documentation, tu peux également passer par ses propriétés :
Bonne chance