Discord.js Wie definiere ich "users"?
Mein Ziel ist es /dm (@irgendjemand) (nachricht) so zu programmieren, damit mein Discord Bot einen Benutzer eine Nachricht privat schickt. Aber wenn ich /dm eingebe kommt eine Fehlermeldung...
Wie soll ich "users" definieren?
mention = message.mention.users.first() <-- Hier ist die Fehlermeldung
Fehlermeldung: TypeError: Cannot read property 'user' of undefined
Ganzer Code:
bot.on("message", (message) => {
msg = message.content.toLowerCase();
mention = message.mention.users.first()
if (msg.startsWith ("dm")) {
if (mention == null) { return; }
message.delete();
mentionMessage = message.content.slice (8);
mention.sendMessage (mentionMessage);
message.channel.send("Successfully Direct Messaged the User.")
}
});
1 Antwort
Ich gehe mal davon aus, der Fehler lautet "TypeError: Cannot read property 'users' of undefined", nicht "TypeError: Cannot read property 'user' of undefined". Denn das Property "user" verwendest du in der von dir geposteten Codezeile, die den Fehler auslöst, nirgends.
Ohne mich jetzt mit der Discord API je befasst zu haben, würde ich basierend auf 1 Minute in der Dokumentation nachschauen sagen, dass "message.mention..." in "message.mentions..." geändert werden muss. Das Property "mention" gibt es nämlich nicht im Message Objekt: https://discord.js.org/#/docs/main/stable/class/Message?scrollTo=mentions
Ich kenne mich mit Discord nicht aus, hab es tatsächlich noch nie in meinem Leben verwendet. Ich kenne mich nur mit JavaScript aus und überfliege die entsprechenden Dokumentationen wie die von DiscordJS.
Ich komme nun nicht weiter, da ich nicht weiß, wie der script lautet, dass der Bewerber dem Bot irgendetwas schreibt und der Bot dann die nächste Frage stellt.
Mit reinem JavaScript wird das wahrscheinlich nichts werden. Du musst irgendwo die Ergebnisse der vorangegangenen Fragen und daher den aktuellen Status der "Befragung" abspeichern. Das ist in aller Regel eine Datenbank. In JavaScript (bzw. Node) verwendet man oft MongoDB, für Anfänger freundlicher bzw. leichter zu verstehen ist jedoch evtl. MySQL. Gibt einige Anleitungen auf YouTube zum Thema Node und MySQL, bestimmt auch discordbezogen.
Hey, sehe das du dich in dem Thema ganz gut auskennst.
Ich hätte da ne Frage:
Ich programmiere derzeitig einen Discord Bewerbungs Bot, bin aber noch kompletter anfänger im Thema Javascript.
Ich komme nun nicht weiter, da ich nicht weiß, wie der script lautet, dass der Bewerber dem Bot irgendetwas schreibt und der Bot dann die nächste Frage stellt.
Hier mein Bisheriger Script:
const Discord = require('discord.js');
const client = new Discord.Client();
const auth = require('./auth.json');
const prefix = "+";
client.on('ready', () => {
console.log(
);});
client.login(auth.token);
client.on('message' ,msg => {
if (msg.content === '!test') {
msg.author.send('Frage 1');
}
//hier hätte ich gerne die zweite Frage, die gestellt wird, wenn die erste Frage beantwortet wurde
});