mirror of
https://github.com/JonasunderscoreJones/ZtereoMUSIC.git
synced 2025-10-26 04:49:18 +01:00
change: refactor trackmanager to remove GuildMusicPlayer.java
This commit is contained in:
parent
2e421bc2f0
commit
2b0417575e
8 changed files with 200 additions and 126 deletions
|
|
@ -0,0 +1,61 @@
|
|||
package codes.ztereohype.ztereomusic.audio;
|
||||
|
||||
import codes.ztereohype.ztereomusic.ZtereoMUSIC;
|
||||
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 java.util.Objects;
|
||||
|
||||
public class TrackManagers {
|
||||
public static TrackManager getGuildTrackManager(Guild guild) {
|
||||
long guildId = guild.getIdLong();
|
||||
|
||||
TrackManager trackManager = ZtereoMUSIC.getInstance().getGuildTrackManagerMap().get(guildId);
|
||||
|
||||
if (trackManager == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
guild.getAudioManager().setSendingHandler(trackManager.getAudioSendHandler());
|
||||
|
||||
return trackManager;
|
||||
}
|
||||
|
||||
public static TrackManager getGuildTrackManager(Guild guild, MessageChannel infoChannel, VoiceChannel connectedChannel, VoiceChannel requestedChannel) {
|
||||
long guildId = guild.getIdLong();
|
||||
boolean isInSameVC = Objects.equals(connectedChannel, requestedChannel);
|
||||
|
||||
// If I get called in a different vc I delete the old manager
|
||||
if (!isInSameVC) {
|
||||
ZtereoMUSIC.getInstance().getGuildTrackManagerMap().remove(guildId);
|
||||
}
|
||||
|
||||
TrackManager trackManager = ZtereoMUSIC.getInstance().getGuildTrackManagerMap().get(guildId);
|
||||
|
||||
if (trackManager == null) {
|
||||
trackManager = new TrackManager(ZtereoMUSIC.getInstance().getPlayerManager(), infoChannel, guild);
|
||||
ZtereoMUSIC.getInstance().getGuildTrackManagerMap().put(guildId, trackManager);
|
||||
guild.getAudioManager().openAudioConnection(requestedChannel);
|
||||
}
|
||||
|
||||
guild.getAudioManager().setSendingHandler(trackManager.getAudioSendHandler());
|
||||
|
||||
return trackManager;
|
||||
}
|
||||
|
||||
// stops player, disconnects from vc, and deletes the wrapper
|
||||
public static void removeGuildTrackManager(Guild guild) {
|
||||
long guildId = guild.getIdLong();
|
||||
TrackManager trackManager = ZtereoMUSIC.getInstance().getGuildTrackManagerMap().get(guildId);
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue