fix: re-set the infochannel at each command use fixing #6

This commit is contained in:
ZtereoHYPE 2021-12-05 02:15:32 +01:00
parent aee6735e39
commit b0c00d48ee
7 changed files with 27 additions and 35 deletions

View file

@ -6,6 +6,7 @@ import codes.ztereohype.ztereomusic.command.Command;
import codes.ztereohype.ztereomusic.command.CommandMeta;
import codes.ztereohype.ztereomusic.command.permissions.VoiceChecks;
import net.dv8tion.jda.api.entities.Guild;
import net.dv8tion.jda.api.entities.MessageChannel;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
public class Pause implements Command {
@ -33,7 +34,8 @@ public class Pause implements Command {
@Override
public void execute(MessageReceivedEvent messageEvent, String[] args) {
Guild guild = messageEvent.getGuild();
TrackManager trackManager = TrackManagers.getGuildTrackManager(guild);
MessageChannel messageChannel = messageEvent.getChannel();
TrackManager trackManager = TrackManagers.getGuildTrackManager(guild, messageChannel);
assert trackManager != null; // the command will not execute if it is anyway because of our VoiceChecks
if (trackManager.getPlayer().isPaused()) {

View file

@ -8,17 +8,11 @@ import codes.ztereohype.ztereomusic.command.Command;
import codes.ztereohype.ztereomusic.command.CommandMeta;
import codes.ztereohype.ztereomusic.command.permissions.VoiceChecks;
import codes.ztereohype.ztereomusic.networking.YoutubeSearch;
import com.sedmelluq.discord.lavaplayer.player.AudioLoadResultHandler;
import com.sedmelluq.discord.lavaplayer.player.AudioPlayerManager;
import com.sedmelluq.discord.lavaplayer.tools.FriendlyException;
import com.sedmelluq.discord.lavaplayer.track.AudioPlaylist;
import com.sedmelluq.discord.lavaplayer.track.AudioTrack;
import com.sedmelluq.discord.lavaplayer.player.AudioPlayerManager;
import net.dv8tion.jda.api.entities.*;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import net.dv8tion.jda.api.managers.AudioManager;
import java.io.IOException;
import java.util.Objects;
import java.util.Optional;
import java.util.regex.Matcher;
@ -74,8 +68,8 @@ public class Play implements Command {
identifier = mergedArgs;
}
TrackManager trackManager = TrackManagers.getGuildTrackManager(guild, messageChannel, manager.getConnectedChannel(), voiceChannel);
TrackManager trackManager = TrackManagers.getOrCreateGuildTrackManager(guild, messageChannel, voiceChannel);
playerManager.loadItem(identifier, new CustomAudioLoadResultHandler(trackManager, messageEvent));
playerManager.loadItem(identifier, new CustomAudioLoadResultHandler(trackManager, messageChannel));
}
}

View file

@ -1,6 +1,5 @@
package codes.ztereohype.ztereomusic.command.commands;
import codes.ztereohype.ztereomusic.ZtereoMUSIC;
import codes.ztereohype.ztereomusic.audio.TrackManager;
import codes.ztereohype.ztereomusic.audio.TrackManagers;
import codes.ztereohype.ztereomusic.command.Command;
@ -40,14 +39,13 @@ public class Queue implements Command {
Guild guild = messageEvent.getGuild();
VoiceChannel voiceChannel = Objects.requireNonNull(Objects.requireNonNull(messageEvent.getMember()).getVoiceState()).getChannel();
MessageChannel messageChannel = messageEvent.getChannel();
VoiceChannel connectedChannel = guild.getAudioManager().getConnectedChannel();
TrackManager trackManager = TrackManagers.getGuildTrackManager(guild, messageChannel, connectedChannel, voiceChannel);
TrackManager trackManager = TrackManagers.getOrCreateGuildTrackManager(guild, messageChannel, voiceChannel);
StringBuilder messageBuilder = new StringBuilder();
List<AudioTrack> trackList = trackManager.trackQueue;
for (AudioTrack track: trackList) {
messageBuilder.append(trackList.indexOf(track)).append(". ");
messageBuilder.append(trackList.indexOf(track) + 1).append(". ");
messageBuilder.append(track.getInfo().title);
messageBuilder.append(System.getProperty("line.separator"));
}

View file

@ -37,7 +37,7 @@ public class Skip implements Command {
public void execute(MessageReceivedEvent messageEvent, String[] args) {
Guild guild = messageEvent.getGuild();
MessageChannel messageChannel = messageEvent.getChannel();
TrackManager trackManager = TrackManagers.getGuildTrackManager(guild);
TrackManager trackManager = TrackManagers.getGuildTrackManager(guild, messageChannel);
assert trackManager != null; // the command will not execute if it is anyway because of our VoiceChecks (BOT_PLAYING)
if (trackManager.getPlayer().getPlayingTrack() == null) {