diff --git a/pom.xml b/pom.xml index 83f64bf..62834d3 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ moe.oko Kiafumi Kiafumi - 0.9.0-pre + 0.9.0 jar https://oko.moe/kiafumi.htm diff --git a/src/main/java/moe/oko/Kiafumi/command/music/MusicCommand.java b/src/main/java/moe/oko/Kiafumi/command/music/MusicCommand.java index e76032d..e4e3071 100644 --- a/src/main/java/moe/oko/Kiafumi/command/music/MusicCommand.java +++ b/src/main/java/moe/oko/Kiafumi/command/music/MusicCommand.java @@ -29,6 +29,7 @@ import java.io.IOException; import java.util.*; import java.util.concurrent.TimeUnit; +import static moe.oko.Kiafumi.util.LoggingManager.info; import static moe.oko.Kiafumi.util.LoggingManager.slashLog; /** @@ -82,7 +83,8 @@ public class MusicCommand extends CommandClass { e.getHook().sendMessage("Skipping the current track.").queue(); } else { info.addSkip(e.getUser()); - e.getHook().sendMessage("**%s** has voted to skip the track".formatted(e.getUser().getName())).queue(); + e.getHook().sendMessage("**%s** has voted to skip the track (%s/%s)" + .formatted(e.getUser().getName(), votes, requiredVotes)).queue(); } } } @@ -110,10 +112,19 @@ public class MusicCommand extends CommandClass { else { var trackList = new StringBuilder(); var queuedTracks = getTrackManager(e.getGuild()).getQueuedTracks(); - queuedTracks.forEach(audioInfo -> trackList.append(buildQueueString(audioInfo))); - e.getHook().sendMessageEmbeds(new EmbedBuilder() - .setColor(EmbedUI.SUCCESS) - .addField("Queue", "**>** " + trackList.toString(), false).build()).queue(); + final short[] trackSize = {-1}; + queuedTracks.forEach(audioInfo -> { + trackList.append(buildQueueString(audioInfo)); + trackSize[0]++; + }); + var eb = new EmbedBuilder().setColor(EmbedUI.SUCCESS); + if (trackList.length() >= 990) { + eb.addField("Queue", "**>** " + trackList.toString(), false); + } else { + eb.addField("Queue", "**>** " + getPlayer(e.getGuild()).getPlayingTrack().getInfo().title + + "\n" + trackSize[0] + " other tracks..", false).build(); + } + e.getHook().sendMessageEmbeds(eb.build()).queue(); } } } @@ -143,18 +154,25 @@ public class MusicCommand extends CommandClass { @Override public void playlistLoaded(AudioPlaylist audioPlaylist) { - if (input.startsWith("ytsearch:")) - getTrackManager(server).queue(audioPlaylist.getSelectedTrack(), author); - else { - for (int i = audioPlaylist.getTracks().indexOf(audioPlaylist.getSelectedTrack()) + 1; i < audioPlaylist.getTracks().size(); i++) - getTrackManager(server).queue(audioPlaylist.getTracks().get(i), author); + if (input.startsWith("ytsearch:")) { + getTrackManager(server).queue(audioPlaylist.getTracks().get(0), author); + var trackInfo = audioPlaylist.getTracks().get(0).getInfo(); + eb = new EmbedBuilder() + .setColor(EmbedUI.SUCCESS) + .setAuthor("Playing") + .setDescription("[%s](%s)".formatted(trackInfo.title, trackInfo.uri)) + .addField("Info", "Channel: %s\nLength: %s".formatted(trackInfo.author, getTimestamp(trackInfo.length)), false) + .setFooter("Requested by: " + author.getEffectiveName()); + } else { + for (AudioTrack audioTrack : audioPlaylist.getTracks()) { + getTrackManager(server).queue(audioTrack, author); + eb = new EmbedBuilder() + .setColor(EmbedUI.SUCCESS) + .setAuthor("Loaded tracks") + .setDescription("**%s** tracks added to the queue.".formatted(audioPlaylist.getTracks().size())) + .setFooter("Requested by: " + author.getEffectiveName()); + } } - - eb = new EmbedBuilder() - .setColor(EmbedUI.SUCCESS) - .setAuthor("Loaded tracks") - .setDescription("**%s** tracks added to the queue.".formatted(audioPlaylist.getTracks().size())) - .setFooter("Requested by: " + author.getEffectiveName()); hook.sendMessageEmbeds(eb.build()).queue(); } @@ -168,7 +186,7 @@ public class MusicCommand extends CommandClass { } @Override - public void loadFailed(FriendlyException e) { hook.sendMessage(e.getLocalizedMessage()).queue(); } + public void loadFailed(FriendlyException e) { hook.sendMessage("Unable to play track.").queue(); } }); }