1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Deutsch
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Discord Bot - Welche Bibliothek, wie macht ihr das?

    • Erledigt
  • PixelPatron
  • 26. Dezember 2023 um 20:19
  • Geschlossen
  • Erledigt
  • 1
  • 2
  • 3
  • Syntafin
    27
    Syntafin
    LISTstack Dev
    Reaktionen
    498
    Punkte
    7.798
    Trophäen
    2
    Beiträge
    1.416
    • 11. Januar 2024 um 17:52
    • #21
    Zitat von evarioo

    Weil ich ja bereit bin zu lerne und keine ganzen Code Blöcke suche.

    Es klang nur so als ob du lieber was anderes nehmen willst, daher die Frage :)

    A red dragon falls from the heavens... Ah, that memory has been lost. A shame. It was a favorite of mine...

  • PixelPatron
    20
    PixelPatron
    github.com/pixelpatron90
    Reaktionen
    164
    Punkte
    4.084
    Beiträge
    724
    Einträge
    3
    • 11. Januar 2024 um 18:13
    • #22
    Zitat von Syntafin

    Es klang nur so als ob du lieber was anderes nehmen willst, daher die Frage :)

    Nein nein :grinning_face_with_smiling_eyes: ich habe durchaus vorher die verschiedenen Möglichkeiten angeschaut und auch zb sowas wie eine php klasse für jda gefunden aber ich fand das die mehrheit der entwickler zu java oder js tendieren. Da JDA mMn. das ist was die meisten nutzen viel die Wahl darauf.

    Es geht vorran :winking_face:

    pixelpatron-100000?style=for-the-badge&logo=X&logoColor=white&labelColor=000000&color=FF0000 pixel_patron-100000?style=for-the-badge&logo=Discord&logoColor=white&labelColor=000000&color=FF0000

    EVARIOO - DISCORD

  • Syntafin
    27
    Syntafin
    LISTstack Dev
    Reaktionen
    498
    Punkte
    7.798
    Trophäen
    2
    Beiträge
    1.416
    • 11. Januar 2024 um 18:41
    • #23

    Die meisten nutzen JS/TS und Python dafür :grinning_face_with_smiling_eyes:

    A red dragon falls from the heavens... Ah, that memory has been lost. A shame. It was a favorite of mine...

  • leon20spr
    6
    leon20spr
    Mitglied
    Reaktionen
    21
    Punkte
    336
    Trophäen
    1
    Beiträge
    55
    • 11. Januar 2024 um 18:52
    • #24
    Zitat von Syntafin

    Die meisten nutzen JS/TS und Python dafür :grinning_face_with_smiling_eyes:

    Python kann ich sehr empfehlen... habe ich damals selbst mit angefangen und bin immer noch von discord.py überzeugt. Aktuell nutze ich aber für Anwendungen im Zusammenhang mit Discord hauptsächlich Discord.NET

  • Blacksonny
    16
    Blacksonny
    Moderator
    Reaktionen
    138
    Punkte
    2.673
    Trophäen
    1
    Beiträge
    487
    • 11. Januar 2024 um 20:25
    • #25

    Also wenn ich die Wahl hätte würde ich auch zu Python wechseln, nur ist schon viel gemacht jetzt bei mir und mir fehlt die Zeit aktuell.

    Aber wenn du lernen willst würde ich dir eher die Doc‘s schicken ist ziemlich selbst erklärend auch

    Erst erstellst du ein Command für deinen Modal das du aufrufen willst (ich denke wie Commands gebaut werden weißt du)

    Modal Doc: https://ci.dv8tion.net/job/JDA5/javad…ents/Modal.html

    Dann gettest du dir die Inputs und baust daraus den Embed das wars dann schon, hier gehe ich auch von aus das du weißt wie Embeds gebaut werden. Falls doch nicht gerne nachfragen :)

    ModalInteractionEvent Doc: https://ci.dv8tion.net/job/JDA5/javad…ctionEvent.html


    Hier ist auch ein gutes Code Beispiel ohne Embed, aber statt dem createTicket baust du dann eben dein Embed.

    Beispiel findest du hier unter „Modals“: https://jda.wiki/using-jda/interactions/

  • PixelPatron
    20
    PixelPatron
    github.com/pixelpatron90
    Reaktionen
    164
    Punkte
    4.084
    Beiträge
    724
    Einträge
    3
    • 11. Januar 2024 um 22:57
    • #26

    Hallo,

    gesagt, getan. Ich hatte zwar etwas anderes unter einem Formular im Kopf aber die Variante ist auch klasse.

    Da wähle ich quasi schonmal einen Kanal aus und danach geht das Modal auf ..

    Die Eingaben werden auch übergeben und das embed erstellt allerdings stört mich das er anscheinend mit einem fehler abbricht. Die Konsole zeigt nichts dazu an. Weisst du dazu Rat Blacksonny ?

    Nachtrag: Konnte ich lösen.

    Nachtrag: Was ich ja blöd finde und auch keien Lösung für finde ist

    Cannot make a modal with more than 5 components!

    ...

    pixelpatron-100000?style=for-the-badge&logo=X&logoColor=white&labelColor=000000&color=FF0000 pixel_patron-100000?style=for-the-badge&logo=Discord&logoColor=white&labelColor=000000&color=FF0000

    EVARIOO - DISCORD

    2 Mal editiert, zuletzt von PixelPatron (11. Januar 2024 um 23:51)

  • Blacksonny
    16
    Blacksonny
    Moderator
    Reaktionen
    138
    Punkte
    2.673
    Trophäen
    1
    Beiträge
    487
    • 12. Januar 2024 um 14:45
    • #27

    Ich habe bisher nicht mehr als 5 Felder gebraucht, vielleicht macht es dann Sinn verschachtelte Modals zu bauen oder das ist nicht die beste Lösung für dein Vorhaben.

    Aber viele deiner Felder sind überflüssig, da du dir den Author, die Author URL und auch sein Profilbild von dem User der den Command ausführt getten könntest.
    Außer du hast irgendeinen UseCase dafür, dass man den Author explizit benennen müsste. PixelPatron

  • PixelPatron
    20
    PixelPatron
    github.com/pixelpatron90
    Reaktionen
    164
    Punkte
    4.084
    Beiträge
    724
    Einträge
    3
    • 12. Januar 2024 um 15:43
    • #28
    Zitat von Blacksonny

    Aber viele deiner Felder sind überflüssig, da du dir den Author, die Author URL und auch sein Profilbild von dem User der den Command ausführt getten könntest.

    .... oh mann .. manchmal bin ich echt verwundert über meine eigene Dummheit. Natürlich kann man das so lösen ich bin nur noch immer bei dem Panel Modus gewesen und habe einfach nicht nachgedacht. Wozu sollte man das auch mit anderen Daten füttern wollen .. Danke für den Tritt :grinning_squinting_face:

    Das mit dem Kanal könnte man auch quasi so lösen das man sagt das embed erscheint da wo man den befehl ausführt :grinning_squinting_face:

    pixelpatron-100000?style=for-the-badge&logo=X&logoColor=white&labelColor=000000&color=FF0000 pixel_patron-100000?style=for-the-badge&logo=Discord&logoColor=white&labelColor=000000&color=FF0000

    EVARIOO - DISCORD

  • Blacksonny
    16
    Blacksonny
    Moderator
    Reaktionen
    138
    Punkte
    2.673
    Trophäen
    1
    Beiträge
    487
    • 12. Januar 2024 um 19:59
    • #29
    Zitat von evarioo

    Das mit dem Kanal könnte man auch quasi so lösen das man sagt das embed erscheint da wo man den befehl ausführt :grinning_squinting_face:

    Ich dachte du wolltest das so mit dem SelectMenu, ja genau das kannst du so lösen

    Freut mich, dass ich dir den Denkanstoß geben konnte. :grinning_face_with_smiling_eyes:

  • PixelPatron
    20
    PixelPatron
    github.com/pixelpatron90
    Reaktionen
    164
    Punkte
    4.084
    Beiträge
    724
    Einträge
    3
    • 13. Januar 2024 um 06:23
    • #30

    Ja genau. Das war natürlich so gewollt aber kann man ja so oder so machen. Ich dachte einfach dann muss ich nicht immer den Kanal besuchen.

    Alles weiter siehe meinem neuen Beitrag!

    pixelpatron-100000?style=for-the-badge&logo=X&logoColor=white&labelColor=000000&color=FF0000 pixel_patron-100000?style=for-the-badge&logo=Discord&logoColor=white&labelColor=000000&color=FF0000

    EVARIOO - DISCORD

  • PixelPatron
    20
    PixelPatron
    github.com/pixelpatron90
    Reaktionen
    164
    Punkte
    4.084
    Beiträge
    724
    Einträge
    3
    • 22. Februar 2024 um 19:22
    • #31

    Hallööö,

    aus gegebenem Anlass hole ich hier mal aus der Versenkung und kann berichten das ich schon viel weiter gekommen bin und mir nebenbei auch viel java angeeignet habe :)

    Ein grosse Frage die ich habe .. wie verhindere ich das wenn ich mehrere Button Interaction events habe das diese nur dann ausgeführt werden wenn die auch gebraucht werden? quasi ne art id die ich checken kann?

    pixelpatron-100000?style=for-the-badge&logo=X&logoColor=white&labelColor=000000&color=FF0000 pixel_patron-100000?style=for-the-badge&logo=Discord&logoColor=white&labelColor=000000&color=FF0000

    EVARIOO - DISCORD

  • Blacksonny
    16
    Blacksonny
    Moderator
    Reaktionen
    138
    Punkte
    2.673
    Trophäen
    1
    Beiträge
    487
    • 22. Februar 2024 um 22:47
    • #32

    Ich verstehe den Use Case dahinter nicht ganz ist vielleicht auch der Uhrzeit verschuldet. Kannst du das etwas genauer erläutern? PixelPatron

  • PixelPatron
    20
    PixelPatron
    github.com/pixelpatron90
    Reaktionen
    164
    Punkte
    4.084
    Beiträge
    724
    Einträge
    3
    • 3. April 2024 um 19:55
    • #33

    Mies. Hab dieses Jahr mittlerweile so wenig Zeit .. Sorry das ich erst jetzt antworten kann. Was ich meine ist folgendes:

    Mehrere Submit Buttons also Interaction Buttons aber wenn ich zb den aus a) drücke zeigt er mir einen Fehler im Log zu b) an.

    Hoffe das verstehst du so irgendwie haha :winking_face:

    pixelpatron-100000?style=for-the-badge&logo=X&logoColor=white&labelColor=000000&color=FF0000 pixel_patron-100000?style=for-the-badge&logo=Discord&logoColor=white&labelColor=000000&color=FF0000

    EVARIOO - DISCORD

  • Blacksonny
    16
    Blacksonny
    Moderator
    Reaktionen
    138
    Punkte
    2.673
    Trophäen
    1
    Beiträge
    487
    • 4. April 2024 um 01:42
    • #34

    Kann dir leider immer noch nicht ganz folgen.

    Du drückst Button a und der Fehler wird bei Button B angezeigt soll aber für a angezeigt werden. Ist das dein Problem?

  • Syntafin
    27
    Syntafin
    LISTstack Dev
    Reaktionen
    498
    Punkte
    7.798
    Trophäen
    2
    Beiträge
    1.416
    • 4. April 2024 um 15:05
    • #35

    Da wir den Code nicht kennen, er aber eindeutig von "submit" button spricht, denke ich da ist das gängige Button/Submit problem am werke.

    A red dragon falls from the heavens... Ah, that memory has been lost. A shame. It was a favorite of mine...

  • Blacksonny
    16
    Blacksonny
    Moderator
    Reaktionen
    138
    Punkte
    2.673
    Trophäen
    1
    Beiträge
    487
    • 5. April 2024 um 12:42
    • #36

    Vielleicht ein Code Schnipsel oder ein Bild zur Verdeutlichung des Problems wäre hier nicht verkehrt:grinning_face_with_smiling_eyes:

  • PixelPatron
    20
    PixelPatron
    github.com/pixelpatron90
    Reaktionen
    164
    Punkte
    4.084
    Beiträge
    724
    Einträge
    3
    • 24. April 2024 um 13:38
    • #37

    Hey ihr lieben!

    Tut mir mega leid das es nur schleppend hier voran geht aber aktuell programmiere ich null irgendwas. Habe den Beitrag total vergessen und daher hier heute erst euren Code Schnippsel am start:

    Code
    if(command.equals("ticketsetup")){
                String channelid = event.getOption("channelid", OptionMapping::getAsString);
                if(channelid != null ){
                    System.out.println(colors.ANSI_WHITE + "EVARIOO | " + colors.ANSI_RED + channelid);
                } else {
                    event.getHook().sendMessage("Die Nachricht wurde in den Channel gestellt.").setEphemeral(true).queue(m -> m.delete().queueAfter(10, TimeUnit.SECONDS));
                    TextChannel channel = event.getChannel().asTextChannel();
                    this.EMBED_AUTHOR = null;
                    this.EMBED_URL = null;
                    this.EMBED_FIELDS = null;
                    this.EMBED_FOOTER = new String[]{EMBED_FOOTER_TEXT, null};
                    channel.sendMessageEmbeds(sendEmbedMessage(EMBED_TITLE, EMBED_AUTHOR, EMBED_URL, EMBED_COLOR, EMBED_DESC, EMBED_FIELDS, EMBED_FOOTER)).addActionRow(
                            Button.success(user.getId() + ":create_ticket", "Create new ticket").withEmoji(Emoji.fromUnicode("\uD83D\uDCE8"))).queue();
                }
            }
    Alles anzeigen

    Mittlerweile habe ich viel gelesen und denke das ich den button über die id + create-ticket ansprechen kann bzw so auf den klick lausche oder?

    user.getId() + ":create_ticket"

    123123123:create_ticket wäre dann denke ich die ID vom Button?

    SO versuche ich auf den Button zu reagieren:

    Code
    @Override
        public void onButtonInteraction(ButtonInteractionEvent event) {
            String[] id = event.getComponentId().split(":");
            String userID = id[0];
            String action = id[1];
            if (!userID.equals(event.getUser().getId()))
                return;
            event.deferReply().queue();
            switch (action)
            {
                case "create_ticket":
    
                    System.out.println(colors.ANSI_WHITE + "EVARIOO | " + colors.ANSI_GREEN + "Bot Token ist gültig");
            }
        }
    Alles anzeigen

    Liebe Grüsse und riesen dank für eure Geduld .. Schön zu sehen das es hier noch weiter geht!

    pixelpatron-100000?style=for-the-badge&logo=X&logoColor=white&labelColor=000000&color=FF0000 pixel_patron-100000?style=for-the-badge&logo=Discord&logoColor=white&labelColor=000000&color=FF0000

    EVARIOO - DISCORD

  • Blacksonny
    16
    Blacksonny
    Moderator
    Reaktionen
    138
    Punkte
    2.673
    Trophäen
    1
    Beiträge
    487
    • 24. April 2024 um 14:12
    • #38

    Hey kein Problem, wir sind hier :grinning_face_with_smiling_eyes:

    Ja, die ID wäre user.getId() + ":create_ticket"


    Vielleicht ist das schon deine Lösung, gib gerne Bescheid ansonsten schaue ich mir das noch einmal genauer an

  • PixelPatron
    20
    PixelPatron
    github.com/pixelpatron90
    Reaktionen
    164
    Punkte
    4.084
    Beiträge
    724
    Einträge
    3
    • 24. April 2024 um 19:08
    • #39

    Hey, aktuell bin ich kaum Zuhause und somit ist der PC aktuell auch kaum an .. Heute war ich mal für 30 Minuten daheim und haben direkt mal geschaut:

    Oben ist der Ausschnitt aus meinem Code und daher habe ich auch die Weisheit wie das mit der ID laufen könnte. Leider war keine Zeit zum Testen da aber ich frage mich dennoch ist es überhaupt notwendig die Userid mit zu übergeben?

    Plan ist einfach folgender: Ich oder wer auch immer löst mit !ticket setup den command aus .. entweder kann er dabei eine Channel id angeben oder es wird im aktuellen Channel eine embed message gepostet mit einem Button drunter womit der entsprechende Benutzer dann per Klick ein Ticket eröffnet wird .. Ich brauche für eine rollenvergabe und zb für Informationen dann auch die Userid also ist das zwingend nötig denke ich einfach mal.

    @Override
       public void onButtonInteraction(ButtonInteractionEvent event) {
           String[] id = event.getComponentId().split(":");
           String userID = id[0];
           String action = id[1];
           if (!userID.equals(event.getUser().getId()))
               return;
           event.deferReply().queue();
           switch (action)
           {
               case "create_ticket":

                   System.out.println(colors.ANSI_WHITE + "EVARIOO | " + colors.ANSI_GREEN + "Bot Token ist gültig");
           }
       }

    Ist das denn schon der richtige Weg zu meinem Erfolg? ???? Ich denke das das im Switch case dann die ganzen Action rein schiebe wie zb den textchannel für das neue Ticket anlegen, Support bzw alle rollen informieren, dem User rechte für den Channel zuweisen etc

    Das System.out war nur ein Phrase zum Testen.

    Sorry für den kiddy Text ohne Punkt und Komma aber am Handy isses mies :winking_face: verzeiht mir.

    pixelpatron-100000?style=for-the-badge&logo=X&logoColor=white&labelColor=000000&color=FF0000 pixel_patron-100000?style=for-the-badge&logo=Discord&logoColor=white&labelColor=000000&color=FF0000

    EVARIOO - DISCORD

    3 Mal editiert, zuletzt von PixelPatron (24. April 2024 um 20:10)

  • PixelPatron
    20
    PixelPatron
    github.com/pixelpatron90
    Reaktionen
    164
    Punkte
    4.084
    Beiträge
    724
    Einträge
    3
    • 29. April 2024 um 15:23
    • #40

    Frage Blacksonny : Kennst du dich auch mit discord js aus? Kennst du vielleicht vor bzw Nachteile zu jda?

    pixelpatron-100000?style=for-the-badge&logo=X&logoColor=white&labelColor=000000&color=FF0000 pixel_patron-100000?style=for-the-badge&logo=Discord&logoColor=white&labelColor=000000&color=FF0000

    EVARIOO - DISCORD

    • 1
    • 2
    • 3

Jetzt mitmachen!

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

Benutzerkonto erstellen Anmelden

Tags

  • discord
  • bot
  • scripting
  • code
  • bibliothek

Rechtliches

Impressum

Datenschutzerklärung

  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  • Deutsch
  • English
Zitat speichern