From 2e89fcec66eb2c95308129d48c8755e50cb7595e Mon Sep 17 00:00:00 2001 From: akastijn Date: Sat, 23 Aug 2025 23:17:51 +0200 Subject: [PATCH] Add initial Discord bot integration with JDA setup and environment token configuration --- discord/build.gradle.kts | 26 +++++++++++++++++++ .../com/alttd/webinterface/DiscordBot.java | 18 +++++++++++++ .../webinterface/bot/DiscordBotInstance.java | 22 ++++++++++++++++ settings.gradle.kts | 2 +- 4 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 discord/build.gradle.kts create mode 100644 discord/src/main/java/com/alttd/webinterface/DiscordBot.java create mode 100644 discord/src/main/java/com/alttd/webinterface/bot/DiscordBotInstance.java diff --git a/discord/build.gradle.kts b/discord/build.gradle.kts new file mode 100644 index 0000000..7533759 --- /dev/null +++ b/discord/build.gradle.kts @@ -0,0 +1,26 @@ +plugins { + id("java") +} + +group = "com.alttd.webinterface" +version = "unspecified" + +repositories { + mavenCentral() +} + +dependencies { + testImplementation(platform("org.junit:junit-bom:5.10.0")) + testImplementation("org.junit.jupiter:junit-jupiter") + // JDA + implementation("net.dv8tion:JDA:6.0.0-rc.2") { + exclude("opus-java") // exclude audio + exclude("tink") // exclude audio + } + compileOnly("org.projectlombok:lombok:1.18.38") + annotationProcessor("org.projectlombok:lombok:1.18.38") +} + +tasks.test { + useJUnitPlatform() +} diff --git a/discord/src/main/java/com/alttd/webinterface/DiscordBot.java b/discord/src/main/java/com/alttd/webinterface/DiscordBot.java new file mode 100644 index 0000000..ef315a7 --- /dev/null +++ b/discord/src/main/java/com/alttd/webinterface/DiscordBot.java @@ -0,0 +1,18 @@ +package com.alttd.webinterface; + +import com.alttd.webinterface.bot.DiscordBotInstance; +import lombok.extern.slf4j.Slf4j; + +@Slf4j +public class DiscordBot { + + public static void main(String[] args) { + String discordToken = System.getProperty("DISCORD_TOKEN"); + if (discordToken == null) { + log.error("Discord token not found, put it in the DISCORD_TOKEN environment variable"); + System.exit(1); + } + DiscordBotInstance discordBotInstance = new DiscordBotInstance(); + discordBotInstance.start(discordToken); + } +} diff --git a/discord/src/main/java/com/alttd/webinterface/bot/DiscordBotInstance.java b/discord/src/main/java/com/alttd/webinterface/bot/DiscordBotInstance.java new file mode 100644 index 0000000..fe9f5db --- /dev/null +++ b/discord/src/main/java/com/alttd/webinterface/bot/DiscordBotInstance.java @@ -0,0 +1,22 @@ +package com.alttd.webinterface.bot; + +import lombok.Getter; +import net.dv8tion.jda.api.JDA; +import net.dv8tion.jda.api.JDABuilder; +import net.dv8tion.jda.api.requests.GatewayIntent; + +public class DiscordBotInstance { + + @Getter + private JDA jda; + + public void start(String token) { + jda = JDABuilder.createDefault(token, + GatewayIntent.GUILD_MEMBERS, + GatewayIntent.GUILD_PRESENCES, + GatewayIntent.GUILD_MESSAGES, + GatewayIntent.MESSAGE_CONTENT) + .build(); + } + +} diff --git a/settings.gradle.kts b/settings.gradle.kts index b924f34..6f74cd9 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,2 +1,2 @@ rootProject.name = "AltitudeWeb" -include("open_api", "backend", "frontend", "database") +include("open_api", "backend", "frontend", "database", "discord")