Discordjs 检查用户是否有角色
Discordjs check if a user has a role
我有这段代码可以正常工作,我只需要检查用户是否有角色,它会记录所有用户,包括他们的 ID、鉴别器和用户名 exc。我只是无法获得角色。你们能帮忙吗?
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()
函数是我编的东西。我只是需要一些帮助。
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);
}
}
})
你可以这样做:
// 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
要访问角色,您必须通过公会来访问它,而不是 用户。 (正如@Wright 所提到的)
我会使用地图来保存所有公会成员,然后遍历每个成员(这样当你遇到一个具有特定角色名称的成员时,你仍然可以访问公会对象(因为它是公会成员对象)
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'));
}
我得到的输出是(我删除了用户名):
我有这段代码可以正常工作,我只需要检查用户是否有角色,它会记录所有用户,包括他们的 ID、鉴别器和用户名 exc。我只是无法获得角色。你们能帮忙吗?
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()
函数是我编的东西。我只是需要一些帮助。
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);
}
}
})
你可以这样做:
// 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
要访问角色,您必须通过公会来访问它,而不是 用户。 (正如@Wright 所提到的)
我会使用地图来保存所有公会成员,然后遍历每个成员(这样当你遇到一个具有特定角色名称的成员时,你仍然可以访问公会对象(因为它是公会成员对象)
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'));
}
我得到的输出是(我删除了用户名):