Discord.js guildMemberUpdate 事件
Posted
技术标签:
【中文标题】Discord.js guildMemberUpdate 事件【英文标题】:Discord.js guildMemberUpdate event 【发布时间】:2021-04-30 20:01:45 【问题描述】:我正在尝试使用 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
未发出的问题,控制台日志显示它仅在删除角色时触发。
任何见解将不胜感激!
感谢阅读
【问题讨论】:
【参考方案1】:使用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 !`);
);
【讨论】:
以上是关于Discord.js guildMemberUpdate 事件的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法让 guildMemberUpdate 事件区分角色更改和昵称更改,而不是检测其中任何一个?
无法安装 discord.js / 找不到模块 discord.js
我将如何使用两个不同版本的 discord.js | Discord.js 机器人
Discord 错误错误 Discord.js 中的无效令牌
Discord 仅识别 discord.js 中的“ping”命令
错误“const Discord = require(discord.js) ^ ReferenceError: discord is not defined”