Ich versuche einen Bot zu machen, der vorhergehende Bot-Nachrichten im Kanal abruft und sie dann löscht. Ich habe diesen Code zur Zeit, dass alle Nachrichten im Kanal löscht, wenn !clearMessages
eingegeben wird:Bot-Nachrichten von Bots holen Discord.js
if (message.channel.type == 'text') {
message.channel.fetchMessages().then(messages => {
message.channel.bulkDelete(messages);
messagesDeleted = messages.array().length; // number of messages deleted
// Logging the number of messages deleted on both the channel and console.
message.channel.send("Deletion of messages successful. Total messages deleted: "+messagesDeleted);
console.log('Deletion of messages successful. Total messages deleted: '+messagesDeleted)
}).catch(err => {
console.log('Error while doing Bulk Delete');
console.log(err);
});
}
Ich würde den Bot möge nur Nachrichten holt aus allen Bot-Nachrichten in diesem Kanal, und dann diese Nachrichten löschen.
Wie würde ich das tun?
Vielen Dank André! Auch eine kurze Frage. Ich möchte auch Nachrichten löschen, die mit! /./> beginnen (diese Nachrichten können von Benutzern nicht nur Bots sein) also habe ich versucht, die Zeile mit den const BotMessages zu bearbeiten: 'const botMessages = messages.filter (msg => msg.author.bot && msg.content.startsWith ("!" || "." || ">")); 'aber das hat nicht funktioniert. Kannst du bitte darauf hinweisen, wo ich falsch liege und wie ich das beheben kann? Danke vielmals. –
Ein weiteres Problem, das mir aufgefallen ist, ist, dass der Bot die Nachricht nicht löscht, wenn nur eine Bot-Nachricht vorhanden ist, und einen DiscordAPIError mit der Aussage, dass Sie mindestens 2-100 Nachrichten zum Löschen bereitstellen müssen. Gibt es da eine Arbeit? –
Ich werde eine neue Frage dazu aufschlagen. –