Compare commits

..

2 Commits

Author SHA1 Message Date
Nekojimi cc17eb0bd9 Added "keep" flag to songs, which will stop them being deleted. 2021-11-19 19:55:32 +00:00
Nekojimi 17591cd6a7 Added leave command. 2021-11-19 19:55:10 +00:00
3 changed files with 42 additions and 1 deletions

View File

@ -41,6 +41,8 @@ public class Main extends ListenerAdapter
private final Searcher searcher;
private JDA jda;
private VoiceChannel currentVoiceChannel = null;
private List<Result> lastSearchResults;
private int trackNumber = 1;
@ -127,6 +129,8 @@ public class Main extends ListenerAdapter
if (content.startsWith("!join "))
onJoinCommand(event, guild, arg);
else if (content.equals("!leave"))
onLeaveCommand(event);
else if (content.equals("!join"))
onJoinCommand(event);
else if (content.startsWith("!play "))
@ -201,6 +205,15 @@ public class Main extends ListenerAdapter
onConnecting(channel, textChannel); // Let the user know, we were successful!
}
private void onLeaveCommand(GuildMessageReceivedEvent event)
{
if (currentVoiceChannel != null)
{
disconnect();
}
}
private void onPlayCommand(GuildMessageReceivedEvent event, Guild guild, String arg)
{
try
@ -384,7 +397,9 @@ public class Main extends ListenerAdapter
{
String help = "Commands available:\n"
+ "!join <Channel> - Joins a voice channel\n"
+ "!leave - Leaves the current voice channel\n"
+ "!play <URL> - Downloads the track at that URL and adds it to the queue.\n"
+ "!play <Search> - Searches for a track and displays a selection menu.\n"
+ "!queue - Show the songs currently playing and the current queue.\n"
+ "!remove <Index> - Remove the song at position <Index> from the queue.\n"
+ "!skip - Skip the current song and play the next one.\n"
@ -442,6 +457,20 @@ public class Main extends ListenerAdapter
// audioManager.setReceivingHandler(handler);
// Connect to the voice channel
audioManager.openAudioConnection(channel);
currentVoiceChannel = channel;
}
private void disconnect()
{
if (currentVoiceChannel != null)
{
Guild guild = currentVoiceChannel.getGuild();
AudioManager audioManager = guild.getAudioManager();
audioManager.setSendingHandler(null);
audioManager.closeAudioConnection();
musicHandler = null;
currentVoiceChannel = null;
}
}
}

View File

@ -95,6 +95,7 @@ public class MusicHandler implements AudioSendHandler, Closeable, Consumer<Song>
}
if (currentSong != null)
{
if (!currentSong.isKept())
currentSong.delete();
currentSong = null;
}

View File

@ -22,6 +22,7 @@ public class Song
private String requestedBy;
private String requestedIn;
private boolean kept = false;
public Song(URL url)
{
@ -100,6 +101,16 @@ public class Song
this.requestedIn = requestedIn;
}
public boolean isKept()
{
return kept;
}
public void setKept(boolean kept)
{
this.kept = kept;
}
@Override
public String toString()
{