web-dev-qa-db-ja.com

message.guild.roles.findは関数ではありません

チュートリアルに従ってボットにミュート機能を追加しようとしています。ビデオmessage.guild.roles.findは、変数内でロールを宣言するために使用されます。同じ正確なコードを使用していると、関数ではないというエラーがスローされます。このビデオは1年前に作成されました。はmessage.guild.roles.find非推奨?

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

はい、使用する必要がありますmessage.guild.roles.cache.find、v12はマネージャを使用するため。 documentation を読んで、他の変更を自分で見つけることができます^^

5
Androz2091