मैं नीचे दिए गए कोड का उपयोग कर रहा हूँ। कोड काम करता है, लेकिन मैं इसे चाहता हूं, इसलिए जब भी उपयोगकर्ता इस पर प्रतिक्रिया करता है तो इमोजी प्रतिक्रियाएं रीसेट हो जाती हैं, जब भी वे उस पर प्रतिक्रिया करते हैं, अगर वह भी समझ में आता है।

क्या कोई ऐसा करने का सबसे अच्छा तरीका जानता है? या अगर इसके बजाय मुझे कुछ और करने की ज़रूरत है?

if(message.embeds)
        {
            const embedMsg = message.embeds.find(msg => msg.title === 'Select the games that you play (you can choose multiple)');
            if(embedMsg)
            {
                message.react('746208061550624860')
                .then(reaction => reaction.message.react('746203917272219891'))
                .then(reaction => reaction.message.react('746207267728392232')
                .catch(err => console.error);
            }
        }
        return;
    }

    if(message.content.toLowerCase() === '?roles')
    {
        message.delete()
        if(message.member.hasPermission('MANAGE_MESSAGES')) {
        const embed = new Discord.MessageEmbed();
        embed.setTitle('Select the games that you play (you can choose multiple)')
        embed.setColor(colors.blue);
        embed.setDescription(
        "NOTE: When you select any of these you will have access to the community chat of the game\n"+
        "<:cod:746208061550624860> - COD\n" +
        "<:valoran:746203917272219891> - VALORAN\n" +
        "<:warframe:746208599021191190> - WARFRAME\n");
        message.channel.send(embed)
        
    } else {
        message.reply("You don't have permission to use this command.");
    }
    }
});

bot.on('messageReactionAdd', (reaction, user) => {
    if(user.bot)
    return;

    var roleName = reaction.emoji.name;
    var role = reaction.message.guild.roles.cache.find(role => role.name.toLowerCase() === roleName.toLowerCase());
    var member = reaction.message.guild.members.cache.find(member => member.id === user.id);

    if(member.roles.cache.has(role.id))
    {
        member.roles.remove(role.id).then(member => {
            console.log("Removed" + member.user.username + "from the" + role.name + "name.");
        }).catch(err => console.error);
    } 
    else {
        member.roles.add(role.id).then(member => {
            console.log('Added' + member.user.username + 'to the' + role.name + ' role.');
        }).catch(err => console.error);
    }
    ```
0
SinKnight 29 अगस्त 2020, 04:46

3 जवाब

सबसे बढ़िया उत्तर

यह मानकर remove() विधि का उपयोग करें कि आपने user को प्रतिक्रिया देने वाले व्यक्ति के रूप में परिभाषित किया है reaction.users.remove(user);

0
Octagonal T 29 अगस्त 2020, 16:20

आप MessageReaction.remove() का इस्तेमाल कर सकते हैं :

reaction.remove(user)

साथ ही, आप इस लाइन को अधिक जटिल बना रहे हैं:

var member = reaction.message.guild.members.cache.find(member => member.id === user.id);

इसके बजाय, आप Guild.member()< का इस्तेमाल कर सकते हैं /ए> समारोह:

var member = reaction.message.guild.member(user);
0
Lioness100 29 अगस्त 2020, 13:40
message.reactions.cache.get('ur_role_id').remove().catch(error => console.error('Failed to remove reactions: ', error));
0
Arghya Sadhu 29 अगस्त 2020, 10:00