用户仍然得到公众的作用,无论他们的作用,
我很抱歉,如果这里的答案是相当明显的,但我学习JavaScript我写这篇文章的机器人。我的目标用户能够做到!名,并获得了一个名为“公共”只要他们没有在代码(一般,船长等)中列出的角色的作用。
client.on('message', async message => {
if (message.channel.id === '535226845654810624'); {
if(message.content.startsWith('!name')) {
if (message.member.roles.some(role => role.name === 'General', 'Captain', 'Lieutenant', 'Sergeant', 'Corporal', 'Recruit'));
const newname = message.content.split(' ').slice(1).join(' ');
message.member.setNickname(newname);
}
else {(message.content.startsWith('!name'));} {
if(message.channel.id === '535226845654810624') {
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();
}
}
我敢肯定的代码是完全丑陋。我还在学习。现在,不管他们有根/上尉/中尉/等角色,他们仍然获得了公众的作用。
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();
}
}
这是我在试图忽视的作用前加入了代码,如果他们有其他角色添加。我不知道如何改变这就是我要找的。
看看下面的代码,给它一个尝试,让我知道结果是什么。有几个错误你的代码,我很惊讶你的编辑器没有拿起(或至少没有错误出来的代码),例如有,后定义if
声明之后额外的大括号分号你else
等语句
无论如何,下面检查代码,如果输入的命令是!name
并且如果是这样,它分配新的昵称给用户。之后,它会检查,如果用户有任何指定的角色,如果他没有,他得到一个新角色“公共”。
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();
}
}
}
});