2017-12-29 83 views
0

이 코드는 잘 작동합니다. 사용자가 역할을 갖고 있는지 확인하고, ID, 식별자 및 사용자 이름으로 모든 사용자를 기록합니다. 나는 그저 역할을 얻을 수 없다. 너희들도 도와 줄 수 있니?Discordjs는 사용자에게 역할이 있는지 확인합니다.

client.on('ready',() => { 
    console.log(`logged in as ${client.user.username}`); 

    var Count; 
    for(Count in client.users.array()){ 
     var User = client.users.array()[Count]; 
     if(User.username == "someUsername"){ 
     //User.sendMessage("you"); 
     } 
     //User.checkRole("Admin"); 

    } 
} 

checkRole() 기능은 내가 만든 것입니다. 나는 도움이 필요하다.

// assuming role.id is an actual ID of a valid role: 
if(message.member.roles.has(role.id)) { 
    // user has that role 
} else { 
    //user doesn't have that role 
} 

https://anidiotsguide.gitbooks.io/discord-js-bot-guide/information/understanding-roles.html

+1

무엇 당신은을 통해 사용자의 역할에 액세스 할 수없는 자신의'? User' 객체가 있는데, 'guildMember' 객체에서 가져옵니다. 사용자가 3 서버에 있다면 어떻게 될까요? 3 가지 모두에서 같은 역할을한다고 생각합니까? – Wright

+0

그건 정확히 내가 물어 보는거야, 대답 주셔서 감사합니다. @Wright – turmuka

답변

2

길드에 의해 당신이 그것을 접근해야한다 역할에 액세스하려면 하지 사용자 :

client.on('ready',() => { 
    console.log(`logged in as ${client.user.username}`); 

    var Count; 
    for(Count in client.users.array()){ 
     var User = client.users.array()[Count]; 
     if(User.hasRole("Admin")){ 
      console.log(User.username); 
     } 
    } 
}) 
+0

안녕하세요, 감사합니다. 사용자의 이메일을받을 수있는 방법이 있습니까? – turmuka

0

당신이 뭔가를 할 수 있습니다. (@Wright에 의해 언급 된 바와 같이)

지도를 사용하여 모든 길드원을 저장 한 다음 각 구성원을 거쳐야합니다. (그렇게하면 특정 역할 이름을 가지고 오면 그 길을 찾을 수 있습니다. (그것은 guildmember 객체가 같은) guildobject

m = client.guilds.map(function (obj) { 
    return obj.members; 
}); 
for (var i = 0; i < m.length; i++) { 
    console.log("\n\nNew Guild: ");   
    console.log(m[i].map(function (obj) { 
     return obj.guild.name + " , " + obj.user.username + " : " + obj._roles; 
    }).join('\n')); 
} 

나는이 함께 얻을 출력은 다음에 (나는 이름의 밖으로 검열) : Output

+0

문제는 무엇입니까, 거기에 메시지 변수가 무엇입니까? 메시지에 사용자 역할을 부여하고 싶지 않습니다. 클라이언트 봇이 준비가되면 바로 가져오고 싶습니다. @DiegoFrancisco – turmuka

+0

@turmuka 더 많은 코드를 제공하여 더 잘 이해할 수 있습니까? –

+0

새 업데이트를 확인하십시오.'message' 객체가 없으므로 정의되지 않습니다. 나는'client.on ('message', (message))'를 사용할 수 있다는 것을 알고있다. 그러나 그것은 내가하고 싶은 것이 아니다. 'client.on ('ready',())'@DiegoFrancisco – turmuka