Class GuildAudioManager

java.lang.Object
dev.jacrispys.JavaBot.audio.GuildAudioManager

public class GuildAudioManager extends Object
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    final com.sedmelluq.discord.lavaplayer.player.AudioPlayer
     
    static Map<net.dv8tion.jda.api.entities.Guild,Long>
     
    boolean
     
    static int
     
     
    boolean
     
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    GuildAudioManager(net.dv8tion.jda.api.entities.Guild instance)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    announceNextTrack(net.dv8tion.jda.api.entities.Guild guild, com.sedmelluq.discord.lavaplayer.track.AudioTrack newSong)
     
    net.dv8tion.jda.api.utils.messages.MessageData
    Clears current queue with TrackScheduler.setQueue(BlockingQueue) by creating a blank LinkedBlockingQueue<com.sedmelluq.discord.lavaplayer.track.AudioTrack>
    net.dv8tion.jda.api.utils.messages.MessageData
    disconnectBot(net.dv8tion.jda.api.entities.Member member)
    Removes the bot from the VC and clears its audio channel
    net.dv8tion.jda.api.utils.messages.MessageCreateData
    creates a Dynamic MessageEmbed with multiple Button to search pages for the current queue
    net.dv8tion.jda.api.entities.MessageEmbed
    djEnabledEmbed(net.dv8tion.jda.api.JDA jda)
     
    protected void
    djLoaded(com.sedmelluq.discord.lavaplayer.track.AudioTrack track, net.dv8tion.jda.api.entities.channel.concrete.VoiceChannel voiceChannel)
     
    net.dv8tion.jda.api.utils.messages.MessageData
    enableDJ(net.dv8tion.jda.api.entities.User sender, net.dv8tion.jda.api.entities.Guild guild)
     
    net.dv8tion.jda.api.utils.messages.MessageData
    fixAudio(net.dv8tion.jda.api.entities.Member sender)
    Resets region selection for VC
    net.dv8tion.jda.api.utils.messages.MessageData
    followUser(net.dv8tion.jda.api.entities.Member sender)
    Moves the audio bot to the channel the sender is in
    net.dv8tion.jda.api.utils.messages.MessageData
    generateRadio(se.michaelthelin.spotify.model_objects.specification.Recommendations requestData, net.dv8tion.jda.api.entities.channel.concrete.VoiceChannel channel, net.dv8tion.jda.api.entities.Member member)
    Generates a radio based off of genres and popularity
    net.dv8tion.jda.api.utils.messages.MessageData
    genreList(long idLong)
     
    com.sedmelluq.discord.lavaplayer.player.AudioPlayerManager
     
    static Map<net.dv8tion.jda.api.entities.Guild,GuildAudioManager>
     
    long
     
    getGuildAudioManager(net.dv8tion.jda.api.entities.Guild guild)
     
    @Nullable Map<com.sedmelluq.discord.lavaplayer.track.AudioTrack,net.dv8tion.jda.api.entities.User>
     
    boolean
     
    net.dv8tion.jda.api.utils.messages.MessageData
    manages queueLoop invalid input: '&' songLoop
    net.dv8tion.jda.api.utils.messages.MessageData
    manages queueLoop invalid input: '&' songLoop
    net.dv8tion.jda.api.utils.messages.MessageData
    moveSong(int pos1, int pos2)
     
    net.dv8tion.jda.api.utils.messages.MessageData
    if AudioPlayer.isPaused() does nothing, otherwise pauses player.
    net.dv8tion.jda.api.entities.MessageEmbed
    playListLoaded(String trackUrl, com.sedmelluq.discord.lavaplayer.track.AudioPlaylist playlist, net.dv8tion.jda.api.entities.channel.middleman.AudioChannel voiceChannel, boolean playTop)
     
    net.dv8tion.jda.api.utils.messages.MessageData
    removeTrack(int position)
     
    net.dv8tion.jda.api.utils.messages.MessageData
    if AudioPlayer.isPaused() unpauses the player.
    net.dv8tion.jda.api.utils.messages.MessageData
     
    net.dv8tion.jda.api.utils.messages.MessageData
    creates MessageEmbed with song progress bar among other information about the playing track.
    void
    setRequester(com.sedmelluq.discord.lavaplayer.track.AudioTrack track, net.dv8tion.jda.api.entities.User requester)
     
    net.dv8tion.jda.api.utils.messages.MessageData
    setVolume(int i)
     
    net.dv8tion.jda.api.utils.messages.MessageData
    obtains instance of queue with TrackScheduler.getTrackQueue() and randomizes it with collections.
    void
    copy of skipTrack(Member request) without a confirmation message.
    net.dv8tion.jda.api.utils.messages.MessageData
    skipTo(int indexNumber)
     
    net.dv8tion.jda.api.utils.messages.MessageData
    skipTrack(net.dv8tion.jda.api.entities.Member request)
    Skip's the current track by using TrackScheduler.nextTrack()
    void
    stageUpdate(boolean stageStarted)
     
    void
    toggles whether AudioPlayer.isPaused()
    net.dv8tion.jda.api.entities.MessageEmbed
    trackLoaded(String trackUrl, com.sedmelluq.discord.lavaplayer.track.AudioTrack track, net.dv8tion.jda.api.entities.channel.middleman.AudioChannel voiceChannel, boolean playTop)
     
    net.dv8tion.jda.api.utils.messages.MessageData
    trackLoadFailed(String trackUrl, com.sedmelluq.discord.lavaplayer.tools.FriendlyException exception, boolean editMsg)
     
    net.dv8tion.jda.api.utils.messages.MessageData
    trackNotFound(String trackUrl, boolean editMsg)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • audioPlayer

      public final com.sedmelluq.discord.lavaplayer.player.AudioPlayer audioPlayer
    • scheduler

      public final TrackScheduler scheduler
    • queuePage

      public static int queuePage
    • nowPlayingId

      public static Map<net.dv8tion.jda.api.entities.Guild,Long> nowPlayingId
    • queueLoop

      public boolean queueLoop
    • songLoop

      public boolean songLoop
  • Constructor Details

    • GuildAudioManager

      protected GuildAudioManager(net.dv8tion.jda.api.entities.Guild instance)
  • Method Details

    • getGuildAudioManager

      public static GuildAudioManager getGuildAudioManager(net.dv8tion.jda.api.entities.Guild guild)
      Parameters:
      guild - is the instance to retrieve
      Returns:
      instance of GuildAudioManager
    • getAudioManager

      public com.sedmelluq.discord.lavaplayer.player.AudioPlayerManager getAudioManager()
      Returns:
      instance of AudioManager
    • getAudioManagers

      public static Map<net.dv8tion.jda.api.entities.Guild,GuildAudioManager> getAudioManagers()
    • getCurrentGuild

      public long getCurrentGuild()
    • trackLoaded

      public net.dv8tion.jda.api.entities.MessageEmbed trackLoaded(String trackUrl, com.sedmelluq.discord.lavaplayer.track.AudioTrack track, net.dv8tion.jda.api.entities.channel.middleman.AudioChannel voiceChannel, boolean playTop)
      Parameters:
      trackUrl - of the loaded track
      track - instance of loaded track
      voiceChannel - to attach bot to
      playTop - is Boolean for whether the loaded track should be placed at the top of the queue
    • playListLoaded

      public net.dv8tion.jda.api.entities.MessageEmbed playListLoaded(String trackUrl, com.sedmelluq.discord.lavaplayer.track.AudioPlaylist playlist, net.dv8tion.jda.api.entities.channel.middleman.AudioChannel voiceChannel, boolean playTop)
      Parameters:
      trackUrl - of the loaded track
      playlist - instance of loaded playlist
      voiceChannel - to attach bot to
      playTop - is Boolean for whether the loaded track should be placed at the top of the queue
    • djEnabledEmbed

      public net.dv8tion.jda.api.entities.MessageEmbed djEnabledEmbed(net.dv8tion.jda.api.JDA jda)
      Parameters:
      jda - to get self instance
    • trackNotFound

      public net.dv8tion.jda.api.utils.messages.MessageData trackNotFound(String trackUrl, boolean editMsg)
      Parameters:
      trackUrl - part of message.
    • trackLoadFailed

      public net.dv8tion.jda.api.utils.messages.MessageData trackLoadFailed(String trackUrl, com.sedmelluq.discord.lavaplayer.tools.FriendlyException exception, boolean editMsg)
      Parameters:
      trackUrl - part of message.
      exception - is a non-blocking error.
    • setRequester

      public void setRequester(com.sedmelluq.discord.lavaplayer.track.AudioTrack track, net.dv8tion.jda.api.entities.User requester)
      Parameters:
      track - loaded to player.
      requester - instance of User who requested the track.
    • getRequester

      @Nullable public @Nullable Map<com.sedmelluq.discord.lavaplayer.track.AudioTrack,net.dv8tion.jda.api.entities.User> getRequester()
      Returns:
      A map of audioTracks and Users, should be used to obtain user from a given track.
    • isStageEvent

      public boolean isStageEvent()
    • skipTrack

      public net.dv8tion.jda.api.utils.messages.MessageData skipTrack(net.dv8tion.jda.api.entities.Member request)
      Skip's the current track by using TrackScheduler.nextTrack()
    • stageUpdate

      public void stageUpdate(boolean stageStarted)
    • setVolume

      public net.dv8tion.jda.api.utils.messages.MessageData setVolume(int i)
      Parameters:
      i - volume # 1-100 for normal audio, 500 max (distortion)
    • displayQueue

      public net.dv8tion.jda.api.utils.messages.MessageCreateData displayQueue()
      creates a Dynamic MessageEmbed with multiple Button to search pages for the current queue
    • announceNextTrack

      public void announceNextTrack(net.dv8tion.jda.api.entities.Guild guild, com.sedmelluq.discord.lavaplayer.track.AudioTrack newSong)
      Parameters:
      guild - to send message to.
      newSong - called by TrackScheduler.onTrackStart(AudioPlayer, AudioTrack)
    • togglePlayer

      public void togglePlayer()
      toggles whether AudioPlayer.isPaused()
    • skipNoMessage

      public void skipNoMessage()
      copy of skipTrack(Member request) without a confirmation message.
    • clearQueue

      public net.dv8tion.jda.api.utils.messages.MessageData clearQueue()
      Clears current queue with TrackScheduler.setQueue(BlockingQueue) by creating a blank LinkedBlockingQueue<com.sedmelluq.discord.lavaplayer.track.AudioTrack>
    • pausePlayer

      public net.dv8tion.jda.api.utils.messages.MessageData pausePlayer()
      if AudioPlayer.isPaused() does nothing, otherwise pauses player.
    • resumePlayer

      public net.dv8tion.jda.api.utils.messages.MessageData resumePlayer()
      if AudioPlayer.isPaused() unpauses the player.
    • shufflePlayer

      public net.dv8tion.jda.api.utils.messages.MessageData shufflePlayer()
      obtains instance of queue with TrackScheduler.getTrackQueue() and randomizes it with collections.
    • sendTrackInfo

      public net.dv8tion.jda.api.utils.messages.MessageData sendTrackInfo()
      creates MessageEmbed with song progress bar among other information about the playing track.
    • removeTrack

      public net.dv8tion.jda.api.utils.messages.MessageData removeTrack(int position)
      Parameters:
      position - of track in queue (adjusted for 0 index)
    • seekTrack

      public net.dv8tion.jda.api.utils.messages.MessageData seekTrack(String time)
      Parameters:
      time - using DateTimeFormatter to later be converted into MS
    • djLoaded

      protected void djLoaded(com.sedmelluq.discord.lavaplayer.track.AudioTrack track, net.dv8tion.jda.api.entities.channel.concrete.VoiceChannel voiceChannel)
      Parameters:
      track - private icecast server
      voiceChannel - to attach to
    • enableDJ

      public net.dv8tion.jda.api.utils.messages.MessageData enableDJ(net.dv8tion.jda.api.entities.User sender, net.dv8tion.jda.api.entities.Guild guild)
      Parameters:
      channel - to block/send commands from
      sender - instance of current DJ
      guild - to manage
    • loopQueue

      public net.dv8tion.jda.api.utils.messages.MessageData loopQueue()
      manages queueLoop invalid input: '&' songLoop
    • loopSong

      public net.dv8tion.jda.api.utils.messages.MessageData loopSong()
      manages queueLoop invalid input: '&' songLoop
    • moveSong

      public net.dv8tion.jda.api.utils.messages.MessageData moveSong(int pos1, int pos2)
      Parameters:
      pos1 - is first track position to move.
      pos2 - is second track position to move swaps positions of invalid input: '&'
    • skipTo

      public net.dv8tion.jda.api.utils.messages.MessageData skipTo(int indexNumber)
      Parameters:
      indexNumber - to skip track queue to (adjusted for 0 index)
    • followUser

      public net.dv8tion.jda.api.utils.messages.MessageData followUser(net.dv8tion.jda.api.entities.Member sender)
      Moves the audio bot to the channel the sender is in
      Parameters:
      sender - user to move to
      Returns:
      message to confirm action
    • fixAudio

      public net.dv8tion.jda.api.utils.messages.MessageData fixAudio(net.dv8tion.jda.api.entities.Member sender)
      Resets region selection for VC
      Parameters:
      sender - user to send confirmation to
      Returns:
      message to confirm action
    • disconnectBot

      public net.dv8tion.jda.api.utils.messages.MessageData disconnectBot(net.dv8tion.jda.api.entities.Member member)
      Removes the bot from the VC and clears its audio channel
      Parameters:
      member - to send confirmation to
      Returns:
      message to confirm action
    • generateRadio

      public net.dv8tion.jda.api.utils.messages.MessageData generateRadio(se.michaelthelin.spotify.model_objects.specification.Recommendations requestData, net.dv8tion.jda.api.entities.channel.concrete.VoiceChannel channel, net.dv8tion.jda.api.entities.Member member)
      Generates a radio based off of genres and popularity
      Parameters:
      requestData - data from GenerateGenrePlaylist.generatePlaylistFromGenre(String, int) to add songs to the queue
      channel - voice channel to send audio to
      member - user that requested the radio
      Returns:
      message to confirm action
    • genreList

      public net.dv8tion.jda.api.utils.messages.MessageData genreList(long idLong)
      Parameters:
      idLong - id of user to identify buttons with
      Returns:
      embed that has paginated list of all genres to generate radio from