Wie schreibe ich folgenden Command mit JavaScript für einen Discord Bot?
Hey,
im Moment habe ich folgenden Command:
if(message.content.startsWith(prefix + "bann")){ //Wenn Message
if(message.member.nickname){ //Wenn Author Nickname
message.channel.send("\\*bannt " + message.member.nickname + " weil er ihn nicht leiden kann!" + "*") //Sende Nickname
}
else message.channel.send("\\*bannt " + message.author.username + " weil er ihn nicht leiden kann!" + "*") //Wenn kein Nickname, sende Username
}
Dies ist ein Fun-Command für meinen selbst programmierten Discord-Bot. Info: mein Nickname dort ist NightHawk, damit keine Verwirrung kommt.
Schreibe ich hier +bann in den Chat, schreibt er immer "Nekotamo bannt NightHawk, weil er ihn nicht leiden kann":
Es ist egal, ob ich nur "+bann" oder zum Beispiel "+bann Clashi" schreibe (Clashi ist ein anderer Nutzer). Es wird immer "bannt NightHawk", also mein Name ausgegeben. Ich möchte ja aber, das er den Namen übernimmt, sprich zB Clashi. Und das mein Bot dann schreibt "Nekotamo bannt Clashi, weil er ihn nicht leiden kann".
Mein Ziel ist nämlich, das er den Namen übernimmt, den ich hinter +bann eingebe, zB NightHawk, Clashi, Whatever. Ob per Mention (@NightHawk // @Clashi) oder nur NightHawk ist egal.
Sprich:
Ich: +bann @Clashi Bot: "Nekotamo bannt Clashi (übernimmt er aus meinen Command), weil er ihn nicht leiden kann!
Ich: +bann @NightHawk Bot: "Nekotamo bannt NightHawk(übernimmt er aus meinen Command), weil er ihn nicht leiden kann!
Ich hoffe man versteht was ich meine. Kann mir wer genau sagen, wie ich das schreiben muss? Bin blutiger Anfänger und einfach mal ins kalte Wasser gesprungen.
2 Antworten
Das geht wesentlich einfacher! Mit Mentions (also Erwähnung)
Command: +ban @user
var banName = message.mentions.users.first().username;message.channel.send(banName + " bannt " + message.author.username + " weil...");
Gruß
(Dieser Code Ausschnitt bezieht auf die Library Discord.JS Version 11.1.0)
Ich weiß nicht, was du da für Klassen benutzt, aber so, wie ich das verstanden habe, würde das so funktionieren:
if(message.content.startsWith(prefix + "bann")){ //Wenn Message //Wenn Author Nickname
var pos = message.content.indexOf('@'); if (pos != -1) message.channel.send("\\*bannt " + message.content.substring(pos+1) + " weil er ihn nicht leiden kann!" + "*"); //Sende Nickname }
Wenn du es ohne @ machen willst kannst du es auch durch ein Leerzeichen ersetzen.