Javascript 如果用户没有其他角色,则应用角色
无论用户所扮演的角色是什么,他们仍然可以获得公共角色 如果这里的答案很明显,我很抱歉,但我在编写这个机器人时正在学习javascript。我的目标是让用户能够做到!命名并获得一个名为“public”的角色,只要他们没有代码中列出的角色(将军、队长等) 我敢肯定代码是非常难看的。我还在学习。现在,不管他们是否拥有将军/上尉/中尉/等等角色,他们仍然获得了公共角色Javascript 如果用户没有其他角色,则应用角色,javascript,discord.js,Javascript,Discord.js,无论用户所扮演的角色是什么,他们仍然可以获得公共角色 如果这里的答案很明显,我很抱歉,但我在编写这个机器人时正在学习javascript。我的目标是让用户能够做到!命名并获得一个名为“public”的角色,只要他们没有代码中列出的角色(将军、队长等) 我敢肯定代码是非常难看的。我还在学习。现在,不管他们是否拥有将军/上尉/中尉/等等角色,他们仍然获得了公共角色 client.on('message', async message => { if(message.channel.id ===
client.on('message', async message => {
if(message.channel.id === '535226845654810624') {
if (message.content.startsWith('!name')) {
const newname = message.content.split(' ').slice(1).join(' ');
message.member.setNickname(newname);
const newrole = message.guild.roles.find(x => x.name === 'Public');
message.member.addRole(newrole);
message.delete();
}
}
这是我在尝试忽略角色add(如果他们有其他角色)之前添加的代码。我不确定如何将此更改为我所要查找的内容。请查看下面的代码,尝试一下,并让我知道结果是什么。你的代码中有几个错误,我很惊讶你的编辑没有发现(或者至少没有把代码弄错),比如在定义
if
语句之后有一个分号,在else
语句之后有额外的花括号,等等
无论如何,下面的代码检查输入的命令是否为!名称
,如果是,则将新昵称分配给用户。之后,它会检查用户是否具有任何指定的角色,如果没有,则会获得一个新角色“Public”
client.on('message', async message => {
if (message.channel.id === '535226845654810624') {
if(message.content.startsWith('!name')) {
// Users are allowed to change their nicknames no matter their roles
const newname = message.content.split(' ').slice(1).join(' ');
message.member.setNickname(newname);
// Define the roles which need to be checked
const roleNames = ['General', 'Captain', 'Lieutenant', 'Sergeant', 'Corporal', 'Recruit'];
// If the user does not have any of the roles above, assign them the role 'Public'
if (!message.member.roles.some(role => roleNames.includes(role.name))) {
const newrole = message.guild.roles.find(x => x.name === 'Public');
message.member.addRole(newrole);
message.delete();
}
}
}
});
看看下面的代码,试试看,让我知道结果是什么。你的代码中有几个错误,我很惊讶你的编辑没有发现(或者至少没有把代码弄错),比如在定义
if
语句之后有一个分号,在else
语句之后有额外的花括号,等等
无论如何,下面的代码检查输入的命令是否为!名称
,如果是,则将新昵称分配给用户。之后,它会检查用户是否具有任何指定的角色,如果没有,则会获得一个新角色“Public”
client.on('message', async message => {
if (message.channel.id === '535226845654810624') {
if(message.content.startsWith('!name')) {
// Users are allowed to change their nicknames no matter their roles
const newname = message.content.split(' ').slice(1).join(' ');
message.member.setNickname(newname);
// Define the roles which need to be checked
const roleNames = ['General', 'Captain', 'Lieutenant', 'Sergeant', 'Corporal', 'Recruit'];
// If the user does not have any of the roles above, assign them the role 'Public'
if (!message.member.roles.some(role => roleNames.includes(role.name))) {
const newrole = message.guild.roles.find(x => x.name === 'Public');
message.member.addRole(newrole);
message.delete();
}
}
}
});