web-dev-qa-db-fra.com

message.guild.roles.find n'est pas une fonction

J'essaye d'ajouter une fonction mute à mon bot en suivant un tutoriel. Sur la vidéo message.guild.roles.find est utilisé pour déclarer un rôle dans une variable. J'utilise le même code exact et cela me lance une erreur en disant que ce n'est pas une fonction. La vidéo a été réalisée il y a 1 an. Est message.guild.roles.find obsolète?

var person  = message.guild.member(message.mentions.users.first() || message.guild.members.get(args[1]));
    if(!person) return  message.reply("I CANT FIND THE USER " + person)

    let mainrole = message.guild.roles.find(role => role.name === "Member");
    let role = message.guild.roles.find(role => role.name === "Muted");


    if(!role) return message.reply("Couldn't find the mute role.")


    let time = args[2];
    if(!time){
        return message.reply("You didnt specify a time!");
    }

    person.removeRole(mainrole.id)
    person.addRole(role.id);


    message.channel.send(`@${person.user.tag} has now been muted for ${ms(ms(time))}`)

    setTimeout(function(){

        person.addRole(mainrole.id)
        person.removeRole(role.id);
        console.log(role.id)
        message.channel.send(`@${person.user.tag} has been unmuted.`)
    }, ms(time));
2
Elitezen

Oui, vous devez maintenant utiliser message.guild.roles.cache.find, puisque la v12 utilise des gestionnaires. Vous pouvez lire la documentation pour trouver les autres changements par vous-même ^^

5
Androz2091