& numerous changes to Music functionality
This commit is contained in:
Anya 2022-11-14 21:28:11 -08:00
parent 5c7f2991ec
commit d64f157159
2 changed files with 36 additions and 18 deletions

View File

@ -7,7 +7,7 @@
<groupId>moe.oko</groupId>
<artifactId>Kiafumi</artifactId>
<name>Kiafumi</name>
<version>0.9.0-pre</version>
<version>0.9.0</version>
<packaging>jar</packaging>
<url>https://oko.moe/kiafumi.htm</url>

View File

@ -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(); }
});
}