我如何检查谁邀请了谁 Discord.js
Posted
技术标签:
【中文标题】我如何检查谁邀请了谁 Discord.js【英文标题】:How Do i Check Who Invited Who Discord.js 【发布时间】:2021-08-16 18:47:58 【问题描述】:嘿,所以我正在制作一个邀请记录器,我需要帮助,我不知道如何找到邀请用户的用户
client.on('guildMemberAdd', async (member) =>
const channel = member.guild.channels.cache.get('CHANNEL_ID');
channel.send(`Welcome $member.user.tag Invited By $inviter`)
)
【问题讨论】:
您需要获取和访问审核日志,请查看this guide 【参考方案1】:没有简单的内置方法可以做到这一点,因此您必须存储每个邀请的使用次数,然后当有人加入时,查看哪个邀请的使用与最后一个已知数字不匹配,即查看哪个邀请的使用次数发生变化。
client.invites =
client.on('ready', () =>
client.guilds.cache.each(guild => //on bot start, fetch all guilds and fetch all invites to store
guild.fetchInvites().then(guildInvites =>
guildInvites.each(guildInvite =>
client.invites[guildInvite.code] = guildInvite.uses
)
)
)
)
client.on('inviteCreate', (invite) => //if someone creates an invite while bot is running, update store
client.invites[invite.code] = invite.uses
)
client.on('guildMemberAdd', async (member) =>
const channel = member.guild.channels.cache.get('CHANNEL_ID');
member.guild.fetchInvites().then(guildInvites => //get all guild invites
guildInvites.each(invite => //basically a for loop over the invites
if(invite.uses != client.invites[invite.code] //if it doesn't match what we stored:
channel.send(`Welcome $member.user.tag Invited By $invite.inviter.tag`)
client.invites[invite.code] = invite.uses
)
)
)
您应该添加某种检查(我承认我应该这样做),因为他们可能使用了虚 URL 或服务器发现或其他一些奇怪的加入方式,在这种情况下它可能会出错。
【讨论】:
树叶怎么样 如果成员离开并重新加入,将被视为被邀请两次。如果你想阻止这种情况,你需要某种数据库。以上是关于我如何检查谁邀请了谁 Discord.js的主要内容,如果未能解决你的问题,请参考以下文章