Discord.js Herausfinden ob User in einen Voice Channel ist / Musik in Channels Spielen?
Hallo, ich versuche grade einen Bot zu Programmieren, der herausfindet ob ein User in einem Channel ist und dann direkt reagiert.
Was soll er machen:
- Erkennen, ob ein User in einem Channel ist
- -> Wenn ja: In einen Channel gehen und Musik spielen
Was ich bis jetzt als Code habe. Leider geht dieser nicht und ich frage mich, ob es auch anders bzw. einfacher geht:
client.on('voiceStateUpdate', (newmember)=> {
let newvoice = newmember.voiceChannel;
// let warteChannel = member.voiceChannel.get(channel[ServiceWorkerRegistration.id][warteChannel]);
if (newvoice === 54478085972XXX) {
let annChannel = client.guilds.voiceChannel.get(54493151978XXXXXX);
annChttps://www.youtube.com/XXX);44XXXXXXX, https://www.youtube.com/XXX);
};
});
Hier zu sagen ist, dass annChannel der Channel ist, in den der Bot gehen soll und warteChannel der Channel ist, in dem der Bot User finden soll, also testen soll, ob in diesem Channel User sind.
Aktuell, wenn man diesen Code nun laufen lässt, gibt es keine Fehlermeldung, aber es passiert leider auch nichts.
Ich würde sehr freuen, wenn mir einer Erklären könnte, wie man einfach nun herausfinden kann in JAVASCRIPT, ob ein User in einem Voice Channel ist und wie man einfach einen Bot ein YouTube Video abspielen lässt.
Danke schon einmal im Voraus. PartyGamerXXL
1 Antwort
Hi.
Das Event "voiceStateUpdate" benötigt, wie Du auch den Discord.js-Docs entnehmen kannst, zwei Parameter: den `oldMember` und `newMember` (hier zum Nachlesen: https://discord.js.org/#/docs/main/stable/class/Client?scrollTo=e-voiceStateUpdate).
Da bei solchen Fragen sich das Prinzip Hilfe zur Selbsthilfe bewährt hat, kann ich Dir hier nun nur einen Lösungsvorschlag geben, als dass ich den kompletten Code hier reinklatsche. Wenn Du nun das Event mit dem `oldMember` und dem `newMember` hast, brauchst Du erstmal eine Abfrage, ob der User gerade in einem Voicechannel ist. Denn wenn das Event triggert, dass Du den Voicechannel verlässt und dann der Bot joinen soll, führt das ja am Ziel vorbei.
Wenn Du diese Abfrage hast, kannst Du Dir das Channel-Objekt natürlich als Variable speichern und den Bot in den Channel joinen lassen.
Falls Du etwas nicht verstanden hast, melde Dich gerne, ansonsten würde ich mich über einen Stern freuen. :)
Schönen Abend noch.
Hab ich mir fast gedacht. Aber vielleicht für Leute, die ein ähnliches Problem haben :)
Danke für deinen Tipp, aber ich habe schon vor langen das Problem gelöst.
Grüße