Package dev.jacrispys.JavaBot.audio
Class GuildAudioManager
java.lang.Object
dev.jacrispys.JavaBot.audio.GuildAudioManager
-
Field Summary
FieldsModifier and TypeFieldDescriptionfinal com.sedmelluq.discord.lavaplayer.player.AudioPlayer
boolean
static int
final TrackScheduler
boolean
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
GuildAudioManager
(net.dv8tion.jda.api.entities.Guild instance) -
Method Summary
Modifier and TypeMethodDescriptionvoid
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 withTrackScheduler.setQueue(BlockingQueue)
by creating a blankLinkedBlockingQueue<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 channelnet.dv8tion.jda.api.utils.messages.MessageCreateData
creates a DynamicMessageEmbed
with multipleButton
to search pages for the current queuenet.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 VCnet.dv8tion.jda.api.utils.messages.MessageData
followUser
(net.dv8tion.jda.api.entities.Member sender) Moves the audio bot to the channel the sender is innet.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 popularitynet.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
static GuildAudioManager
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
net.dv8tion.jda.api.utils.messages.MessageData
loopSong()
net.dv8tion.jda.api.utils.messages.MessageData
moveSong
(int pos1, int pos2) net.dv8tion.jda.api.utils.messages.MessageData
ifAudioPlayer.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
ifAudioPlayer.isPaused()
unpauses the player.net.dv8tion.jda.api.utils.messages.MessageData
net.dv8tion.jda.api.utils.messages.MessageData
createsMessageEmbed
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 withTrackScheduler.getTrackQueue()
and randomizes it with collections.void
copy ofskipTrack(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 usingTrackScheduler.nextTrack()
void
stageUpdate
(boolean stageStarted) void
toggles whetherAudioPlayer.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)
-
Field Details
-
audioPlayer
public final com.sedmelluq.discord.lavaplayer.player.AudioPlayer audioPlayer -
scheduler
-
queuePage
public static int queuePage -
nowPlayingId
-
queueLoop
public boolean queueLoop -
songLoop
public boolean songLoop
-
-
Constructor Details
-
GuildAudioManager
protected GuildAudioManager(net.dv8tion.jda.api.entities.Guild instance)
-
-
Method Details
-
getGuildAudioManager
- 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
-
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 tracktrack
- instance of loaded trackvoiceChannel
- to attach bot toplayTop
- isBoolean
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 trackplaylist
- instance of loaded playlistvoiceChannel
- to attach bot toplayTop
- isBoolean
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 ofUser
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 usingTrackScheduler.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 DynamicMessageEmbed
with multipleButton
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 byTrackScheduler.onTrackStart(AudioPlayer, AudioTrack)
-
togglePlayer
public void togglePlayer()toggles whetherAudioPlayer.isPaused()
-
skipNoMessage
public void skipNoMessage()copy ofskipTrack(Member request)
without a confirmation message. -
clearQueue
public net.dv8tion.jda.api.utils.messages.MessageData clearQueue()Clears current queue withTrackScheduler.setQueue(BlockingQueue)
by creating a blankLinkedBlockingQueue<com.sedmelluq.discord.lavaplayer.track.AudioTrack>
-
pausePlayer
public net.dv8tion.jda.api.utils.messages.MessageData pausePlayer()ifAudioPlayer.isPaused()
does nothing, otherwise pauses player. -
resumePlayer
public net.dv8tion.jda.api.utils.messages.MessageData resumePlayer()ifAudioPlayer.isPaused()
unpauses the player. -
shufflePlayer
public net.dv8tion.jda.api.utils.messages.MessageData shufflePlayer()obtains instance of queue withTrackScheduler.getTrackQueue()
and randomizes it with collections. -
sendTrackInfo
public net.dv8tion.jda.api.utils.messages.MessageData sendTrackInfo()createsMessageEmbed
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
- Parameters:
time
- usingDateTimeFormatter
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 servervoiceChannel
- 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 fromsender
- instance of current DJguild
- to manage
-
loopQueue
public net.dv8tion.jda.api.utils.messages.MessageData loopQueue() -
loopSong
public net.dv8tion.jda.api.utils.messages.MessageData loopSong() -
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 fromGenerateGenrePlaylist.generatePlaylistFromGenre(String, int)
to add songs to the queuechannel
- voice channel to send audio tomember
- 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
-