From 1e6f91d238884839ab13c09030904511b98ef062 Mon Sep 17 00:00:00 2001 From: Donald Shan Date: Mon, 26 Dec 2022 16:01:18 -0800 Subject: Added changing Discord Status feature Discord status of the bot will now change based on what is playing --- src/main/java/audio/TrackScheduler.java | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) (limited to 'src/main/java/audio/TrackScheduler.java') diff --git a/src/main/java/audio/TrackScheduler.java b/src/main/java/audio/TrackScheduler.java index 8377e7a..02329c8 100644 --- a/src/main/java/audio/TrackScheduler.java +++ b/src/main/java/audio/TrackScheduler.java @@ -4,6 +4,8 @@ import com.sedmelluq.discord.lavaplayer.player.AudioPlayer; import com.sedmelluq.discord.lavaplayer.player.event.AudioEventAdapter; import com.sedmelluq.discord.lavaplayer.track.AudioTrack; import com.sedmelluq.discord.lavaplayer.track.AudioTrackEndReason; +import net.dv8tion.jda.api.JDA; +import net.dv8tion.jda.api.entities.Activity; import java.util.Collections; import java.util.List; @@ -16,12 +18,13 @@ import java.util.concurrent.LinkedBlockingQueue; public class TrackScheduler extends AudioEventAdapter { public final AudioPlayer player; public BlockingQueue queue; - + public JDA jda; /** * @param player The audio player this scheduler uses */ - public TrackScheduler(AudioPlayer player) { + public TrackScheduler(AudioPlayer player, JDA jda) { this.player = player; + this.jda = jda; this.queue = new LinkedBlockingQueue<>(); } @@ -31,24 +34,34 @@ public class TrackScheduler extends AudioEventAdapter { * @param track The track to play or add to queue. */ public void queue(AudioTrack track) { - if (!player.startTrack(track, true)) { + //!player.startTrack(track, true) + if (player.getPlayingTrack()!= null) { queue.offer(track); + jda.getPresence().setActivity(Activity.playing(player.getPlayingTrack().getInfo().title)); + } + else{ + player.startTrack(track, true); + jda.getPresence().setActivity(Activity.playing(player.getPlayingTrack().getInfo().title)); } + } /** * Start the next track, stopping the current one if it is playing. */ public void nextTrack() { - player.startTrack(queue.poll(), false); + jda.getPresence().setActivity(Activity.playing(player.getPlayingTrack().getInfo().title)); - } + } + //TODO: FIGURE OUT HOW TO CHANGE THE STATUS AT THIS PART @Override public void onTrackEnd(AudioPlayer player, AudioTrack track, AudioTrackEndReason endReason) { // Only start the next track if the end reason is suitable for it (FINISHED or LOAD_FAILED) + jda.getPresence().setActivity(null); if (endReason.mayStartNext) { + jda.getPresence().setActivity(Activity.playing(track.getInfo().title)); nextTrack(); } } -- cgit v1.2.3