我对 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);
}
});
基本上,无论是在用户加入还是在所需的时间过后,机器人都不会赋予角色。
答案 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);
}
});