13 Commits
1.0.0 ... 1.3.1

Author SHA1 Message Date
semantic-release-bot
a44d987042 chore(release): 1.3.1 [skip ci]
## [1.3.1](https://git.tools.ldpt.fr/lucasdpt/spring-jda-starter/compare/1.3.0...1.3.1) (2025-12-17)

### Bug Fixes

* CommandMapper ([67e4f97](67e4f971bc))
2025-12-17 11:03:27 +00:00
lucasdpt
67e4f971bc fix: CommandMapper
All checks were successful
Release / release (push) Successful in 1m58s
2025-12-17 12:02:58 +01:00
semantic-release-bot
29a419a560 chore(release): 1.3.0 [skip ci]
# [1.3.0](https://git.tools.ldpt.fr/lucasdpt/spring-jda-starter/compare/1.2.0...1.3.0) (2025-12-17)

### Features

* add guild Id ([eddd857](eddd857a20))
2025-12-17 10:41:19 +00:00
lucasdpt
eddd857a20 feat: add guild Id
All checks were successful
Release / release (push) Successful in 1m58s
2025-12-17 11:40:46 +01:00
semantic-release-bot
7c74bd153e chore(release): 1.2.0 [skip ci]
# [1.2.0](https://git.tools.ldpt.fr/lucasdpt/spring-jda-starter/compare/1.1.0...1.2.0) (2025-12-16)

### Features

* bump ([0ce59fe](0ce59fead3))
2025-12-16 22:31:18 +00:00
0ce59fead3 feat: bump
All checks were successful
Release / release (push) Successful in 2m6s
2025-12-16 23:30:16 +01:00
74263537d5 feat!: bump to 4.0.0 Spring Boot
All checks were successful
Release / release (push) Successful in 25s
2025-12-16 23:28:53 +01:00
semantic-release-bot
78189e5c75 chore(release): 1.1.0 [skip ci]
# [1.1.0](https://git.tools.ldpt.fr/lucasdpt/spring-jda-starter/compare/1.0.2...1.1.0) (2025-12-15)

### Features

* add JdaAutoConfiguration.kt ([e7fdd19](e7fdd19928))
2025-12-15 14:21:26 +00:00
lucasdpt
e7fdd19928 feat: add JdaAutoConfiguration.kt
All checks were successful
Release / release (push) Successful in 2m7s
2025-12-15 15:20:49 +01:00
semantic-release-bot
be19485a25 chore(release): 1.0.2 [skip ci]
## [1.0.2](https://git.tools.ldpt.fr/lucasdpt/spring-jda-starter/compare/1.0.1...1.0.2) (2025-11-02)

### Bug Fixes

* fix pom ([4cc23b2](4cc23b2749))
2025-11-02 23:45:19 +00:00
lucasdpt
4cc23b2749 fix: fix pom
All checks were successful
Release / release (push) Successful in 1m58s
2025-11-03 00:44:49 +01:00
semantic-release-bot
147abd879d chore(release): 1.0.1 [skip ci]
## [1.0.1](https://git.tools.ldpt.fr/lucasdpt/spring-jda-starter/compare/1.0.0...1.0.1) (2025-11-02)

### Bug Fixes

* fix pom ([a7d3fb5](a7d3fb56e9))
2025-11-02 20:25:02 +00:00
lucasdpt
a7d3fb56e9 fix: fix pom
All checks were successful
Release / release (push) Successful in 1m26s
2025-11-02 21:24:19 +01:00
7 changed files with 126 additions and 23 deletions

View File

@@ -1,3 +1,45 @@
## [1.3.1](https://git.tools.ldpt.fr/lucasdpt/spring-jda-starter/compare/1.3.0...1.3.1) (2025-12-17)
### Bug Fixes
* CommandMapper ([67e4f97](https://git.tools.ldpt.fr/lucasdpt/spring-jda-starter/commit/67e4f971bc3e023cb5506ec05eef68b005145b92))
# [1.3.0](https://git.tools.ldpt.fr/lucasdpt/spring-jda-starter/compare/1.2.0...1.3.0) (2025-12-17)
### Features
* add guild Id ([eddd857](https://git.tools.ldpt.fr/lucasdpt/spring-jda-starter/commit/eddd857a205a2f17e7581bd6a278dc354191777b))
# [1.2.0](https://git.tools.ldpt.fr/lucasdpt/spring-jda-starter/compare/1.1.0...1.2.0) (2025-12-16)
### Features
* bump ([0ce59fe](https://git.tools.ldpt.fr/lucasdpt/spring-jda-starter/commit/0ce59fead3fe53d13efee8922cf726cfc4bed853))
# [1.1.0](https://git.tools.ldpt.fr/lucasdpt/spring-jda-starter/compare/1.0.2...1.1.0) (2025-12-15)
### Features
* add JdaAutoConfiguration.kt ([e7fdd19](https://git.tools.ldpt.fr/lucasdpt/spring-jda-starter/commit/e7fdd19928dbe20f0e71203cf4074c3ca5a9e667))
## [1.0.2](https://git.tools.ldpt.fr/lucasdpt/spring-jda-starter/compare/1.0.1...1.0.2) (2025-11-02)
### Bug Fixes
* fix pom ([4cc23b2](https://git.tools.ldpt.fr/lucasdpt/spring-jda-starter/commit/4cc23b27499c443ae4487489c98d78d87c9e4884))
## [1.0.1](https://git.tools.ldpt.fr/lucasdpt/spring-jda-starter/compare/1.0.0...1.0.1) (2025-11-02)
### Bug Fixes
* fix pom ([a7d3fb5](https://git.tools.ldpt.fr/lucasdpt/spring-jda-starter/commit/a7d3fb56e9b519ff7bbcad098b701f61fa5666c8))
# 1.0.0 (2025-11-02) # 1.0.0 (2025-11-02)

43
pom.xml
View File

@@ -2,19 +2,14 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.5.7</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>fr.lucasdupont</groupId> <groupId>fr.lucasdupont</groupId>
<artifactId>spring-jda-starter</artifactId> <artifactId>spring-jda-starter</artifactId>
<version>1.0.0</version> <version>1.3.1</version>
<name>spring-jda-starter</name>
<description>Starter for JDA project</description>
<properties> <properties>
<java.version>21</java.version> <java.version>21</java.version>
<spring.boot.version>4.0.0</spring.boot.version>
<kotlin.version>2.2.0</kotlin.version> <kotlin.version>2.2.0</kotlin.version>
<jda.version>6.1.1</jda.version> <jda.version>6.1.1</jda.version>
</properties> </properties>
@@ -26,11 +21,28 @@
</repository> </repository>
</distributionManagement> </distributionManagement>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring.boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId> <artifactId>spring-boot-starter</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency> <dependency>
<groupId>org.jetbrains.kotlin</groupId> <groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-reflect</artifactId> <artifactId>kotlin-reflect</artifactId>
@@ -59,10 +71,23 @@
<plugin> <plugin>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId> <artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring.boot.version}</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin> </plugin>
<plugin> <plugin>
<groupId>org.jetbrains.kotlin</groupId> <groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-plugin</artifactId> <artifactId>kotlin-maven-plugin</artifactId>
<version>${kotlin.version}</version>
<executions>
<execution>
<id>compile</id>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
<configuration> <configuration>
<args> <args>
<arg>-Xjsr305=strict</arg> <arg>-Xjsr305=strict</arg>

View File

@@ -4,20 +4,20 @@ import net.dv8tion.jda.api.interactions.commands.build.SubcommandGroupData
import net.dv8tion.jda.internal.interactions.CommandDataImpl import net.dv8tion.jda.internal.interactions.CommandDataImpl
fun Command.toCommandData(): CommandDataImpl = CommandDataImpl(name, description).apply { fun Command.toCommandData(): CommandDataImpl = CommandDataImpl(name, description).apply {
addOptions(options) addOptions(this@toCommandData.options)
neededPermissions?.let { setDefaultPermissions(it) } this@toCommandData.neededPermissions?.let { setDefaultPermissions(it) }
if (subcommands.isNotEmpty()) { if (this@toCommandData.subcommands.isNotEmpty()) {
addSubcommands(subcommands.map { toSubcommandData() }) addSubcommands(this@toCommandData.subcommands.map { it.toSubcommandData() })
} }
if (subcommandGroups.isNotEmpty()) { if (this@toCommandData.subcommandGroups.isNotEmpty()) {
addSubcommandGroups( addSubcommandGroups(
subcommandGroups.map { group -> this@toCommandData.subcommandGroups.map { group ->
SubcommandGroupData( SubcommandGroupData(
group.name, group.name,
group.description group.description
).addSubcommands(group.subcommands.map { toSubcommandData() }) ).addSubcommands(group.subCommands.map { it.toSubcommandData() })
}) })
} }
} }

View File

@@ -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)
}
}

View File

@@ -10,4 +10,5 @@ class JdaConfiguration {
var onlineStatus: OnlineStatus = OnlineStatus.ONLINE var onlineStatus: OnlineStatus = OnlineStatus.ONLINE
var cacheFlags: Set<CacheFlag> = emptySet() var cacheFlags: Set<CacheFlag> = emptySet()
var activity: String? = null var activity: String? = null
var guildId: String? = null
} }

View File

@@ -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.hooks.ListenerAdapter
import net.dv8tion.jda.api.requests.GatewayIntent import net.dv8tion.jda.api.requests.GatewayIntent
import net.dv8tion.jda.api.utils.cache.CacheFlag import net.dv8tion.jda.api.utils.cache.CacheFlag
import org.springframework.boot.context.properties.EnableConfigurationProperties
import org.springframework.context.ApplicationContext import org.springframework.context.ApplicationContext
import org.springframework.context.ApplicationEventPublisher import org.springframework.context.ApplicationEventPublisher
import org.springframework.context.PayloadApplicationEvent import org.springframework.context.PayloadApplicationEvent
import org.springframework.context.event.EventListener import org.springframework.context.event.EventListener
import org.springframework.stereotype.Service
@Service
@EnableConfigurationProperties(JdaConfiguration::class)
class JdaService( class JdaService(
applicationContext: ApplicationContext, applicationContext: ApplicationContext,
jdaConfiguration: JdaConfiguration, jdaConfiguration: JdaConfiguration,
@@ -59,10 +55,17 @@ class JdaService(
val commandDataList = contextCommands.map { it.toCommandData() } val commandDataList = contextCommands.map { it.toCommandData() }
if (jdaConfiguration.guildId != null) {
jda.getGuildById(jdaConfiguration.guildId!!)
?.updateCommands()
?.addCommands(commandDataList)
?.queue()
} else {
jda.updateCommands() jda.updateCommands()
.addCommands(commandDataList) .addCommands(commandDataList)
.queue() .queue()
} }
}
@EventListener(SlashCommandInteractionEvent::class) @EventListener(SlashCommandInteractionEvent::class)
fun onSlashCommand(event: SlashCommandInteractionEvent) { fun onSlashCommand(event: SlashCommandInteractionEvent) {

View File

@@ -0,0 +1,2 @@
fr.lucasdupont.configuration.JdaAutoConfiguration