Skip to content

Commit 7e9bb3f

Browse files
committed
Added some more messages to be sent when running the music commands...
1 parent 1a6d8a4 commit 7e9bb3f

5 files changed

Lines changed: 80 additions & 21 deletions

File tree

src/main/java/org/mangorage/mangobotplugin/commands/music/AudioLoader.java

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,37 +3,39 @@
33

44
import dev.arbjerg.lavalink.client.AbstractAudioLoadResultHandler;
55
import dev.arbjerg.lavalink.client.player.*;
6+
import net.dv8tion.jda.api.entities.Message;
67

78
import java.util.List;
89

910
public final class AudioLoader extends AbstractAudioLoadResultHandler {
1011
private final GuildMusicManager mngr;
12+
private final Message message;
1113

12-
public AudioLoader(GuildMusicManager mngr) {
14+
public AudioLoader(GuildMusicManager mngr, Message message) {
1315
this.mngr = mngr;
16+
this.message = message;
1417
}
1518

1619
@Override
1720
public void ontrackLoaded(TrackLoaded result) {
1821
final Track track = result.getTrack();
1922

20-
var userData = new MyUserData(0l);
23+
var userData = new MyUserData(message.getAuthor().getIdLong());
2124

2225
track.setUserData(userData);
2326

2427
this.mngr.scheduler.enqueue(track);
2528

2629
final var trackTitle = track.getInfo().getTitle();
2730

28-
// event.getHook().sendMessage("Added to queue: " + trackTitle + "\nRequested by: <@" + userData.requester() + '>').queue();
31+
message.reply("Added to queue: " + trackTitle + "\nRequested by: <@" + userData.requester() + '>').queue();
2932
}
3033

3134
@Override
3235
public void onPlaylistLoaded(PlaylistLoaded result) {
3336
final int trackCount = result.getTracks().size();
34-
// event.getHook()
35-
// .sendMessage("Added " + trackCount + " tracks to the queue from " + result.getInfo().getName() + "!")
36-
// .queue();
37+
message.reply("Added " + trackCount + " tracks to the queue from " + result.getInfo().getName() + "!")
38+
.queue();
3739

3840
this.mngr.scheduler.enqueuePlaylist(result.getTracks());
3941
}
@@ -49,18 +51,18 @@ public void onSearchResultLoaded(SearchResult result) {
4951

5052
final Track firstTrack = tracks.get(0);
5153

52-
//event.getHook().sendMessage("Adding to queue: " + firstTrack.getInfo().getTitle()).queue();
54+
message.reply("Adding to queue: " + firstTrack.getInfo().getTitle()).queue();
5355

5456
this.mngr.scheduler.enqueue(firstTrack);
5557
}
5658

5759
@Override
5860
public void noMatches() {
59-
//event.getHook().sendMessage("No matches found for your input!").queue();
61+
message.reply("No matches found for your input!").queue();
6062
}
6163

6264
@Override
6365
public void loadFailed(LoadFailed result) {
64-
//.getHook().sendMessage("Failed to load track! " + result.getException().getMessage()).queue();
66+
message.reply("Failed to load track! " + result.getException().getMessage()).queue();
6567
}
6668
}

src/main/java/org/mangorage/mangobotplugin/commands/music/impl/JoinCommand.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,19 +29,26 @@ public JDACommandResult run(CommandContext<Message> commandContext) throws Throw
2929
final var context = commandContext.getContextObject();
3030
final var member = context.getMember();
3131

32-
joinHelper(member, commandContext.getContextObject().getJDA());
32+
if(joinHelper(member, commandContext.getContextObject().getJDA())) {
33+
context.reply("Joined Voice Channel!").queue();
34+
} else {
35+
context.reply("Please move to a Voice Channel!").queue();
36+
}
3337

3438
return JDACommandResult.PASS;
3539
}
3640

3741
// Makes sure that the bot is in a voice channel!
38-
private void joinHelper(Member member, JDA jda) {
42+
private boolean joinHelper(Member member, JDA jda) {
43+
musicManager.getOrCreate(member.getGuild().getIdLong());
44+
3945
final GuildVoiceState memberVoiceState = member.getVoiceState();
4046

4147
if (memberVoiceState.inAudioChannel()) {
4248
jda.getDirectAudioController().connect(memberVoiceState.getChannel());
49+
return true;
4350
}
4451

45-
musicManager.getOrCreate(member.getGuild().getIdLong());
52+
return false;
4653
}
4754
}

src/main/java/org/mangorage/mangobotplugin/commands/music/impl/PauseCommand.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,16 @@ public JDACommandType getCommandType() {
2626

2727
@Override
2828
public JDACommandResult run(CommandContext<Message> commandContext) throws Throwable {
29+
final var context = commandContext.getContextObject();
2930
final var guild = commandContext.getContextObject().getGuild();
3031

3132
final var guildManager = manager.getOrCreate(guild.getIdLong());
3233

3334
guildManager.getPlayer()
3435
.ifPresent(player -> {
35-
player.setPaused(true).subscribe();
36+
player.setPaused(true).subscribe(plr -> {
37+
context.reply("Paused Music!").queue();
38+
});
3639
});
3740

3841
return JDACommandResult.PASS;

src/main/java/org/mangorage/mangobotplugin/commands/music/impl/PlayCommand.java

Lines changed: 51 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package org.mangorage.mangobotplugin.commands.music.impl;
22

3+
import net.dv8tion.jda.api.JDA;
4+
import net.dv8tion.jda.api.entities.GuildVoiceState;
5+
import net.dv8tion.jda.api.entities.Member;
36
import net.dv8tion.jda.api.entities.Message;
47
import org.mangorage.mangobotcore.api.command.v1.CommandContext;
58
import org.mangorage.mangobotcore.api.command.v1.argument.OptionalArg;
@@ -11,6 +14,8 @@
1114
import org.mangorage.mangobotplugin.commands.music.AudioLoader;
1215
import org.mangorage.mangobotplugin.commands.music.IMusicManager;
1316

17+
import java.util.concurrent.TimeUnit;
18+
1419
public final class PlayCommand extends AbstractJDACommand {
1520

1621
private final OptionalArg<String> identifierArg = new OptionalArg<>("identifier", "Identifier", StringArgumentType.single(), null);
@@ -28,25 +33,64 @@ public JDACommandType getCommandType() {
2833

2934
@Override
3035
public JDACommandResult run(CommandContext<Message> commandContext) throws Throwable {
31-
final var guild = commandContext.getContextObject().getGuild();
36+
final var context = commandContext.getContextObject();
37+
final var guild = context.getGuild();
3238
final var identifier = commandContext.getArgumentOrElse(identifierArg);
3339

40+
final var member = context.getMember();
41+
42+
if (!member.getVoiceState().inAudioChannel()) {
43+
context.reply("Must be in a voice chat!").queue();
44+
return JDACommandResult.PASS;
45+
}
46+
3447
final var guildManager = manager.getOrCreate(guild.getIdLong());
3548
final var player = guildManager.getPlayer();
3649

3750
if (identifier == null) {
3851
if (player.isPresent())
3952
player.get()
4053
.setPaused(false)
41-
.subscribe();
54+
.subscribe(plr -> {
55+
context.reply("Unpaused music!").queue();
56+
});
4257
} else {
43-
guildManager
44-
.getLink()
45-
.ifPresent(link -> {
46-
link.loadItem(identifier).subscribe(new AudioLoader(guildManager));
47-
});
58+
joinHelper(member, member.getJDA());
59+
60+
if (guildManager.getPlayer().isPresent()) {
61+
guildManager
62+
.getLink()
63+
.ifPresent(link -> {
64+
context.reply("Playing Track Soon!").queue();
65+
link.loadItem(identifier).subscribe(new AudioLoader(guildManager, context));
66+
});
67+
} else {
68+
69+
context.reply("Playing Track Soon!")
70+
.queueAfter(2, TimeUnit.SECONDS, m -> {
71+
guildManager
72+
.getLink()
73+
.ifPresent(link -> {
74+
link.loadItem(identifier).subscribe(new AudioLoader(guildManager, context));
75+
});
76+
});
77+
}
4878
}
4979

5080
return JDACommandResult.PASS;
5181
}
82+
83+
// Makes sure that the bot is in a voice channel!
84+
private boolean joinHelper(Member member, JDA jda) {
85+
manager.getOrCreate(member.getGuild().getIdLong());
86+
87+
final GuildVoiceState memberVoiceState = member.getVoiceState();
88+
89+
if (memberVoiceState.inAudioChannel()) {
90+
jda.getDirectAudioController().connect(memberVoiceState.getChannel());
91+
return true;
92+
}
93+
94+
return false;
95+
}
5296
}

src/main/java/org/mangorage/mangobotplugin/commands/music/impl/StopCommand.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,16 @@ public StopCommand(IMusicManager manager) {
1717

1818
@Override
1919
public JDACommandResult run(CommandContext<Message> commandContext) throws Throwable {
20+
final var context = commandContext.getContextObject();
2021
final var guild = commandContext.getContextObject().getGuild();
2122

2223
final var guildManager = manager.getOrCreate(guild.getIdLong());
2324
final var player = guildManager.getPlayer();
2425

2526
player.ifPresent(lp -> {
26-
lp.stopTrack().subscribe();
27+
lp.stopTrack().subscribe(plr -> {
28+
context.reply("Stopped Current Music Track!").queue();
29+
});
2730
});
2831

2932
return JDACommandResult.PASS;

0 commit comments

Comments
 (0)