Skip to main content

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 {
  // ...
}