1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
package commands;
import audio.GuildMusicManager;
import com.sedmelluq.discord.lavaplayer.track.AudioTrack;
import net.dv8tion.jda.api.entities.Emoji;
import net.dv8tion.jda.api.entities.TextChannel;
import net.dv8tion.jda.api.events.interaction.SlashCommandEvent;
import net.dv8tion.jda.api.interactions.components.Button;
import net.dv8tion.jda.api.interactions.components.selections.SelectOption;
import net.dv8tion.jda.api.interactions.components.selections.SelectionMenu;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List;
import java.util.Queue;
public class UIPusher {
public void showControls(SlashCommandEvent event){
event.reply("Controls for the player:")
.addActionRow(
Button.primary("action-volumedown", Emoji.fromUnicode("U+1F509")),
Button.primary("action-skip", Emoji.fromUnicode("U+23E9")),
Button.primary("action-pause", Emoji.fromUnicode("U+23EF")),
Button.primary("action-stop", Emoji.fromUnicode("U+23F9")),
Button.primary("action-volumeup", Emoji.fromUnicode("U+1F50A"))
)
.queue();
}
public void showQueueMenu(SlashCommandEvent event, String param, String instruction,GuildMusicManager musicManager){
Queue<AudioTrack> queue = musicManager.scheduler.queue;
List<SelectOption> trackMenuOptions = new ArrayList<SelectOption>();
synchronized (queue)
{
if (queue.isEmpty())
{
event.reply("The queue is currently empty!").queue();
}
else
{
int trackCount = 0;
for (AudioTrack track : queue)
{
if (trackCount != 25)
{
SelectOption option = SelectOption.of(track.getInfo().title,param+" "+track.getInfo().title);
trackMenuOptions.add(option);
trackCount++;
}
}
SelectionMenu menu = SelectionMenu.create("menu:class")
.setPlaceholder("-Select a track-") // shows the placeholder indicating what this menu is for
.setRequiredRange(1,1)// only one can be selected
.addOptions(trackMenuOptions)
.build();
event.reply(instruction)
.setEphemeral(true)
.addActionRow(menu)
.queue();
}
}
}
}
|