diff --git a/.version b/.version index 0ad30f2..d24bcc8 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -export SIREN_VERSION=0.1.17 \ No newline at end of file +export SIREN_VERSION=0.1.18 \ No newline at end of file diff --git a/src/main/java/com/bensherriff/siren/commands/ImageCommand.java b/src/main/java/com/bensherriff/siren/commands/ImageCommand.java index 25cff0d..f77523a 100644 --- a/src/main/java/com/bensherriff/siren/commands/ImageCommand.java +++ b/src/main/java/com/bensherriff/siren/commands/ImageCommand.java @@ -17,20 +17,32 @@ public class ImageCommand extends Command { super(listener); slashCommandData = Commands.slash("image", "Generate an image using DALL-E") .addOption(OptionType.STRING, "prompt", "The prompt for image generation", true) - .addOption(OptionType.INTEGER, "count", "The number of images to be generated", false); + .addOption(OptionType.INTEGER, "count", "The number of images to be generated", false) + .addOption(OptionType.INTEGER, "size", "Size of the picture, either 1 (small), 2 (medium), or 3 (large)", false); } + //TODO Store image in database @Override public void execute(SlashCommandInteractionEvent event) throws IOException { if (event.getUser().getId().equals(listener.getSettings().getOwner())) { String prompt = Objects.requireNonNull(event.getOption("prompt")).getAsString(); + int count = 1; OptionMapping countOption = event.getOption("count"); if (countOption != null) { count = countOption.getAsInt(); } + ImageSize size = ImageSize.SMALL; + OptionMapping sizeOption = event.getOption("size"); + if (sizeOption != null) { + if (sizeOption.getAsInt() == 2) { + size = ImageSize.MEDIUM; + } else if (sizeOption.getAsInt() == 3) { + size = ImageSize.LARGE; + } + } - ImageResult result = listener.getOpenAIManager().createImage(prompt, count, ImageSize.SMALL); + ImageResult result = listener.getOpenAIManager().createImage(prompt, count, size); StringBuilder responseURLS = new StringBuilder(); result.getData().forEach(image -> responseURLS.append(image.getUrl()).append("\n")); event.getHook().sendMessage(responseURLS.toString()).queue();