【问题标题】:Discord.js v12 Role add to mentioned user problemDiscord.js v12 角色添加到提到的用户问题
【发布时间】: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`。") })}})

【问题讨论】:

    标签: discord.js roles


    【解决方案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.');
        }
    

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

    【讨论】:

      猜你喜欢
      • 2021-05-29
      • 2021-04-10
      • 2021-08-28
      • 2018-09-10
      • 2022-01-18
      • 1970-01-01
      • 2020-12-22
      • 1970-01-01
      相关资源
      最近更新 更多