From 984fb4e6577a22a2c8138f11da424c732ac20083 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 18 Nov 2019 13:21:52 +0000 Subject: [PATCH 1/4] Bump JDA from 4.0.0_61 to 4.0.0_62 Bumps JDA from 4.0.0_61 to 4.0.0_62. 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 7afe0e1..6e152d2 100644 --- a/pom.xml +++ b/pom.xml @@ -25,7 +25,7 @@ net.dv8tion JDA - 4.0.0_61 + 4.0.0_62 org.json From b2a47da4825309717bba5838d775fc3b49b092fc Mon Sep 17 00:00:00 2001 From: Hax Date: Fri, 22 Nov 2019 21:47:13 +0100 Subject: [PATCH 2/4] Added LinkCommand, Added multithreading --- src/main/java/com/bbn/hadder/Hadder.java | 3 +- src/main/java/com/bbn/hadder/Rethink.java | 4 + .../commands/moderation/LinkCommand.java | 76 +++++++++---------- .../java/com/bbn/hadder/core/LinkUtils.java | 69 +++++++++-------- .../bbn/hadder/listener/GuildListener.java | 12 +-- .../com/bbn/hadder/listener/LinkListener.java | 56 +++++++++++++- .../bbn/hadder/listener/ReadyListener.java | 16 ++-- 7 files changed, 153 insertions(+), 83 deletions(-) diff --git a/src/main/java/com/bbn/hadder/Hadder.java b/src/main/java/com/bbn/hadder/Hadder.java index 335efc4..3d6eec6 100644 --- a/src/main/java/com/bbn/hadder/Hadder.java +++ b/src/main/java/com/bbn/hadder/Hadder.java @@ -74,7 +74,8 @@ public class Hadder { new PrivateMessageListener(), new CommandListener(rethink, commandHandler), new GuildListener(rethink, config), - new ReadyListener(rethink, config)); + new ReadyListener(rethink, config), + new LinkListener(rethink)); try { shardManager = builder.build(); diff --git a/src/main/java/com/bbn/hadder/Rethink.java b/src/main/java/com/bbn/hadder/Rethink.java index da6602d..0a4fa33 100644 --- a/src/main/java/com/bbn/hadder/Rethink.java +++ b/src/main/java/com/bbn/hadder/Rethink.java @@ -116,6 +116,10 @@ public class Rethink { } public String addLinkedGuild(String guildid, String linkid) { + JSONArray links = getLinks(guildid); + for (int i = 0; links.length()>i; i++) { + if (links.getString(i).equals(linkid)) return null; + } return this.update("server", guildid, "links", this.getLinks(guildid).put(linkid).toString()); } diff --git a/src/main/java/com/bbn/hadder/commands/moderation/LinkCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/LinkCommand.java index 925cf46..61df5d0 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/LinkCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/LinkCommand.java @@ -2,16 +2,9 @@ package com.bbn.hadder.commands.moderation; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; -import com.bbn.hadder.core.LinkUtils; import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.MessageBuilder; import net.dv8tion.jda.api.entities.Guild; -import net.dv8tion.jda.api.entities.MessageReaction; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; public class LinkCommand implements Command { @Override @@ -32,8 +25,13 @@ public class LinkCommand implements Command { linkguild = g; } } - // TODO - if (!found) return; + if (!found) { + event.getChannel().sendMessage( + new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, + new EmbedBuilder().setTitle("Success!").setDescription("If i'm on this guild i sent a message to accept the link.") + ).build()).queue(); + return; + } // Check if the guild is the same if (event.getGuild().getId().equals(args[1])) { @@ -44,36 +42,36 @@ public class LinkCommand implements Command { } // Send poll to all connected guilds - if (event.getRethink().getLinks(event.getGuild().getId()).length() > 0) { - List reactions = new ArrayList<>(); - reactions.addAll(Arrays.asList("✅", "❌")); - new LinkUtils().sendAll( - event.getRethink().getLinks(event.getGuild().getId()), event.getJDA(), - new MessageBuilder() - .setEmbed( - new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, - new EmbedBuilder() - .setTitle(event.getGuild().getName() + " (" + event.getGuild().getId() + ") wants to add " + linkguild.getName() + " (" + linkguild.getId() + ")") - .setDescription("Please vote if the Guild should be added.")).build()).build(), - event.getJDA().getSelfUser(), reactions); - } else { - Guild finalLinkguild = linkguild; - new Thread(() -> { - if (event.getRethink().getLinkChannel(linkid).isEmpty()) { - event.getRethink().setLinkChannel(linkid, finalLinkguild.createTextChannel("linkchannel").complete().getId()); - } - // Send Request to link Guild - event.getJDA().getTextChannelById(event.getRethink().getLinkChannel(linkid)).sendMessage( - new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, - new EmbedBuilder().setTitle(event.getGuild().getName() + " (" + event.getGuild().getId() + ") wants to link guilds!") - .setDescription("React with the reactions to accept or decline it")).build() - ).queue( - msg -> { - msg.addReaction("✅").queue(); - msg.addReaction("❌").queue(); - } - ); - }).start(); + Guild finalLinkguild = linkguild; + new Thread(() -> { + if (event.getRethink().getLinkChannel(linkid).isEmpty()) { + event.getRethink().setLinkChannel(linkid, finalLinkguild.createTextChannel("linkchannel").complete().getId()); + } + // Send Request to link Guild + event.getJDA().getTextChannelById(event.getRethink().getLinkChannel(linkid)).sendMessage( + new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, + new EmbedBuilder().setTitle(event.getGuild().getName() + " (" + event.getGuild().getId() + ") wants to link guilds!") + .setDescription("React with the reactions to accept or decline it")).build() + ).queue( + msg -> { + msg.addReaction("✅").queue(); + msg.addReaction("❌").queue(); + } + ); + }).start(); + + + event.getChannel().sendMessage( + new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, + new EmbedBuilder().setTitle("Success!").setDescription("If i'm on this guild i sent a message to accept the link.") + ).build()).queue(); + + break; + + case "channel": + if (args.length == 2) { + event.getRethink().setLinkChannel(event.getGuild().getId(), args[1]); + event.getChannel().sendMessage(new EmbedBuilder().setTitle("Success").setDescription("Set the thing boi").build()).queue(); } break; diff --git a/src/main/java/com/bbn/hadder/core/LinkUtils.java b/src/main/java/com/bbn/hadder/core/LinkUtils.java index 216c148..1d5315a 100644 --- a/src/main/java/com/bbn/hadder/core/LinkUtils.java +++ b/src/main/java/com/bbn/hadder/core/LinkUtils.java @@ -3,10 +3,11 @@ package com.bbn.hadder.core; import club.minnced.discord.webhook.WebhookClient; import club.minnced.discord.webhook.WebhookClientBuilder; import club.minnced.discord.webhook.send.WebhookEmbed; -import club.minnced.discord.webhook.send.WebhookEmbedBuilder; import club.minnced.discord.webhook.send.WebhookMessageBuilder; +import com.bbn.hadder.Rethink; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.JDA; +import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.*; import org.json.JSONArray; @@ -16,46 +17,50 @@ import java.util.concurrent.ExecutionException; public class LinkUtils { - public void sendAll(JSONArray jsonArray, JDA jda, Message message, User user, List reactions) { + public void sendAll(JSONArray jsonArray, JDA jda, Message message, User user, List reactions, Rethink rethink, boolean usedmessagebuilder) { for (int i = 0; jsonArray.length() > i; i++) { - this.send(message, jda.getTextChannelById(jsonArray.getString(i)), user, reactions); + this.send(message, jda.getTextChannelById(rethink.getLinkChannel(jsonArray.getString(i))), user, reactions, usedmessagebuilder); } } - private void send(Message message, TextChannel channel, User user, List reactions) { - - channel.retrieveWebhooks().queue( - webhooks -> { - Webhook webhook=null; - for (Webhook webhooktemp : webhooks) { - if (webhooktemp.getOwner().equals(channel.getJDA().getSelfUser())) { - webhook=webhooktemp; + private void send(Message message, TextChannel channel, User user, List reactions, boolean usedmessagebuilder) { + if (!channel.getGuild().getSelfMember().hasPermission(Permission.MANAGE_WEBHOOKS)) { + channel.sendMessage(new EmbedBuilder().setTitle("Wait a sec").setDescription("Please contact the owner of the server to give me the manage webhook permission").build()).queue(); + } else { + channel.retrieveWebhooks().queue( + webhooks -> { + Webhook webhook = null; + for (Webhook webhooktemp : webhooks) { + if (webhooktemp.getOwner().equals(channel.getGuild().getSelfMember())) { + webhook = webhooktemp; + } } + + if (webhook == null) { + channel.createWebhook("Hadder GuildLink").queue( + webhook1 -> sendMessage(webhook1, channel, user, message, reactions, usedmessagebuilder) + ); + } else sendMessage(webhook, channel, user, message, reactions, usedmessagebuilder); } - - if (webhook==null) { - channel.createWebhook("Hadder GuildLink").queue( - webhook1 -> sendMessage(webhook1, channel, user, message, reactions) - ); - } else sendMessage(webhook, channel, user, message, reactions); - } - ); - + ); + } } - private void sendMessage(Webhook webhook, TextChannel channel, User user, Message message, List reactions) { - WebhookClientBuilder builder = new WebhookClientBuilder(webhook.getId()); + private void sendMessage(Webhook webhook, TextChannel channel, User user, Message message, List reactions, boolean usedmessagebuilder) { + WebhookClientBuilder builder = new WebhookClientBuilder(webhook.getUrl()); WebhookClient client = builder.build(); WebhookMessageBuilder mb = new WebhookMessageBuilder(); mb.setUsername(user.getName()) .setAvatarUrl((user.getAvatarUrl()!=null) ? user.getAvatarUrl() : user.getDefaultAvatarUrl()) .setContent(message.getContentRaw()); - for (Message.Attachment attachment:message.getAttachments()) { - try { - mb.addFile(attachment.getFileName(), attachment.retrieveInputStream().get()); - } catch (InterruptedException | ExecutionException e) { - e.printStackTrace(); + if (!usedmessagebuilder) { + for (Message.Attachment attachment : message.getAttachments()) { + try { + mb.addFile(attachment.getFileName(), attachment.retrieveInputStream().get()); + } catch (InterruptedException | ExecutionException e) { + e.printStackTrace(); + } } } for (MessageEmbed embed : message.getEmbeds()) { @@ -65,9 +70,13 @@ public class LinkUtils { } mb.addEmbeds(new WebhookEmbed( embed.getTimestamp(), embed.getColorRaw(), embed.getDescription(), - embed.getThumbnail().getUrl(), embed.getImage().getUrl(), new WebhookEmbed.EmbedFooter(embed.getFooter().getText(), embed.getFooter().getIconUrl()), - new WebhookEmbed.EmbedTitle(embed.getTitle(), embed.getUrl()), - new WebhookEmbed.EmbedAuthor(embed.getAuthor().getName(), embed.getAuthor().getIconUrl(), embed.getAuthor().getUrl()), fields)); + (embed.getThumbnail()!=null) ? embed.getThumbnail().getUrl() : "", (embed.getImage()!=null) ? embed.getImage().getUrl() : "", + new WebhookEmbed.EmbedFooter((embed.getFooter()!=null) ? (embed.getFooter().getText()!=null) ? embed.getFooter().getText() : "" : "", + (embed.getFooter()!=null) ? embed.getFooter().getIconUrl():""), + new WebhookEmbed.EmbedTitle((embed.getTitle()!=null) ? embed.getTitle() : "", embed.getUrl()), + new WebhookEmbed.EmbedAuthor((embed.getAuthor()!=null) ? (embed.getAuthor().getName() != null) ? embed.getAuthor().getName() : "" : "", + (embed.getAuthor()!=null) ? (embed.getAuthor().getIconUrl()!=null) ? embed.getAuthor().getIconUrl(): "" : "", + (embed.getAuthor()!=null) ? embed.getAuthor().getUrl() : ""), fields)); } try { long msgid = client.send(mb.build()).get().getId(); diff --git a/src/main/java/com/bbn/hadder/listener/GuildListener.java b/src/main/java/com/bbn/hadder/listener/GuildListener.java index 7cadb70..b0c91fcc 100644 --- a/src/main/java/com/bbn/hadder/listener/GuildListener.java +++ b/src/main/java/com/bbn/hadder/listener/GuildListener.java @@ -9,7 +9,7 @@ import com.bbn.hadder.core.Config; import com.bbn.hadder.utils.BotList; import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.entities.User; +import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.events.guild.GuildJoinEvent; import net.dv8tion.jda.api.events.guild.GuildLeaveEvent; import net.dv8tion.jda.api.events.guild.member.GuildMemberJoinEvent; @@ -28,11 +28,13 @@ public class GuildListener extends ListenerAdapter { } public void onGuildJoin(GuildJoinEvent event) { - for (User user : event.getJDA().getUsers()) { - if (!user.getId().equals(event.getJDA().getSelfUser().getId())) { - rethink.insertUser(user.getId()); + new Thread(() -> { + for (Member member : event.getGuild().getMembers()) { + if (!member.getUser().getId().equals(event.getJDA().getSelfUser().getId())) { + rethink.insertUser(member.getUser().getId()); + } } - } + }).start(); rethink.insertGuild(event.getGuild().getId()); EmbedBuilder builder = new EmbedBuilder(); diff --git a/src/main/java/com/bbn/hadder/listener/LinkListener.java b/src/main/java/com/bbn/hadder/listener/LinkListener.java index 224e529..d709e3c 100644 --- a/src/main/java/com/bbn/hadder/listener/LinkListener.java +++ b/src/main/java/com/bbn/hadder/listener/LinkListener.java @@ -1,11 +1,17 @@ package com.bbn.hadder.listener; import com.bbn.hadder.Rethink; +import com.bbn.hadder.core.LinkUtils; +import com.bbn.hadder.utils.MessageEditor; +import net.dv8tion.jda.api.EmbedBuilder; +import net.dv8tion.jda.api.Permission; +import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.events.message.react.MessageReactionAddEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; import javax.annotation.Nonnull; +import java.util.ArrayList; public class LinkListener extends ListenerAdapter { @@ -17,11 +23,59 @@ public class LinkListener extends ListenerAdapter { @Override public void onMessageReactionAdd(@Nonnull MessageReactionAddEvent event) { + event.getChannel().retrieveMessageById(event.getMessageId()).queue( + msg -> { + if (event.getMember().hasPermission(Permission.MANAGE_CHANNEL)) { + if (!event.getMember().getUser().equals(event.getJDA().getSelfUser())) { + if (msg.getAuthor().equals(event.getJDA().getSelfUser())) { + if (msg.getEmbeds().size() == 1) { + if (msg.getEmbeds().get(0).getFooter() == null) { + if (msg.getEmbeds().get(0).getTitle().endsWith(") wants to link guilds!")) { + String requestguild = msg.getEmbeds().get(0).getTitle().replaceAll("\\) wants to link guilds!", ""); + String requestguildid = null; + for (int i = requestguild.length() - 1; i >= 0; i--) { + if (String.valueOf(requestguild.charAt(i)).equals("(")) { + requestguildid = requestguild.substring(i + 1); + break; + } + } + if (requestguildid != null) { + if (event.getReactionEmote().getName().equals("✅")) { + rethink.addLinkedGuild(event.getGuild().getId(), requestguildid); + rethink.addLinkedGuild(requestguildid, event.getGuild().getId()); + msg.delete().queue(); + + MessageEmbed msgembed = new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, + new EmbedBuilder().setTitle("Guilds linked!").setDescription("The Guild allowed the link. Have fun!")).build(); + event.getChannel().sendMessage(msgembed).queue(); + event.getJDA().getTextChannelById(rethink.getLinkChannel(requestguildid)).sendMessage(msgembed).queue(); + } else if (event.getReactionEmote().getName().equals("❌")) { + msg.delete().queue(); + + MessageEmbed msgembed = new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, + new EmbedBuilder().setTitle("Guild linking denied.").setDescription("The Guild denied the link. :(")).build(); + event.getChannel().sendMessage(msgembed).queue(); + event.getJDA().getTextChannelById(rethink.getLinkChannel(requestguildid)).sendMessage(msgembed).queue(); + } + } + } + } + } + } + } + } + } + ); } @Override public void onMessageReceived(@Nonnull MessageReceivedEvent event) { - // TODO + if (!event.isWebhookMessage()) { + if (event.getChannel().getId().equals(rethink.getLinkChannel(event.getGuild().getId()))) { + new LinkUtils().sendAll(rethink.getLinks(event.getGuild().getId()), event.getJDA(), event.getMessage(), event.getAuthor(), new ArrayList<>() { + }, rethink, false); + } + } } } diff --git a/src/main/java/com/bbn/hadder/listener/ReadyListener.java b/src/main/java/com/bbn/hadder/listener/ReadyListener.java index 678497c..7432c5f 100644 --- a/src/main/java/com/bbn/hadder/listener/ReadyListener.java +++ b/src/main/java/com/bbn/hadder/listener/ReadyListener.java @@ -23,14 +23,16 @@ public class ReadyListener extends ListenerAdapter { @Override public void onReady(@Nonnull ReadyEvent event) { rethink.setup(); - for (User user : event.getJDA().getUsers()) { - if (!user.getId().equals(event.getJDA().getSelfUser().getId())) { - rethink.insertUser(user.getId()); + new Thread(() -> { + for (User user : event.getJDA().getUsers()) { + if (!user.getId().equals(event.getJDA().getSelfUser().getId())) { + rethink.insertUser(user.getId()); + } } - } - for (Guild g : event.getJDA().getGuilds()) { - rethink.insertGuild(g.getId()); - } + for (Guild g : event.getJDA().getGuilds()) { + rethink.insertGuild(g.getId()); + } + }).start(); new BotList(config).post(); } From d1b2483d0f99b7eaf883a2b2e14a06b3b220d530 Mon Sep 17 00:00:00 2001 From: Hax Date: Fri, 22 Nov 2019 22:21:43 +0100 Subject: [PATCH 3/4] Added Help when args are missing or are false --- src/main/java/com/bbn/hadder/Hadder.java | 5 ++-- .../com/bbn/hadder/commands/CommandEvent.java | 12 ++++++++-- .../bbn/hadder/commands/fun/GifCommand.java | 3 +-- .../hadder/commands/general/HelpCommand.java | 24 ++++++++++++------- .../commands/misc/ScreenshareCommand.java | 4 ++++ .../commands/moderation/BanCommand.java | 1 + .../commands/moderation/ClearCommand.java | 2 ++ .../moderation/GuildPrefixCommand.java | 1 + .../commands/moderation/KickCommand.java | 1 + .../commands/moderation/LinkCommand.java | 2 +- .../commands/moderation/NickCommand.java | 2 ++ .../commands/settings/PrefixCommand.java | 1 + .../com/bbn/hadder/core/CommandHandler.java | 7 ++++-- 13 files changed, 48 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/bbn/hadder/Hadder.java b/src/main/java/com/bbn/hadder/Hadder.java index 3d6eec6..8572baa 100644 --- a/src/main/java/com/bbn/hadder/Hadder.java +++ b/src/main/java/com/bbn/hadder/Hadder.java @@ -38,10 +38,11 @@ public class Hadder { builder.setActivity(Activity.streaming("on the BigBotNetwork", "https://twitch.tv/BigBotNetwork")); builder.setToken(config.getBotToken()); + HelpCommand helpCommand = new HelpCommand(); CommandHandler commandHandler = new CommandHandler( List.of( - new HelpCommand(), + helpCommand, new TestCommand(), new BanCommand(), new PrefixCommand(), @@ -67,7 +68,7 @@ public class Hadder { new FeetCommand(), new EroticCommand(), new RoleCommand(), - new LinkCommand()), config); + new LinkCommand()), config, helpCommand); builder.addEventListeners( new MentionListener(rethink), diff --git a/src/main/java/com/bbn/hadder/commands/CommandEvent.java b/src/main/java/com/bbn/hadder/commands/CommandEvent.java index f45ca7e..577cda3 100644 --- a/src/main/java/com/bbn/hadder/commands/CommandEvent.java +++ b/src/main/java/com/bbn/hadder/commands/CommandEvent.java @@ -1,6 +1,7 @@ package com.bbn.hadder.commands; import com.bbn.hadder.Rethink; +import com.bbn.hadder.commands.general.HelpCommand; import com.bbn.hadder.core.CommandHandler; import com.bbn.hadder.core.Config; import net.dv8tion.jda.api.JDA; @@ -14,19 +15,22 @@ public class CommandEvent extends MessageReceivedEvent { private Rethink rethink; private Config config; private CommandHandler commandHandler; + private HelpCommand helpCommand; - public CommandEvent(@Nonnull JDA api, long responseNumber, @Nonnull Message message, Config config, Rethink rethink, CommandHandler commandHandler) { + public CommandEvent(@Nonnull JDA api, long responseNumber, @Nonnull Message message, Config config, Rethink rethink, CommandHandler commandHandler, HelpCommand helpCommand) { super(api, responseNumber, message); this.config = config; this.rethink = rethink; this.commandHandler = commandHandler; + this.helpCommand = helpCommand; } - public CommandEvent(@Nonnull MessageReceivedEvent event, Config config, Rethink rethink, CommandHandler commandHandler) { + public CommandEvent(@Nonnull MessageReceivedEvent event, Config config, Rethink rethink, CommandHandler commandHandler, HelpCommand helpCommand) { super(event.getJDA(), event.getResponseNumber(), event.getMessage()); this.config = config; this.rethink = rethink; this.commandHandler = commandHandler; + this.helpCommand = helpCommand; } public Rethink getRethink() { @@ -37,6 +41,10 @@ public class CommandEvent extends MessageReceivedEvent { return config; } + public HelpCommand getHelpCommand() { + return helpCommand; + } + public CommandHandler getCommandHandler() { return commandHandler; } diff --git a/src/main/java/com/bbn/hadder/commands/fun/GifCommand.java b/src/main/java/com/bbn/hadder/commands/fun/GifCommand.java index dbb3ad3..25efe90 100644 --- a/src/main/java/com/bbn/hadder/commands/fun/GifCommand.java +++ b/src/main/java/com/bbn/hadder/commands/fun/GifCommand.java @@ -43,8 +43,7 @@ public class GifCommand implements Command { event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR, builder).setTitle("Error").setDescription("Please try again with another term.").build()).queue(); } } else { - EmbedBuilder builder = new EmbedBuilder(); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("You have to write at least one search term!").build()).queue(); + event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); } } diff --git a/src/main/java/com/bbn/hadder/commands/general/HelpCommand.java b/src/main/java/com/bbn/hadder/commands/general/HelpCommand.java index 6b1e4e6..45d3b0e 100644 --- a/src/main/java/com/bbn/hadder/commands/general/HelpCommand.java +++ b/src/main/java/com/bbn/hadder/commands/general/HelpCommand.java @@ -1,10 +1,13 @@ package com.bbn.hadder.commands.general; +import com.bbn.hadder.Rethink; 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.Permission; +import net.dv8tion.jda.api.entities.TextChannel; +import net.dv8tion.jda.api.entities.User; import java.util.ArrayList; import java.util.HashMap; @@ -45,14 +48,7 @@ public class HelpCommand implements Command { for (Command cmd : event.getCommandHandler().getCommandList()) { for (String label : cmd.labels()) { if (label.toLowerCase().equals(args[0])) { - if (!cmd.getClass().getPackageName().endsWith("owner") || (cmd.getClass().getPackageName().endsWith("owner") && (event.getAuthor().getId().equals("477141528981012511") || event.getAuthor().getId().equals("261083609148948488")))) { - EmbedBuilder eb = new EmbedBuilder(); - String name = cmd.labels()[0]; - eb.setDescription(cmd.description()).setTitle(name.replaceFirst(String.valueOf(name.charAt(0)), String.valueOf(name.charAt(0)).toUpperCase())); - eb.addField("Usage", event.getRethink().getUserPrefix(event.getAuthor().getId()) + cmd.labels()[0] + " " + cmd.usage(), false); - new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, eb); - event.getChannel().sendMessage(eb.build()).queue(); - } + sendHelp(cmd, event.getRethink(), event.getAuthor(), event.getTextChannel()); } } } @@ -62,6 +58,18 @@ public class HelpCommand implements Command { } } + public void sendHelp(Command cmd, Rethink rethink, User author, TextChannel channel) { + if (!cmd.getClass().getPackageName().endsWith("owner") || (cmd.getClass().getPackageName().endsWith("owner") && + (author.getId().equals("477141528981012511") || author.getId().equals("261083609148948488")))) { + EmbedBuilder eb = new EmbedBuilder(); + String name = cmd.labels()[0]; + eb.setDescription(cmd.description()).setTitle(name.replaceFirst(String.valueOf(name.charAt(0)), String.valueOf(name.charAt(0)).toUpperCase())); + eb.addField("Usage", rethink.getUserPrefix(author.getId()) + cmd.labels()[0] + " " + cmd.usage(), false); + new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, eb); + channel.sendMessage(eb.build()).queue(); + } + } + @Override public String[] labels() { return new String[]{"help"}; diff --git a/src/main/java/com/bbn/hadder/commands/misc/ScreenshareCommand.java b/src/main/java/com/bbn/hadder/commands/misc/ScreenshareCommand.java index 64de8dd..c9adbe0 100644 --- a/src/main/java/com/bbn/hadder/commands/misc/ScreenshareCommand.java +++ b/src/main/java/com/bbn/hadder/commands/misc/ScreenshareCommand.java @@ -26,6 +26,7 @@ public class ScreenshareCommand implements Command { event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR, new EmbedBuilder() .setTitle("Wait, that's illegal") .setDescription("This ID is invalid. \nMaybe you entered a wrong ID? \n\nNote: Make sure the Voice Channel is on this Guild.")).build()).queue(); + event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); return; } } @@ -51,17 +52,20 @@ public class ScreenshareCommand implements Command { event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR, new EmbedBuilder() .setTitle("You specified a wrong number!")).build()).queue(); + event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); } } catch (NumberFormatException e) { event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR, new EmbedBuilder() .setTitle("Wait, that's illegal") .setDescription("This isn't a Number.")).build()).queue(); + event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); } }, event.getJDA(), event.getAuthor()); } else if (vcs.size()==0) { event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR, new EmbedBuilder() .setTitle("Hol' up") .setDescription("There is no Voice Channel named like this. \n\nNote: Make sure the Voice Channel is on this Guild.")).build()).queue(); + event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); } else { event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() .setTitle("Here's your Url to share your Screen") diff --git a/src/main/java/com/bbn/hadder/commands/moderation/BanCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/BanCommand.java index d85b936..07405a4 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/BanCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/BanCommand.java @@ -39,6 +39,7 @@ public class BanCommand implements Command { } else if (event.getMessage().getMentionedMembers().size() == 0) { EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("You have to mention at least one user!").build()).queue(); + event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); } else if (event.getMessage().getMentionedMembers().size() > 1) { for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) { Member member = event.getMessage().getMentionedMembers().get(i); diff --git a/src/main/java/com/bbn/hadder/commands/moderation/ClearCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/ClearCommand.java index 968830d..884c7d8 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/ClearCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/ClearCommand.java @@ -38,6 +38,7 @@ public class ClearCommand implements Command { } catch (NumberFormatException e) { EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("You have to specify a number!").build()).queue(); + event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); } } else { EmbedBuilder builder = new EmbedBuilder(); @@ -50,6 +51,7 @@ public class ClearCommand implements Command { } else { EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("You have to specify a number!").build()).queue(); + event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); } } diff --git a/src/main/java/com/bbn/hadder/commands/moderation/GuildPrefixCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/GuildPrefixCommand.java index be03e01..8407394 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/GuildPrefixCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/GuildPrefixCommand.java @@ -26,6 +26,7 @@ public class GuildPrefixCommand implements Command { } else { EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("You have to set a prefix.").build()).queue(); + event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); } } else { EmbedBuilder builder = new EmbedBuilder(); diff --git a/src/main/java/com/bbn/hadder/commands/moderation/KickCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/KickCommand.java index 0b7a67d..36a7650 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/KickCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/KickCommand.java @@ -40,6 +40,7 @@ public class KickCommand implements Command { } else if (event.getMessage().getMentionedMembers().size() == 0) { EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("You have to mention at least one user!").build()).queue(); + event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); } else if (event.getMessage().getMentionedMembers().size() > 1) { for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) { Member member = event.getMessage().getMentionedMembers().get(i); diff --git a/src/main/java/com/bbn/hadder/commands/moderation/LinkCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/LinkCommand.java index 61df5d0..d33dd60 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/LinkCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/LinkCommand.java @@ -9,7 +9,7 @@ import net.dv8tion.jda.api.entities.Guild; public class LinkCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { - if (args.length == 0) return; + if (args.length == 0) event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); switch (args[0]) { case "add": diff --git a/src/main/java/com/bbn/hadder/commands/moderation/NickCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/NickCommand.java index f1216ff..4ab91b9 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/NickCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/NickCommand.java @@ -33,6 +33,7 @@ public class NickCommand implements Command { } else { EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setTitle("Missing arguments").setDescription("You have to specify a new nickname for the user(s).").build()).queue(); + event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); } } else { EmbedBuilder builder = new EmbedBuilder(); @@ -52,6 +53,7 @@ public class NickCommand implements Command { } else if (event.getMessage().getMentionedMembers().size() == 0) { EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("You have to mention at least one user!").build()).queue(); + event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); } else { for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) { Member member = event.getMessage().getMentionedMembers().get(i); diff --git a/src/main/java/com/bbn/hadder/commands/settings/PrefixCommand.java b/src/main/java/com/bbn/hadder/commands/settings/PrefixCommand.java index 98e896d..70ea455 100644 --- a/src/main/java/com/bbn/hadder/commands/settings/PrefixCommand.java +++ b/src/main/java/com/bbn/hadder/commands/settings/PrefixCommand.java @@ -20,6 +20,7 @@ public class PrefixCommand implements Command { } else { EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("You have to set a prefix.").build()).queue(); + event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); } } diff --git a/src/main/java/com/bbn/hadder/core/CommandHandler.java b/src/main/java/com/bbn/hadder/core/CommandHandler.java index 71c3a49..0fc435e 100644 --- a/src/main/java/com/bbn/hadder/core/CommandHandler.java +++ b/src/main/java/com/bbn/hadder/core/CommandHandler.java @@ -3,6 +3,7 @@ package com.bbn.hadder.core; import com.bbn.hadder.Rethink; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.commands.general.HelpCommand; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import java.util.List; @@ -11,10 +12,12 @@ public class CommandHandler { private List commandList; private Config config; + private HelpCommand helpCommand; - public CommandHandler(List commandList, Config config) { + public CommandHandler(List commandList, Config config, HelpCommand helpCommand) { this.commandList = commandList; this.config = config; + this.helpCommand = helpCommand; } public void handle(MessageReceivedEvent event, Rethink rethink, String prefix) { @@ -27,7 +30,7 @@ public class CommandHandler { if (argString.startsWith(" ")) argString = argString.replaceFirst(" ", ""); String[] args = argString.split(" "); if (args.length>0&&args[0].equals("")) args = new String[0]; - cmd.executed(args, new CommandEvent(event, config, rethink, this)); + cmd.executed(args, new CommandEvent(event, config, rethink, this, helpCommand)); return; } } From 99cf3a44f54c479272c57159a469819e6ca6d0f9 Mon Sep 17 00:00:00 2001 From: Skidder Date: Fri, 22 Nov 2019 14:36:18 -0800 Subject: [PATCH 4/4] Update RulesListener.java --- src/main/java/com/bbn/hadder/listener/RulesListener.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/bbn/hadder/listener/RulesListener.java b/src/main/java/com/bbn/hadder/listener/RulesListener.java index dd42306..b56c47c 100644 --- a/src/main/java/com/bbn/hadder/listener/RulesListener.java +++ b/src/main/java/com/bbn/hadder/listener/RulesListener.java @@ -20,11 +20,9 @@ public class RulesListener extends ListenerAdapter { public void onMessageReactionAdd(MessageReactionAddEvent event) { if (event.getMessageId().equals(rethink.getRulesMID(event.getGuild().getId()))) { if (!event.getMember().getUser().isBot()) { - if (event.getReactionEmote().equals("✅")) { + event.getGuild().addRoleToMember(event.getMember(), event.getGuild().getRoleById(rethink.getRulesRID(event.getGuild().getId()))).queue(); - } else if (event.getReactionEmote().equals("❌")) { - event.getMember().kick().reason("Declined the rules").queue(); - } + } } }