【问题标题】:Trying to add a role to a mentioned user尝试向提及的用户添加角色
【发布时间】:2019-09-01 15:02:28
【问题描述】:


我正在尝试为标签游戏制作机器人。我这样做是为了让您可以提及用户并向他们添加“IT”角色,但是当他们不提及成员时,它会被添加到他们。
我的代码在这里:

const args = message.content.slice(prefix.length).trim().split(/ +/g);
    if (message.content.startsWith(`${prefix}tag`)) {
        if (!message.mentions.users.size) {
        let roleenter = message.guild.roles.get("555947490315075600");
        let member = message.member;
        member.addRole(roleenter).catch(console.error);
        message.reply("you are now it!")
        client.channels.get("555943069271457792").send(member + " is now in!")
        await message.guild.fetchMembers();
        const role = message.guild.roles.get("555947490315075600");
        for (const member of role.members.array()) {
            await member.removeRole(role);
        }} else {
           let member = message.mentions.users.first(); 
           let roleenter = message.guild.roles.get("555947490315075600");
           member.addRole(roleenter).catch(console.error);
           message.reply("you are now it!")
           client.channels.get("555943069271457792").send(member + " is now in!")
           await message.guild.fetchMembers();
           const role = message.guild.roles.get("555947490315075600");
           for (const member of role.members.array()) {
               await member.removeRole(role);

每当我尝试#tag @user 时,它会在我之前使用它时显示member.addRole is not a function,它可以工作。

【问题讨论】:

  • 能否正确编辑代码和结构块?

标签: javascript node.js bots discord discord.js


【解决方案1】:

改变这一行:

let member = message.mentions.users.first();

到这一行:

let member = message.mentions.members.first();

您使用了上述用户的用户对象,但您必须使用 guildMember 对象,因为您无法为用户分配角色。

【讨论】:

  • 这两行完全一样:)
猜你喜欢
  • 2019-05-29
  • 2017-09-25
  • 2021-01-01
  • 2021-08-02
  • 1970-01-01
  • 1970-01-01
  • 2018-09-03
  • 2018-09-10
  • 2021-06-11
相关资源
最近更新 更多