Voice Leave Listener
This commit is contained in:
parent
50163ca1b0
commit
50a2fa99bc
2 changed files with 12 additions and 8 deletions
|
|
@ -108,7 +108,7 @@ public class Hadder {
|
||||||
new InviteLinkListener(rethink),
|
new InviteLinkListener(rethink),
|
||||||
new RulesListener(rethink),
|
new RulesListener(rethink),
|
||||||
new StarboardListener(rethink),
|
new StarboardListener(rethink),
|
||||||
new VoiceLeaveListener());
|
new VoiceLeaveListener(audioManager));
|
||||||
|
|
||||||
try {
|
try {
|
||||||
shardManager = builder.build();
|
shardManager = builder.build();
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
package com.bbn.hadder.listener;
|
package com.bbn.hadder.listener;
|
||||||
|
|
||||||
import com.bbn.hadder.audio.AudioManager;
|
import com.bbn.hadder.audio.AudioManager;
|
||||||
import com.bbn.hadder.audio.TrackManager;
|
|
||||||
import net.dv8tion.jda.api.events.guild.voice.GuildVoiceLeaveEvent;
|
import net.dv8tion.jda.api.events.guild.voice.GuildVoiceLeaveEvent;
|
||||||
import net.dv8tion.jda.api.hooks.ListenerAdapter;
|
import net.dv8tion.jda.api.hooks.ListenerAdapter;
|
||||||
|
|
||||||
|
|
@ -11,14 +10,19 @@ import net.dv8tion.jda.api.hooks.ListenerAdapter;
|
||||||
|
|
||||||
public class VoiceLeaveListener extends ListenerAdapter {
|
public class VoiceLeaveListener extends ListenerAdapter {
|
||||||
|
|
||||||
|
private AudioManager audioManager;
|
||||||
|
|
||||||
|
public VoiceLeaveListener(AudioManager audioManager) {
|
||||||
|
this.audioManager = audioManager;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onGuildVoiceLeave(GuildVoiceLeaveEvent event) {
|
public void onGuildVoiceLeave(GuildVoiceLeaveEvent event) {
|
||||||
if (new AudioManager().hasPlayer(event.getGuild())) {
|
if (new AudioManager().hasPlayer(event.getGuild()) && event.getChannelLeft().getMembers().equals(event.getGuild().getSelfMember())) {
|
||||||
TrackManager manager = new AudioManager().getTrackManager(event.getGuild());
|
audioManager.players.remove(event.getGuild().getId());
|
||||||
manager.getQueuedTracks().stream()
|
audioManager.getPlayer(event.getGuild()).destroy();
|
||||||
.filter(info -> !info.getTrack().equals(new AudioManager().getPlayer(event.getGuild()).getPlayingTrack())
|
audioManager.getTrackManager(event.getGuild()).purgeQueue();
|
||||||
&& info.getAuthor().getUser().equals(event.getMember().getUser()))
|
event.getGuild().getAudioManager().closeAudioConnection();
|
||||||
.forEach(manager::remove);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue