javascript - 如何检查谁邀请了谁 Discord.js

标签 javascript node.js npm discord discord.js

嘿,我正在制作一个邀请记录器,我需要帮助,但我不知道如何找到邀请用户的用户

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/

相关文章:

node.js - npm安装zmq问题

node.js - 如何让 npm 使用缓存

javascript - 从 Angular 范围的 php 文件中获取 json 数据

javascript - Jquery 在搜索表单上加载图像

javascript - 带有 e.key === 'Enter' 的 JS 函数在屏幕阅读器 (NVDA) 浏览模式下不会触发

javascript - 客户端 websocket 限制消息长度

node.js - 配置 nginx 发送回 404 的 index.html

mysql - NodeJS 数据库(mysql)连接与事务管理

javascript - CasperJS 动态选择列表

javascript - 如果我使用 "npm install --save-dev"进行 NPM 安装,如何检查更新