From a9e4626dfd111bc4ca29f0830fb957cd6452c4b1 Mon Sep 17 00:00:00 2001 From: Liam Date: Thu, 4 Jul 2024 01:47:01 +0100 Subject: [PATCH] fix tmdb command errors --- .../bat/features/tmdb/TMDBFeature.java | 8 +--- .../tmdb/command/MovieSubCommand.java | 44 +++++++++++++------ .../tmdb/command/SeriesSubCommand.java | 42 +++++++++++++----- 3 files changed, 63 insertions(+), 31 deletions(-) diff --git a/src/main/java/cc/fascinated/bat/features/tmdb/TMDBFeature.java b/src/main/java/cc/fascinated/bat/features/tmdb/TMDBFeature.java index 73013e5..d86e02f 100644 --- a/src/main/java/cc/fascinated/bat/features/tmdb/TMDBFeature.java +++ b/src/main/java/cc/fascinated/bat/features/tmdb/TMDBFeature.java @@ -44,10 +44,8 @@ public class TMDBFeature extends Feature { */ public static EmbedBuilder pageMovie(@NonNull TMDBService tmdbService, @NonNull String query, String language, String primaryReleaseYear, String region, String year, int movie, boolean adult) { List movieList = tmdbService.lookupMovies(query, adult, language, primaryReleaseYear, region, year); - if (movieList == null || movieList.isEmpty()) { - return EmbedUtils.errorEmbed() - .setDescription("No movieList found with the provided query + options!"); + return null; } // Adjust movie index to stay within bounds @@ -79,10 +77,8 @@ public class TMDBFeature extends Feature { */ public static EmbedBuilder pageSeries(@NonNull TMDBService tmdbService, @NonNull String query, String language, int firstAirDateYear, int year, int series, boolean adult) { List seriesList = tmdbService.lookupSeries(query, adult, language, firstAirDateYear, year); - if (seriesList == null || seriesList.isEmpty()) { - return EmbedUtils.errorEmbed() - .setDescription("No series found with the provided query + options!"); + return null; } // Adjust series index to stay within bounds diff --git a/src/main/java/cc/fascinated/bat/features/tmdb/command/MovieSubCommand.java b/src/main/java/cc/fascinated/bat/features/tmdb/command/MovieSubCommand.java index 965c4ae..26e9f66 100644 --- a/src/main/java/cc/fascinated/bat/features/tmdb/command/MovieSubCommand.java +++ b/src/main/java/cc/fascinated/bat/features/tmdb/command/MovieSubCommand.java @@ -9,6 +9,7 @@ import cc.fascinated.bat.model.BatGuild; import cc.fascinated.bat.model.BatUser; import cc.fascinated.bat.service.TMDBService; import lombok.NonNull; +import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.middleman.MessageChannel; @@ -76,17 +77,26 @@ public class MovieSubCommand extends BatSubCommand implements EventListener { userCommands.put(user.getId(), params); - event.replyEmbeds(TMDBFeature.pageMovie( - tmdbService, - titleOption.getAsString(), - (languageOption != null ? languageOption.getAsString() : null), - (primaryReleaseYearOption != null ? primaryReleaseYearOption.getAsString() : null), - (regionOption != null ? regionOption.getAsString() : null), - (yearOption != null ? yearOption.getAsString() : null), - 0, // Initial page number - adult - ).build() - ).addActionRow( + EmbedBuilder embedBuilder = TMDBFeature.pageMovie( + tmdbService, + titleOption.getAsString(), + (languageOption != null ? languageOption.getAsString() : null), + (primaryReleaseYearOption != null ? primaryReleaseYearOption.getAsString() : null), + (regionOption != null ? regionOption.getAsString() : null), + (yearOption != null ? yearOption.getAsString() : null), + 0, // Initial page number + adult + ); + + if (embedBuilder == null) { + event.replyEmbeds(EmbedUtils.errorEmbed() + .setDescription("No movies found with the given parameters!") + .build()) + .queue(); + return; + } + + event.replyEmbeds(embedBuilder.build()).addActionRow( Button.primary("backMovie", "Back").withEmoji(Emoji.fromFormatted("⬅️")), Button.primary("nextMovie", "Next").withEmoji(Emoji.fromFormatted("➡️")) ).queue(); @@ -120,7 +130,7 @@ public class MovieSubCommand extends BatSubCommand implements EventListener { params.put("page", String.valueOf(currentPage)); - event.editMessageEmbeds(TMDBFeature.pageMovie( + EmbedBuilder embedBuilder = TMDBFeature.pageMovie( tmdbService, title, language, @@ -129,6 +139,14 @@ public class MovieSubCommand extends BatSubCommand implements EventListener { year, currentPage, adult - ).build()).queue(); + ); + if (embedBuilder == null) { + event.replyEmbeds(EmbedUtils.errorEmbed() + .setDescription("No movies found with the given parameters!") + .build()) + .queue(); + return; + } + event.editMessageEmbeds(embedBuilder.build()).queue(); } } \ No newline at end of file diff --git a/src/main/java/cc/fascinated/bat/features/tmdb/command/SeriesSubCommand.java b/src/main/java/cc/fascinated/bat/features/tmdb/command/SeriesSubCommand.java index f7f4316..9040b99 100644 --- a/src/main/java/cc/fascinated/bat/features/tmdb/command/SeriesSubCommand.java +++ b/src/main/java/cc/fascinated/bat/features/tmdb/command/SeriesSubCommand.java @@ -9,6 +9,7 @@ import cc.fascinated.bat.model.BatGuild; import cc.fascinated.bat.model.BatUser; import cc.fascinated.bat.service.TMDBService; import lombok.NonNull; +import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.middleman.MessageChannel; @@ -71,17 +72,26 @@ public class SeriesSubCommand extends BatSubCommand implements EventListener { if (yearOption != null) params.put("year", String.valueOf(yearOption.getAsInt())); params.put("adult", String.valueOf(adult)); - userCommands.put(user.getId(), params); + EmbedBuilder embedBuilder = TMDBFeature.pageSeries( + tmdbService, + titleOption.getAsString(), + (languageOption != null ? languageOption.getAsString() : null), + (firstAirYearOption != null ? firstAirYearOption.getAsInt() : -1), + (yearOption != null ? yearOption.getAsInt() : -1), + 0, // Initial page number + adult + ); - event.replyEmbeds(TMDBFeature.pageSeries( - tmdbService, - titleOption.getAsString(), - (languageOption != null ? languageOption.getAsString() : null), - (firstAirYearOption != null ? firstAirYearOption.getAsInt() : -1), - (yearOption != null ? yearOption.getAsInt() : -1), - 0, // Initial page number - adult - ).build() + if (embedBuilder == null) { + event.replyEmbeds(EmbedUtils.errorEmbed() + .setDescription("No series found with the given parameters!") + .build()) + .queue(); + return; + } + + userCommands.put(user.getId(), params); + event.replyEmbeds(embedBuilder.build() ).addActionRow( Button.primary("backSeries", "Back").withEmoji(Emoji.fromFormatted("⬅️")), Button.primary("nextSeries", "Next").withEmoji(Emoji.fromFormatted("➡️")) @@ -115,7 +125,7 @@ public class SeriesSubCommand extends BatSubCommand implements EventListener { params.put("page", String.valueOf(currentPage)); - event.editMessageEmbeds(TMDBFeature.pageSeries( + EmbedBuilder embedBuilder = TMDBFeature.pageSeries( tmdbService, title, language, @@ -123,6 +133,14 @@ public class SeriesSubCommand extends BatSubCommand implements EventListener { year, currentPage, adult - ).build()).queue(); + ); + if (embedBuilder == null) { + event.editMessageEmbeds(EmbedUtils.errorEmbed() + .setDescription("No series found with the given parameters!") + .build()) + .queue(); + return; + } + event.editMessageEmbeds(embedBuilder.build()).queue(); } } \ No newline at end of file