mirror of
https://github.com/JonasunderscoreJones/ZtereoMUSIC.git
synced 2025-10-25 05:29:18 +02:00
new: clean up trackManager when leaving the vc
This commit is contained in:
parent
9fd929c528
commit
41515f6a55
3 changed files with 30 additions and 8 deletions
|
|
@ -5,11 +5,13 @@ import com.sedmelluq.discord.lavaplayer.player.AudioPlayer;
|
|||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.entities.MessageChannel;
|
||||
import net.dv8tion.jda.api.entities.VoiceChannel;
|
||||
import net.dv8tion.jda.api.managers.AudioManager;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.Objects;
|
||||
|
||||
public class TrackManagers {
|
||||
//todo: separate infochannel setting from creation or getting, maybe remove guildtrackmanager should accept a tracc manager?
|
||||
@Nullable
|
||||
public static TrackManager getGuildTrackManager(Guild guild, MessageChannel infoChannel) {
|
||||
long guildId = guild.getIdLong();
|
||||
|
|
@ -20,7 +22,7 @@ public class TrackManagers {
|
|||
return null;
|
||||
}
|
||||
|
||||
trackManager.setInfoChannel(infoChannel);
|
||||
if (infoChannel != null) trackManager.setInfoChannel(infoChannel);
|
||||
|
||||
guild.getAudioManager().setSendingHandler(trackManager.getAudioSendHandler());
|
||||
|
||||
|
|
@ -48,14 +50,14 @@ public class TrackManagers {
|
|||
// stops player, disconnects from vc, and deletes the wrapper
|
||||
public static void removeGuildTrackManager(Guild guild) {
|
||||
long guildId = guild.getIdLong();
|
||||
AudioManager audioManager = guild.getAudioManager();
|
||||
TrackManager trackManager = ZtereoMUSIC.getInstance().getGuildTrackManagerMap().get(guildId);
|
||||
|
||||
audioManager.closeAudioConnection();
|
||||
|
||||
if (trackManager == null) return;
|
||||
|
||||
trackManager.stop();
|
||||
guild.getAudioManager().closeAudioConnection();
|
||||
|
||||
//todo: remove this when will be part of disconnection listener y fa fere ts tts sad
|
||||
ZtereoMUSIC.getInstance().getGuildTrackManagerMap().remove(guildId);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +0,0 @@
|
|||
//package codes.ztereohype.ztereomusic.listeners;
|
||||
//
|
||||
//public class onVcDisconnect {
|
||||
//}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
package codes.ztereohype.ztereomusic.listeners;
|
||||
|
||||
import codes.ztereohype.ztereomusic.ZtereoMUSIC;
|
||||
import codes.ztereohype.ztereomusic.audio.TrackManager;
|
||||
import codes.ztereohype.ztereomusic.audio.TrackManagers;
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
import net.dv8tion.jda.api.events.guild.voice.GuildVoiceLeaveEvent;
|
||||
import net.dv8tion.jda.api.hooks.ListenerAdapter;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
public class vcLeaveListener extends ListenerAdapter {
|
||||
@Override
|
||||
public void onGuildVoiceLeave(@Nonnull GuildVoiceLeaveEvent event) {
|
||||
Guild guild = event.getGuild();
|
||||
Member leavingMember = event.getMember();
|
||||
Member ztereoBotMember = event.getGuild().getMember(ZtereoMUSIC.getInstance().getJda().getSelfUser());
|
||||
|
||||
if (leavingMember.equals(ztereoBotMember)) {
|
||||
TrackManagers.removeGuildTrackManager(guild);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue