Advertisement
Guest User

Untitled

a guest
Oct 21st, 2017
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.49 KB | None | 0 0
  1. package fr.gtalife.botdiscord.music;
  2.  
  3. import java.util.HashMap;
  4. import java.util.Map;
  5.  
  6. import com.sedmelluq.discord.lavaplayer.player.AudioLoadResultHandler;
  7. import com.sedmelluq.discord.lavaplayer.player.AudioPlayerManager;
  8. import com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager;
  9. import com.sedmelluq.discord.lavaplayer.source.AudioSourceManagers;
  10. import com.sedmelluq.discord.lavaplayer.tools.FriendlyException;
  11. import com.sedmelluq.discord.lavaplayer.track.AudioPlaylist;
  12. import com.sedmelluq.discord.lavaplayer.track.AudioTrack;
  13.  
  14. import net.dv8tion.jda.core.entities.Guild;
  15. import net.dv8tion.jda.core.entities.TextChannel;
  16.  
  17. public class MusicManager {
  18.  
  19. private final AudioPlayerManager manager = new DefaultAudioPlayerManager();
  20. private final Map<String, MusicPlayer> players = new HashMap<>();
  21.  
  22. public MusicManager() {
  23. AudioSourceManagers.registerRemoteSources(manager);
  24. AudioSourceManagers.registerLocalSource(manager);
  25. }
  26.  
  27. public synchronized MusicPlayer getPlayer(Guild guild) {
  28. if(!players.containsKey(guild.getId())) players.put(guild.getId(), new MusicPlayer(manager.createPlayer(), guild));
  29. return players.get(guild.getId());
  30. }
  31.  
  32. public void loadTrack(final TextChannel channel, final String source) {
  33. MusicPlayer player = getPlayer(channel.getGuild());
  34.  
  35. channel.getGuild().getAudioManager().setSendingHandler(player.getAudioHandler());
  36.  
  37. manager.loadItemOrdered(player, source, new AudioLoadResultHandler() {
  38.  
  39. @Override
  40. public void trackLoaded(AudioTrack track) {
  41. channel.sendMessage("Ajout de la piste "+track.getInfo().title+".").queue();
  42. player.PlayTrack(track);
  43. }
  44.  
  45. @Override
  46. public void playlistLoaded(AudioPlaylist playlist) {
  47. StringBuilder builder = new StringBuilder();
  48. builder.append("Ajout de la playlist **").append(playlist.getName()).append("**\n");
  49.  
  50. for(int i = 0; i < playlist.getTracks().size() && i < 80; i++) {
  51. AudioTrack track = playlist.getTracks().get(i);
  52. builder.append("\n **->** ").append(track.getInfo().title);
  53. player.PlayTrack(track);
  54. }
  55.  
  56. channel.sendMessage(builder.toString()).queue();
  57. }
  58.  
  59. @Override
  60. public void noMatches() {
  61. channel.sendMessage("La piste " + source + "n'a pas été trouvé.").queue();
  62. }
  63.  
  64. @Override
  65. public void loadFailed(FriendlyException exception) {
  66. channel.sendMessage("Impossible de jouer la piste (raison:"+ exception.getMessage()+")").queue();
  67. }
  68. });
  69. }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement