From 266bbef903034f60d43e23e4dc8213afff603f17 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 6 Jan 2020 13:21:58 +0000 Subject: [PATCH 01/14] Bump lavaplayer from 1.3.32 to 1.3.33 Bumps lavaplayer from 1.3.32 to 1.3.33. Signed-off-by: dependabot-preview[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 712e13f..baf5300 100644 --- a/pom.xml +++ b/pom.xml @@ -49,7 +49,7 @@ com.sedmelluq lavaplayer - 1.3.32 + 1.3.33 From e51f2c84697af975a8fb1dd9d60fcc2c156521d9 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 6 Jan 2020 13:22:20 +0000 Subject: [PATCH 02/14] Bump JDA from 4.1.0_93 to 4.1.0_95 Bumps JDA from 4.1.0_93 to 4.1.0_95. Signed-off-by: dependabot-preview[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 712e13f..3b0c4f9 100644 --- a/pom.xml +++ b/pom.xml @@ -19,7 +19,7 @@ net.dv8tion JDA - 4.1.0_93 + 4.1.0_95 org.json From b79e1fbf740eeb047b96100191520c027e4f73aa Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Mon, 6 Jan 2020 16:04:56 +0100 Subject: [PATCH 03/14] Codacy --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index a443484..bad7422 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,2 +1,2 @@ -FROM debian:latest +FROM debian:buster WORKDIR /home/Hadder From 305e17568fe7dce72169f4f1676c93fe3454b57f Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Mon, 6 Jan 2020 18:21:49 +0100 Subject: [PATCH 04/14] Introducing loop command --- src/main/java/com/bbn/hadder/Hadder.java | 3 +- .../hadder/commands/music/LoopCommand.java | 36 +++++++++++++++++++ .../Translations/Translations_en.properties | 1 + 3 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/bbn/hadder/commands/music/LoopCommand.java diff --git a/src/main/java/com/bbn/hadder/Hadder.java b/src/main/java/com/bbn/hadder/Hadder.java index f257042..b4a6cbb 100644 --- a/src/main/java/com/bbn/hadder/Hadder.java +++ b/src/main/java/com/bbn/hadder/Hadder.java @@ -102,7 +102,8 @@ public class Hadder { new VolumeCommand(), new StopCommand(), new BlacklistCommand(), - new PauseCommand()), config, helpCommand); + new PauseCommand(), + new LoopCommand()), config, helpCommand); builder.addEventListeners( new MentionListener(rethink), diff --git a/src/main/java/com/bbn/hadder/commands/music/LoopCommand.java b/src/main/java/com/bbn/hadder/commands/music/LoopCommand.java new file mode 100644 index 0000000..014d3b4 --- /dev/null +++ b/src/main/java/com/bbn/hadder/commands/music/LoopCommand.java @@ -0,0 +1,36 @@ +package com.bbn.hadder.commands.music; + +import com.bbn.hadder.commands.Command; +import com.bbn.hadder.commands.CommandEvent; + +/** + * @author Skidder / GregTCLTK + */ + +public class LoopCommand implements Command { + + @Override + public void executed(String[] args, CommandEvent event) { + + } + + @Override + public String[] labels() { + return new String[]{"loop", "repeat"}; + } + + @Override + public String description() { + return "commands.music.loop.help.description"; + } + + @Override + public String usage() { + return null; + } + + @Override + public String example() { + return null; + } +} diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index edd9925..8ae39ff 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -237,6 +237,7 @@ commands.music.pause.error.paused.description = The song is already paused. commands.music.pause.error.connected.title = No channel commands.music.pause.error.connected.description = You have to be in the same voice channel as the bot to pause the song. commands.music.pause.help.description = Pause the playing song. +commands.music.loop.help.description = Repeats a song/queue. commands.nsfw.gif.error.title = GIF not showing? Click here commands.nsfw.img.error.title = Image not showing? Click here From c687cef65da0e299303b4517cec019c31c7bd7e3 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Mon, 6 Jan 2020 18:26:59 +0100 Subject: [PATCH 05/14] Error messages --- .../bbn/hadder/commands/music/LoopCommand.java | 16 +++++++++++++++- .../Translations/Translations_en.properties | 2 ++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/bbn/hadder/commands/music/LoopCommand.java b/src/main/java/com/bbn/hadder/commands/music/LoopCommand.java index 014d3b4..a47b7a3 100644 --- a/src/main/java/com/bbn/hadder/commands/music/LoopCommand.java +++ b/src/main/java/com/bbn/hadder/commands/music/LoopCommand.java @@ -2,6 +2,7 @@ package com.bbn.hadder.commands.music; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.utils.MessageEditor; /** * @author Skidder / GregTCLTK @@ -11,7 +12,20 @@ public class LoopCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { - + if (event.getAudioManager().hasPlayer(event.getGuild()) && event.getAudioManager().getPlayer(event.getGuild()).getPlayingTrack() != null) { + if (event.getMember().getVoiceState().inVoiceChannel() && event.getGuild().getSelfMember().getVoiceState().inVoiceChannel() && event.getGuild().getSelfMember().getVoiceState().getChannel().equals(event.getMember().getVoiceState().getChannel())) { + + } else { + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, + "commands.music.loop.error.connected.title", + "commands.music.loop.error.connected.description") + .build()).queue(); + } + } else { + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, + "commands.music.info.error.title", + "commands.music.info.error.description").build()).queue(); + } } @Override diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index 8ae39ff..a7a3a61 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -237,6 +237,8 @@ commands.music.pause.error.paused.description = The song is already paused. commands.music.pause.error.connected.title = No channel commands.music.pause.error.connected.description = You have to be in the same voice channel as the bot to pause the song. commands.music.pause.help.description = Pause the playing song. +commands.music.loop.error.connected.title = No channel +commands.music.loop.error.connected.description = You have to be in the same voice channel as the bot to set the repeat status. commands.music.loop.help.description = Repeats a song/queue. commands.nsfw.gif.error.title = GIF not showing? Click here From 4198f1e24580a99b870438de626fe24d4a806b5e Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Mon, 6 Jan 2020 18:38:02 +0100 Subject: [PATCH 06/14] Loop function --- .../java/com/bbn/hadder/audio/TrackManager.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/bbn/hadder/audio/TrackManager.java b/src/main/java/com/bbn/hadder/audio/TrackManager.java index b4c1e9a..bb95194 100644 --- a/src/main/java/com/bbn/hadder/audio/TrackManager.java +++ b/src/main/java/com/bbn/hadder/audio/TrackManager.java @@ -19,6 +19,8 @@ public class TrackManager extends AudioEventAdapter { private final AudioPlayer player; private final Queue queue; + private boolean loop = false; + AudioTrack lastTrack; public TrackManager(AudioPlayer player) { this.player = player; @@ -48,7 +50,9 @@ public class TrackManager extends AudioEventAdapter { @Override public void onTrackEnd(AudioPlayer player, AudioTrack track, AudioTrackEndReason endReason) { Guild g = queue.poll().getAuthor().getGuild(); - if (queue.isEmpty()) { + if (loop) { + player.startTrack(lastTrack.makeClone(), false); + } else if (queue.isEmpty()) { g.getAudioManager().closeAudioConnection(); } else { player.playTrack(queue.element().getTrack()); @@ -67,6 +71,16 @@ public class TrackManager extends AudioEventAdapter { queue.remove(entry); } + public boolean isLoop() + { + return loop; + } + + public void setLoop(boolean repeating) + { + this.loop = repeating; + } + public AudioInfo getTrackInfo(AudioTrack track) { return queue.stream().filter(audioInfo -> audioInfo.getTrack().equals(track)).findFirst().orElse(null); } From fb0ef99d8384c9d26da56789caf5ef1c559f88e2 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Mon, 6 Jan 2020 18:40:03 +0100 Subject: [PATCH 07/14] Integrate the loop function --- .../java/com/bbn/hadder/commands/music/LoopCommand.java | 8 +++++++- .../resources/Translations/Translations_en.properties | 4 ++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/bbn/hadder/commands/music/LoopCommand.java b/src/main/java/com/bbn/hadder/commands/music/LoopCommand.java index a47b7a3..86ae1f1 100644 --- a/src/main/java/com/bbn/hadder/commands/music/LoopCommand.java +++ b/src/main/java/com/bbn/hadder/commands/music/LoopCommand.java @@ -14,7 +14,13 @@ public class LoopCommand implements Command { public void executed(String[] args, CommandEvent event) { if (event.getAudioManager().hasPlayer(event.getGuild()) && event.getAudioManager().getPlayer(event.getGuild()).getPlayingTrack() != null) { if (event.getMember().getVoiceState().inVoiceChannel() && event.getGuild().getSelfMember().getVoiceState().inVoiceChannel() && event.getGuild().getSelfMember().getVoiceState().getChannel().equals(event.getMember().getVoiceState().getChannel())) { - + if (event.getAudioManager().getTrackManager(event.getGuild()).isLoop()) { + event.getAudioManager().getTrackManager(event.getGuild()).setLoop(false); + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, "commands.music.loop.success.loop.title", "commands.music.loop.success.loop.description").build()).queue(); + } else { + event.getAudioManager().getTrackManager(event.getGuild()).setLoop(true); + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, "commands.music.loop.success.unloop.title", "commands.music.loop.success.unloop.description").build()).queue(); + } } else { event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, "commands.music.loop.error.connected.title", diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index a7a3a61..6e2760e 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -237,6 +237,10 @@ commands.music.pause.error.paused.description = The song is already paused. commands.music.pause.error.connected.title = No channel commands.music.pause.error.connected.description = You have to be in the same voice channel as the bot to pause the song. commands.music.pause.help.description = Pause the playing song. +commands.music.loop.success.loop.title = Successfully activated +commands.music.loop.success.loop.description = I will now repeat the currently played song. +commands.music.loop.success.unloop.title = Successfully deactivated +commands.music.loop.success.unloop.description = I will no longer repeat the currently played song. commands.music.loop.error.connected.title = No channel commands.music.loop.error.connected.description = You have to be in the same voice channel as the bot to set the repeat status. commands.music.loop.help.description = Repeats a song/queue. From 93d5acda5d7de2c8c36f8dc02fbdbb6f55c2eac7 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Mon, 6 Jan 2020 18:43:20 +0100 Subject: [PATCH 08/14] Switch --- src/main/java/com/bbn/hadder/commands/music/LoopCommand.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/bbn/hadder/commands/music/LoopCommand.java b/src/main/java/com/bbn/hadder/commands/music/LoopCommand.java index 86ae1f1..5003134 100644 --- a/src/main/java/com/bbn/hadder/commands/music/LoopCommand.java +++ b/src/main/java/com/bbn/hadder/commands/music/LoopCommand.java @@ -16,10 +16,10 @@ public class LoopCommand implements Command { if (event.getMember().getVoiceState().inVoiceChannel() && event.getGuild().getSelfMember().getVoiceState().inVoiceChannel() && event.getGuild().getSelfMember().getVoiceState().getChannel().equals(event.getMember().getVoiceState().getChannel())) { if (event.getAudioManager().getTrackManager(event.getGuild()).isLoop()) { event.getAudioManager().getTrackManager(event.getGuild()).setLoop(false); - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, "commands.music.loop.success.loop.title", "commands.music.loop.success.loop.description").build()).queue(); + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, "commands.music.loop.success.unloop.title", "commands.music.loop.success.unloop.description").build()).queue(); } else { event.getAudioManager().getTrackManager(event.getGuild()).setLoop(true); - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, "commands.music.loop.success.unloop.title", "commands.music.loop.success.unloop.description").build()).queue(); + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, "commands.music.loop.success.loop.title", "commands.music.loop.success.loop.description").build()).queue(); } } else { event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, From 8b855b267663fb713df81479094ade9cb9f5ea20 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Mon, 6 Jan 2020 21:11:01 +0100 Subject: [PATCH 09/14] Some stuff --- src/main/java/com/bbn/hadder/audio/TrackManager.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/bbn/hadder/audio/TrackManager.java b/src/main/java/com/bbn/hadder/audio/TrackManager.java index bb95194..2c76914 100644 --- a/src/main/java/com/bbn/hadder/audio/TrackManager.java +++ b/src/main/java/com/bbn/hadder/audio/TrackManager.java @@ -49,9 +49,10 @@ public class TrackManager extends AudioEventAdapter { @Override public void onTrackEnd(AudioPlayer player, AudioTrack track, AudioTrackEndReason endReason) { + this.lastTrack = track; Guild g = queue.poll().getAuthor().getGuild(); if (loop) { - player.startTrack(lastTrack.makeClone(), false); + player.playTrack(lastTrack.makeClone()); } else if (queue.isEmpty()) { g.getAudioManager().closeAudioConnection(); } else { From c82daf0fba92b09a5cc0713e7211f127cd17141f Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Tue, 7 Jan 2020 16:41:13 +0100 Subject: [PATCH 10/14] /voice --- src/main/java/com/bbn/hadder/audio/TrackManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/bbn/hadder/audio/TrackManager.java b/src/main/java/com/bbn/hadder/audio/TrackManager.java index 2c76914..d24ea3e 100644 --- a/src/main/java/com/bbn/hadder/audio/TrackManager.java +++ b/src/main/java/com/bbn/hadder/audio/TrackManager.java @@ -52,7 +52,7 @@ public class TrackManager extends AudioEventAdapter { this.lastTrack = track; Guild g = queue.poll().getAuthor().getGuild(); if (loop) { - player.playTrack(lastTrack.makeClone()); + player.playTrack(this.lastTrack.makeClone()); } else if (queue.isEmpty()) { g.getAudioManager().closeAudioConnection(); } else { From c559c9cb569fb6e12d33a9ec6cffea5ec1847103 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Thu, 9 Jan 2020 16:55:05 +0100 Subject: [PATCH 11/14] Best commit ;) --- pom.xml | 10 +++++----- src/main/java/com/bbn/hadder/Rethink.java | 5 ++++- src/main/java/com/bbn/hadder/audio/TrackManager.java | 1 + 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/pom.xml b/pom.xml index 1dfff84..23010ad 100644 --- a/pom.xml +++ b/pom.xml @@ -26,11 +26,11 @@ json 20190722 - - com.rethinkdb - rethinkdb-driver - 2.3.3 - + + com.rethinkdb + rethinkdb-driver + 2.3.3 + org.slf4j slf4j-simple diff --git a/src/main/java/com/bbn/hadder/Rethink.java b/src/main/java/com/bbn/hadder/Rethink.java index 6ef9d10..53b7116 100644 --- a/src/main/java/com/bbn/hadder/Rethink.java +++ b/src/main/java/com/bbn/hadder/Rethink.java @@ -133,7 +133,10 @@ public class Rethink { } public void insertUser(String id) { - this.insert("user", r.hashMap("id", id).with("prefix", "h.").with("language", "en").with("blacklisted", "none")); + this.insert("user", r.hashMap("id", id) + .with("prefix", "h.") + .with("language", "en") + .with("blacklisted", "none")); } public void setBlackListed(String id, String commands) { diff --git a/src/main/java/com/bbn/hadder/audio/TrackManager.java b/src/main/java/com/bbn/hadder/audio/TrackManager.java index d24ea3e..ed3e93b 100644 --- a/src/main/java/com/bbn/hadder/audio/TrackManager.java +++ b/src/main/java/com/bbn/hadder/audio/TrackManager.java @@ -52,6 +52,7 @@ public class TrackManager extends AudioEventAdapter { this.lastTrack = track; Guild g = queue.poll().getAuthor().getGuild(); if (loop) { + player.playTrack(this.lastTrack.makeClone()); } else if (queue.isEmpty()) { g.getAudioManager().closeAudioConnection(); From 78e67fea3132b9a363b73abcbc1635cc71a111d2 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Thu, 9 Jan 2020 16:58:38 +0100 Subject: [PATCH 12/14] New Rethink functions --- src/main/java/com/bbn/hadder/Rethink.java | 28 +++++++++++++++++------ 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/bbn/hadder/Rethink.java b/src/main/java/com/bbn/hadder/Rethink.java index 53b7116..5ff7c94 100644 --- a/src/main/java/com/bbn/hadder/Rethink.java +++ b/src/main/java/com/bbn/hadder/Rethink.java @@ -70,6 +70,22 @@ public class Rethink { } } + public void update(String table, String value, String what, int whatvalue) { + try { + r.table(table).get(value).update(r.hashMap(what, whatvalue)).run(conn); + } catch (ClassCastException e) { + e.printStackTrace(); + } + } + + public void update(String table, String value, String what, boolean whatvalue) { + try { + r.table(table).get(value).update(r.hashMap(what, whatvalue)).run(conn); + } catch (ClassCastException e) { + e.printStackTrace(); + } + } + public void insert(String table, Object object) { try { r.table(table).insert(object).run(conn); @@ -122,7 +138,8 @@ public class Rethink { } public void insertGuild(String id) { - this.insert("server", r.hashMap("id", id) + this.insert("server", r + .hashMap("id", id) .with("prefix", "h.") .with("message_id", "") .with("role_id", "") @@ -133,7 +150,8 @@ public class Rethink { } public void insertUser(String id) { - this.insert("user", r.hashMap("id", id) + this.insert("user", r + .hashMap("id", id) .with("prefix", "h.") .with("language", "en") .with("blacklisted", "none")); @@ -207,11 +225,7 @@ public class Rethink { } public void setInviteDetection(String guild_id, boolean b) { - try { - r.table("server").get(guild_id).update(r.hashMap("invite_detect", b)).run(conn); - } catch (ClassCastException e) { - e.printStackTrace(); - } + this.update("server", guild_id, "invite_detect", b); } public Boolean getInviteDetection(String guild_id) { From 29c491fae9a5022a3d27f68ee0aec2cdd268f3c8 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 10 Jan 2020 13:42:45 +0000 Subject: [PATCH 13/14] Bump discord-webhooks from 0.1.8 to 0.2.0 Bumps discord-webhooks from 0.1.8 to 0.2.0. Signed-off-by: dependabot-preview[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 23010ad..6926c73 100644 --- a/pom.xml +++ b/pom.xml @@ -39,7 +39,7 @@ club.minnced discord-webhooks - 0.1.8 + 0.2.0 org.kohsuke From 3de4153c873c33e06c011520ea435ff1b5658d21 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Fri, 10 Jan 2020 19:26:03 +0100 Subject: [PATCH 14/14] Loop command fix --- src/main/java/com/bbn/hadder/audio/TrackManager.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/bbn/hadder/audio/TrackManager.java b/src/main/java/com/bbn/hadder/audio/TrackManager.java index ed3e93b..489c12f 100644 --- a/src/main/java/com/bbn/hadder/audio/TrackManager.java +++ b/src/main/java/com/bbn/hadder/audio/TrackManager.java @@ -20,7 +20,6 @@ public class TrackManager extends AudioEventAdapter { private final AudioPlayer player; private final Queue queue; private boolean loop = false; - AudioTrack lastTrack; public TrackManager(AudioPlayer player) { this.player = player; @@ -49,11 +48,9 @@ public class TrackManager extends AudioEventAdapter { @Override public void onTrackEnd(AudioPlayer player, AudioTrack track, AudioTrackEndReason endReason) { - this.lastTrack = track; - Guild g = queue.poll().getAuthor().getGuild(); + Guild g = queue.element().getAuthor().getGuild(); if (loop) { - - player.playTrack(this.lastTrack.makeClone()); + player.playTrack(track.makeClone()); } else if (queue.isEmpty()) { g.getAudioManager().closeAudioConnection(); } else {