Einen Discord-Bot machen

  • JavaScript

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von Elanda.

    Einen Discord-Bot machen

    Hallo zusammen

    Ich versuche schon seit längerem einen Discord-Bot zu programmieren. Leider weiss ich nicht wie ich das mit meinen Ansprüchen machen muss.
    Deshalb frage ich.

    Informationen über den Bot:
    Spoiler anzeigen

    Es soll der Hauptbot für meinen Server sein.
    Dieser Bot heisst Cultivator_Bot

    Für diesen Bot brauche ich einen User-Info, wo das Profilbild und Profilname im Server vom Discord drauf steht. Es soll auch der Titel, der ich im Server verteile anzeigen.

    Es gibt sogar ein spezielles Levelsystem, dass nicht auf Zahlen basiert.
    Der Levelablauf wäre:
    Spoiler anzeigen

    Early stage of Qi Condensation
    Middle stage of Qi Condensation
    Late Stage of Qi Condensation
    Early tage of Foundation Establishment
    Middle stage of Foundation Establishment
    Late Stage of Foundation Establishment
    Early Stage of Core Formation
    Middle stage of Core Formation
    Late Stage of Core Formation
    Early Stage of Nascent Soul
    Middle Stage of Nascent Soul
    Late Stage of Nascent Soul
    Early Stage of Soul Formation
    Middle Stage of Soul Formation
    Late Stage of Soul Formation
    Early Stage of Soul Transformation
    Middle Stage of Soul Transformation
    Late Stage of Soul Transformation
    Early Stage of Ascendant
    Middle Stage of Ascendant
    Late Stage of Ascendant
    Early Stage of Illusory Yin
    Middle Stage of Illusory Yin
    Late Stage of Illusory Yin
    Early Stage of Corporeal Yang
    Middle Stage of Corporeal Yang
    Late Stage of Corporeal Yang
    Early Stage of Nirvana Scryer
    Middle Stage of Nirvana Scryer
    Late Stage of Nirvana Scryer
    Early Stage of Nirvana Cleanser
    Middle Stage of Nirvana Cleanser
    Late Stage of Nirvana Cleanser
    Early Stage of Nirvana Shatterer
    Middle Stage of Nirvana Shatterer
    Late Stage of Nirvana Shatterer
    Early Stage of Heaven's Blight
    Middle Stage of Heaven's Blight
    Late Stage of Heaven's Blight
    Early Stage of Nirvana Void
    Middle Stage of Nirvana Void
    Late Stage of Nirvana Void
    Early Stage of Spirit Void
    Middle Stage of Nirvana Void
    Late Stage of Nirvana Void
    Early Stage of Arcane Void
    Middle Stage of Arcane Void
    Last Stage of Arcane Void
    Early Stage of Void Tribulant
    Middle Stage of Void Tribulant
    Late Stage of Void Tribulant
    Early Stage of Half Heaven Trampeling
    Middle Stage of Half Heaven Trampeling
    Late Stage of Half Heaven Trampeling
    Early Stage of Heaven Trampeling
    Middle Stage of Heaven Trampeling
    Late Stage of Heaven Trampeling

    Jedes dieser Level wird noch in 10 Level von Stufe 1 bis Stufe 10 unterteilt, ausser das letzte Level, das kann noch so weit gehen.

    Dann soll jeden Monat je nach Titel einen Level Up geben.
    Die EXP die man für jedes Level braucht geht jedes mal um 1000 hoch.
    Um das Level Early Stage of Qi Condensation Stufe 2.

    Ich sollte duch den befehl:
    !cb levelup @Username
    Jemanden auch noch level Ups geben können.

    Die User-Infos kann man durch:
    !cb user
    aufrufen

    durch !cb cultivate
    sollte man immer 20 EXP bekommen

    durch

    !cb fight @GegnerUserName
    passiert das (Beispielkampf: A Gegen B, was im Hintergrund passiert)
    1. 10 Würfelwürfe um die HP von A herauszufinden
    2. 10 Würfelwürfe um die HP von B herauszufinden
    3. 1 Würfel wird geworfen. Wenn 1, 2 oder 3 dann fängt A an sonst B
    4. Angreifer würfelt die Angriffszahl und Verteidiger würfelt auch. Jeder Zahl wird die Levelhöhe hinzugefügt.
    5. Wenn der Angreifer die höhere Zahl hat als der Verteidiger bekommt der Verteidiger den Unterschied von den Zahlen als Schaden. Wenn der Verteidiger die höhere Zahl hat, bekommt der Angreifer den Schaden.
    6. Dann wird es wieder vom 4 Punkt gemacht aber nur dass der andere jetzt der Angreifer ist. Es geht bis einer der HP auf 0 oder weniger ist.
    7. Der Sieger bekommt dann 500 EXP und der Verlierer 200 EXP
    Fast alle dieser Vorgänge werden den Discord-User mitgeteilt.

    Wenn man einen gewissen User-Name hat, wird der Level sofort auf Late Stage of Heaven Trampeling Stufe 1 gesetzt.


    Wenn sonst noch irgendwelche Fragen dazu sind, kann man mich fragen.

    Edit:

    Ach, Google konnte mir nicht helfen.
    Ist das nun eine Aufgabenbeschreibung für leute die daran interessiert wären, dir so etwas zu basteln?

    Oder suchst du damit nach hilfe? Falls ja, dann hast du hier zwar wunderbar aufgedröselt was dein bot so alles können soll, jedoch haben wir absolut nichts bei dem wir dir helfen können. Was hast du bereits versucht? Woran scheitert es? Irgendwelche Exceptions? Was genau am Thema "Discord Bot Programmieren" ist dir unklar ? Das wären die Fragen, die du beantworten solltest.
    @EaranMaleasi
    Irgendwie meine ich beides, weil ich durch die Tutorials im Google nicht weiterkomme, wie ich das machen soll. Ich habe nur die Anforderungen aufgeschrieben, sodass jeder weiss, was ich für ein Endprodukt haben möchte. Weil ich eben nicht weiterkomme, brauche ich Hilfe. Es ist beides, weil ich zum Beispiel wie man das Levelsystem machen soll, nicht komplett machen soll, sondern nur ein Beispiel oder ein Stück weit machen, sodass ich den Rest davon schreiben kann und wie man die EXP hinzufügen kann.
    Wenn du so etwas programmieren lassen willst dann ab in den Marktplatz damit. (Oder schreib mir eine Private Nachricht mit deiner Mail-Adresse und ich mach dir das (natürlich nur mit Gegenleistung)).
    Ansonsten schau dir mal die Discord Dokumentation an: discord.com/developers/docs/introDort findest du allerhand Sachen.
    Grüße , xChRoNiKx

    Nützliche Links:
    Visual Studio Empfohlene Einstellungen | Try-Catch heißes Eisen
    Solltest du dennoch mal selbst lust bekommen dir selber einen zusammenzutinkern, kann ich dir empfehlen eine bereits vorhandene Bibliothek zu nehmen die alle REST API calls und HTTP Requests für dich intern übernimmt.

    Ich kenne drei:
    Discord.js | Node.js
    Sleepy-Discord | C++

    Ich persönlich verwende letzteres, gibt aber noch massig mehr:

    discord.com/developers/docs/to…unity-resources#libraries

    Kannst dir aussuchen welchet Sprächen dir beliebt.
    Ich empfehle für den very Anfang aber Discord.js, die meisten Bots wurden damit geschrieben, und daher gibt es auch relativ viel Referenzmaterial.

    Ach noch etwas, du könntest dir den Quellcode von gewissen bots ansehen welche ein ähnliches System beherbergen, da wäre Nadeko Bot, Mee6 Bot und Tatsumaki bot.
    Sind eigentlich die einzigen die ich selbst verwendet habe bisher, gibt aber sicher mehr.
    Ind abgesehen von deren Anlehnung, sind sie relativ gut.

    Ich kann nur empfehlen da selbst rein zu kommen,
    Viel Spaß
    ----------------------------------------------------------------------------------------------------------------------

    Hier könnte meine Signatur stehen, aber die ist mir abfußen gekommen.

    ----------------------------------------------------------------------------------------------------------------------
    @Elanda
    Ich kenne die, aber das wegen dem speziellem Levelsystem ist kompliziert. Kenne kein anderen Bot, der Richtung mit Wörtern anstatt Zahlen arbeitet. Klar habe ich vorher schon mal einen Bot gemacht, aber um das zu machen was ich möchte, reichen die Tutorials in Google nicht.
    Tut mir leid, aber was bedeutet "Richtung mit Wörtern anstatt Zahlen arbeitet"?
    ----------------------------------------------------------------------------------------------------------------------

    Hier könnte meine Signatur stehen, aber die ist mir abfußen gekommen.

    ----------------------------------------------------------------------------------------------------------------------
    Das geht mit ganz einfachem mapping. Du entwickelst das System wie gewohnt mit Zahlen, und ausgeben tust du dann die assoziierten Zahlenwörter.
    ----------------------------------------------------------------------------------------------------------------------

    Hier könnte meine Signatur stehen, aber die ist mir abfußen gekommen.

    ----------------------------------------------------------------------------------------------------------------------
    Mal ganz unabhängig davon erlauben es ja auch die meisten Bots mit den Leveln den Leuten entsprechende Rollen zu verpassen. So sind die Leute zwar im Bot mit leveln versehen, auf dem Server hingegen sieht man die Rollen, mit Farben und/oder Gruppierung. Und diese Rollen kannst du bspw. auch nur alle 10 Level vergeben, so hast du immer Rolle XY - Stufe 0-9

    Und falls nötig, kannst du die Rolle auch von Hand vergeben.
    Genau so ist es.
    Rollen haben wie Kanäle, Gilden, User ect. ihre eigene Snowflake.
    Mit dieser ist es nicht schwierig die Rolle an einen Wert zu binden.
    ----------------------------------------------------------------------------------------------------------------------

    Hier könnte meine Signatur stehen, aber die ist mir abfußen gekommen.

    ----------------------------------------------------------------------------------------------------------------------