我试图让一个不和谐的机器人根据某人加入服务器后的时间来分配角色

时间:2021-01-24 09:37:50

标签: javascript node.js discord.js

我对 discord.js 还很陌生,但我试图让机器人根据用户加入后经过的时间分配角色(机器人的角色高于所需的角色,并且机器人本身具有管理员权限)

client.on("guildMemberAdd", (member) => {
    member.roles.add(801917861110874122);
});

client.on("message", (message) => {
    if(Date.now() - message.member.joinedAt < 1000*60*60*24*1) {
        message.member.roles.add(801917434558808074);
    }
});

基本上,无论是在用户加入还是在所需的时间过后,机器人都不会赋予角色。

1 个答案:

答案 0 :(得分:0)

您需要将角色传递给.add(),这可以通过从缓存中查找 ID 来完成。

这是一个例子:

let role = message.guild.roles.cache.get("801917861110874122");
member.roles.add(role);

您还可以使用名称而不是 ID 来搜索角色,如下所示:

let role = message.guild.roles.cache.find(r => r.name == "Role name");
member.roles.add(role);

编辑:

要使您的时间函数起作用,您需要使用 message.member.joinedTimestamp 而不是 message.member.joinedAt,如下所示:

client.on("message", (message) => {
    if(Date.now() - message.member.joinedTimestamp < 1000*60*60*24*1) {
        message.member.roles.add(801917434558808074);
    }
});