@@ -3,6 +3,7 @@ package dev.arbjerg.lavalink.gradle.tasks
33import dev.arbjerg.lavalink.gradle.extension
44import org.gradle.api.DefaultTask
55import org.gradle.api.Project
6+ import org.gradle.api.artifacts.Dependency
67import org.gradle.api.file.Directory
78import org.gradle.api.provider.Provider
89import org.gradle.api.tasks.TaskAction
@@ -37,13 +38,17 @@ abstract class GeneratePluginPropertiesTask : DefaultTask() {
3738
3839 private val extension = project.extension
3940 private val generatedPluginManifest = project.generatedPluginManifest
41+ private val dependencies = project.buildDependenciesString()
4042
4143 @TaskAction
4244 fun generateTask () {
4345 val properties = Properties ().apply {
4446 set(" plugin.id" , extension.name.get())
4547 set(" plugin.version" , extension.version.get())
4648 set(" plugin.requires" , extension.requires.get())
49+ if (dependencies.isNotBlank()) {
50+ set(" plugin.dependencies" , dependencies)
51+ }
4752 setIfPresent(" plugin.provider" , extension.provider)
4853 setIfPresent(" plugin.license" , extension.license)
4954 }
@@ -54,6 +59,21 @@ abstract class GeneratePluginPropertiesTask : DefaultTask() {
5459 properties.store(writer, null )
5560 }
5661 }
62+
63+ }
64+
65+ private fun Project.buildDependenciesString (): String {
66+ val plugin = configurations.getByName(" plugin" )
67+ val optionalPlugin = configurations.getByName(" optionalPlugin" )
68+
69+ val required = plugin.allDependencies.map(Dependency ::toDependencyString)
70+ val optional = optionalPlugin.allDependencies.map { it.toDependencyString(true ) }
71+
72+ return (required + optional).joinToString(" , " )
73+ }
74+
75+ private fun Dependency.toDependencyString (optional : Boolean = false): String {
76+ return " $name${if (optional) " ?" else " " } @$version "
5777}
5878
5979private fun Properties.setIfPresent (name : String , value : Provider <String >) {
0 commit comments