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
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
Es klang nur so als ob du lieber was anderes nehmen willst, daher die Frage
Nein nein 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
Die meisten nutzen JS/TS und Python dafür
Die meisten nutzen JS/TS und Python dafür
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
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/
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!
...
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. evarioo
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
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
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
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.
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!
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?
Ich verstehe den Use Case dahinter nicht ganz ist vielleicht auch der Uhrzeit verschuldet. Kannst du das etwas genauer erläutern? evarioo
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
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?
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.
Vielleicht ein Code Schnipsel oder ein Bild zur Verdeutlichung des Problems wäre hier nicht verkehrt
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:
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:
@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!
Hey kein Problem, wir sind hier
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
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 verzeiht mir.
Frage Blacksonny : Kennst du dich auch mit discord js aus? Kennst du vielleicht vor bzw Nachteile zu jda?
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!