Discord.js v12 角色添加到提到的用户问题

Posted

技术标签:

【中文标题】Discord.js v12 角色添加到提到的用户问题【英文标题】:Discord.js v12 Role add to mentioned user problem 【发布时间】:2020-10-12 18:41:37 【问题描述】:

所以我正在尝试创建一个类似$roletested @user 的命令,它应该为用户提供提到的特定角色。我收到一个错误,称为:_“无法读取未定义的属性'角色'......请帮帮我,这是我的代码:D

if (message.content.startsWith(prefix + "roletested")) 让testedUser = message.mentions.members.first() if (!message.member.hasPermission('MANAGE_ROLES')) return message.channel.send('你没有那个权限!:x:').then(message.react(':x:')); if(!testedUser) return message.channel.send("你必须提到你想分配角色的人!").then((declineMsg) => message.react('❌'); 拒绝消息删除(超时:5000); 让 testRole = message.guild.roles.cache.find(role => role.id === "724676382776492113"); 测试用户.roles.add(testedRole); message.channel.send("为用户添加了角色 `TESTED`。") ))

【问题讨论】:

【参考方案1】:

您的代码已修复

  if (message.content.startsWith(prefix + "roletested")) 
    if (!message.member.hasPermission('MANAGE_ROLES')) return message.channel.send('You do not have that permission! :x:').then(message.react(':x:'))

    let testedRole = message.guild.roles.cache.get('724676382776492113');
    let testedUser = message.mentions.members.first();
    if(!testedUser) return message.channel.send("You have to mention the person you want to assign the role to!").then((declineMsg) =>  message.react('❌')
    declineMsg.delete(timeout: 5000);
    );
    
    testedUser.roles.add(testedRole);
    message.channel.send("Added the role `TESTED` to user.")
  

【讨论】:

乐于助人:D【参考方案2】:

我修复了你的代码:

我点了点东西(代码一样,我只是改了点) 你不能使用message.guild.roles.cache.find(...)所以我把它改成了message.guild.role.cache.get('Role ID')

来源:Link

代码:

    if (message.content.startsWith(prefix + 'roletested')) 
        const testedUser = message.mentions.members.first();
        if (!message.member.hasPermission('MANAGE_ROLES')) return message.channel.send('You do not have that permission! :x:').then(message.react(':x:'));
        if (!testedUser) 
            message.channel.send('You have to mention the person you want to assign the role to!').then(declineMsg => 
                message.react('❌');
                declineMsg.delete( timeout: 5000 );
                return;
            );
        
        const testedRole = message.guild.roles.cache.get('395671618912780289');
        testedUser.roles.add(testedRole);
        message.channel.send('Added the role `TESTED` to user.');
    

我在我的机器人上测试了这段代码,它按预期工作。

【讨论】:

以上是关于Discord.js v12 角色添加到提到的用户问题的主要内容,如果未能解决你的问题,请参考以下文章

如何检查我的机器人是不是可以在 discord.js v12 中添加角色?

如何检查用户是不是具有特定角色 discord.js v12? [复制]

Discord.js v12 - 如何添加角色?

如何添加 ID 保存在 JSON 文件 discord.js v12 中的角色?

如何向 discord.js bot v12 添加验证

如何从用户 discord.js v12 中删除所有角色?