From c016d1246de5ad89f11911522fc7ecdab240aa6b Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Sun, 24 Nov 2019 15:19:44 +0100 Subject: [PATCH 1/6] Very nice fix --- .../commands/moderation/RulesCommand.java | 242 +++++++++--------- 1 file changed, 128 insertions(+), 114 deletions(-) diff --git a/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java index 55b8fb9..03fe8e6 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java @@ -22,136 +22,150 @@ public class RulesCommand implements Command { if (event.getGuild().getSelfMember().hasPermission(Permission.MANAGE_ROLES)) { event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() .setTitle("Set up rules") - .setDescription("Please specify the channel on which I should send the rules. Your message should look like: #rules.")) + .setDescription("Welcome to the Hadder rules setup. Please mention the channel in which I should send the rules. Your message should look like: #rules or #verify.")) .build()).queue(); new EventWaiter().newOnMessageEventWaiter(event1 -> { if (event1.getMessage().getMentionedChannels().size() == 1) { - TextChannel channel = event1.getMessage().getMentionedChannels().get(0); - if (channel.getGuild().getId().equals(event1.getGuild().getId())) { - if (event.getGuild().getSelfMember().hasPermission(channel, Permission.MESSAGE_WRITE)) { - event1.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() - .setTitle("Rules") - .setDescription("The channel was successfully set to " + channel.getName() + ". Please send me the rules now.")) - .build()).queue(); - new EventWaiter().newOnMessageEventWaiter(event2 -> { - String message = event2.getMessage().getContentDisplay(); - event2.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() - .setTitle("Role to assign")) - .setDescription("The rules were successfully set. Please send me the name of the role which the user receives after he accepted the rules.") + try { + TextChannel channel = event1.getMessage().getMentionedChannels().get(0); + if (channel.getGuild().getId().equals(event1.getGuild().getId())) { + if (event.getGuild().getSelfMember().hasPermission(channel, Permission.MESSAGE_WRITE)) { + event1.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() + .setTitle("Rules") + .setDescription("The channel was successfully set to " + channel.getName() + ". Please send me the rules now.")) .build()).queue(); - new EventWaiter().newOnMessageEventWaiter(event3 -> { - if (event.getMessage().getMentionedRoles().size() == 1) { - Role role = event.getMessage().getMentionedRoles().get(0); - if (event3.getGuild().getSelfMember().canInteract(role)) { - event3.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() - .setTitle("The role has been successfully set to " + role.getName() + ".")) - .build()).queue(); - Message rules = channel.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() - .setTitle("Rules")) - .setDescription(message) - .build()).complete(); - rules.addReaction("✅").queue(); - rules.addReaction("❌").queue(); - event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), role.getId()); + new EventWaiter().newOnMessageEventWaiter(event2 -> { + String message = event2.getMessage().getContentDisplay(); + event2.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() + .setTitle("Role to assign")) + .setDescription("The rules were successfully set. Please send me the name of the role which the user receives after he accepted the rules.") + .build()).queue(); + new EventWaiter().newOnMessageEventWaiter(event3 -> { + if (event.getMessage().getMentionedRoles().size() == 1) { + Role role = event.getMessage().getMentionedRoles().get(0); + if (event3.getGuild().getSelfMember().canInteract(role)) { + event3.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() + .setTitle("The role has been successfully set to " + role.getName() + ".")) + .build()).queue(); + Message rules = channel.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() + .setTitle("Rules")) + .setDescription(message) + .build()).complete(); + rules.addReaction("✅").queue(); + rules.addReaction("❌").queue(); + event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), role.getId()); + } else { + EmbedBuilder builder = new EmbedBuilder(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue(); + } } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue(); + Role role = event3.getGuild().getRolesByName(event3.getMessage().getContentStripped(), true).get(0); + if (event3.getGuild().getSelfMember().canInteract(role)) { + event3.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() + .setTitle("The role has been successfully set to " + role.getName() + ".")) + .build()).queue(); + Message rules = channel.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() + .setTitle("Rules")) + .setDescription(message) + .build()).complete(); + rules.addReaction("✅").queue(); + rules.addReaction("❌").queue(); + event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), role.getId()); + } else { + EmbedBuilder builder = new EmbedBuilder(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue(); + } } - } else { - Role role = event3.getGuild().getRolesByName(event3.getMessage().getContentRaw().replace("h.rules ", ""), true).get(0); - if (event3.getGuild().getSelfMember().canInteract(role)) { - event3.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() - .setTitle("The role has been successfully set to " + role.getName() + ".")) - .build()).queue(); - Message rules = channel.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() - .setTitle("Rules")) - .setDescription(message) - .build()).complete(); - rules.addReaction("✅").queue(); - rules.addReaction("❌").queue(); - event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), role.getId()); - } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue(); - } - } + }, event.getJDA(), event.getAuthor()); }, event.getJDA(), event.getAuthor()); - }, event.getJDA(), event.getAuthor()); - } else { - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, new EmbedBuilder() - .setTitle("Wrong Guild") - .setDescription("The mentioned channel must be on this guid!")) - .build()).queue(); - } - } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION, builder) - .build()).queue(); - } - } else { - TextChannel channel = event1.getGuild().getTextChannelsByName(event1.getMessage().getContentRaw(), true).get(0); - if (channel.getGuild().getId().equals(event1.getGuild().getId())) { - if (event.getGuild().getSelfMember().hasPermission(channel, Permission.MESSAGE_WRITE)) { - event1.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() - .setTitle("Rules") - .setDescription("The channel was successfully set to " + channel.getName() + ". Please send me the rules now.")) - .build()).queue(); - new EventWaiter().newOnMessageEventWaiter(event2 -> { - String message = event2.getMessage().getContentDisplay(); - event2.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() - .setTitle("Role to assign")) - .setDescription("The rules were successfully set. Please send me the name of the role which the user receives after he accepted the rules.") + } else { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, new EmbedBuilder() + .setTitle("Wrong Guild") + .setDescription("The mentioned channel must be on this guid!")) .build()).queue(); - new EventWaiter().newOnMessageEventWaiter(event3 -> { - if (event.getMessage().getMentionedRoles().size() == 1) { - Role role = event.getMessage().getMentionedRoles().get(0); - if (event3.getGuild().getSelfMember().canInteract(role)) { - event3.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() - .setTitle("The role has been successfully set to " + role.getName() + ".")) - .build()).queue(); - Message rules = channel.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() - .setTitle("Rules")) - .setDescription(message) - .build()).complete(); - rules.addReaction("✅").queue(); - rules.addReaction("❌").queue(); - event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), role.getId()); - } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue(); - } - } else { - Role role = event3.getGuild().getRolesByName(event3.getMessage().getContentRaw(), true).get(0); - if (event3.getGuild().getSelfMember().canInteract(role)) { - event3.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() - .setTitle("The role has been successfully set to " + role.getName() + ".")) - .build()).queue(); - Message rules = channel.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() - .setTitle("Rules")) - .setDescription(message) - .build()).complete(); - rules.addReaction("✅").queue(); - rules.addReaction("❌").queue(); - event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), role.getId()); - } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue(); - } - } - }, event.getJDA(), event.getAuthor()); - }, event.getJDA(), event.getAuthor()); + } } else { EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION, builder) .build()).queue(); } + } catch (Exception e) { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR, new EmbedBuilder() + .setTitle("Channel not found") + .setDescription("I can't find the specified channel. Please start the setup again.")) + .build()).queue(); + } + } else { + try { + TextChannel channel = event1.getGuild().getTextChannelsByName(event1.getMessage().getContentRaw(), true).get(0); + if (channel.getGuild().getId().equals(event1.getGuild().getId())) { + if (event.getGuild().getSelfMember().hasPermission(channel, Permission.MESSAGE_WRITE)) { + event1.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() + .setTitle("Rules") + .setDescription("The channel was successfully set to " + channel.getName() + ". Please send me the rules now.")) + .build()).queue(); + new EventWaiter().newOnMessageEventWaiter(event2 -> { + String message = event2.getMessage().getContentDisplay(); + event2.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() + .setTitle("Role to assign")) + .setDescription("The rules were successfully set. Please send me the name of the role which the user receives after he accepted the rules.") + .build()).queue(); + new EventWaiter().newOnMessageEventWaiter(event3 -> { + if (event.getMessage().getMentionedRoles().size() == 1) { + Role role = event.getMessage().getMentionedRoles().get(0); + if (event3.getGuild().getSelfMember().canInteract(role)) { + event3.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() + .setTitle("The role has been successfully set to " + role.getName() + ".")) + .build()).queue(); + Message rules = channel.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() + .setTitle("Rules")) + .setDescription(message) + .build()).complete(); + rules.addReaction("✅").queue(); + rules.addReaction("❌").queue(); + event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), role.getId()); + } else { + EmbedBuilder builder = new EmbedBuilder(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue(); + } + } else { + Role role = event3.getGuild().getRolesByName(event3.getMessage().getContentStripped(), true).get(0); + if (event3.getGuild().getSelfMember().canInteract(role)) { + event3.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() + .setTitle("The role has been successfully set to " + role.getName() + ".")) + .build()).queue(); + Message rules = channel.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() + .setTitle("Rules")) + .setDescription(message) + .build()).complete(); + rules.addReaction("✅").queue(); + rules.addReaction("❌").queue(); + event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), role.getId()); + } else { + EmbedBuilder builder = new EmbedBuilder(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue(); + } + } + }, event.getJDA(), event.getAuthor()); + }, event.getJDA(), event.getAuthor()); + } else { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, new EmbedBuilder() + .setTitle("Wrong Guild") + .setDescription("The mentioned channel must be on this guid!")) + .build()).queue(); + } } else { - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, new EmbedBuilder() - .setTitle("Wrong Guild") - .setDescription("The mentioned channel must be on this guid!")) + EmbedBuilder builder = new EmbedBuilder(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION, builder) .build()).queue(); } + } catch (Exception e) { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR, new EmbedBuilder() + .setTitle("Channel not found") + .setDescription("I can't find the specified channel. Please start the setup again.")) + .build()).queue(); } + } }, event.getJDA(), event.getAuthor()); } else { EmbedBuilder builder = new EmbedBuilder(); @@ -165,7 +179,7 @@ public class RulesCommand implements Command { @Override public String[] labels() { - return new String[]{"rules", "rule"}; + return new String[]{"rules", "rule", "setup"}; } @Override From 9bc4d897a50c286bb349220187748faae2efffc8 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Sun, 24 Nov 2019 17:17:07 +0100 Subject: [PATCH 2/6] Music Bot :smirk: --- pom.xml | 5 ++ src/main/java/com/bbn/hadder/Hadder.java | 6 +- .../hadder/commands/music/JoinCommand.java | 56 +++++++++++++++++++ .../hadder/utils/AudioPlayerSendHandler.java | 25 +++++++++ 4 files changed, 91 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/bbn/hadder/commands/music/JoinCommand.java create mode 100644 src/main/java/com/bbn/hadder/utils/AudioPlayerSendHandler.java diff --git a/pom.xml b/pom.xml index fcd89b3..bad6b3a 100644 --- a/pom.xml +++ b/pom.xml @@ -62,6 +62,11 @@ github-api 1.99 + + com.sedmelluq + lavaplayer + 1.3.27 + diff --git a/src/main/java/com/bbn/hadder/Hadder.java b/src/main/java/com/bbn/hadder/Hadder.java index afcf18d..36346e4 100644 --- a/src/main/java/com/bbn/hadder/Hadder.java +++ b/src/main/java/com/bbn/hadder/Hadder.java @@ -7,9 +7,11 @@ import com.bbn.hadder.commands.nsfw.*; import com.bbn.hadder.commands.owner.*; import com.bbn.hadder.commands.fun.*; import com.bbn.hadder.commands.settings.*; +import com.bbn.hadder.commands.music.*; import com.bbn.hadder.core.*; import com.bbn.hadder.listener.*; import net.dv8tion.jda.api.entities.Activity; +import net.dv8tion.jda.api.managers.AudioManager; import net.dv8tion.jda.api.sharding.DefaultShardManagerBuilder; import net.dv8tion.jda.api.sharding.ShardManager; @@ -18,7 +20,8 @@ import java.util.List; public class Hadder { - public static ShardManager shardManager; + public static ShardManager shardManager; + public static AudioManager audioManager; public static void main(String[] args) { startBot(); @@ -72,6 +75,7 @@ public class Hadder { new FeedbackCommand(), new AvatarCommand(), new EvalCommand(), + new JoinCommand(), new LinkCommand()), config, helpCommand); builder.addEventListeners( diff --git a/src/main/java/com/bbn/hadder/commands/music/JoinCommand.java b/src/main/java/com/bbn/hadder/commands/music/JoinCommand.java new file mode 100644 index 0000000..249ec60 --- /dev/null +++ b/src/main/java/com/bbn/hadder/commands/music/JoinCommand.java @@ -0,0 +1,56 @@ +package com.bbn.hadder.commands.music; + +/* + * @author Skidder / GregTCLTK + */ + +import com.bbn.hadder.commands.Command; +import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.utils.AudioPlayerSendHandler; +import com.bbn.hadder.utils.MessageEditor; +import net.dv8tion.jda.api.EmbedBuilder; +import net.dv8tion.jda.api.entities.VoiceChannel; +import net.dv8tion.jda.api.managers.AudioManager; + + +public class JoinCommand implements Command { + + @Override + public void executed(String[] args, CommandEvent event) { + if (event.getMember().getVoiceState().inVoiceChannel()) { + AudioManager audioManager = event.getGuild().getAudioManager(); + if(!audioManager.isAttemptingToConnect()) { + VoiceChannel vc = event.getMember().getVoiceState().getChannel(); + audioManager.setSendingHandler(new AudioPlayerSendHandler()); + audioManager.openAudioConnection(vc); + } else { + EmbedBuilder builder = new EmbedBuilder(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder) + .setTitle("Already trying to connect") + .setDescription("Hadder is already trying to connect. Please wait a moment.") + .build()).queue(); + } + } else { + EmbedBuilder builder = new EmbedBuilder(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder) + .setTitle("No Voice Channel") + .setDescription("You aren't in a Voice Channel.") + .build()).queue(); + } + } + + @Override + public String[] labels() { + return new String[]{"join"}; + } + + @Override + public String description() { + return "Joins your voice channel"; + } + + @Override + public String usage() { + return ""; + } +} diff --git a/src/main/java/com/bbn/hadder/utils/AudioPlayerSendHandler.java b/src/main/java/com/bbn/hadder/utils/AudioPlayerSendHandler.java new file mode 100644 index 0000000..ff3f483 --- /dev/null +++ b/src/main/java/com/bbn/hadder/utils/AudioPlayerSendHandler.java @@ -0,0 +1,25 @@ +package com.bbn.hadder.utils; + +/* + * @author Skidder / GregTCLTK + */ + +import net.dv8tion.jda.api.audio.AudioSendHandler; + +import javax.annotation.Nullable; +import java.nio.ByteBuffer; + +public class AudioPlayerSendHandler implements AudioSendHandler { + + @Override + public boolean canProvide() { + return false; + } + + @Nullable + @Override + public ByteBuffer provide20MsAudio() { + + return null; + } +} From a53c04905969589f7637f42b91e43738d485a55f Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Sun, 24 Nov 2019 18:27:59 +0100 Subject: [PATCH 3/6] Leave and GuildLeave --- src/main/java/com/bbn/hadder/Hadder.java | 5 +- .../hadder/commands/music/JoinCommand.java | 14 ++++-- .../hadder/commands/music/LeaveCommand.java | 46 ++++++++++++++++++ .../commands/owner/GuildLeaveCommand.java | 48 +++++++++++++++++++ 4 files changed, 107 insertions(+), 6 deletions(-) create mode 100644 src/main/java/com/bbn/hadder/commands/music/LeaveCommand.java create mode 100644 src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java diff --git a/src/main/java/com/bbn/hadder/Hadder.java b/src/main/java/com/bbn/hadder/Hadder.java index 36346e4..dc6640b 100644 --- a/src/main/java/com/bbn/hadder/Hadder.java +++ b/src/main/java/com/bbn/hadder/Hadder.java @@ -11,7 +11,6 @@ import com.bbn.hadder.commands.music.*; import com.bbn.hadder.core.*; import com.bbn.hadder.listener.*; import net.dv8tion.jda.api.entities.Activity; -import net.dv8tion.jda.api.managers.AudioManager; import net.dv8tion.jda.api.sharding.DefaultShardManagerBuilder; import net.dv8tion.jda.api.sharding.ShardManager; @@ -21,7 +20,6 @@ import java.util.List; public class Hadder { public static ShardManager shardManager; - public static AudioManager audioManager; public static void main(String[] args) { startBot(); @@ -76,6 +74,8 @@ public class Hadder { new AvatarCommand(), new EvalCommand(), new JoinCommand(), + new LeaveCommand(), + new GuildLeaveCommand(), new LinkCommand()), config, helpCommand); builder.addEventListeners( @@ -87,7 +87,6 @@ public class Hadder { new LinkListener(rethink), new RulesListener(rethink)); - try { shardManager = builder.build(); } catch (LoginException e) { diff --git a/src/main/java/com/bbn/hadder/commands/music/JoinCommand.java b/src/main/java/com/bbn/hadder/commands/music/JoinCommand.java index 249ec60..a380c7a 100644 --- a/src/main/java/com/bbn/hadder/commands/music/JoinCommand.java +++ b/src/main/java/com/bbn/hadder/commands/music/JoinCommand.java @@ -6,9 +6,9 @@ package com.bbn.hadder.commands.music; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; -import com.bbn.hadder.utils.AudioPlayerSendHandler; import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.EmbedBuilder; +import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.VoiceChannel; import net.dv8tion.jda.api.managers.AudioManager; @@ -21,8 +21,16 @@ public class JoinCommand implements Command { AudioManager audioManager = event.getGuild().getAudioManager(); if(!audioManager.isAttemptingToConnect()) { VoiceChannel vc = event.getMember().getVoiceState().getChannel(); - audioManager.setSendingHandler(new AudioPlayerSendHandler()); - audioManager.openAudioConnection(vc); + if (vc.getMemberPermissionOverrides().contains(Permission.VOICE_CONNECT)) { + event.getGuild().getAudioManager().openAudioConnection(vc); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() + .setTitle("Successfully connected")) + .setDescription("I successfully connected to " + vc.getName() + ".") + .build()).queue(); + } else { + EmbedBuilder builder = new EmbedBuilder(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue(); + } } else { EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder) diff --git a/src/main/java/com/bbn/hadder/commands/music/LeaveCommand.java b/src/main/java/com/bbn/hadder/commands/music/LeaveCommand.java new file mode 100644 index 0000000..844344c --- /dev/null +++ b/src/main/java/com/bbn/hadder/commands/music/LeaveCommand.java @@ -0,0 +1,46 @@ +package com.bbn.hadder.commands.music; + +/* + * @author Skidder / GregTCLTK + */ + +import com.bbn.hadder.commands.Command; +import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.utils.MessageEditor; +import net.dv8tion.jda.api.EmbedBuilder; + + +public class LeaveCommand implements Command { + + @Override + public void executed(String[] args, CommandEvent event) { + if (event.getGuild().getSelfMember().getVoiceState().inVoiceChannel()) { + event.getGuild().getAudioManager().closeAudioConnection(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() + .setTitle("Successfully disconnected") + .setDescription("I successfully disconnected from the Voice Channel")) + .build()).queue(); + } else { + EmbedBuilder builder = new EmbedBuilder(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder) + .setTitle("Not connected") + .setDescription("I'm currently in no Voice Channel on this Guild") + .build()).queue(); + } + } + + @Override + public String[] labels() { + return new String[]{"leave"}; + } + + @Override + public String description() { + return "Leaves a voice channel"; + } + + @Override + public String usage() { + return ""; + } +} diff --git a/src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java b/src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java new file mode 100644 index 0000000..5d7d652 --- /dev/null +++ b/src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java @@ -0,0 +1,48 @@ +package com.bbn.hadder.commands.owner; + +/* + * @author Skidder / GregTCLTK + */ + +import com.bbn.hadder.commands.Command; +import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.utils.MessageEditor; +import net.dv8tion.jda.api.EmbedBuilder; +import net.dv8tion.jda.api.entities.Guild; + +public class GuildLeaveCommand implements Command { + + @Override + public void executed(String[] args, CommandEvent event) { + if (event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { + if (args.length > 0) { + Guild guild = event.getJDA().getGuildById(args[0]); + guild.leave().queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() + .setTitle("Successfully left") + .setDescription("I successfully left " + guild.getName())) + .build()).queue(); + } else { + event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); + } + } else { + EmbedBuilder builder = new EmbedBuilder(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION, builder).build()).queue(); + } + } + + @Override + public String[] labels() { + return new String[]{"guildleave"}; + } + + @Override + public String description() { + return "Quit from a guild"; + } + + @Override + public String usage() { + return ""; + } +} From 922bc357a417af78f44fdbd81ec4b8385b216ffa Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Sun, 24 Nov 2019 19:50:26 +0100 Subject: [PATCH 4/6] Again a fix for the Rules Command --- .../commands/moderation/RulesCommand.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java index 03fe8e6..5c7e224 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java @@ -79,14 +79,14 @@ public class RulesCommand implements Command { }, event.getJDA(), event.getAuthor()); }, event.getJDA(), event.getAuthor()); } else { - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, new EmbedBuilder() - .setTitle("Wrong Guild") - .setDescription("The mentioned channel must be on this guid!")) + EmbedBuilder builder = new EmbedBuilder(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION, builder) .build()).queue(); } } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION, builder) + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, new EmbedBuilder() + .setTitle("Wrong Guild") + .setDescription("The mentioned channel must be on this guid!")) .build()).queue(); } } catch (Exception e) { @@ -149,14 +149,14 @@ public class RulesCommand implements Command { }, event.getJDA(), event.getAuthor()); }, event.getJDA(), event.getAuthor()); } else { - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, new EmbedBuilder() - .setTitle("Wrong Guild") - .setDescription("The mentioned channel must be on this guid!")) + EmbedBuilder builder = new EmbedBuilder(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION, builder) .build()).queue(); } } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION, builder) + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, new EmbedBuilder() + .setTitle("Wrong Guild") + .setDescription("The mentioned channel must be on this guid!")) .build()).queue(); } } catch (Exception e) { From 2466606b658ea3e281dc9278f7bb67edfe18ca89 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Sun, 24 Nov 2019 19:55:10 +0100 Subject: [PATCH 5/6] ^^ ^^ --- src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java | 2 +- .../java/com/bbn/hadder/commands/owner/ShutdownCommand.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java b/src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java index 1278123..29a57c2 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java @@ -25,7 +25,7 @@ public class RebootCommand implements Command { @Override public String[] labels() { - return new String[]{"restart"}; + return new String[]{"restart", "restart"}; } @Override diff --git a/src/main/java/com/bbn/hadder/commands/owner/ShutdownCommand.java b/src/main/java/com/bbn/hadder/commands/owner/ShutdownCommand.java index 142c74f..a602f39 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/ShutdownCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/ShutdownCommand.java @@ -26,7 +26,7 @@ public class ShutdownCommand implements Command { @Override public String[] labels() { - return new String[]{"shutdown"}; + return new String[]{"shutdown", "exit"}; } @Override From a8b73c6b4aba8ed2653cf062b139a60d95ae8075 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Sun, 24 Nov 2019 20:03:00 +0100 Subject: [PATCH 6/6] Very important! --- src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java | 1 - src/main/java/com/bbn/hadder/commands/owner/ShutdownCommand.java | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java b/src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java index 29a57c2..7797dd7 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java @@ -12,7 +12,6 @@ import net.dv8tion.jda.api.EmbedBuilder; public class RebootCommand implements Command { - @Override public void executed(String[] args, CommandEvent event) { if (event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { diff --git a/src/main/java/com/bbn/hadder/commands/owner/ShutdownCommand.java b/src/main/java/com/bbn/hadder/commands/owner/ShutdownCommand.java index a602f39..0148563 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/ShutdownCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/ShutdownCommand.java @@ -10,6 +10,7 @@ import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.EmbedBuilder; public class ShutdownCommand implements Command { + @Override public void executed(String[] args, CommandEvent event) { if (event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) {