Listeners
EnhancedJDA implements an option to quickly register all listeners from certain packages. You should create a package (or multiple packages) with all listeners. Listener should extend EnhancedListener
class. To register listeners, use the PackageMapping
annotation in the main class.
dev.projectenhanced.enhancedjda.controller.PackageMapping
public @interface PackageMapping {
String[] commands() default {};
String[] contexts() default {};
String[] listeners() default {};
String[] tables() default {};
String[] persisters() default {};
}
Example setup:
.
├── mylisteners/
│ ├── ExampleListeners.class
│ ├── AnotherListeners.class
│ └── ...
└── Main.class
mylisteners.ExampleListeners
public class ExampleListener extends EnhancedListener {
private final EnhancedBot bot;
public ExampleListener(EnhancedBot bot) {
super(bot);
this.bot = bot;
}
@Override
public void onMessageReceived(MessageReceivedEvent event) {
EnhancedLogger.getLogger().info("User {} sent a message: {}", event.getAuthor().getAsTag(), event.getMessage().getContentRaw());
}
}
Main
@PackageMapping(
listeners = {"mylisteners"},
)
public class Main extends EnhancedBot {
// ...
}