Javascript 加入时向discord成员添加角色

Javascript 加入时向discord成员添加角色,javascript,node.js,discord.js,Javascript,Node.js,Discord.js,当成员加入我的discord时,我对给他们一个角色/等级有一个问题,我只有各种代码声明,到目前为止没有一个对我有帮助。我尝试的一些代码来自Stackoverflow 我最后一次尝试是: client.on('GuildMemberAdd', member => { console.log('User: ' + member.user.username + ' has joined the server!'); var role = member.guild.roles.ca

当成员加入我的discord时,我对给他们一个角色/等级有一个问题,我只有各种代码声明,到目前为止没有一个对我有帮助。我尝试的一些代码来自Stackoverflow

我最后一次尝试是:

client.on('GuildMemberAdd', member => {
    console.log('User: ' + member.user.username + ' has joined the server!');
    var role = member.guild.roles.cache.find(role => role.id === "<My role ID>");
    member.roles.add(role);
});
client.on('GuildMemberAdd',member=>{
console.log('User:'+member.User.username+'已加入服务器!');
var role=member.guild.roles.cache.find(role=>role.id==”);
member.roles.add(角色);
});
这就是我从discord.js文档中得到的信息,也是我在谷歌上搜索问题解决方案时得到的信息

我不知道问题是否在于它无法读取
role.id
,而它必须是名称。 问题在于ID是一个比
role.name
更好的解决方案,以防角色上的名称发生更改,因为ID绑定到该角色而不依赖于角色的名称

我真的希望有人能帮我解决这个问题


致以最诚挚的问候

尝试使用id直接添加角色:

client.on('GuildMemberAdd', member => {
    console.log('User: ' + member.user.username + ' has joined the server!');
    member.roles.add(ROLE_ID);
});

您不能在多个公会中拥有相同的角色id,尽管您可以拥有相同的角色名称。

尝试使用该ID意味着它被锁定到一个特定的ID。

比如说,ID属于你的公会,而加入的成员不是加入你的服务器,而是其他人的,那么
角色将返回未定义,因为角色ID的角色不存在。

如果您仅在服务器上使用此选项,则此选项应该有效,只需确保该成员已加入您的服务器。因此,除了您的服务器之外,它将使用这些名称

client.on('GuildMemberAdd',member=>{
如果(member.guild.id==“”){
//表示具有ID的角色的公会的ID
console.log('User:'+member.User.username+'已加入服务器!');
var role=member.guild.roles.cache.find(role=>role.id==”);
member.roles.add(角色);
}否则{
console.log('User:'+member.User.username+'已加入'+member.guild.name+'服务器!');
var role=member.guild.roles.cache.find(role=>role.name==“”);
member.roles.add(角色);
}
});


如果您希望他们能够为每个公会保存不同的ID,那么我建议您学习数据库如何工作,并尝试相应地使用它们。

这不是这里的问题。我确实知道数据库如何工作,但我只是尝试在将数据库放在公会上之前进行一些硬编码。您的意思是想知道如何使用数据库?你用的是哪个数据库?不,我的意思是我需要在打开数据库之前让我的硬编码工作起来。如果我无法使硬编码工作,那么我需要从数据库获取什么样的数据来进行工作就无关紧要了。使用您的代码,它就工作了,但是请确保角色id是从数据库中提取的,该数据库已设置为可以工作,如果它不存在,请查找名称。