Added an annotation check to SimpleAutoResponder#registerCommand

This commit is contained in:
2021-10-02 20:19:00 +02:00
parent 1617540e0a
commit 42d9248caf

View File

@ -5,20 +5,24 @@ import com.sun.net.httpserver.HttpServer;
import de.gnmyt.autoresponder.authentication.AuthenticationDetails; import de.gnmyt.autoresponder.authentication.AuthenticationDetails;
import de.gnmyt.autoresponder.authentication.ResponderAuthentication; import de.gnmyt.autoresponder.authentication.ResponderAuthentication;
import de.gnmyt.autoresponder.commands.ResponderCommand; import de.gnmyt.autoresponder.commands.ResponderCommand;
import de.gnmyt.autoresponder.commands.annotations.CommandInfo;
import de.gnmyt.autoresponder.event.api.EventManager; import de.gnmyt.autoresponder.event.api.EventManager;
import de.gnmyt.autoresponder.event.api.Listener; import de.gnmyt.autoresponder.event.api.Listener;
import de.gnmyt.autoresponder.exceptions.ResponderException; import de.gnmyt.autoresponder.exceptions.ResponderException;
import de.gnmyt.autoresponder.handler.NotFoundHandler; import de.gnmyt.autoresponder.handler.NotFoundHandler;
import de.gnmyt.autoresponder.handler.SendNothingHandler; import de.gnmyt.autoresponder.handler.SendNothingHandler;
import de.gnmyt.autoresponder.http.contexts.ResponderContext; import de.gnmyt.autoresponder.http.contexts.ResponderContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException; import java.io.IOException;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
public class SimpleAutoResponder { public class SimpleAutoResponder {
private static final Logger LOG = LoggerFactory.getLogger(SimpleAutoResponder.class);
private final EventManager eventManager = new EventManager(); private final EventManager eventManager = new EventManager();
private HttpServer httpServer; private HttpServer httpServer;
@ -77,7 +81,13 @@ public class SimpleAutoResponder {
* @return the current {@link SimpleAutoResponder} instance * @return the current {@link SimpleAutoResponder} instance
*/ */
public SimpleAutoResponder registerCommand(ResponderCommand... commands) { public SimpleAutoResponder registerCommand(ResponderCommand... commands) {
this.commands.addAll(Arrays.asList(commands)); for (ResponderCommand command : commands) {
if (command.getClass().isAnnotationPresent(CommandInfo.class)) {
this.commands.add(command);
} else {
LOG.error("Could not register command {}. You need to add the command information annotation.", command.getClass().getName());
}
}
return this; return this;
} }