无论用户具有什么角色,他们仍将获得公共角色
很抱歉,如果这里的答案很明显,但我在编写此机器人时正在学习JavaScript。我的目标是用户只要没有在代码中列出的角色(常规,上尉等),就可以使用!name并获得一个名为“ public”的角色。
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();
}
}
我确定代码完全丑陋。我还在学习。现在,无论他们是否具有Gen / Capt / Lieutenant / etc角色,他们仍将获得公共角色。
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();
}
}
这是我在添加之前尝试忽略角色添加(如果他们还有其他角色)的代码。我不确定如何将其更改为所需的内容。
答案 0 :(得分:0)
看看下面的代码,尝试一下,让我知道结果是什么。您的代码中有几个错误,我很惊讶您的编辑器没有选择(或至少没有错误地删除代码),例如在定义Cucumber run cofiguration
语句后立即使用了分号, if
语句等之后的大括号。
无论如何,下面的代码将检查输入的命令是否为else
,如果是,它将为用户分配新的昵称。之后,它将检查用户是否具有任何指定角色,如果没有,则将获得新角色“公共”。
!name