package files; import com.pengrad.telegrambot.TelegramBot; import com.pengrad.telegrambot.model.CallbackQuery; import com.pengrad.telegrambot.model.Update; import com.pengrad.telegrambot.model.User; import com.pengrad.telegrambot.model.request.ParseMode; import com.pengrad.telegrambot.request.DeleteMessage; import com.pengrad.telegrambot.request.SendMessage; import com.pengrad.telegrambot.request.SendPhoto; import files.entity.TelegramUser; import java.io.IOException; public class UserCallbackQuery extends com.pengrad.telegrambot.model.CallbackQuery { public static CallbackQuery callbackQuery; public static String data; public static User user; public static long userId; public static String fullName; public static int messageId; public static long chatId; public static void setInformation(CallbackQuery callbackQuery) { UserCallbackQuery.callbackQuery = callbackQuery; UserCallbackQuery.data = callbackQuery.data(); UserCallbackQuery.user = callbackQuery.from(); UserCallbackQuery.userId = callbackQuery.from().id(); UserCallbackQuery.fullName = callbackQuery.from().firstName() + TelegramUser.checkIfHasLastName(user); UserCallbackQuery.messageId = callbackQuery.message().messageId(); UserCallbackQuery.chatId = callbackQuery.message().chat().id(); } public static String getInformation() { return "callbackQuery: " + callbackQuery + System.lineSeparator() + "data: " + data + System.lineSeparator() + "userId: " + userId + System.lineSeparator() + "fullName: " + fullName + System.lineSeparator() + "messageId: " + messageId + System.lineSeparator() + "chatId: " + chatId + "\n\n"; } public static boolean checkIfNotNull(CallbackQuery callbackQuery) { return (callbackQuery != null); } public static void execute(CallbackQuery callbackQuery) throws IOException { UserCallbackQuery.setInformation(callbackQuery); Bot.log.write(UserCallbackQuery.getInformation()); Bot.log.flush(); switch (data) { case "previousOngoing" -> { if (Anime.indexOfAnime == 0) { Anime.setIndexOfAnime((byte) 27); } else { Anime.decreaseIndexOfAnime(); } Bot.sendAnimeAtMainMenuByCallBackQuery("Ongoing"); } case "nextOngoing" -> { if (Anime.indexOfAnime == 27) { Anime.setIndexOfAnime((byte) 0); } else { Anime.increaseIndexOfAnime(); } Bot.sendAnimeAtMainMenuByCallBackQuery("Ongoing"); } case "previousAnimeSerials" -> { if (Anime.indexOfAnime == 0) { Anime.setIndexOfAnime((byte) 27); } else { Anime.decreaseIndexOfAnime(); } Bot.sendAnimeAtMainMenuByCallBackQuery("AnimeSerials"); } case "nextAnimeSerials" -> { if (Anime.indexOfAnime == 27) { Anime.setIndexOfAnime((byte) 0); } else { Anime.increaseIndexOfAnime(); } Bot.sendAnimeAtMainMenuByCallBackQuery("AnimeSerials"); } case "previousAnimeFilms" -> { if (Anime.indexOfAnime == 0) { Anime.setIndexOfAnime((byte) 27); } else { Anime.decreaseIndexOfAnime(); } Bot.sendAnimeAtMainMenuByCallBackQuery("AnimeFilms"); } case "nextAnimeFilms" -> { if (Anime.indexOfAnime == 27) { Anime.setIndexOfAnime((byte) 0); } else { Anime.increaseIndexOfAnime(); } Bot.sendAnimeAtMainMenuByCallBackQuery("AnimeFilms"); } case "previousSearchedAnime" -> { if (Anime.indexOfAnime == 0) { Anime.setIndexOfAnime((byte) (Anime.searchedAnimeSize - 1)); } else { Anime.decreaseIndexOfAnime(); } Bot.sendSearchedAnimeByCallBackQuery(callbackQuery, Anime.indexOfAnime, Anime.list); } case "nextSearchedAnime" -> { if (Anime.indexOfAnime == Anime.searchedAnimeSize - 1) { Anime.setIndexOfAnime((byte) 0); } else { Anime.increaseIndexOfAnime(); } Bot.sendSearchedAnimeByCallBackQuery(callbackQuery, Anime.indexOfAnime, Anime.list); } case "watchOrDownload" -> { Bot.telegramBot.execute(new SendMessage(UserMessage.chatId, "Какую озвучку выберем?").replyMarkup(MyKeyboard.getDub())); } case "anidub" -> { Anime[] anime = Anime.list; byte index = Anime.indexOfAnime; Anime thisAnime = anime[index]; Bot.telegramBot.execute(new SendPhoto(UserMessage.chatId, anime[index].getImage()).caption(anime[index].showInfo("Anidub")).parseMode(ParseMode.HTML).replyMarkup(MyKeyboard.getAnidub())); } } DeleteMessage deleteMessage = new DeleteMessage(chatId, messageId); Bot.telegramBot.execute(deleteMessage); } }