From f82dbb58f6a9f77f123daf274a88ad55e2c98694 Mon Sep 17 00:00:00 2001 From: Logan Fick Date: Sun, 26 May 2019 16:47:53 -0400 Subject: [PATCH] Added clickable link to original track sources. --- .../logalbot/audio/TrackLoadHandler.java | 6 +-- .../logalbot/commands/audio/ForceSkip.java | 2 +- .../logalbot/commands/audio/NowPlaying.java | 2 +- .../logal/logalbot/commands/audio/Queue.java | 2 +- .../logal/logalbot/commands/audio/Remove.java | 4 +- .../logal/logalbot/commands/audio/Skip.java | 2 +- .../dev/logal/logalbot/utils/TrackUtil.java | 41 ++++++++++--------- 7 files changed, 31 insertions(+), 28 deletions(-) diff --git a/src/main/java/dev/logal/logalbot/audio/TrackLoadHandler.java b/src/main/java/dev/logal/logalbot/audio/TrackLoadHandler.java index da90a68..cdbc925 100644 --- a/src/main/java/dev/logal/logalbot/audio/TrackLoadHandler.java +++ b/src/main/java/dev/logal/logalbot/audio/TrackLoadHandler.java @@ -85,7 +85,7 @@ public final class TrackLoadHandler implements AudioLoadResultHandler { scheduler.addToQueue(track, requester); response = new CommandResponse("notes", this.requester.getAsMention() + " added the following track to the queue:"); - response.attachEmbed(TrackUtil.generateTrackInfoEmbed(track)); + response.attachEmbed(TrackUtil.trackInfoEmbed(track)); response.sendResponse(this.channel); } @@ -126,7 +126,7 @@ public final class TrackLoadHandler implements AudioLoadResultHandler { scheduler.addToQueue(track, this.requester); response = new CommandResponse("notes", this.requester.getAsMention() + " added the following track to the queue:"); - response.attachEmbed(TrackUtil.generateTrackInfoEmbed(track)); + response.attachEmbed(TrackUtil.trackInfoEmbed(track)); response.sendResponse(this.channel); } else { response = new CommandResponse("no_entry_sign", "Sorry " + this.requester.getAsMention() @@ -158,7 +158,7 @@ public final class TrackLoadHandler implements AudioLoadResultHandler { response = new CommandResponse("notes", this.requester.getAsMention() + " added the following tracks to the queue:"); - response.attachEmbed(TrackUtil.generateTrackListInfoEmbed(addedTracks, false)); + response.attachEmbed(TrackUtil.trackListInfoEmbed(addedTracks, false)); response.sendResponse(this.channel); } else { response = new CommandResponse("no_entry_sign", diff --git a/src/main/java/dev/logal/logalbot/commands/audio/ForceSkip.java b/src/main/java/dev/logal/logalbot/commands/audio/ForceSkip.java index d3eedaa..86d552c 100644 --- a/src/main/java/dev/logal/logalbot/commands/audio/ForceSkip.java +++ b/src/main/java/dev/logal/logalbot/commands/audio/ForceSkip.java @@ -50,7 +50,7 @@ public final class ForceSkip implements Command { AudioUtil.getTrackScheduler(guild).skipCurrentTrack(); final CommandResponse response = new CommandResponse("gun", executor.getAsMention() + " force skipped the following track:"); - response.attachEmbed(TrackUtil.generateTrackInfoEmbed(skippedTrack)); + response.attachEmbed(TrackUtil.trackInfoEmbed(skippedTrack)); return response; } } \ No newline at end of file diff --git a/src/main/java/dev/logal/logalbot/commands/audio/NowPlaying.java b/src/main/java/dev/logal/logalbot/commands/audio/NowPlaying.java index 2592328..78ab1de 100644 --- a/src/main/java/dev/logal/logalbot/commands/audio/NowPlaying.java +++ b/src/main/java/dev/logal/logalbot/commands/audio/NowPlaying.java @@ -32,7 +32,7 @@ public final class NowPlaying implements Command { final CommandResponse response = new CommandResponse("dancer", executor.getAsMention() + ", this is the track currently playing:"); - response.attachEmbed(TrackUtil.generateCurrentTrackInfoEmbed(guild)); + response.attachEmbed(TrackUtil.currentTrackInfoEmbed(guild)); return response; } } \ No newline at end of file diff --git a/src/main/java/dev/logal/logalbot/commands/audio/Queue.java b/src/main/java/dev/logal/logalbot/commands/audio/Queue.java index 2618a01..430e3fc 100644 --- a/src/main/java/dev/logal/logalbot/commands/audio/Queue.java +++ b/src/main/java/dev/logal/logalbot/commands/audio/Queue.java @@ -70,7 +70,7 @@ public final class Queue implements Command { response.setReactionCallbackTarget(executor); response.setReactionCallbackExpireDelay(3, TimeUnit.SECONDS); - response.attachEmbed(TrackUtil.generatePaginatedTrackListInfoEmbed(queue, page)); + response.attachEmbed(TrackUtil.pagedTrackListInfoEmbed(queue, page)); return response; } } \ No newline at end of file diff --git a/src/main/java/dev/logal/logalbot/commands/audio/Remove.java b/src/main/java/dev/logal/logalbot/commands/audio/Remove.java index 5c89999..cea09ab 100644 --- a/src/main/java/dev/logal/logalbot/commands/audio/Remove.java +++ b/src/main/java/dev/logal/logalbot/commands/audio/Remove.java @@ -59,7 +59,7 @@ public final class Remove implements Command { final CommandResponse response = new CommandResponse("question", executor.getAsMention() + ", which track would you like to remove from the top of the queue?"); - response.attachEmbed(TrackUtil.generateTrackListInfoEmbed(scheduler.getQueue(), true)); + response.attachEmbed(TrackUtil.trackListInfoEmbed(scheduler.getQueue(), true)); for (int i = 0; i < scheduler.getQueue().size(); i++) { final int trackNumber = i + 1; @@ -94,7 +94,7 @@ public final class Remove implements Command { scheduler.removeFromQueue(index - 1); final CommandResponse response = new CommandResponse("scissors", executor.getAsMention() + " removed the following track from the queue:"); - response.attachEmbed(TrackUtil.generateTrackInfoEmbed(removedTrack)); + response.attachEmbed(TrackUtil.trackInfoEmbed(removedTrack)); return response; } catch (final IndexOutOfBoundsException exception) { return new CommandResponse("no_entry_sign", diff --git a/src/main/java/dev/logal/logalbot/commands/audio/Skip.java b/src/main/java/dev/logal/logalbot/commands/audio/Skip.java index aa7e474..3e6c22c 100644 --- a/src/main/java/dev/logal/logalbot/commands/audio/Skip.java +++ b/src/main/java/dev/logal/logalbot/commands/audio/Skip.java @@ -58,7 +58,7 @@ public final class Skip implements Command { AudioUtil.getTrackScheduler(guild).skipCurrentTrack(); final CommandResponse response = new CommandResponse("gun", executor.getAsMention() + " was the last required vote. The following track has been skipped:"); - response.attachEmbed(TrackUtil.generateTrackInfoEmbed(skippedTrack)); + response.attachEmbed(TrackUtil.trackInfoEmbed(skippedTrack)); return response; } else { if (SkipTracker.getRemainingRequired(guild) == 1) { diff --git a/src/main/java/dev/logal/logalbot/utils/TrackUtil.java b/src/main/java/dev/logal/logalbot/utils/TrackUtil.java index bcb0470..799aa60 100644 --- a/src/main/java/dev/logal/logalbot/utils/TrackUtil.java +++ b/src/main/java/dev/logal/logalbot/utils/TrackUtil.java @@ -17,6 +17,7 @@ package dev.logal.logalbot.utils; import java.util.List; import com.sedmelluq.discord.lavaplayer.track.AudioTrack; +import com.sedmelluq.discord.lavaplayer.track.AudioTrackInfo; import net.dv8tion.jda.core.EmbedBuilder; import net.dv8tion.jda.core.entities.Guild; @@ -28,29 +29,30 @@ public final class TrackUtil { // Static access only. } - public static final MessageEmbed generateTrackInfoEmbed(final AudioTrack track) { + public static final MessageEmbed trackInfoEmbed(final AudioTrack track) { Checks.notNull(track, "Track"); final EmbedBuilder builder = new EmbedBuilder(); - builder.addField(StringUtil.sanitize(track.getInfo().title), - StringUtil.sanitize(track.getInfo().author) + " - " + StringUtil.formatTime(track.getDuration()), - false); + final AudioTrackInfo info = track.getInfo(); + builder.addField(StringUtil.sanitize(info.title), StringUtil.sanitize(info.author) + " - " + + StringUtil.formatTime(track.getDuration()) + " - [View](" + info.uri + ")", false).build(); return builder.build(); } - public static final MessageEmbed generateCurrentTrackInfoEmbed(final Guild guild) { + public static final MessageEmbed currentTrackInfoEmbed(final Guild guild) { Checks.notNull(guild, "Guild"); final EmbedBuilder builder = new EmbedBuilder(); final AudioTrack track = AudioUtil.getLoadedTrack(guild); - builder.addField( - StringUtil.sanitize(track.getInfo().title), StringUtil.sanitize(track.getInfo().author) + " - " - + StringUtil.formatTime(track.getPosition()) + "/" + StringUtil.formatTime(track.getDuration()), - false); + final AudioTrackInfo info = track.getInfo(); + builder.addField(StringUtil.sanitize(info.title), + StringUtil.sanitize(info.author) + " - " + StringUtil.formatTime(track.getPosition()) + "/" + + StringUtil.formatTime(track.getDuration()) + " - [View](" + info.uri + ")", + false).build(); return builder.build(); } - public static final MessageEmbed generateTrackListInfoEmbed(final List tracks, final boolean numbered) { + public static final MessageEmbed trackListInfoEmbed(final List tracks, final boolean numbered) { Checks.notNull(tracks, "Tracks"); Checks.notNull(numbered, "Numbered"); @@ -61,14 +63,15 @@ public final class TrackUtil { } final AudioTrack track = tracks.get(i); + final AudioTrackInfo info = track.getInfo(); if (numbered) { - builder.addField("**" + (i + 1) + ":** " + StringUtil.sanitize(track.getInfo().title), - StringUtil.sanitize(track.getInfo().author) + " - " - + StringUtil.formatTime(track.getDuration()), + builder.addField( + "**" + (i + 1) + ":** " + StringUtil.sanitize(info.title), StringUtil.sanitize(info.author) + + " - " + StringUtil.formatTime(track.getDuration()) + " - [View](" + info.uri + ")", false); } else { - builder.addField(StringUtil.sanitize(track.getInfo().title), StringUtil.sanitize(track.getInfo().author) - + " - " + StringUtil.formatTime(track.getDuration()), false); + builder.addField(StringUtil.sanitize(info.title), StringUtil.sanitize(info.author) + " - " + + StringUtil.formatTime(track.getDuration()) + " - [View](" + info.uri + ")", false); } } @@ -78,7 +81,7 @@ public final class TrackUtil { return builder.build(); } - public static final MessageEmbed generatePaginatedTrackListInfoEmbed(final List tracks, int page) { + public static final MessageEmbed pagedTrackListInfoEmbed(final List tracks, int page) { Checks.notNull(tracks, "Tracks"); Checks.notNull(page, "Page"); @@ -99,9 +102,9 @@ public final class TrackUtil { for (int i = start; i < end && i < tracks.size(); i++) { final AudioTrack track = tracks.get(i); - builder.addField("**" + (i + 1) + ":** " + StringUtil.sanitize(track.getInfo().title), - StringUtil.sanitize(track.getInfo().author) + " - " + StringUtil.formatTime(track.getDuration()), - false); + final AudioTrackInfo info = track.getInfo(); + builder.addField("**" + (i + 1) + ":** " + StringUtil.sanitize(info.title), StringUtil.sanitize(info.author) + + " - " + StringUtil.formatTime(track.getDuration()) + " - [View](" + info.uri + ")", false); } builder.setTitle("**" + tracks.size() + " Total Tracks - Page " + (page + 1) + "/" + pages + "**");