Bot discord en js

J'aimerais reconnaitre le role d'une personne désigné

a marqué ce sujet comme résolu.
Auteur du sujet

Bonjour, j’aimerais que lors qu’on effectue : *reset @AceSomme#6630 sa m’actualise sa page yml. Pour le moment, l’actualisation fonctionne bien. Mais j’ai comme même un problème : Je n’arrive pas a trouver le rôle de la personne (dans ce cas : de AceSomme#6630). Merci de bien vouloir m’aider :

    if(msg.content.startsWith(prefix + 'reset')){
        const args = msg.content.split(' ').slice(1);
        const user = msg.mentions.users.first();
        console.log(user)
    if(!user){
        return msg.reply("Utilisateur non trouvé / inexistant")
    }else{
        fs.exists(`./data/${user.username}.yml`,function(exists){ 
            if (exists){ 
                var fichier = yaml.safeLoad(fs.readFileSync(`./data/${user.username}.yml`, 'utf8'));
                const ajout = (parseInt(fichier.STAFF) + parseInt(user.member.roles.has(680444582328401928)))
                yaml.safeLoad(fs.writeFileSync(`./data/version.yml`, `Warns: ${fichier.Warns}\nSTAFF: ${ajout}`, 'utf8'));    
            }
        })
    }}  

Une aide un peu utile : l’erreur viendrai d’ici : parseInt(user.member.roles.has(680444582328401928))

+0 -0
Auteur du sujet

Et j’aimerais aussi savoir si l’utilisateur a la permission :

    if(msg.content.startsWith(prefix + 'reset')){
        const args = msg.content.split(' ').slice(1);
        const user = msg.mentions.users.first();
        console.log(user)
    if(!user){
        return msg.reply("Utilisateur non trouvé / inexistant")
    }else{
        if(user.member.hasPermission('KICK_MEMBERS', false, false)){
            const kick = true
        }else{
            const kick = false
        }
        fs.exists(`./data/${user.username}.yml`,function(exists){ 
            if (exists){ 
                var fichier = yaml.safeLoad(fs.readFileSync(`./data/${user.username}.yml`, 'utf8'));
                const ajout = (parseInt(fichier.STAFF) + parseInt(kick))
                yaml.safeLoad(fs.writeFileSync(`./data/version.yml`, `Warns: ${fichier.Warns}\nKick: ${ajout}`, 'utf8'));   
            }
        })
    }}  

Or, Quand c’est user.hasPermission : TypeError: user.hasPermission is not a function Quand c’est user.member.hasPermission TypeError: Cannot read property 'hasPermission' of undefined

+0 -0

Salut,

Je ne m’y connais pas, mais vu le nom, use.member.role.has semble renvoyer un boléen et toi tu essaies de parser un entier à partir de ce booléen. Ça ne m’étonne pas trop que ça ne fonctionne pas. Tu pensais faire quoi avec cette ligne ?

PS : ton titre n’est pas très parlant, c’est le deuxième sujet que tu postes avec ce titre, ça va être difficile de s’y retrouver à la fin. Essaie de le changer pour un titre plus parlant. ;)

EDIT : pour ton second problème, ce sujet devrait t’aider je pense.

Édité par Karnaj

Assez des salamis, je passe au jambon — Je fais un carnage si ce car nage car je nage, moi, Karnaj ! — Le comble pour un professeur de mathématique ? Mourir dans l’exercice de ses fonctions.

+0 -0

Une aide un peu utile : l’erreur viendrai d’ici : parseInt(user.member.roles.has(680444582328401928))

acesomme1602

Les ID Discord ne sont pas des entiers mais des chaînes de caractères. Essaie :

user.member.roles.has('680444582328401928')

Et j’aimerais aussi savoir si l’utilisateur a la permission.

Or, Quand c’est user.hasPermission : TypeError: user.hasPermission is not a function Quand c’est user.member.hasPermission TypeError: Cannot read property 'hasPermission' of undefined

acesomme1602

Un utilisateur n’as pas de permission car il s’agit des données de ton compte quelque soit le serveur ou le message privé. Ça serait par exemple l’avatar ou le tag (pseudonyme + # + 4 chiffres).

Qu’affiche console.log(user) dans la console ?

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte