@Override public void trackLoaded(AudioTrack track) { sendMessageToChannel(channel, "Adding to queue " + track.getInfo().title); play(channel.getGuild(), musicManager, track); }
private long parseAudioTrackDuration(AudioTrack track) { if (track == null || track.getInfo().isStream) { return 0L; } return track.getDuration(); }
private void destroy() { if (!destroyed) { destroyed = true; for (Cursor cursor : new ArrayList<>(cursors)) { cursor.detach(); cursor.close(); } if (initialized) { log.debug("Shutting down centralized stream for {}.", track.getInfo()); trackPlayer.destroy(); } } }
private void sendQueueData(List<Track> tracks) { JsonArray array = new JsonArray(); for (Track t : tracks) { JsonObject object = new JsonObject(); object.addProperty("title", t.getTrack().getInfo().title); object.addProperty("id", t.getTrack().getIdentifier()); array.add(object); } //FlareBot.getInstance().postToApi("updatePlaylistData", "playlist", array); } }
public static String getLink(Track track) { String name = String.valueOf(track.getTrack().getInfo().title).replace("`", "'"); String link = YouTubeExtractor.WATCH_URL + track.getTrack().getIdentifier(); return String.format("[`%s`](%s)", name, link); }
private String getQueueTitle(AudioHandler ah, String success, int songslength, long total, boolean repeatmode) { StringBuilder sb = new StringBuilder(); if(ah.getPlayer().getPlayingTrack()!=null) { sb.append(ah.getPlayer().isPaused() ? JMusicBot.PAUSE_EMOJI : JMusicBot.PLAY_EMOJI).append(" **") .append(ah.getPlayer().getPlayingTrack().getInfo().title).append("**\n"); } return FormatUtil.filter(sb.append(success).append(" Current Queue | ").append(songslength) .append(" entries | `").append(FormatUtil.formatTime(total)).append("` ") .append(repeatmode ? "| " + REPEAT : "").toString()); } }
@Override public void onTrackStart(AudioPlayer player, AudioTrack track) { TextChannel textChannel = musicBot.getShardManager().getTextChannelById(textChannelId); if (textChannel == null) { // todo what if the text channel is deleted logger.error("Error getting text channel with ID {} from shard manager", textChannelId); return; } textChannel.sendMessage(String.format("Now playing **%s** by **%s** `[%s]`", track.getInfo().title, track.getInfo().author, Utils.formatTrackDuration(track))).complete(); }
private void initialize() { if (!initialized) { initialized = true; log.debug("Initializing centralized stream for {}.", track.getInfo()); trackPlayer.addListener(new Listener()); trackPlayer.playTrack(track); } }
@Override public void trackLoaded(AudioTrack track) { channel.sendMessage("Adding to queue " + track.getInfo().title).queue(); play(channel.getGuild(), musicManager, track); }
@Override public void playlistLoaded(AudioPlaylist playlist) { AudioTrack firstTrack = playlist.getSelectedTrack(); if (firstTrack == null) { firstTrack = playlist.getTracks().get(0); } sendMessageToChannel(channel, "Adding to queue " + firstTrack.getInfo().title + " (first track of playlist " + playlist.getName() + ")"); play(channel.getGuild(), musicManager, firstTrack); }
@Override public String toString() { return "`[" + FormatUtil.formatTime(track.getDuration()) + "]` **" + track.getInfo().title + "** - <@" + track.getUserData(Long.class) + ">"; } }
@Override public void playlistLoaded(AudioPlaylist playlist) { AudioTrack firstTrack = playlist.getSelectedTrack(); if (firstTrack == null) { firstTrack = playlist.getTracks().get(0); } channel.sendMessage("Adding to queue " + firstTrack.getInfo().title + " (first track of playlist " + playlist.getName() + ")").queue(); play(channel.getGuild(), musicManager, firstTrack); }
@Override public void trackLoaded(AudioTrack audioTrack) { boolean playing = musicManager.getPlayer().getPlayingTrack() != null; musicManager.getScheduler().queue(audioTrack, setFirstInQueue); if (playing && verbose) { context.reply(String.format("Queued **%s** `[%s]`", audioTrack.getInfo().title, Utils.formatTrackDuration(audioTrack))); } }
/** * Start playing a track through this remote node. * @param executor The executor of the track */ public void startPlaying(RemoteAudioTrackExecutor executor) { AudioTrack track = executor.getTrack(); if (playingTracks.putIfAbsent(executor.getExecutorId(), executor) == null) { long position = executor.getNextInputTimecode(); log.info("Sending request to play {} {} from position {}", track.getIdentifier(), executor.getExecutorId(), position); queuedMessages.add(new TrackStartRequestMessage(executor.getExecutorId(), track.getInfo(), playerManager.encodeTrackDetails(track), executor.getVolume(), executor.getConfiguration(), position)); } }
public String getFormattedTotalTimeLeft(IPlayer player) { if (getAudioTrack().getInfo().isStream) { return "LIVE"; } return NumberUtil.formatTime(getAudioTrack().getDuration() - player.getTrackPosition()); } }
public void onTrackUpdate(long guildId, AudioTrack track, AudioHandler handler) { // update bot status if applicable if(bot.getConfig().getSongInStatus()) { if(track!=null && bot.getJDA().getGuilds().stream().filter(g -> g.getSelfMember().getVoiceState().inVoiceChannel()).count()<=1) bot.getJDA().getPresence().setGame(Game.listening(track.getInfo().title)); else bot.resetGame(); } // update channel topic if applicable updateTopic(guildId, handler, false); }
public void skipTrack(CommandMessage context) { GuildMusicManager musicManager = getGuildAudioPlayer(context.getGuild()); if (musicManager.getScheduler().getAudioTrackContainer() != null) { AudioTrackContainer container = musicManager.getScheduler().getAudioTrackContainer(); context.makeInfo(context.i18nRaw("music.internal.songWasSkipped")) .set("title", container.getAudioTrack().getInfo().title) .set("url", container.getAudioTrack().getInfo().uri) .set("author", container.getRequester().getAsMention()) .queue(success -> success.delete().queueAfter(30, TimeUnit.SECONDS, null, RestActionUtil.ignore)); } musicManager.getScheduler().nextTrack(); }
private void loadSingle(AudioTrack track) { if(bot.getConfig().isTooLong(track)) { m.editMessage(FormatUtil.filter(event.getClient().getWarning()+" This track (**"+track.getInfo().title+"**) is longer than the allowed maximum: `" +FormatUtil.formatTime(track.getDuration())+"` > `"+FormatUtil.formatTime(bot.getConfig().getMaxSeconds()*1000)+"`")).queue(); return; } AudioHandler handler = (AudioHandler)event.getGuild().getAudioManager().getSendingHandler(); int pos = handler.addTrackToFront(new QueuedTrack(track, event.getAuthor()))+1; String addMsg = FormatUtil.filter(event.getClient().getSuccess()+" Added **"+track.getInfo().title +"** (`"+FormatUtil.formatTime(track.getDuration())+"`) "+(pos==0?"to begin playing":" to the queue at position "+pos)); m.editMessage(addMsg).queue(); }
@Override public void doCommand(CommandEvent event) { AudioHandler handler = (AudioHandler)event.getGuild().getAudioManager().getSendingHandler(); User u = event.getJDA().getUserById(handler.getRequester()); event.reply(event.getClient().getSuccess()+" Skipped **"+handler.getPlayer().getPlayingTrack().getInfo().title +"** (requested by "+(u==null ? "someone" : "**"+u.getName()+"**")+")"); handler.getPlayer().stopTrack(); } }
@Override public void doCommand(CommandEvent event) { AudioHandler handler = (AudioHandler)event.getGuild().getAudioManager().getSendingHandler(); if(handler.getPlayer().isPaused()) { event.replyWarning("The player is already paused! Use `"+event.getClient().getPrefix()+"play` to unpause!"); return; } handler.getPlayer().setPaused(true); event.replySuccess("Paused **"+handler.getPlayer().getPlayingTrack().getInfo().title+"**. Type `"+event.getClient().getPrefix()+"play` to unpause!"); } }