private void initialize() { if (!initialized) { initialized = true; log.debug("Initializing centralized stream for {}.", track.getInfo()); trackPlayer.addListener(new Listener()); trackPlayer.playTrack(track); } }
public int addTrack(QueuedTrack qtrack) { if(audioPlayer.getPlayingTrack()==null) { audioPlayer.playTrack(qtrack.getTrack()); return -1; } else return queue.add(qtrack); }
public int addTrackToFront(QueuedTrack qtrack) { if(audioPlayer.getPlayingTrack()==null) { audioPlayer.playTrack(qtrack.getTrack()); return -1; } else { queue.addAt(0, qtrack); return 0; } }
public boolean playFromDefault() { if(!defaultQueue.isEmpty()) { audioPlayer.playTrack(defaultQueue.remove(0)); return true; } Settings settings = manager.getBot().getSettingsManager().getSettings(guildId); if(settings==null || settings.getDefaultPlaylist()==null) return false; Playlist pl = manager.getBot().getPlaylistLoader().getPlaylist(settings.getDefaultPlaylist()); if(pl==null || pl.getItems().isEmpty()) return false; pl.loadTracks(manager, (at) -> { if(audioPlayer.getPlayingTrack()==null) audioPlayer.playTrack(at); else defaultQueue.add(at); }, () -> { if(pl.getTracks().isEmpty() && !manager.getBot().getConfig().getStay()) manager.getBot().closeAudioConnection(guildId); }); return true; }
@Override public void run(Context context) { GuildAudioController musicManager = this.bot.getGuildsManager().getOrCreate(context.getEvent().getGuild(), context.getEvent().getTextChannel(), playerManager); if (context.getArgs().length == 0) { context.reply("Usage: {{prefix}}a decode <base64 string>"); return; } VoiceChannel channel = context.getEvent().getMember().getVoiceState().getChannel(); if (channel == null) { context.reply("Must be in a voice channel!"); return; } String base64 = context.getArgs()[0]; AudioTrack track; try { track = Utils.decode(playerManager, base64); } catch (IOException e) { logger.error("error performing decode command", e); context.reply("An error occurred!"); return; } if (!musicManager.getState().isConnectionOpen()) { musicManager.getConnector().openConnection(channel, context.getEvent().getAuthor()); } musicManager.getPlayer().playTrack(track); } }
@Override public void onTrackEnd(AudioPlayer player, AudioTrack track, AudioTrackEndReason endReason) { // if the track ended normally, and we're in repeat mode, re-add it to the queue if(endReason==AudioTrackEndReason.FINISHED && manager.getBot().getSettingsManager().getSettings(guildId).getRepeatMode()) { queue.add(new QueuedTrack(track.makeClone(), track.getUserData(Long.class)==null ? 0L : track.getUserData(Long.class))); } if(queue.isEmpty()) { if(!playFromDefault()) { manager.getBot().getNowplayingHandler().onTrackUpdate(guildId, null, this); if(!manager.getBot().getConfig().getStay()) manager.getBot().closeAudioConnection(guildId); } } else { QueuedTrack qt = queue.pull(); player.playTrack(qt.getTrack()); } }