use of com.arsenarsen.lavaplayerbridge.player.Track in project FlareBot by FlareBot.
the class DebugCommand method onCommand.
@Override
public void onCommand(User sender, GuildWrapper guild, TextChannel channel, Message message, String[] args, Member member) {
if (args.length < 1) {
MessageUtils.sendUsage(this, channel, sender, args);
return;
}
FlareBot fb = FlareBot.instance();
EmbedBuilder eb = MessageUtils.getEmbed();
if (args[0].equalsIgnoreCase("flarebot") || args[0].equalsIgnoreCase("bot")) {
eb.setTitle("Bot Debug").setDescription(String.format("Debug for FlareBot v" + FlareBot.getVersion() + "\nUptime: %s" + "\nMemory Usage: %s" + "\nMemory Free: %s" + "\nVideo Threads: %d" + "\nCommand Threads: %d" + "\nTotal Threads: %d" + "\n\nGuilds: %d" + "\nLoaded Guilds: %d" + "\nVoice Channels: %d" + "\nActive Voice Channels: %d" + "\nCommands Executed: %d" + "\nQueued RestActions: %s", fb.getUptime(), getMB(Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()), getMB(Runtime.getRuntime().freeMemory()), VideoThread.VIDEO_THREADS.activeCount(), Events.COMMAND_THREADS.activeCount(), Thread.getAllStackTraces().size(), fb.getShardManager().getGuildCache().size(), FlareBotManager.instance().getGuilds().size(), Getters.getConnectedVoiceChannels(), Getters.getActiveVoiceChannels(), fb.getEvents().getCommandCount(), getQueuedRestActions()));
StringBuilder sb = new StringBuilder();
for (DataInterceptor interceptor : DataInterceptor.getInterceptors()) sb.append(WordUtils.capitalize(interceptor.getSender().getName())).append(" - ").append(interceptor.getRequests()).append(" requests").append("\n");
eb.addField("HTTP Requests", sb.toString(), false);
} else if (args[0].equalsIgnoreCase("threads")) {
eb.setTitle("Thread Debug").setDescription(String.format("Video Threads: %d" + "\nCommand Threads: %d" + "\nTotal Threads: %d" + "\nThread list: %s", VideoThread.VIDEO_THREADS.activeCount(), Events.COMMAND_THREADS.activeCount(), Thread.getAllStackTraces().size(), MessageUtils.paste(Thread.getAllStackTraces().keySet().stream().map(th -> th.getName() + " - " + th.getState() + " (" + th.getThreadGroup().getName() + ")").collect(Collectors.joining("\n")))));
} else if (args[0].equalsIgnoreCase("server") || args[0].equalsIgnoreCase("guild")) {
} else if (args[0].equalsIgnoreCase("player") || args[0].equalsIgnoreCase("music")) {
GuildWrapper wrapper = guild;
if (args.length == 2)
wrapper = FlareBotManager.instance().getGuild(args[1]);
if (wrapper == null) {
channel.sendMessage("I can't find that guild!").queue();
return;
}
Player player = FlareBot.instance().getMusicManager().getPlayer(wrapper.getGuildId());
VoiceChannel vc = (wrapper.getGuild().getSelfMember().getVoiceState() != null && wrapper.getGuild().getSelfMember().getVoiceState().getChannel() != null ? wrapper.getGuild().getSelfMember().getVoiceState().getChannel() : null);
String lastActive = "Not tracked.";
if (VoiceChannelCleanup.VC_LAST_USED.containsKey(vc != null ? vc.getIdLong() : guild.getGuildIdLong())) {
long ms = VoiceChannelCleanup.VC_LAST_USED.get(vc != null ? vc.getIdLong() : guild.getGuildIdLong());
lastActive = String.valueOf(ms) + " (" + (System.currentTimeMillis() - ms) + "ms ago)";
}
boolean isPlaying = player.getPlayingTrack() != null;
Track track = player.getPlayingTrack();
eb.setTitle("Bot Debug").setDescription(String.format("Player Debug for `" + wrapper.getGuildId() + "`" + "\nCurrent Track: %s" + "\nCurrent Position: %s" + "\nIs Paused: %b" + "\nPlaylist Length: %s" + "\nIs Looping: %b" + "\nVoice Channel: %s" + "\nLast Active: %s", (isPlaying ? track.getTrack().getIdentifier() : "No current track"), (isPlaying ? track.getTrack().getPosition() + "/" + track.getTrack().getDuration() : "N/A"), player.getPaused(), player.getPlaylist().size(), player.getLooping(), (vc == null ? "null" : vc.toString()), lastActive));
} else {
channel.sendMessage("Invalid debug option").queue();
return;
}
channel.sendMessage(eb.build()).queue();
}
use of com.arsenarsen.lavaplayerbridge.player.Track in project FlareBot by FlareBot.
the class QueueListener method sendQueueData.
private void sendQueueData(List<Track> tracks) {
JsonArray array = new JsonArray();
for (Track t : tracks) {
JsonObject object = new JsonObject();
object.addProperty("title", t.getTrack().getInfo().title);
object.addProperty("id", t.getTrack().getIdentifier());
array.add(object);
}
// FlareBot.getInstance().postToApi("updatePlaylistData", "playlist", array);
}
use of com.arsenarsen.lavaplayerbridge.player.Track in project FlareBot by FlareBot.
the class DebugCommand method onCommand.
@Override
public void onCommand(User sender, GuildWrapper guild, TextChannel channel, Message message, String[] args, Member member) {
if (args.length < 1) {
MessageUtils.sendUsage(this, channel, sender, args);
return;
}
FlareBot fb = FlareBot.instance();
EmbedBuilder eb = MessageUtils.getEmbed();
if (args[0].equalsIgnoreCase("flarebot") || args[0].equalsIgnoreCase("bot")) {
eb.setTitle("Bot Debug").setDescription(String.format("Debug for FlareBot v" + FlareBot.getVersion() + "\nUptime: %s" + "\nMemory Usage: %s" + "\nMemory Free: %s" + "\nVideo Threads: %d" + "\nCommand Threads: %d" + "\nTotal Threads: %d" + "\n\nGuilds: %d" + "\nLoaded Guilds: %d" + "\nVoice Channels: %d" + "\nActive Voice Channels: %d" + "\nCommands Executed: %d" + "\nQueued RestActions: %s", fb.getUptime(), getMB(Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()), getMB(Runtime.getRuntime().freeMemory()), VideoThread.VIDEO_THREADS.activeCount(), Events.COMMAND_THREADS.activeCount(), Thread.getAllStackTraces().size(), fb.getShardManager().getGuildCache().size(), FlareBotManager.instance().getGuilds().size(), Getters.getConnectedVoiceChannels(), Getters.getActiveVoiceChannels(), fb.getEvents().getCommandCount(), getQueuedRestActions()));
StringBuilder sb = new StringBuilder();
for (DataInterceptor interceptor : DataInterceptor.getInterceptors()) sb.append(WordUtils.capitalize(interceptor.getSender().getName())).append(" - ").append(interceptor.getRequests()).append(" requests").append("\n");
eb.addField("HTTP Requests", sb.toString(), false);
} else if (args[0].equalsIgnoreCase("threads")) {
eb.setTitle("Thread Debug").setDescription(String.format("Video Threads: %d" + "\nCommand Threads: %d" + "\nTotal Threads: %d" + "\nThread list: %s", VideoThread.VIDEO_THREADS.activeCount(), Events.COMMAND_THREADS.activeCount(), Thread.getAllStackTraces().size(), MessageUtils.paste(Thread.getAllStackTraces().keySet().stream().map(th -> th.getName() + " - " + th.getState() + " (" + th.getThreadGroup().getName() + ")").collect(Collectors.joining("\n")))));
} else if (args[0].equalsIgnoreCase("server") || args[0].equalsIgnoreCase("guild")) {
GuildWrapper wrapper = guild;
if (args.length == 2)
wrapper = FlareBotManager.instance().getGuild(args[1]);
if (wrapper == null) {
channel.sendMessage("I can't find that guild!").queue();
return;
}
eb.setTitle("Server Debug").setDescription(String.format("Debug for " + wrapper.getGuildIdLong() + "\nData Ver: %s (%s)" + "\nPrefix: %s" + "\nBlocked: %b" + "\nBeta: %b" + "\nWelcomes: %b/%b" + "\nNINO: %b" + "\nSong nick: %b" + "\nPerms: %s" + "\nMute role: %s" + "\nsettings: %s" + "\n\nFor full guild data do `_guild data " + wrapper.getGuildIdLong() + "`", wrapper.dataVersion, GuildWrapper.DATA_VERSION, MessageUtils.escapeMarkdown(String.valueOf(wrapper.getPrefix())), wrapper.isBlocked(), wrapper.getBetaAccess(), wrapper.getWelcome().isGuildEnabled(), wrapper.getWelcome().isDmEnabled(), wrapper.getNINO().isEnabled(), wrapper.isSongnickEnabled(), MessageUtils.paste(FlareBot.GSON.toJson(wrapper.getPermissions())), wrapper.getMutedRole(), wrapper.getSettings().toString()));
} else if (args[0].equalsIgnoreCase("player") || args[0].equalsIgnoreCase("music")) {
GuildWrapper wrapper = guild;
if (args.length == 2)
wrapper = FlareBotManager.instance().getGuild(args[1]);
if (wrapper == null) {
channel.sendMessage("I can't find that guild!").queue();
return;
}
Player player = FlareBot.instance().getMusicManager().getPlayer(wrapper.getGuildId());
AudioManager manager = wrapper.getGuild().getAudioManager();
@Nullable VoiceChannel vc = manager.getConnectedChannel();
String lastActive = "Not tracked.";
if (VoiceChannelCleanup.VC_LAST_USED.containsKey(vc != null ? vc.getIdLong() : guild.getGuildIdLong())) {
long ms = VoiceChannelCleanup.VC_LAST_USED.get(vc != null ? vc.getIdLong() : guild.getGuildIdLong());
lastActive = String.valueOf(ms) + " (" + (System.currentTimeMillis() - ms) + "ms ago)";
}
boolean isPlaying = player.getPlayingTrack() != null;
Track track = player.getPlayingTrack();
eb.setTitle("Bot Debug").setDescription(String.format("Player Debug for `" + wrapper.getGuildId() + "`" + "\nCurrent Track: %s" + "\nCurrent Position: %s" + "\nIs Paused: %b" + "\nPlaylist Length: %s" + "\nIs Looping: %b" + "\nConnecting: %b" + "\nVoice Channel: %s" + "\nConnection State: %s" + "\nLast Active: %s", (isPlaying ? track.getTrack().getIdentifier() : "No current track"), (isPlaying ? track.getTrack().getPosition() + "/" + track.getTrack().getDuration() : "N/A"), player.getPaused(), player.getPlaylist().size(), player.getLooping(), manager.isAttemptingToConnect(), (vc == null ? "null" : vc.toString()), manager.getConnectionStatus().toString(), lastActive));
} else {
channel.sendMessage("Invalid debug option").queue();
return;
}
channel.sendMessage(eb.build()).queue();
}
use of com.arsenarsen.lavaplayerbridge.player.Track in project FlareBot by FlareBot.
the class RepeatCommand method onCommand.
@Override
public void onCommand(User sender, GuildWrapper guild, TextChannel channel, Message message, String[] args, Member member) {
Player player = FlareBot.instance().getMusicManager().getPlayer(channel.getGuild().getId());
if (player.getPlayingTrack() == null) {
MessageUtils.sendErrorMessage("Can't repeat when their is no song to repeat!", channel);
} else {
Queue<Track> queue = new ConcurrentLinkedQueue<>();
queue.add(player.getPlayingTrack().makeClone());
queue.addAll(player.getPlaylist());
player.getPlaylist().clear();
player.getPlaylist().addAll(queue);
channel.sendMessage(new EmbedBuilder().setColor(Color.green).setDescription("The player will now repeat the current track!").build()).queue();
}
}
use of com.arsenarsen.lavaplayerbridge.player.Track in project FlareBot by FlareBot.
the class SaveCommand method onCommand.
@Override
public void onCommand(User sender, GuildWrapper guild, TextChannel channel, Message message, String[] args, Member member) {
if (args.length == 0) {
MessageUtils.sendUsage(this, channel, sender, args);
return;
}
String name = MessageUtils.getMessage(args, 0);
if (name.length() > 20) {
MessageUtils.sendErrorMessage("Name can only be a maximum of 20 characters!", channel);
return;
}
if (!FlareBot.instance().getMusicManager().hasPlayer(channel.getGuild().getId())) {
MessageUtils.sendErrorMessage("Your playlist is empty!", channel);
return;
}
Queue<Track> playlist = FlareBot.instance().getMusicManager().getPlayer(guild.getGuildId()).getPlaylist();
Track currentlyPlaying = FlareBot.instance().getMusicManager().getPlayer(guild.getGuildId()).getPlayingTrack();
channel.sendTyping().complete();
List<String> tracks = playlist.stream().map(track -> track.getTrack().getIdentifier()).collect(Collectors.toList());
if (currentlyPlaying != null) {
tracks.add(currentlyPlaying.getTrack().getIdentifier());
}
if (tracks.isEmpty()) {
MessageUtils.sendErrorMessage("Your playlist is empty!", channel);
return;
}
FlareBot.instance().getManager().savePlaylist(this, channel, sender.getId(), this.getPermissions(channel).hasPermission(member, Permission.SAVE_OVERWRITE), name, tracks);
}
Aggregations