From 43145071f1d1786d134ca1a470dae1f843388eab Mon Sep 17 00:00:00 2001 From: Skydust Date: Tue, 5 Oct 2021 11:04:35 +0200 Subject: [PATCH] =?UTF-8?q?(A=20tester)=20Refonte=20compl=C3=A8te=20du=20s?= =?UTF-8?q?yst=C3=A8me=20de=20jukebox=20et=20de=20menu.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../JdrBot/cmds/playmusic/PlayMusic.java | 18 +++++++++++++----- .../JdrBot/cmds/playmusic/StopMusic.java | 13 +++++++------ .../JdrBot/cmds/record/CancelRecord.java | 3 ++- .../Skydust/JdrBot/cmds/record/StopRecord.java | 3 ++- .../Skydust/JdrBot/jukebox/JukeboxSystem.java | 3 +-- .../java/fr/Skydust/JdrBot/utils/Utils.java | 3 +++ 6 files changed, 28 insertions(+), 15 deletions(-) diff --git a/src/main/java/fr/Skydust/JdrBot/cmds/playmusic/PlayMusic.java b/src/main/java/fr/Skydust/JdrBot/cmds/playmusic/PlayMusic.java index 0933311..5841603 100755 --- a/src/main/java/fr/Skydust/JdrBot/cmds/playmusic/PlayMusic.java +++ b/src/main/java/fr/Skydust/JdrBot/cmds/playmusic/PlayMusic.java @@ -3,6 +3,7 @@ package fr.Skydust.JdrBot.cmds.playmusic; import java.util.HashMap; import java.util.Map; +import com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack; import fr.Skydust.JdrBot.jukebox.JukeboxSystem; import fr.Skydust.JdrBot.stock.Command; import net.dv8tion.jda.api.Permission; @@ -23,7 +24,9 @@ import fr.Skydust.JdrBot.audio.GuildMusicManager; public class PlayMusic extends Command { private static final AudioPlayerManager playerManager = new DefaultAudioPlayerManager(); static Map musicManagers; - + + public static Map jukeboxSystems; + public PlayMusic() { musicManagers = new HashMap<>(); AudioSourceManagers.registerRemoteSources(playerManager); @@ -39,17 +42,22 @@ public class PlayMusic extends Command { return; } - //TODO: MAKE SURE ONLY ONE JUKEBOX PER GUILD - if(JukeboxGUISystem.getGuildsJukebox(e.getGuild()) != null) { + if(getGuildsJukebox(e.getGuild()) != null) { e.getChannel().sendMessage("/!\\ Le lecteur audio est deja present ici ! Pour l'arreter, tapez \"!stopmusic\" !").queue(); return; } - - e.getChannel().sendMessage("Loading...").queue(JukeboxSystem::new); + //TODO: WHILE LOADING, CAN CALL AGAIN + // Creates a message to be edited by the jukebox system + e.getChannel().sendMessage("Loading...").queue(msg -> jukeboxSystems.put(e.getGuild().getIdLong(), new JukeboxSystem(msg))); } + public static JukeboxSystem getGuildsJukebox(Guild guild) { + return jukeboxSystems.get(guild.getIdLong()); + } + public static void loadAndPlay(final TextChannel channel, final String trackUrl, boolean loop, boolean nomsg) { System.out.println(trackUrl); + GuildMusicManager musicManager = getGuildAudioPlayer(channel.getGuild()); playerManager.loadItemOrdered(musicManager, trackUrl, new AudioLoadResultHandler() { @Override diff --git a/src/main/java/fr/Skydust/JdrBot/cmds/playmusic/StopMusic.java b/src/main/java/fr/Skydust/JdrBot/cmds/playmusic/StopMusic.java index 1531674..e3adabc 100755 --- a/src/main/java/fr/Skydust/JdrBot/cmds/playmusic/StopMusic.java +++ b/src/main/java/fr/Skydust/JdrBot/cmds/playmusic/StopMusic.java @@ -1,6 +1,7 @@ package fr.Skydust.JdrBot.cmds.playmusic; import fr.Skydust.JdrBot.cmds.record.Record; +import fr.Skydust.JdrBot.jukebox.JukeboxSystem; import fr.Skydust.JdrBot.stock.Command; import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.Guild; @@ -36,14 +37,14 @@ public class StopMusic extends Command { } public static void stopMusic(Guild g) { - JukeboxGUI gui = JukeboxGUISystem.getGuildsJukebox(g); + JukeboxSystem jukebox = PlayMusic.getGuildsJukebox(g); - if(gui != null) { - g.getTextChannelById(gui.TextChannelID).deleteMessageById(gui.MessageID) - .queue(msg -> { - JukeboxGUISystem.setGuildsJukebox(g, null); - }); + if(jukebox != null) { + jukebox.jukeboxMessage.delete().queue(); } + + PlayMusic.jukeboxSystems.put(g.getIdLong(), null); + PlayMusic.getGuildAudioPlayer(g).scheduler.stop(); if(!Record.getGuildRecordState(g).isRecording) { diff --git a/src/main/java/fr/Skydust/JdrBot/cmds/record/CancelRecord.java b/src/main/java/fr/Skydust/JdrBot/cmds/record/CancelRecord.java index 475a888..ef2f392 100755 --- a/src/main/java/fr/Skydust/JdrBot/cmds/record/CancelRecord.java +++ b/src/main/java/fr/Skydust/JdrBot/cmds/record/CancelRecord.java @@ -1,5 +1,6 @@ package fr.Skydust.JdrBot.cmds.record; +import fr.Skydust.JdrBot.cmds.playmusic.PlayMusic; import fr.Skydust.JdrBot.stock.Command; import fr.Skydust.JdrBot.stock.RecordState; import fr.Skydust.JdrBot.utils.MessageType; @@ -16,7 +17,7 @@ public class CancelRecord extends Command { public void call(GuildMessageReceivedEvent e) { RecordState rs = Record.getGuildRecordState(e.getGuild()); if(rs.isRecording) { - if(JukeboxGUISystem.getGuildsJukebox(e.getGuild()) == null) { + if(PlayMusic.getGuildsJukebox(e.getGuild()) == null) { e.getGuild().getAudioManager().closeAudioConnection(); } rs.cancelRecord(e.getGuild()); diff --git a/src/main/java/fr/Skydust/JdrBot/cmds/record/StopRecord.java b/src/main/java/fr/Skydust/JdrBot/cmds/record/StopRecord.java index beedb7c..7b78418 100755 --- a/src/main/java/fr/Skydust/JdrBot/cmds/record/StopRecord.java +++ b/src/main/java/fr/Skydust/JdrBot/cmds/record/StopRecord.java @@ -1,5 +1,6 @@ package fr.Skydust.JdrBot.cmds.record; +import fr.Skydust.JdrBot.cmds.playmusic.PlayMusic; import fr.Skydust.JdrBot.stock.Command; import fr.Skydust.JdrBot.stock.RecordState; import fr.Skydust.JdrBot.utils.MessageType; @@ -16,7 +17,7 @@ public class StopRecord extends Command { public void call(GuildMessageReceivedEvent e) { RecordState rs = Record.getGuildRecordState(e.getGuild()); if(rs.isRecording) { - if(JukeboxGUISystem.getGuildsJukebox(e.getGuild()) == null) { + if(PlayMusic.getGuildsJukebox(e.getGuild()) == null) { e.getGuild().getAudioManager().closeAudioConnection(); } rs.endRecord(e.getGuild(), e.getChannel()); diff --git a/src/main/java/fr/Skydust/JdrBot/jukebox/JukeboxSystem.java b/src/main/java/fr/Skydust/JdrBot/jukebox/JukeboxSystem.java index f5ed909..ba98cd0 100644 --- a/src/main/java/fr/Skydust/JdrBot/jukebox/JukeboxSystem.java +++ b/src/main/java/fr/Skydust/JdrBot/jukebox/JukeboxSystem.java @@ -6,7 +6,6 @@ import fr.Skydust.JdrBot.menu.Menu; import fr.Skydust.JdrBot.menu.MenuSystem; import fr.Skydust.JdrBot.utils.Utils; import net.dv8tion.jda.api.entities.Message; -import net.dv8tion.jda.api.entities.TextChannel; import java.io.File; import java.util.*; @@ -22,7 +21,7 @@ public class JukeboxSystem { public String songPlayedPath = ""; private final HashMap linkedPath = new HashMap<>(); - private final Message jukeboxMessage; + public final Message jukeboxMessage; private String currentFolder = ""; diff --git a/src/main/java/fr/Skydust/JdrBot/utils/Utils.java b/src/main/java/fr/Skydust/JdrBot/utils/Utils.java index 220310e..32aef6e 100755 --- a/src/main/java/fr/Skydust/JdrBot/utils/Utils.java +++ b/src/main/java/fr/Skydust/JdrBot/utils/Utils.java @@ -18,6 +18,9 @@ public class Utils { public static final String FolderUnicode = "\uD83D\uDCC1"; public static final String ReturnUnicode = "\u21A9"; + public static final String ProgressBarForeground = "\uD83D\uDFE9"; + public static final String ProgressBarBackground = "\u2B1C"; + public static boolean IsInt(String info) { try { Integer.parseInt(info);