-2
votes

Discord.js Comment limiter la commande Clear moins de 14 jours sans lancer d'erreur

Quelqu'un peut-il montrer comment effacer les messages de compensation de moins de 14 jours Exemple: si la commande effective purge 50 msgs, mais il n'y a que 20 msgs de moins de 14 jours, je n'ai besoin que de 20 msgs, même sans mettre un nombre xxx

merci.


0 commentaires

3 Réponses :


0
votes

Pour capturer toute erreur qui se produit, do message.channel.bulkdelete (récupéré) .Catch (console.error); . .

Cela attrapera des erreurs qui se produisent.

J'espère que cela aide.


0 commentaires

0
votes

Vous pouvez voir dans le Docs que canal.bulkdelete () code> accepte un deuxième argument, filtrantold code>, qui devrait être un booléen indiquant si la fonction devrait automatiquement filtrer les messages âgés de plus de 2 semaines pour éviter une Erreur par discorde.

Vous pouvez également simplifier votre commande en utilisant le fait que Bulkdelete () code> peut accepter un numéro au lieu d'une collection de messages, de sorte que vous n'avez pas besoin de chercher manuellement les messages à supprimer. Il se résout avec une collection des messages qui ont été supprimés, vous pouvez donc retourner la taille de cette collection à votre utilisateur. P>

quelque chose comme ça devrait mieux fonctionner: p>

    if(command === 'clear') {
        message.delete();
        if (!message.member.hasPermission('MANAGE_MESSAGES')) return message.channel.send('```You don\'t have the permission```').then(mes => mes.delete(3000)) .catch();
        const messagesDeleted = await message.channel.bulkDelete(deleteCount, true);
        message.channel.send('```php\n' + messagesDeleted.size + ' messages have been deleted\n```').then(mes => mes.delete(3000)).catch();
    }


0 commentaires

0
votes

Au début, je ne savais pas que je peux utiliser l'utilisateur (Supprimer, true) code> à filtrant actif. Mais maintenant, cela a bien fonctionné pour moi après avoir utilisé ce code:

    if(command === 'clear') {
        message.delete();
        if (!message.member.hasPermission('MANAGE_MESSAGES')) return message.channel.send('```You don\'t have the permission```').then(mes => mes.delete(3000)) .catch();
        const fetched = await message.channel.fetchMessages({ limit:deleteCount }, true);
        const msgsDeleted = await message.channel.bulkDelete(fetched, true);
        message.channel.send('```php\n' + msgsDeleted.size + ' messages have been deleted\n```').then(mes => mes.delete(3000)) .catch();
    }
});


0 commentaires