如果用户没有其他角色,则应用角色

时间:2019-02-04 04:19:40

标签: javascript discord.js

无论用户具有什么角色,他们仍将获得公共角色

很抱歉,如果这里的答案很明显,但我在编写此机器人时正在学习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();
    }
}

这是我在添加之前尝试忽略角色添加(如果他们还有其他角色)的代码。我不确定如何将其更改为所需的内容。

1 个答案:

答案 0 :(得分:0)

看看下面的代码,尝试一下,让我知道结果是什么。您的代码中有几个错误,我很惊讶您的编辑器没有选择(或至少没有错误地删除代码),例如在定义Cucumber run cofiguration语句后立即使用了分号, if语句等之后的大括号。

无论如何,下面的代码将检查输入的命令是否为else,如果是,它将为用户分配新的昵称。之后,它将检查用户是否具有任何指定角色,如果没有,则将获得新角色“公共”。

!name