Kann mir jemand beim Coden meines Discord Bots helfen?

1 Antwort

Ganz einfach. In Zeile 2 deines Codeschnipsels weist du der Nachricht, die das Event in deine Funktion liefert, den Namen "msg" zu. In Zeile 3 versuchst du dann aber, auf eine Variable namens "message" zuzugreifen, die gar nicht existiert.

bot.on('message', msg=>{

    if(message.startsWith(prefix2 + "ban")){

"message" ist daher immer undefined und wird nie "<ban" sein.

Woher ich das weiß:Berufserfahrung – Inhaber einer App-Agentur & 15+ Jahre Programmiererfahrung

CGCofficial 
Beitragsersteller
 14.05.2020, 18:58

Nun kommt der Fehler, dass message.startsWith keine Funktion wäre.

Functional  14.05.2020, 21:10
@CGCofficial

startsWith() kann nur auf Strings angewandt werden. Die Message, die du von Discord bekommst, ist kein String, sondern eine eigene Klasse, die weit mehr beinhaltet, als nur den Inhalt: https://discord.js.org/#/docs/main/stable/class/Message

Aus dieser Klasse musst du erstmal den Nachrichteninhalt als String raus holen. Dazu würde sich wohl laut Dokumentation das "content" Property eignen:

message.content.startsWith(...)

Wenn dir JavaScript sagt, dass etwas undefined ist, oder eine Funktion wie startsWith nicht darauf angewandt werden kann, lohnt es sich meist, die Variable einfach mal mittels console.log() auszugeben. Dann siehst du, was in der Variable eigentlich drin steckt.

CGCofficial 
Beitragsersteller
 14.05.2020, 23:36
@Functional

Oh. Vielen Dank für die ausführliche Antwort. Ich werde es morgen nochmal versuchen.