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 bcc800d..62595db 100644 --- a/src/main/java/com/bbn/hadder/commands/general/HelpCommand.java +++ b/src/main/java/com/bbn/hadder/commands/general/HelpCommand.java @@ -4,6 +4,7 @@ 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 java.util.ArrayList; import java.util.HashMap; @@ -13,47 +14,51 @@ public class HelpCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { - if (args.length == 0) { - HashMap> hashMap = new HashMap<>(); - for (Command cmd : event.getCommandHandler().getCommandList()) { - if (!hashMap.containsKey(cmd.getClass().getPackageName())) { - ArrayList cmdlist = new ArrayList<>(); - cmdlist.add(cmd); - hashMap.put(cmd.getClass().getPackageName(), cmdlist); - } else { - hashMap.get(cmd.getClass().getPackageName()).add(cmd); - } - } - EmbedBuilder eb = new EmbedBuilder(); - for (Map.Entry> entry : hashMap.entrySet()) { - if (!entry.getKey().endsWith("owner") || (entry.getKey().endsWith("owner") && (event.getAuthor().getId().equals("477141528981012511") || event.getAuthor().getId().equals("261083609148948488")))) { - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < entry.getValue().size(); i++) { - Command cmd = entry.getValue().get(i); - sb.append("`" + cmd.labels()[0] + "`"); - if (i < entry.getValue().size() - 1) sb.append(", "); + if (event.getGuild().getSelfMember().hasPermission(Permission.MESSAGE_EMBED_LINKS)) { + if (args.length == 0) { + HashMap> hashMap = new HashMap<>(); + for (Command cmd : event.getCommandHandler().getCommandList()) { + if (!hashMap.containsKey(cmd.getClass().getPackageName())) { + ArrayList cmdlist = new ArrayList<>(); + cmdlist.add(cmd); + hashMap.put(cmd.getClass().getPackageName(), cmdlist); + } else { + hashMap.get(cmd.getClass().getPackageName()).add(cmd); } - String[] packagesplit = entry.getKey().split("\\."); - eb.addField(packagesplit[packagesplit.length - 1], sb.toString(), false); } - } - new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.INFO, eb); - event.getChannel().sendMessage(eb.build()).queue(); - } else { - 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(); + EmbedBuilder eb = new EmbedBuilder(); + for (Map.Entry> entry : hashMap.entrySet()) { + if (!entry.getKey().endsWith("owner") || (entry.getKey().endsWith("owner") && (event.getAuthor().getId().equals("477141528981012511") || event.getAuthor().getId().equals("261083609148948488")))) { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < entry.getValue().size(); i++) { + Command cmd = entry.getValue().get(i); + sb.append("`" + cmd.labels()[0] + "`"); + if (i < entry.getValue().size() - 1) sb.append(", "); + } + String[] packagesplit = entry.getKey().split("\\."); + eb.addField(packagesplit[packagesplit.length - 1], sb.toString(), false); + } + } + new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.INFO, eb); + event.getChannel().sendMessage(eb.build()).queue(); + } else { + 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(); + } } } } } + } else { + event.getTextChannel().sendMessage("I need the Embed Links Permission to send the Help Menu!").queue(); } }