package bluebot.utils.listeners; import bluebot.MainBot; import net.dv8tion.jda.core.entities.Game; import net.dv8tion.jda.core.entities.Guild; import net.dv8tion.jda.core.events.user.update.UserUpdateGameEvent; import net.dv8tion.jda.core.hooks.ListenerAdapter; import java.util.List; /** * @file TwitchListener.java * @author Blue * @version 0.2 * @brief Make the bot notify the users when a tracked streamer starts streaming on Twitch */ public class TwitchListener extends ListenerAdapter { public TwitchListener() { MainBot.getStreamerList().put("218461869617184768", "https://www.twitch.tv/minipasglop"); //Id Minipasglop for test : twitch.tv/minipasglop } public void onUserUpdateGame(UserUpdateGameEvent event) { try { if(MainBot.getStreamerList().containsKey(event.getUser().getId()) && !event.getOldGame().getType().equals(Game.GameType.STREAMING) && event.getGuild().getMember(event.getUser()).getGame().getType().equals(Game.GameType.STREAMING)) { List<Guild> serverList = event.getJDA().getGuilds(); for(Guild server : serverList) { if(server.getMembers().contains(event.getUser())) { if(MainBot.getTwitchDisabled().contains(server.getId())) { continue; //function disabled } if(MainBot.getTwitchChannel().containsKey(server.getId())) { event.getJDA().getTextChannelById(MainBot.getTwitchChannel().get(server.getId())).sendMessage(/*server.getPublicRole().getName() + " : " + */event.getUser().getName() + " is now streaming ! Watch live at " + MainBot.getStreamerList().get(event.getUser().getId())).queue(); } else { server.getDefaultChannel().sendMessage(/*server.getPublicRole().getName() + " : " + */event.getUser().getName() + " is now streaming ! Watch live at " + MainBot.getStreamerList().get(event.getUser().getId())).queue(); } } } } } catch (NullPointerException e) { e.printStackTrace(); //The user left streaming } } }