diff --git a/pom.xml b/pom.xml
index af8cb73..fa69c06 100644
--- a/pom.xml
+++ b/pom.xml
@@ -38,6 +38,11 @@
org.springframework.boot
spring-boot-starter
+
+ org.springframework.boot
+ spring-boot-configuration-processor
+ true
+
org.jetbrains.kotlin
kotlin-reflect
@@ -66,6 +71,9 @@
org.springframework.boot
spring-boot-maven-plugin
+
+ true
+
org.jetbrains.kotlin
diff --git a/src/main/kotlin/fr/lucasdupont/configuration/JdaAutoConfiguration.kt b/src/main/kotlin/fr/lucasdupont/configuration/JdaAutoConfiguration.kt
new file mode 100644
index 0000000..7d8ac46
--- /dev/null
+++ b/src/main/kotlin/fr/lucasdupont/configuration/JdaAutoConfiguration.kt
@@ -0,0 +1,30 @@
+package fr.lucasdupont.configuration
+
+import fr.lucasdupont.service.JdaService
+import org.springframework.boot.autoconfigure.AutoConfiguration
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty
+import org.springframework.boot.context.properties.EnableConfigurationProperties
+import org.springframework.context.ApplicationContext
+import org.springframework.context.ApplicationEventPublisher
+import org.springframework.context.annotation.Bean
+import org.springframework.context.annotation.ComponentScan
+
+@AutoConfiguration
+@EnableConfigurationProperties(JdaConfiguration::class)
+@ConditionalOnProperty(prefix = "jda", name = ["token"])
+@ComponentScan(basePackages = ["fr.lucasdupont"])
+class JdaAutoConfiguration {
+
+ @Bean
+ @ConditionalOnMissingBean
+ fun jdaService(
+ applicationContext: ApplicationContext,
+ jdaConfiguration: JdaConfiguration,
+ publisher: ApplicationEventPublisher
+ ): JdaService {
+ return JdaService(applicationContext, jdaConfiguration, publisher)
+ }
+
+}
+
diff --git a/src/main/kotlin/fr/lucasdupont/service/JdaService.kt b/src/main/kotlin/fr/lucasdupont/service/JdaService.kt
index 51bc84b..696a285 100644
--- a/src/main/kotlin/fr/lucasdupont/service/JdaService.kt
+++ b/src/main/kotlin/fr/lucasdupont/service/JdaService.kt
@@ -11,15 +11,11 @@ import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEve
import net.dv8tion.jda.api.hooks.ListenerAdapter
import net.dv8tion.jda.api.requests.GatewayIntent
import net.dv8tion.jda.api.utils.cache.CacheFlag
-import org.springframework.boot.context.properties.EnableConfigurationProperties
import org.springframework.context.ApplicationContext
import org.springframework.context.ApplicationEventPublisher
import org.springframework.context.PayloadApplicationEvent
import org.springframework.context.event.EventListener
-import org.springframework.stereotype.Service
-@Service
-@EnableConfigurationProperties(JdaConfiguration::class)
class JdaService(
applicationContext: ApplicationContext,
jdaConfiguration: JdaConfiguration,
diff --git a/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 0000000..609cfca
--- /dev/null
+++ b/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1,2 @@
+fr.lucasdupont.configuration.JdaAutoConfiguration
+