use of io.github.lxgaming.discordbot.entries.Audio in project DiscordBot by LXGaming.
the class AudioQueue method playNext.
public void playNext() {
Audio audio = getNext();
if (audio == null) {
DiscordBot.getInstance().getDiscord().getAudioPlayer().playTrack(null);
return;
}
DiscordBot.getInstance().getDiscord().getAudioPlayer().playTrack(audio.getAudioTrack());
EmbedBuilder embedBuilder = new EmbedBuilder();
embedBuilder.setAuthor(audio.getTextChannel().getJDA().getSelfUser().getName(), null, audio.getTextChannel().getJDA().getSelfUser().getEffectiveAvatarUrl());
embedBuilder.setColor(DiscordUtil.DEFAULT);
embedBuilder.addField("Now playing", audio.getAudioTrack().getInfo().title, false);
DiscordBot.getInstance().getDiscord().getMessageSender().sendMessage(audio.getTextChannel(), embedBuilder.build(), true);
}
use of io.github.lxgaming.discordbot.entries.Audio in project DiscordBot by LXGaming.
the class RemoveCommand method execute.
@Override
public void execute(TextChannel textChannel, Member member, Message message, List<String> arguments) {
EmbedBuilder embedBuilder = new EmbedBuilder();
embedBuilder.setAuthor(textChannel.getJDA().getSelfUser().getName(), null, textChannel.getJDA().getSelfUser().getEffectiveAvatarUrl());
embedBuilder.setColor(DiscordUtil.DEFAULT);
if (arguments == null || arguments.isEmpty()) {
embedBuilder.setColor(DiscordUtil.ERROR);
embedBuilder.setTitle("Invalid arguments!", null);
DiscordBot.getInstance().getDiscord().getMessageSender().sendMessage(textChannel, embedBuilder.build(), true);
return;
}
if (DiscordBot.getInstance().getDiscord().getAudioQueue().getQueue() == null || DiscordBot.getInstance().getDiscord().getAudioQueue().getQueue().isEmpty()) {
embedBuilder.setColor(DiscordUtil.ERROR);
embedBuilder.setTitle("Queue is empty!", null);
DiscordBot.getInstance().getDiscord().getMessageSender().sendMessage(textChannel, embedBuilder.build(), true);
return;
}
if (arguments.get(0).equalsIgnoreCase("all")) {
DiscordBot.getInstance().getDiscord().getAudioQueue().getQueue().clear();
embedBuilder.setColor(DiscordUtil.SUCCESS);
embedBuilder.setTitle("All songs from queue removed.", null);
DiscordBot.getInstance().getDiscord().getMessageSender().sendMessage(textChannel, embedBuilder.build(), true);
return;
}
try {
int index = (Integer.parseInt(arguments.get(0)) - 1);
if (index > DiscordBot.getInstance().getDiscord().getAudioQueue().getQueue().size() || index < 0) {
throw new NumberFormatException();
}
Audio audio = DiscordBot.getInstance().getDiscord().getAudioQueue().getQueue().remove(index);
embedBuilder.setColor(DiscordUtil.SUCCESS);
if (audio != null && audio.getAudioTrack() != null) {
embedBuilder.setTitle("Removed '" + audio.getAudioTrack().getInfo().title + "'.");
} else {
embedBuilder.setTitle("Removed '" + "Unknown" + "'.");
}
DiscordBot.getInstance().getDiscord().getMessageSender().sendMessage(textChannel, embedBuilder.build(), true);
} catch (NumberFormatException ex) {
embedBuilder.setColor(DiscordUtil.ERROR);
embedBuilder.setTitle("Supplied value is outside the queue range!", null);
DiscordBot.getInstance().getDiscord().getMessageSender().sendMessage(textChannel, embedBuilder.build(), true);
return;
}
}
use of io.github.lxgaming.discordbot.entries.Audio in project DiscordBot by LXGaming.
the class AudioPlayerLoadResultHandler method trackLoaded.
@Override
public void trackLoaded(AudioTrack audioTrack) {
if (audioTrack == null) {
return;
}
Audio audio = new Audio(getTextChannel(), getMember(), audioTrack);
DiscordBot.getInstance().getDiscord().getAudioQueue().getQueue().add(audio);
if (DiscordBot.getInstance().getDiscord().getAudioPlayer().getPlayingTrack() == null) {
DiscordBot.getInstance().getDiscord().getAudioQueue().playNext();
} else {
EmbedBuilder embedBuilder = new EmbedBuilder();
embedBuilder.setAuthor(textChannel.getJDA().getSelfUser().getName(), null, textChannel.getJDA().getSelfUser().getEffectiveAvatarUrl());
embedBuilder.setColor(DiscordUtil.SUCCESS);
embedBuilder.setTitle("'" + audio.getAudioTrack().getInfo().title + "' Has been added to the queue.", null);
DiscordBot.getInstance().getDiscord().getMessageSender().sendMessage(textChannel, embedBuilder.build(), true);
}
audio = null;
}
use of io.github.lxgaming.discordbot.entries.Audio in project DiscordBot by LXGaming.
the class AudioPlayerLoadResultHandler method playlistLoaded.
@Override
public void playlistLoaded(AudioPlaylist audioPlaylist) {
for (Iterator<AudioTrack> iterator = audioPlaylist.getTracks().iterator(); iterator.hasNext(); ) {
AudioTrack audioTrack = iterator.next();
if (audioTrack == null) {
continue;
}
Audio audio = new Audio(getTextChannel(), getMember(), audioTrack);
DiscordBot.getInstance().getDiscord().getAudioQueue().getQueue().add(audio);
if (DiscordBot.getInstance().getDiscord().getAudioPlayer().getPlayingTrack() == null) {
DiscordBot.getInstance().getDiscord().getAudioQueue().playNext();
} else {
LogHelper.debug("'" + audio.getAudioTrack().getInfo().title + "' Has been added to the queue.");
}
audio = null;
}
LogHelper.debug(audioPlaylist.getTracks().size() + " Songs have been added to the queue.");
EmbedBuilder embedBuilder = new EmbedBuilder();
embedBuilder.setAuthor(textChannel.getJDA().getSelfUser().getName(), null, textChannel.getJDA().getSelfUser().getEffectiveAvatarUrl());
embedBuilder.setColor(DiscordUtil.SUCCESS);
embedBuilder.setTitle(audioPlaylist.getTracks().size() + " Songs have been added to the queue.", null);
DiscordBot.getInstance().getDiscord().getMessageSender().sendMessage(textChannel, embedBuilder.build(), true);
}
use of io.github.lxgaming.discordbot.entries.Audio in project DiscordBot by LXGaming.
the class QueueCommand method execute.
@Override
public void execute(TextChannel textChannel, Member member, Message message, List<String> arguments) {
EmbedBuilder embedBuilder = new EmbedBuilder();
embedBuilder.setAuthor(textChannel.getJDA().getSelfUser().getName(), null, textChannel.getJDA().getSelfUser().getEffectiveAvatarUrl());
embedBuilder.setColor(DiscordUtil.DEFAULT);
if (DiscordBot.getInstance().getDiscord().getAudioQueue().getQueue() == null || DiscordBot.getInstance().getDiscord().getAudioQueue().getQueue().isEmpty()) {
embedBuilder.setTitle("Nothing Queued", null);
DiscordBot.getInstance().getDiscord().getMessageSender().sendMessage(textChannel, embedBuilder.build(), true);
return;
}
if (arguments != null && !arguments.isEmpty()) {
try {
int index = (Integer.parseInt(arguments.get(0)) - 1);
if (index > DiscordBot.getInstance().getDiscord().getAudioQueue().getQueue().size() || index < 0) {
throw new NumberFormatException();
}
Audio audio = DiscordBot.getInstance().getDiscord().getAudioQueue().getQueue().get(index);
embedBuilder.setColor(DiscordUtil.SUCCESS);
if (audio != null && audio.getAudioTrack() != null) {
embedBuilder.setTitle("Queued " + (index + 1) + ". '" + audio.getAudioTrack().getInfo().title + "'.");
} else {
embedBuilder.setTitle("Queued " + (index + 1) + ". 'Unknown" + "'.");
}
DiscordBot.getInstance().getDiscord().getMessageSender().sendMessage(textChannel, embedBuilder.build(), true);
} catch (NumberFormatException ex) {
embedBuilder.setColor(DiscordUtil.ERROR);
embedBuilder.setTitle("Supplied value is outside the queue range!", null);
DiscordBot.getInstance().getDiscord().getMessageSender().sendMessage(textChannel, embedBuilder.build(), true);
}
return;
}
StringBuilder stringBuilder = new StringBuilder();
int count = 1;
for (Iterator<Audio> iterator = DiscordBot.getInstance().getDiscord().getAudioQueue().getQueue().iterator(); iterator.hasNext(); ) {
Audio audio = iterator.next();
if (count > 10) {
break;
}
if (audio.hasPlayed()) {
continue;
}
stringBuilder.append("`" + count + ". [ " + DiscordUtil.getTimestamp(audio.getAudioTrack().getInfo().length) + " ]` " + audio.getAudioTrack().getInfo().title + "\n");
count++;
}
if (stringBuilder.toString().trim().equals("")) {
embedBuilder.setTitle("Nothing Queued", null);
DiscordBot.getInstance().getDiscord().getMessageSender().sendMessage(textChannel, embedBuilder.build(), true);
return;
}
count = DiscordBot.getInstance().getDiscord().getAudioQueue().getQueue().size() - count;
if (count > 0) {
embedBuilder.setFooter("and " + count + " more...", null);
}
embedBuilder.addField("Currently Queued", stringBuilder.toString(), false);
DiscordBot.getInstance().getDiscord().getMessageSender().sendMessage(textChannel, embedBuilder.build(), true);
}
Aggregations