From b0d79c2e1279e23726896c7045d0897b2522c370 Mon Sep 17 00:00:00 2001 From: beanbeanjuice Date: Wed, 4 Feb 2026 12:15:25 -0800 Subject: [PATCH] fix: [GH-689] Creating Empty Embed --- .../commands/generic/EmbedCommand.java | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/beanbeanjuice/cafebot/commands/generic/EmbedCommand.java b/src/main/java/com/beanbeanjuice/cafebot/commands/generic/EmbedCommand.java index e4d0c1cc..086052cb 100644 --- a/src/main/java/com/beanbeanjuice/cafebot/commands/generic/EmbedCommand.java +++ b/src/main/java/com/beanbeanjuice/cafebot/commands/generic/EmbedCommand.java @@ -49,9 +49,18 @@ public void handle(SlashCommandInteractionEvent event) { return; } + Optional optionalEmbed = createEmbed(event); + + if (optionalEmbed.isEmpty()) { + event.getHook().sendMessageEmbeds(Helper.errorEmbed("Invalid Embed", "You're trying to create an invalid embed... I'm so sorry I can't let you do that...")).queue(); + return; + } + + MessageEmbed embed = optionalEmbed.get(); + messageOptional.ifPresentOrElse( - (message) -> channel.asTextChannel().sendMessage(message).addEmbeds(createEmbed(event)).queue(), - () -> channel.asTextChannel().sendMessageEmbeds(createEmbed(event)).queue() + (message) -> channel.asTextChannel().sendMessage(message).addEmbeds(embed).queue(), + () -> channel.asTextChannel().sendMessageEmbeds(embed).queue() ); event.getHook().sendMessageEmbeds(Helper.successEmbed( @@ -66,7 +75,7 @@ private boolean checkValidImages(final @Nullable Message.Attachment thumbnail, f return true; } - private MessageEmbed createEmbed(final SlashCommandInteractionEvent event) { + private Optional createEmbed(final SlashCommandInteractionEvent event) { Optional titleOptional = Optional.ofNullable(event.getOption("title")).map(OptionMapping::getAsString); Optional descriptionOptional = Optional.ofNullable(event.getOption("description")).map(OptionMapping::getAsString); Optional authorOptional = Optional.ofNullable(event.getOption("author")).map(OptionMapping::getAsString); @@ -94,7 +103,11 @@ private MessageEmbed createEmbed(final SlashCommandInteractionEvent event) { }) .ifPresent(embedBuilder::setColor); - return embedBuilder.build(); + try { + return Optional.of(embedBuilder.build()); + } catch (IllegalStateException e) { + return Optional.empty(); + } } @Override