Discord Bot der eine Nachricht versendet, wenn jemand einen Voice-Kanal betretet?
Hallo Zusammen,
Ich betreibe einen Com-Discord, indem wir einen Support und Zertifizierungsbereich haben.
Beide Bereiche besitzen einen Warteraum. Unsere freiwilligen Teammitglieder müssten aktuell den Discord immer im Blick behalten, falls dort ein User den Voice-Kanal betretet.
Zur vereinfachung dieses Vorganges hätte ich gerne einen Bot, der unseren Mitgliedern der jeweiligen Rolle eine Privat-Nachricht schreib, wenn hier ein User den jeweiligen Voice-Kanal betretet.
Gibt es so etwas? oder kann man so etwas überhaupt erstellen?
1 Antwort
Klar, am besten programmierst du dafür deinen eigenen BOT, ist auch gar nicht so schwer.
Für Einsteiger ist die Sprache Python zu empfehlen, du könntest aber auch genauso gut Javascript oder C# verwenden. (Grundsätzlich kannst du jede Sprache verwenden, das sind aber so die gängisten für Discord BOTs). Für C# gibt es beispielsweise die Discord.NET API, mit der du deinen Bot programmieren kannst.
Wenn du nicht wirklich weißt wo du anfangen sollst, ließ dir am besten die Documentation zur API durch, YouTube Videos sind auch häufig ein guter Anfang, man sollte sie aber auch nur zum Einstieg nutzen.
Ich habe mir diese Software eben angesehen und ich hoffe für dich, dass du das Geld noch zurückerstattet bekommst, denn für so etwas würde ich niemals 10€ ausgeben, das ist einfach gesagt ein simpler, vorgefertigter Bot, der (wahrscheinlich) die besagte API oder eine ähnliche nutzt.
Du könntest zwar dort erst einmal einen grundlegenden Bot erstellen, müsstest dann für speziellere Features wie du sie dir wünscht noch selbst am Source Code des Bots herumbasteln (was mit dieser Software zum Glück schon möglich ist).
Die Dokumentation der API finde ich auf die schnelle nicht auf deutsch, also würde ich dir empfehlen auf YouTube dir ein paar Videos zur "Discord.NET API" anzusehen, da gibt es mehr als genug auf deutsch, programmieren ist aber leider meistens mit Englisch verbunden, besagte Videos gehen aber meistens davon aus dass du blutiger Anfänger bist und dir wird dort alles beigebracht!
Solltest du es gar nicht selbst auf die Reihe bekommen, empfehle ich dir einen Developer zu engagieren, der dir deine Wünsche in die Tat umsetzt. Aber auch hierfür wirst du (sehr wahrscheinlich) Geld in die Hand nehmen müssen, deswegen ist selbst machen immer die beste Methode.
Hallo @neugier42069,
Danke für deine Info. Ich hab mir eben mal begonnen, ein Lehrvideo über Python anzuschauen, der von gaanz neu mit Installation der nötigen Software beginnt.
Ich hoffe, dass mir dieses nun auch bei hilft.
Dennoch frage ich:
Hast du Erfahrung mit einem Developer, was diese für so einen kleinen Bot möchten?
Ich benötige tatsächlich nur diese eine Funktion, rest erledigt ja Mee6 oder so etwas
Nein, ich programmiere mir auch alles selbst und habe noch nie einen Developer engagiert, vielleicht findest du aber auf fiverr.com entsprechende Angebote.
Nur diese eine Funktion die du dir hier wünscht ist aber sehr simpel und erfordert meines Erachtens nach nur wenige Zeilen Code, dafür sollte also nicht allzu viel verlangt werden, vielleicht will es ja jemand sogar für dich kostenlos machen.
https://stackoverflow.com/questions/66518640/how-to-determine-if-a-user-joined-switched-left-a-voice-channel
Hier noch ein kleiner Anhang, hier kannst du, wenn du herunterscrollst zwei verschiedene Ansätze in C# finden, wie der BOT ein "Joined Channel Event" Auslösen könnte. Danach müsste man nur eine Privat Nachricht an die gewünschte Rolle gesendet werden, was zwischen 1-5 Zeilen benötigen könnte.
@client.event
async def on_voice_state_update(member, before, after):
if not before.channel and after.channel:
channel = client.get_channel(HIER_TEXT_CHANNEL_ID)
await channel.send('{member.id} IS HERE')
Hier wäre eine Lösung in Python, welche eine Textnachricht an einen beliebigen Textchannel (HIER_TEXT_CHANNEL_ID) sendet, wenn ein User einem BELIEBIGEN Voicechannel joint.
Hier müsste man das If -Statement so verändern, dass nur eine bestimmter Voicechannel (VOICE_CHANNEL_ID) möglich ist, in etwa so:
if not before.channel and after.channel and channel.id == VOICE_CHANNEL_ID: [...]
Des Weiteren wird die Nachricht nicht privat versendet, auch hierfür müsste man in der Dokumentation nach der richtigen Funktion suchen.
Ich hoffe ich konnte dir hiermit ein paar Anreize geben und wünsche dir Viel Glück bei deinem Projekt.
Bitte beachte dass du diesen Code nicht einfach kopieren kannst in der Hoffnung dass er funktioniert, ich habe hier nur frei Schnauze Pseudocode gemischt mit Python geschrieben.
Hallo neugier42069,
Danke für deine Antwort. Mein Englisch ist leider genauso gut wie mein Französisch, Russisch oder Afrikanisch. Ich kanns nicht.
Gibt es auch Hilfreiche seiten in der Deutschen Sprache?
Ich hab mir tatsächlich auch schon "BOT Making"-Software von Steam kostenpflichtig geladen, die mir leider scheinbar so eine Möglichkeit nicht bietet.