Discord.js alle nachrichten löschen bis auf angepinnte?
Könnt ihr mir einen code schicken alle nachrichten in einem channel löscht bis auf angepinnte? Ich krieg das irgendwie net hin xD Ich benutze discord.js
Bin hald neu bei js
3 Antworten
Hier wie du es machen könntest:
const Discord = require('discord.js');
// Prefix um zu verhindern, dass versehentlich ein Befehl ausgeführt wird
const prefix = '>';
var client = new Discord.Client()
.on('ready', () => console.log('Client ready'))
.on('message', message => {
// prüfen, ob das Prefix angegeben wurde
if (!message.content.match(new RegExp('^' + prefix)))
return;
// Hier wird die eingegebene Nachricht überprüft (groß-kleinschreibung irrelevant)
switch (message.content.replace(new RegExp('^' + prefix + '\\s*'), '').toLowerCase()) {
case 'alle nachrichten löschen':
// alle Nachrichten anfordern
message.channel.fetchMessages()
.then(messages => {
// Funktion für alle Nachrichten ausführen
messages.map(msg => {
// Falls Nachricht nicht angepinnt ist und gelöscht werden kann ...
if (!msg.pinned && msg.deletable)
// ... wird sie gelöscht
msg.delete();
})
})
.catch(err => console.error(err));
break;
}
})
// Hier loggst du dich mit einem Token (von deinem Benutzer oder einem Bot) ein
.login('[DISCORD-TOKEN]');
Du musst natürlich noch in der letzten Zeile einen Token einfügen, dass sich der Bot anmelden kann.
Dann kann man mit dieser Nachricht alle Nachrichten löschen:
alle nachrichten löschen
Angepinnte Nachrichten werden nicht gelöscht. Fehlt die Berechtigung natürlich auch nicht.
aber ist ein bischen langsahm aber egal :)
So schnell wie es geht -- die Discord API kann ich leider nicht ändern 😉
So funktioniert das nicht. Bevor man sich an jegliche größeren Projekte wagt oder mit Bibliotheken arbeitet, so hat man erst einmal die Grundlagen der entsprechenden Sprache zu lernen. Discord.js ist schließlich nur eine vereinfachte Schnittstelle zur Discord-API, mit Dokumentation.
Wenn du nichts lernen möchtest, dann bleibt dir nur die Möglichkeit, einen Profi für die Entwicklung zu beauftragen.
Ich weiß die grundlagen und hab auch schon einiges geschafft aber hab hald keine ahnung wie ich die angepinnten ignorieren kann der rest ist kein problem
Da gibt es nichts zu "schaffen". Kann man programmieren, dann braucht man sich nur die Dokumentation von Discord.js durchlesen und setzt es um, fertig.
lerning by doing... und die dokumentationen haben mich jetzt auch net umbedingt weitergebracht
"Learning by doing" bringt nur etwas, wenn man zuallererst die Grundlagen kennt. Wenn dir die Dokumentation nicht ausreicht, musst du eben den Source Code durchsuchen, der auf GitHub zu finden ist.
ich habe diese frage gestellt da ich nicht noch mehr stunden in diese sch***e investieren möchte... könntest du mir nicht einfach diese frage beantworten?
Fragen zu beantworten bedeutet, dem Fragesteller Möglichkeiten aufzuzeigen. Du würdest nicht viel daraus lernen, würde man dir den Code senden. Durchsuche den Quellcode und die Dokumentation, so wie jeder andere auch.
Solltest du keine direkte Möglichkeit dazu finden, wird es wohl notwendig sein, durch alle Nachrichten zu iterieren, deren Pin-Status zu überprüfen und sie dann ggf. zu löschen. Dies sollte dir allerdings klar sein...
Und ist mir gerade relativ egal ob ich was draus lerne oder nicht... beantworte meine frage oder nicht...
Aus meiner Sicht ist die Frage beantwortet. Nun liegt es an dir, deine Ignoranz einzugestehen und den passenden Weg zu gehen, denn nur jene, die gewillt sind zu lernen, werden den Sinn erkennen.
Probiere es mal mit . Channel.getMessages und foreach
Denn rest musst du selber herausfinden.
danke :) das mit dem token weiß ich schon aber EHRENMANN