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.AudioPlayerbooleanstatic intfinal TrackSchedulerboolean -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedGuildAudioManager(net.dv8tion.jda.api.entities.Guild instance) -
Method Summary
Modifier and TypeMethodDescriptionvoidannounceNextTrack(net.dv8tion.jda.api.entities.Guild guild, com.sedmelluq.discord.lavaplayer.track.AudioTrack newSong) net.dv8tion.jda.api.utils.messages.MessageDataClears current queue withTrackScheduler.setQueue(BlockingQueue)by creating a blankLinkedBlockingQueue<com.sedmelluq.discord.lavaplayer.track.AudioTrack>net.dv8tion.jda.api.utils.messages.MessageDatadisconnectBot(net.dv8tion.jda.api.entities.Member member) Removes the bot from the VC and clears its audio channelnet.dv8tion.jda.api.utils.messages.MessageCreateDatacreates a DynamicMessageEmbedwith multipleButtonto search pages for the current queuenet.dv8tion.jda.api.entities.MessageEmbeddjEnabledEmbed(net.dv8tion.jda.api.JDA jda) protected voiddjLoaded(com.sedmelluq.discord.lavaplayer.track.AudioTrack track, net.dv8tion.jda.api.entities.channel.concrete.VoiceChannel voiceChannel) net.dv8tion.jda.api.utils.messages.MessageDataenableDJ(net.dv8tion.jda.api.entities.User sender, net.dv8tion.jda.api.entities.Guild guild) net.dv8tion.jda.api.utils.messages.MessageDatafixAudio(net.dv8tion.jda.api.entities.Member sender) Resets region selection for VCnet.dv8tion.jda.api.utils.messages.MessageDatafollowUser(net.dv8tion.jda.api.entities.Member sender) Moves the audio bot to the channel the sender is innet.dv8tion.jda.api.utils.messages.MessageDatagenerateRadio(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.MessageDatagenreList(long idLong) com.sedmelluq.discord.lavaplayer.player.AudioPlayerManagerstatic Map<net.dv8tion.jda.api.entities.Guild,GuildAudioManager> longstatic GuildAudioManagergetGuildAudioManager(net.dv8tion.jda.api.entities.Guild guild) @Nullable Map<com.sedmelluq.discord.lavaplayer.track.AudioTrack,net.dv8tion.jda.api.entities.User> booleannet.dv8tion.jda.api.utils.messages.MessageDatanet.dv8tion.jda.api.utils.messages.MessageDataloopSong()net.dv8tion.jda.api.utils.messages.MessageDatamoveSong(int pos1, int pos2) net.dv8tion.jda.api.utils.messages.MessageDataifAudioPlayer.isPaused()does nothing, otherwise pauses player.net.dv8tion.jda.api.entities.MessageEmbedplayListLoaded(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.MessageDataremoveTrack(int position) net.dv8tion.jda.api.utils.messages.MessageDataifAudioPlayer.isPaused()unpauses the player.net.dv8tion.jda.api.utils.messages.MessageDatanet.dv8tion.jda.api.utils.messages.MessageDatacreatesMessageEmbedwith song progress bar among other information about the playing track.voidsetRequester(com.sedmelluq.discord.lavaplayer.track.AudioTrack track, net.dv8tion.jda.api.entities.User requester) net.dv8tion.jda.api.utils.messages.MessageDatasetVolume(int i) net.dv8tion.jda.api.utils.messages.MessageDataobtains instance of queue withTrackScheduler.getTrackQueue()and randomizes it with collections.voidcopy ofskipTrack(Member request)without a confirmation message.net.dv8tion.jda.api.utils.messages.MessageDataskipTo(int indexNumber) net.dv8tion.jda.api.utils.messages.MessageDataskipTrack(net.dv8tion.jda.api.entities.Member request) Skip's the current track by usingTrackScheduler.nextTrack()voidstageUpdate(boolean stageStarted) voidtoggles whetherAudioPlayer.isPaused()net.dv8tion.jda.api.entities.MessageEmbedtrackLoaded(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.MessageDatatrackLoadFailed(String trackUrl, com.sedmelluq.discord.lavaplayer.tools.FriendlyException exception, boolean editMsg) net.dv8tion.jda.api.utils.messages.MessageDatatrackNotFound(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- isBooleanfor 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- isBooleanfor 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 ofUserwho 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 DynamicMessageEmbedwith multipleButtonto 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()createsMessageEmbedwith 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- usingDateTimeFormatterto 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
-