/camel-discord

An Apache Camel Discord component

Primary LanguageJava

Camel Discord Component

build standard-readme compliant

This was way harder to do than it should have been

Table of Contents

About

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.

Install

To build this project use

$ mvn install

Gradle

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

dependencies {
        implementation 'com.github.meyer1994:camel-discord:0.0.2'
}

Maven

<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>

Usage

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");

Thanks

AWS' components. It served a very useful learning resource;