【问题标题】:make an autorole for discord.js v12为 discord.js v12 创建一个自动角色
【发布时间】:2023-03-22 22:28:01
【问题描述】:

我想让我的机器人在我的朋友第一次加入我的服务器时自动扮演角色:我已经尝试过这个我的 VPS 节点版本:12.19.0v:?

client.on('guildMemberAdd', member => {
console.log('User @' + member.user.tag + ' has joined the server!');
var role = member.guild.roles.cache.find(role => role.name == "Newbie")
let user = member.user
user.roles.add(role);
});

但没有任何效果!请帮帮我

【问题讨论】:

标签: javascript discord discord.js bots


【解决方案1】:

Discord 现在正在执行特权意图。 GUILD_MEMBERS Intent 是接收 guildMemberAddguildMemberUpdate 等事件所必需的。

要了解意图的工作原理以及如何使用它们,请查看discord.js' detailed guide

另外,如 cmets 中所述,您需要使用 message.member 而不是 message.user

【讨论】:

    【解决方案2】:

    您需要了解会员和用户之间的区别。一个用户代表一个 Discord 帐户,一个成员代表一个在服务器中的用户。因此,例如要获取某人的标签,您需要执行user.tagmember.tag 将不起作用。昵称也一样,user.displayName 不起作用,因为用户是帐户,成员是服务器中的用户。你会改用member.displayName

    不管怎样,放在哪里

    let user = member.user
    user.roles.add(role);
    

    应该换成

    member.roles.add(role);
    

    这有望解决您的问题。

    【讨论】:

    • 我之前试过这个也不起作用,当有人在日志中加入我的服务器时我也没有收到!
    猜你喜欢
    • 2020-08-19
    • 1970-01-01
    • 2021-08-28
    • 1970-01-01
    • 2020-11-20
    • 2021-04-10
    • 2021-05-29
    • 1970-01-01
    • 2020-10-24
    相关资源
    最近更新 更多