Discord Bot - Welche Bibliothek, wie macht ihr das?

  • Scheint augenscheinlich in die richtige Richtung zu gehen. Berichte uns gerne, ob es dein Problem gelöst hat und wenn du nicht weiterkommst gerne nachfragen.

    Ich bin der Meinung man lernt am besten, wenn man die Probleme selbst beseitigen konnte. Deshalb denke ich wäre es gut, wenn du diesen Weg erstmal versuchst.

    Also mit Discord js hatte ich noch keine Berührungspunkte, ich glaube aber (ohne Quelle), dass Discord js schnellere Updates bekommt als jda. Ich denke auch das Javascript einfacher zum Entwickeln ist als Java. Javascript ist was Syntax und typen angeht etwas lockerer als Java.


    Ich hoffe das beantwortet deine Frage ^^

  • Hey ho ;)

    jaaa 😜 discord.js war tatsächlich die bessere Wahl. Alleine schon durch den Support Server von denen .. 🙏 an dieser Stelle an euch natürlich auch für die Tipps und das Feedback.

    Aktuell sieht es so aus das ich einen Grund Bor erstellt habe der in Zukunft als Boilerplate dienen wird.

    Features:

    Slash & prefix commands

    Event Handling,

    LogMod für Channels, Messages, Guild Updates, User Updates,

    WelcomeMod .. sagt ja alles .. vergibt start rolle und generiert ein canvas für den Eingangs Channel

    BadWordsMod .. selbsterklärend .. bisher nur das Basic mit Verwarnung … sobald mongo steht dann auch mit anzählen und nach x Verwarnungen Punishments.

    TicketMod .. auch hier nur Basic .. gehst in den Channel -> Button Ticket eröffnen .. Neuer Channel .. kannste schreiben, closed .. am Ende dann die Wahl ob Transcript ..

    Aktuell sitze ich nebenbei noch am Dashboard weil ich vor ein paar Tagen einige Dinge dazu in Erfahrung bringen konnte.

    Das ganze Teil wird serviert von einem Express Server .. mit ejs Engine. Für die Verbindung zu discord nutze ich passport-discord. Für Front bzw Backend Optik nutze ich sehr sehr gerne tailwindcss .. danke an dieser Stelle an Syntafin für den damaligen Tipp dazu 🤩

  • Hey hey, sehr gerne und du kannst auch gerne den Code auf GitHub mal betrachten.

    Die Sache mit dem Dashboard ist wenn man es einmal weiß total easy. Ich bin jetzt aktuell dabei den Bot so umzuschreiben das ich den bot tatsächlich auf mehreren Guild nutzen könnte. Dazu gehört leider auch das umstellen von config.js auf database 😜 langwierig vorallem wenn man nur mit dem Handy schreiben kann haha

    Follow%20me-h4zee90-red?labelColor=blue&style=for-the-badge&logo=twitch&logoColor=white

    Follow%20me-vcs.h4ze-red?labelColor=blue&style=for-the-badge&logo=TikTok&logoColor=white

    DM%20me-h4zebust3r90-red?labelColor=blue&style=for-the-badge&logo=discord&logoColor=white

  • Ich sag mal so .. das schwierigste war das Umdenken von local auf global. Zumindest bei mir war es so. Einmal angefangen klappt das super und ich muss sagen mit Mongodb ist halt viel besser und obendrein haste halt die Möglichkeit das ganze per Dashboard anzubinden. Je mehr ich mich damit auseinander setze desto mehr blicke ich durch und brauche auch weniger bis kaum Hilfe wie bei jda.

    Ich dachte mir wenn ich jetzt schon dabei bin baue ich die ganze Struktur auch mehr auf guilds als auf guild an .. heißt ich würde später echt gerne den bot anderen zur Verfügung stellen und dafür muss alles quasi global ausgelegt werden.

    Einzig das Layout vom Dashboard finde ich cringe aber das mache ich bei Bedarf eh noch neu 😜 tailwind ist da ja total flexibel.

    Wenn du Bock hast kannste den Grund Code vom Dashboard haben und ich erkläre dir alles was du nicht verstehst aber ist eigentlich ganz gut aufgebaut haha 😜 Ich packe dir das mal in ein repo und dann kannste das fahren. Musst nur schauen wie du das Dashboard starten willst. Ich habe es aktuell bzw wird das Dashboard durch eine variable in der config.js enabled bzw disabled. Die wird auch bleiben. Dort habe ich dann zb auch die vars fürs sessionpassword und die ganzen URLs und keys drinnen. Client key hole ich allerdings wieder per db

    Ach: Gibt’s eine Möglichkeit einen gewissen Teil meines repos zu kopieren und in ein neues repo zu schieben? Syntafin das doch wieder eine Frage für dich! ;) ❤️

    Follow%20me-h4zee90-red?labelColor=blue&style=for-the-badge&logo=twitch&logoColor=white

    Follow%20me-vcs.h4ze-red?labelColor=blue&style=for-the-badge&logo=TikTok&logoColor=white

    DM%20me-h4zebust3r90-red?labelColor=blue&style=for-the-badge&logo=discord&logoColor=white

    Einmal editiert, zuletzt von evarioo (15. Mai 2024 um 21:06)

  • Ah nice, überlege auf Python umzusteigen und mein Code dadurch mal aufzuräumen und neu zu strukturieren.

    Hätte da auch eine Frage. Ist es bei Github möglich den master der privaten Repo irgendwie zu deployen oder bei der Action wenn man in den master merged, dass der Code dann neu compiled wird, auf den Server hochlädt und den Bot dann neustartet auf dem Server?

    Ich denke ihr wisst worauf ich hinaus will, das wäre für mich der perfekte Use Case

  • Ich weiß was du meinst ich habe das so gelöst:

    Code
    "scripts": {
            "start": "cross-env NODE_ENV=production NODE_NO_WARNINGS=1 node . ",
            "dev:watch": "cross-env NODE_ENV=development NODE_NO_WARNINGS=1 nodemon .",
            "tailwind:compile": "npx tailwindcss -c ./dashboard/tailwind.config.js -i ./dashboard/public/css/layout.css -o ./dashboard/public/css/layout.compiled.css --watch"
        },

    Eintrag für die package.json .. ich starte den bot dann per npm run dev:watch .. jetzt schaut der bot ob neue files dazu kommen oder sich alle ändern und startet entsprechend neu.

    Bevor ich das so gelöst habe hatte ich auch oft das Problem das beim Bot Fehler kamen wegen interaction etc .. idle Prozess die Doppel gespannt sind .. frag mich nicht auf jedenfall ist es so besser.

    Aber das halt nur für .js und nicht für .java .. das hatte ich vergessen in meiner euphorie

    Follow%20me-h4zee90-red?labelColor=blue&style=for-the-badge&logo=twitch&logoColor=white

    Follow%20me-vcs.h4ze-red?labelColor=blue&style=for-the-badge&logo=TikTok&logoColor=white

    DM%20me-h4zebust3r90-red?labelColor=blue&style=for-the-badge&logo=discord&logoColor=white

  • Aber dann musst du ja trotzdem manuell Hand anlegen, ich meinte ob das vollautomatisch geht.


    Für meinen Use Case wäre das vollkommen in Ordnung ohne Prüfung direkt bei Codeänderung im Master den Bot neuzuladen und neuzustarten


    Edit: Klar kann ich auch googeln und selber tryen, aber hoffe auf jemanden der es selber mal gemacht hat und berichten kann^^

  • Also wenn du es mit discord.js machst dann kannst meinen genannten Weg nutzen.

    Ich finde discord.js einfach auch besser dokumentiert als jda und alleine schon die Community ist sehr viel wert. Keine Ahnung ob das jda auch hat ..

    Follow%20me-h4zee90-red?labelColor=blue&style=for-the-badge&logo=twitch&logoColor=white

    Follow%20me-vcs.h4ze-red?labelColor=blue&style=for-the-badge&logo=TikTok&logoColor=white

    DM%20me-h4zebust3r90-red?labelColor=blue&style=for-the-badge&logo=discord&logoColor=white

  • Hatte bisher nur positive Erfahrungen mit JDA gemacht und die Discord Community ist auch hilfsbereit, die wollen halt das man vorher sich auch mal die Doku angeschaut hat ^^

    Bin gerade am kämpfen mit mir selber, ob ich JDA umbaue oder auf Discord.js umsteige. Mal sehen, gestern wollte ich definitiv umsteigen. Ich mag es aber eigentlich genau zu wissen was ich tue und bei Javascript sind die Typen egal und man müsste gute Exceptions für schreiben, um nicht auf Schnitzeljagd zu gehen.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!