Discord. js команда, дающая роль - PullRequest
0 голосов
/ 17 июня 2020

, поэтому я пытаюсь создать команду, в которой вы набираете $test, и она дает вам, например, роль «Тест». Это мой текущий код, но я продолжаю получать сообщение об ошибке: «Не удается прочитать свойство 'addRole' of undefined»

const Discord = require("discord.js");
const { send } = require("process");
const { clear } = require("console");
const client = new Discord.Client();
var prefix = "$";

client.login("token");

//TEST COMMAND
client.on("message", message => {

    if (message.content.startsWith(prefix + "test")) {
        message.channel.send("You have been given `Need to be tested` role! You will be tested shortly!")
        client.channels.get("701547440310059059").send(` please test ${message.author}!`)
        const member = message.mentions.members.first();
        let testRole = message.guild.roles.find(role => role.id == "609021049375293460")
        member.addRole(testRole)
        
    }})
    
    
client.on('ready',()=>{
    console.log(`[READY] Logged in as ${client.user.tag}! ID: ${client.user.id}`);
    let statuses = [
        "  status "
    ]
    setInterval(function(){
            let status = statuses[Math.floor(Math.random() * statuses.length)];
            client.user.setActivity(status, {type:"WATCHING"})
    
        }, 3000) //Seconds to Random
});

Пожалуйста, дайте мне знать, как я могу сделать это легко или что-то в этом роде.

Ответы [ 2 ]

0 голосов
/ 17 июня 2020

Хорошо, вы получаете сообщение об ошибке Cannot read property 'addRole' of undefined.

Это означает, что переменная-член не определена, что может быть вызвано тем, что вы не упомянули член.

В этой строке вы указываете const member = message.mentions.members.first();, что означает, что при запуске команды вы должны упомянуть кого-то, кому нужно добавить роль.

Надеюсь, это поможет.

0 голосов
/ 17 июня 2020

В разногласиях. js v12 , GuildMember не имеет функции .addRole, нужно использовать GuildMemberRoleManager's .add, также нужно добавить .cache при получении ролей с сервера, например:

const member = message.mentions.members.first();
        let testRole = message.guild.roles.cache.find(role => role.id == "609021049375293460")
        member.roles.add(testRole)
...