我正在尝试使用 Discord.js 制作一个欢迎消息机器人,当成员可以访问时,欢迎消息将通过某个频道中的 webhook 发送。
这就是我现在所拥有的:
client.on("guildMemberUpdate", member => {
const wc = new WebhookClient('webhook-id', 'webook-token');
if (member.roles.cache.some(r => r.name === "test")) {
wc.send(`Welcome <@${member.id}> !`);
} else if (member.roles.cache.find(r => r.name === "Server Booster")) {
wc.send(`Thank you for the boost <@${member.id}> !`);
} else return;
});
我遇到了添加角色时 guildMemberUpdate
不发出的问题,控制台日志显示它仅在删除角色时触发。
任何见解将不胜感激!
感谢阅读
答案 0 :(得分:0)
使用 oldMember
和 newMember
代替 member
解决的问题
client.on("guildMemberUpdate", (oldMember, newMember) => {
const wc = new WebhookClient("webhook-id', 'webook-token");
if (oldMember.roles.cache.isze !== newMember.roles.cache.size) {
if (!oldMember.roles.cache.has("role-id") && newMember.roles.cache.has("role-id")) {
wc.send(`Welcome ${newMember} !`);
}
if (!oldMember.roles.cache.has("boost-role-id") && newMember.roles.cache.has("boost-role-id")) {
wc.send(`Thank you for the Nitro Boost ${newMember} !`);
}
}
});