Here's my Code, I wanted to send an Embed Message in the Created Ticket by the Selection Menu but it's not working because it's underlined in red. If I remove "final Textchannel channel" then it would work but with "final Textchannel channel" I can get the Channel mention to the event.reply, so thankful for help
package main;
import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.Permission;
import net.dv8tion.jda.api.entities.Guild;
import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
import net.dv8tion.jda.api.entities.emoji.Emoji;
import net.dv8tion.jda.api.events.interaction.component.SelectMenuInteractionEvent;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;
import net.dv8tion.jda.api.interactions.components.buttons.Button;
import net.dv8tion.jda.api.interactions.components.selections.SelectMenu;
import net.dv8tion.jda.api.interactions.components.selections.SelectMenuInteraction;
import java.awt.*;
import java.util.EnumSet;
public class ticketsystem extends ListenerAdapter {
public void onMessageReceived (MessageReceivedEvent event) {
if (event.getMessage().getContentStripped().equals("!setup ticket")) {
EmbedBuilder buildplan = new EmbedBuilder();
buildplan.setColor(Color.RED);
buildplan.setTitle("Tickets");
buildplan.setDescription("Klicke auf das Menü unter dieser Nachricht, um ein Ticket zu Erstellen!");
buildplan.setFooter("Test");
SelectMenu menu = SelectMenu.create("ticket")
.setPlaceholder("Wähle ein Ticket!")
.addOption("Support-Ticket","support", "Klicke hier rauf, solltest du Ingame ein Problem haben!")
.addOption("Fraktions-Ticket","fraktion", "Klicke hier rauf, solltest du eine Fraktions frage haben")
.addOption("Spende-Ticket","spende", "Klicke hier rauf, solltest du Spenden wollen!")
.addOption("Team-Bewerbungen-Ticket","team", "Klicke hier rauf, solltest du dich fürs Team Bewerben wollen!")
.addOption("Team-Beschwerde-Ticket","beschwerde", "Klicke hier rauf, solltest du eine Beschwerde ans Team haben!")
.addOption("Rückerstattungs-Ticket","rückerstattung", "Klicke hier rauf, solltest du eine Rückerstattung haben wollen!")
.addOption("Entbannungs-Ticket","entbannung", "Klicke hier rauf, solltest du Entbannt werden wollen!")
.build();
event.getChannel().sendMessageEmbeds(buildplan.build()).setActionRow(menu).queue();
}
}
@Override
public void onSelectMenuInteraction (SelectMenuInteractionEvent event) {
if (event.getSelectMenu().getId().equals("ticket")) {
switch (event.getValues().get(0)) {
case "support":
int min = 1000;
int max = 99999;
int random_int = (int) Math.floor(Math.random() * (max - min + 1) + min);
Guild guild = event.getGuild();
EmbedBuilder embed = new EmbedBuilder();
embed.setColor(Color.RED);
embed.setTitle(event.getUser().getName() + "'s Ticket");
embed.setDescription("Bitte schreibe deinen Grund hier rein!");
///Underlined in Red
final TextChannel channel = guild.createTextChannel("ticket-" + random_int, guild.getCategoryById("1019620303934083074"))
.addPermissionOverride(event.getMember(), EnumSet.of(Permission.VIEW_CHANNEL), null)
.addPermissionOverride(guild.getPublicRole(), null, EnumSet.of(Permission.VIEW_CHANNEL))
.addPermissionOverride(guild.getRoleById("1019620301027418136"), EnumSet.of(Permission.VIEW_CHANNEL), null).complete()
.sendMessageEmbeds(embed.build()).setActionRow(closeButton()).queue();
///Till here
event.reply("Du hast erfolgreich ein Ticket erstellt" + channel.getAsMention()).setEphemeral(true).queue();
break;
}
}
}
private Button closeButton() {
return Button.danger("closeButton", "Schließen");
}
}
You are using sendMessage with interaction, use
event.reply("")
.setEmbeds(yourEmbed.build())
instead