如何使用此 discord.js 代码检查提到的用户邀请?

Posted

技术标签:

【中文标题】如何使用此 discord.js 代码检查提到的用户邀请?【英文标题】:How can I check mentioned user invites with this discord.js code? 【发布时间】:2020-03-25 10:17:57 【问题描述】:

我正在尝试制作一个不和谐的机器人来帮助我进行服务器邀请管理,比如 InviteManager 机器人,这真的很糟糕。我想制作自己的机器人来做到这一点。因此,我进一步编写了代码来获取命令作者的邀请,但我不知道如何让它获取并显示提到的用户邀请。

提前致谢

client.on('message', message => 
        if(message.content === "-invites")
        var user = null;
        user = message.author;

        message.guild.fetchInvites()
        .then

        (invites =>
            
                const userInvites = invites.array().filter(o => o.inviter.id === user.id);
                var userInviteCount = 0;
                    for(var i=0; i < userInvites.length; i++)
                    
                        var invite = userInvites[i];
                        userInviteCount += invite['uses'];
                    
                        message.reply(`You have invited $userInviteCount user(s) to this server. Keep up the good work!`);
            
        )

);

【问题讨论】:

您的实际代码(您发送的那个)有效吗? 【参考方案1】:

您可以在声明用户时添加 or 运算符 - Discord.js v12

    client.on('message', message => 
        if(message.content === "-invites")
        var user = null;
        user = message.author || message.mentions.users.first()

        message.guild.fetchInvites().then( invites => 
                const userInvites = invites.array().filter(o => o.inviter.id === user.id);
                var userInviteCount = 0;
                    for(var i=0; i < userInvites.length; i++) 
                        var invite = userInvites[i];
                        userInviteCount += invite['uses'];
                    
                        message.reply(`You have invited $userInviteCount user(s) to this server. Keep up the good work!`);
            
        )

);

【讨论】:

【参考方案2】:

试试这个。

client.on('message', message => 
    if(message.content === "-invites")
        var user = null;
        user = message.author;
        
        message.guild.fetchInvites()
        .then(invites =>
            
                //filter through the invites
                const userInvites = invites.array().filter(i => i.inviter.id === user.id);
                //get the invites using a for loop
                var userInviteLinks = "";
                for(var i=0; i < userInvites.length; i++) 
                    var invite = userInvites[i];
                    userInviteLinks += `\n https://discord.gg/$invite['code']`;
                
                //Sends the message
                message.reply(`Here are your invites: $userInviteLinks`);
            
        )
    
);

【讨论】:

以上是关于如何使用此 discord.js 代码检查提到的用户邀请?的主要内容,如果未能解决你的问题,请参考以下文章

检查提到的用户是不是在 discord.js 中具有角色

如何检查消息是不是存在? (discord.js)

否则代码无法正常工作 discord.js

discord.js - 如何在提到的用户之间随机拆分消息?

如何检查用户是不是具有特定角色 discord.js v12? [复制]

Discord.js 如何检查用户是不是不接受私信