嘿,我正在制作一个邀请记录器,我需要帮助,但我不知道如何找到邀请用户的用户
client.on('guildMemberAdd', async (member) => {
const channel = member.guild.channels.cache.get('CHANNEL_ID');
channel.send(`Welcome ${member.user.tag} Invited By ${inviter}`)
})
最佳答案
没有简单的内置方法可以做到这一点,因此您必须存储每个邀请的使用次数,然后当有人加入时,查看哪个邀请的使用与最后一个已知的数字不匹配,即看到哪个邀请的使用计数发生变化。
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 或服务器发现或其他一些奇怪的加入方式,在这种情况下可能会出错。
关于javascript - 如何检查谁邀请了谁 Discord.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67740249/