use of com.sedmelluq.discord.lavaplayer.track.AudioItem in project FlareBot by FlareBot.
the class YouTubeExtractor method process.
@Override
public void process(String input, Player player, Message message, User user) throws Exception {
AudioItem item;
try {
item = GeneralUtils.resolveItem(player, input);
} catch (IllegalArgumentException e) {
MessageUtils.editMessage(null, MessageUtils.getEmbed(user).setDescription("Could not get that video/playlist! Make sure the URL is correct!").setColor(Color.RED), message);
return;
} catch (IllegalStateException e) {
if (e.getMessage().contains("Vevo")) {
MessageUtils.editMessage(null, MessageUtils.getEmbed(user).setDescription("We are blocked from playing this video as it is from Vevo! " + "Sorry for any inconvenience.").setColor(Color.RED), message);
return;
}
MessageUtils.editMessage(null, MessageUtils.getEmbed(user).setDescription("There was a problem with that video!\n" + "If the error continues, join our support discord: " + Constants.INVITE_URL + "\n" + "Input: " + input + "\n" + "Error Message: " + e.getMessage() + "\n" + "Stacktrace: " + MessageUtils.paste(GeneralUtils.getStackTrace(e))).setColor(Color.RED), message);
return;
}
List<AudioTrack> audioTracks = new ArrayList<>();
String name;
if (item instanceof AudioPlaylist) {
AudioPlaylist audioPlaylist = (AudioPlaylist) item;
audioTracks.addAll(audioPlaylist.getTracks());
name = audioPlaylist.getName();
} else {
AudioTrack track = (AudioTrack) item;
/*if (track.getInfo().length == 0 || track.getInfo().isStream) {
EmbedBuilder builder = MessageUtils.getEmbed(user).setDescription("Cannot queue a livestream!");
MessageUtils.editMessage(null, builder, message);
return;
}*/
audioTracks.add(track);
name = track.getInfo().title;
if (track.getInfo().identifier.equals("dQw4w9WgXcQ") && (random.nextInt(1000) + 1) == 1000) {
GeneralUtils.sendImage("https://flarebot.stream/img/rick_roll.jpg", "rick_roll.jpg", user);
Constants.logEG("You can't rick roll me!", null, message.getGuild(), user);
}
}
if (name != null) {
List<Track> tracks = audioTracks.stream().map(Track::new).peek(track -> {
track.getMeta().put("requester", user.getId());
track.getMeta().put("guildId", player.getGuildId());
}).collect(Collectors.toList());
if (tracks.size() > 1) {
// Double `if` https://giphy.com/gifs/ng1xAzwIkDgfm
Playlist p = new Playlist(tracks);
player.queue(p);
} else {
player.queue(tracks.get(0));
}
EmbedBuilder builder = MessageUtils.getEmbed(user);
builder.setDescription(String.format("%s added the %s [`%s`](%s)", user.getAsMention(), audioTracks.size() == 1 ? "song" : "playlist", name.replace("`", "'"), input));
if (audioTracks.size() > 1)
builder.addField("Song count:", String.valueOf(audioTracks.size()), true);
MessageUtils.editMessage(null, builder, message);
}
}
use of com.sedmelluq.discord.lavaplayer.track.AudioItem in project FlareBot by FlareBot.
the class RandomExtractor method process.
@Override
public void process(String input, Player player, Message message, User user) throws Exception {
int i = 0;
for (String s : input.split(",")) {
try {
AudioItem probablyATrack = player.resolve(s);
if (probablyATrack == null)
continue;
Track track = new Track((AudioTrack) probablyATrack);
track.getMeta().put("requester", user.getId());
track.getMeta().put("guildId", player.getGuildId());
player.queue(track);
i++;
} catch (FriendlyException ignored) {
}
}
MessageUtils.editMessage(null, MessageUtils.getEmbed().setDescription("Added " + i + " random songs to the playlist!"), message);
}
Aggregations