This was way harder to do than it should have been
Once I wanted to create a Discord bot that could be used as an interface to many other things. Reboot an EC2 instance on AWS, send an e-mail, etc.
Apache Camel is an integrations library. Adding a Discord component to it makes Discord very powerful. This is my attempt on creating a component.
To build this project use
$ mvn install
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
implementation 'com.github.meyer1994:camel-discord:0.0.2'
}
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependency>
<groupId>com.github.meyer1994</groupId>
<artifactId>camel-discord</artifactId>
<version>0.0.2</version>
</dependency>
You only need to define a @Bean
, or use the Camel's @BindToRegistry
annotation, to be autowired into the component:
@Bean // Or @BindToRegistry
public JDA jda() throws LoginException {
return JDABuilder.createDefault("YOUR_DISCORD_BOT_TOKEN")
.enableIntents(GatewayIntent.MESSAGE_CONTENT)
.build();
}
And now you can use the discord
route. The example below shows a simple
ping pong bot.
from("discord:ping")
.filter().simple("${body.contentRaw} == '!ping'")
.transform().constant("Pong!")
.to("discord:pong");
AWS' components. It served a very useful learning resource;