Added Help when args are missing or are false

This commit is contained in:
Hax 2019-11-22 22:21:43 +01:00
parent b2a47da482
commit d1b2483d0f
13 changed files with 48 additions and 17 deletions

View file

@ -38,10 +38,11 @@ public class Hadder {
builder.setActivity(Activity.streaming("on the BigBotNetwork", "https://twitch.tv/BigBotNetwork")); builder.setActivity(Activity.streaming("on the BigBotNetwork", "https://twitch.tv/BigBotNetwork"));
builder.setToken(config.getBotToken()); builder.setToken(config.getBotToken());
HelpCommand helpCommand = new HelpCommand();
CommandHandler commandHandler = new CommandHandler( CommandHandler commandHandler = new CommandHandler(
List.of( List.of(
new HelpCommand(), helpCommand,
new TestCommand(), new TestCommand(),
new BanCommand(), new BanCommand(),
new PrefixCommand(), new PrefixCommand(),
@ -67,7 +68,7 @@ public class Hadder {
new FeetCommand(), new FeetCommand(),
new EroticCommand(), new EroticCommand(),
new RoleCommand(), new RoleCommand(),
new LinkCommand()), config); new LinkCommand()), config, helpCommand);
builder.addEventListeners( builder.addEventListeners(
new MentionListener(rethink), new MentionListener(rethink),

View file

@ -1,6 +1,7 @@
package com.bbn.hadder.commands; package com.bbn.hadder.commands;
import com.bbn.hadder.Rethink; import com.bbn.hadder.Rethink;
import com.bbn.hadder.commands.general.HelpCommand;
import com.bbn.hadder.core.CommandHandler; import com.bbn.hadder.core.CommandHandler;
import com.bbn.hadder.core.Config; import com.bbn.hadder.core.Config;
import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.JDA;
@ -14,19 +15,22 @@ public class CommandEvent extends MessageReceivedEvent {
private Rethink rethink; private Rethink rethink;
private Config config; private Config config;
private CommandHandler commandHandler; 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); super(api, responseNumber, message);
this.config = config; this.config = config;
this.rethink = rethink; this.rethink = rethink;
this.commandHandler = commandHandler; 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()); super(event.getJDA(), event.getResponseNumber(), event.getMessage());
this.config = config; this.config = config;
this.rethink = rethink; this.rethink = rethink;
this.commandHandler = commandHandler; this.commandHandler = commandHandler;
this.helpCommand = helpCommand;
} }
public Rethink getRethink() { public Rethink getRethink() {
@ -37,6 +41,10 @@ public class CommandEvent extends MessageReceivedEvent {
return config; return config;
} }
public HelpCommand getHelpCommand() {
return helpCommand;
}
public CommandHandler getCommandHandler() { public CommandHandler getCommandHandler() {
return commandHandler; return commandHandler;
} }

View file

@ -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(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR, builder).setTitle("Error").setDescription("Please try again with another term.").build()).queue();
} }
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("You have to write at least one search term!").build()).queue();
} }
} }

View file

@ -1,10 +1,13 @@
package com.bbn.hadder.commands.general; package com.bbn.hadder.commands.general;
import com.bbn.hadder.Rethink;
import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.Permission; 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.ArrayList;
import java.util.HashMap; import java.util.HashMap;
@ -45,14 +48,7 @@ public class HelpCommand implements Command {
for (Command cmd : event.getCommandHandler().getCommandList()) { for (Command cmd : event.getCommandHandler().getCommandList()) {
for (String label : cmd.labels()) { for (String label : cmd.labels()) {
if (label.toLowerCase().equals(args[0])) { 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")))) { sendHelp(cmd, event.getRethink(), event.getAuthor(), event.getTextChannel());
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();
}
} }
} }
} }
@ -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 @Override
public String[] labels() { public String[] labels() {
return new String[]{"help"}; return new String[]{"help"};

View file

@ -26,6 +26,7 @@ public class ScreenshareCommand implements Command {
event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR, new EmbedBuilder() event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR, new EmbedBuilder()
.setTitle("Wait, that's illegal") .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(); .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; return;
} }
} }
@ -51,17 +52,20 @@ public class ScreenshareCommand implements Command {
event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR, new EmbedBuilder() event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR, new EmbedBuilder()
.setTitle("You specified a wrong number!")).build()).queue(); .setTitle("You specified a wrong number!")).build()).queue();
event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
} }
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR, new EmbedBuilder() event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR, new EmbedBuilder()
.setTitle("Wait, that's illegal") .setTitle("Wait, that's illegal")
.setDescription("This isn't a Number.")).build()).queue(); .setDescription("This isn't a Number.")).build()).queue();
event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
} }
}, event.getJDA(), event.getAuthor()); }, event.getJDA(), event.getAuthor());
} else if (vcs.size()==0) { } else if (vcs.size()==0) {
event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR, new EmbedBuilder() event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR, new EmbedBuilder()
.setTitle("Hol' up") .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(); .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 { } else {
event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
.setTitle("Here's your Url to share your Screen") .setTitle("Here's your Url to share your Screen")

View file

@ -39,6 +39,7 @@ public class BanCommand implements Command {
} else if (event.getMessage().getMentionedMembers().size() == 0) { } else if (event.getMessage().getMentionedMembers().size() == 0) {
EmbedBuilder builder = new EmbedBuilder(); 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.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) { } else if (event.getMessage().getMentionedMembers().size() > 1) {
for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) { for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) {
Member member = event.getMessage().getMentionedMembers().get(i); Member member = event.getMessage().getMentionedMembers().get(i);

View file

@ -38,6 +38,7 @@ public class ClearCommand implements Command {
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
EmbedBuilder builder = new EmbedBuilder(); EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("You have to specify a number!").build()).queue(); 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 { } else {
EmbedBuilder builder = new EmbedBuilder(); EmbedBuilder builder = new EmbedBuilder();
@ -50,6 +51,7 @@ public class ClearCommand implements Command {
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("You have to specify a number!").build()).queue(); 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());
} }
} }

View file

@ -26,6 +26,7 @@ public class GuildPrefixCommand implements Command {
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("You have to set a prefix.").build()).queue(); 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 { } else {
EmbedBuilder builder = new EmbedBuilder(); EmbedBuilder builder = new EmbedBuilder();

View file

@ -40,6 +40,7 @@ public class KickCommand implements Command {
} else if (event.getMessage().getMentionedMembers().size() == 0) { } else if (event.getMessage().getMentionedMembers().size() == 0) {
EmbedBuilder builder = new EmbedBuilder(); 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.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) { } else if (event.getMessage().getMentionedMembers().size() > 1) {
for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) { for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) {
Member member = event.getMessage().getMentionedMembers().get(i); Member member = event.getMessage().getMentionedMembers().get(i);

View file

@ -9,7 +9,7 @@ import net.dv8tion.jda.api.entities.Guild;
public class LinkCommand implements Command { public class LinkCommand implements Command {
@Override @Override
public void executed(String[] args, CommandEvent event) { 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]) { switch (args[0]) {
case "add": case "add":

View file

@ -33,6 +33,7 @@ public class NickCommand implements Command {
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); 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.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 { } else {
EmbedBuilder builder = new EmbedBuilder(); EmbedBuilder builder = new EmbedBuilder();
@ -52,6 +53,7 @@ public class NickCommand implements Command {
} else if (event.getMessage().getMentionedMembers().size() == 0) { } else if (event.getMessage().getMentionedMembers().size() == 0) {
EmbedBuilder builder = new EmbedBuilder(); 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.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 { } else {
for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) { for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) {
Member member = event.getMessage().getMentionedMembers().get(i); Member member = event.getMessage().getMentionedMembers().get(i);

View file

@ -20,6 +20,7 @@ public class PrefixCommand implements Command {
} else { } else {
EmbedBuilder builder = new EmbedBuilder(); EmbedBuilder builder = new EmbedBuilder();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, builder).setDescription("You have to set a prefix.").build()).queue(); 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());
} }
} }

View file

@ -3,6 +3,7 @@ package com.bbn.hadder.core;
import com.bbn.hadder.Rethink; import com.bbn.hadder.Rethink;
import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.commands.general.HelpCommand;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import java.util.List; import java.util.List;
@ -11,10 +12,12 @@ public class CommandHandler {
private List<Command> commandList; private List<Command> commandList;
private Config config; private Config config;
private HelpCommand helpCommand;
public CommandHandler(List<Command> commandList, Config config) { public CommandHandler(List<Command> commandList, Config config, HelpCommand helpCommand) {
this.commandList = commandList; this.commandList = commandList;
this.config = config; this.config = config;
this.helpCommand = helpCommand;
} }
public void handle(MessageReceivedEvent event, Rethink rethink, String prefix) { public void handle(MessageReceivedEvent event, Rethink rethink, String prefix) {
@ -27,7 +30,7 @@ public class CommandHandler {
if (argString.startsWith(" ")) argString = argString.replaceFirst(" ", ""); if (argString.startsWith(" ")) argString = argString.replaceFirst(" ", "");
String[] args = argString.split(" "); String[] args = argString.split(" ");
if (args.length>0&&args[0].equals("")) args = new String[0]; 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; return;
} }
} }